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:- I put an enormous amount of work into the project, and as such it is a fairly robust system that capably demonstrates my abilities as an entry-level software engineer. That is, it gives me some extra street cred.
- I have benefited greatly from a variety of open source projects. I cannot stress enough how greatly the efforts of others who have freely shared their software development knowledge and code has improved, and continues to improve, my own understanding of the art. The AceMail project is an opportunity for me to give something back to the community that I have benefited deeply from.
- The project demonstrates the use of a wide variety of software technology, and others interested in software development may find benefit in reviewing the code and its implementation. AceMail represents the successful integration of aforementioned wide variety of technology, and in the process reveals solutions to a large number of the standard, and a few of the unique problems inherent in projects like this. In this way, AceMail may prove to have some academic value to others interested in software analysis, design and engineering.
- AceMail itself may prove useful as the starting point for a software engineering solution for a novel problem. In particular, AceMail provides an ASP.NET front-end integrated with a database and the widely used free hMail mailServer. As far as I know, AceMail may be the most comprehensive and robust ASP.NET front-end for hMailServer currently available.
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…).
