Commentary
   Senior Project and AceMail

Senior Project Spin-Off: The AceMail Project

This page is about the Senior Project course I completed last December, and the subsequent port of the original project to a Free Open Source Software (FOSS) release under the Gnu General Public (GPL) license.

 

Senior Project

The University Computer Science Department describes the senior project course as a “Software development project requirement specifications, design, implementation, testing, and documentation”. Additionally, the University requires the student to take the Computer Science Major Field Exam. Ultimately, the Senior Project course is designed as the capstone course for the Computer Science undergraduate student. It is also an opportunity for the student to express his or her software engineering chops. At the end of the 10-week course a 30-minute discussion and demonstration is hosted by the project team members for the department and members of the public.

 

AceMail

AceMail is the name I gave to my FOSS branch of the original project, dubbed Net Admin… There are a variety of differences between the two projects, but the branch is essentially a particular implementation of the original. By particular, I mean that I made a variety of minor changes, and a few major changes to the original. Net Admin… was a team project, and the FOSS release of AceMail is my own work. Both the original and the branch serve the same purpose. AceMail is a complete web-based email, address book and file management service. If you’ve seen Google Corporation’s Gmail and Google Docs services, you have a general idea of what AceMail is and does. If you have a .pdf viewer you can download and view the poster my team created for the Net Admin… project as part of our course requirements here:
Net Admin... Poster

 

Why

AceMail essentially represents a fairly standard implementation of a server-client web-based data storage and retrieval system. There is nothing particularly unique about the AceMail project, and the idea was not my first choice, but rather a compromise made between my senior project teammate and me. While working on the Net Admin... project, I decided that I would like to eventually release the code under an open source license. There are several reasons for this:

 

Open Source Software Development

The primary reason I created a new implementation of the original project as AceMail is due to the fact that the original project failed in a variety of ways to meet the requirements for release under the GPL. This created a problem due to the fact that I could not publish the original project verbatim under any open source license; because the original project included open source software libraries and plug-ins that were released under the GPL, and others that are not GPL compatible. The GPL is somewhat interesting in the sense that it is perfectly legal to use GPL licensed software in any otherwise legal project, but is not legal to distribute or publish such software unless all of the software used in the project is GPL compatible (the reason the GPL is often considered a viral license). In this case, the hMailServer email server release that my team used for Net Admin… was published under the GPL. In order for me to release AceMail then, I had to ensure that the entire project was GPL compatible or not use hMailServer libraries (and some of the other third-party software used in Net Admin…).

 

Features

The best way to describe what AceMail does is to take a look at the portal page and demo. The portal page describes in more detail the technology used, and provides links to the demo and the published code.

AceMail Project Portal