Skip to content

Final Year Project Completion

You may have noticed the lack of blog posts here recently. Don't worry, I haven't forgotten about it, I've just been busy working on my final year project for Uni. This is now complete and handed in, and hopefully earning me a decent grade.

I developed a web-based application for virtual software teams - that is, teams of people working on software development who are not located within the same office or area. They are normally distributed across different countries and time zones, often different continents. The tool I produced is designed for companies who engage in this type of development and have the resources to provide an intranet which spans all the locations. This way, security from outside tampering is pretty much a moot point. However, I did note whilst I was doing it that not everyone has this sort of arrangement and that open-source development follows much the same pattern: many developers, many locations, yet somehow communicating and collaborating on a single project. Perhaps it would be possible to extend and evolve the system to be useful to a broader range of people.

During the project, I encountered a few issues and problems, (not least of all, my own poor time management!) However, one of the most painful was the implementation of a web-based IMAP mail client. It should be noted that PHP's documentation regarding the use of the IMAP extension could use some clarification in parts. However I don't think its all their fault - the simple fact is that IMAP is a hideous protocol to use, and requires much more time and research than I could dedicate to a single area of the application. I did notice that the Zend Framework has Zend_Mail which is able to read various mail storage formats and protocols as well as sending. If only I'd noticed before-hand! Hopefully if you are reading this, you'll not make the same mistake and check out their documentation before getting stuck in to this mess.

There was a lot more to the project than IMAP, thankfully. It also has it's own integrated instant messaging system. It is not the most sophisticated system - it just stores messages on the server-side in a database, and each client polls the server via AJAX to retrieve the newest messages. These are then displayed to the users in a nice tabular layout.

This post was just an overview of where I've been for the last couple of months. Hopefully from now on I'll be able to continue on to new ideas and projects, and make more regular postings here. I also hope to produce a couple of more focussed posts on the intricacies of problems faced and solutions developed throughout my project.