Skip to content

Weeks Five to Eight

Sorry its been a while since my last post, in this post I will be looking over the week I have been doing for the last four weeks. I’ve mainly been working on the two projects I have already started on, the Drupal website for the Project Showcase, and the Javascript application for viewing desk layout maps of iSolutions buildings.

But as well as those two projects, for the last few weeks I have been working on writing unit tests for FloraForm, a library for generating and processing web forms with complex data types. FloraForm was written in PHP by two other members of the web development team, Patrick McSweeny and Chris Gutteridge, and is intended to be used to generate complex list fields on web pages, allowing components to be easily added onto each other (for example, a list of fields of different types) and provides constructor methods for the libraries classes.

My task has been to expand on the tests for the different component classes within FloraForm. This has been my first encounter with PHP, a web scripting language similar in function to Javascript. I’ve found PHP to be a far easier language to work with than JavaScript. In order to write the tests I first had to get to grips with the libraries classes, which often required some trial and error in order to understand how the classes function. For each field class my intention has to been to test the construction methods for the class, any functionality for formatted input to the fields and the classes validation on data sent from the form.

Example of several tests having been run

Example of several tests having been run

For Project Showcase I needed to improve the site enough that it could be shown to a 3rd part as a demonstration of the final website’s design. This meant ensuring the site was using the Universities website branding and fulfilled almost all stories described in the requirement documents. The focus was on requirements which were related to student usage of the site, such as functionality for searching and sorting lists of supervisors, projects and themes within the system, and less on more advanced administrator features such as the ability to import projects from the ECS Handin system.

Whilst working on the Project Showcase more and more I found the Drupal platform has both considerable strengths and flaws. It is a powerful platform which can be the basis for very complex websites, but I think it would prove a highly inappropriate choice of content management system for new or experienced developers, due to its complexity and poorer quality documentation. The latter is often a result of Drupal’s reliance on user developed modules, an approach which on one hand makes it easier to expand and manage the functionality of a Drupal website, but also can result in important functionality being reliant on poorly documented or badly written modules. The lack of good documentation often requires a developer to experiment with different modules in order to find one appropriate for a specific piece of functionality they are trying to implement. For example, I tried several different approaches till I settled on using the Rules module to automatically un-publish projects which have been marked as inaccessible by an administrator.

The work I have been doing on the Floorplan Map Viewer has mostly been concerned with completing the datasets for the iSolutions office in Guildhall Square One, and the two floors of the research area in Building 32 on Highfield Campus. The aim at the moment is to, by the end of my internship, deliver these datasets, a Javascript library for parsing these datasets into usable formats and a simple exemplar application which can render the datasets onto the floorplan maps. Since I have a week and a half left until the end of my internship, I hope to before then expand on the current simple example application, and refactor my code into a more useful library format.


Posted in Uncategorized.

0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

Some HTML is OK

or, reply to this post via trackback.