Projects
Throughout the semester, you are going to apply to concepts learn during the lectures to a web-based
development project. You will work on this project by teams of two. Ideally, you will come up with
your own idea for your project, perhaps something that you have wanted to create in the past, any
suitable idea that you may have. To be suitable, your project should have the following characteristics:
- Be Web-based, and developed using the technologies seen in class
- Have a non trivial user interface, and a non trivial server-side application
- Have the potential of expending the user interface using dynamic technologies
such as Ajax, and XML-based data exchange between client and server
- Be large enough to be interesting, but small enough to be doable by two
dedicated programmers in a semester
Ideally, your project will be useful and interesting, and will give you the opportunity to keep
working on it after the course, to distribute it on a site such as source
forge and have actual users, thus acquiring further valuable experience and give you an excellent exposure.
Here are some examples of possible projects starting points (note that it is likely that some variation of these
projects do exist already).
Web site usage tracking tool
Some cheap hosting offering do not give any access to log information. Sometimes too, the web site owners
find the logs too cumbersome to use, too difficult to read, too hard to setup. In this project, you will provide
a very simple interface to such web site owners (such as a link to an image) to be included in the pages
to track.
For each such site, you will store the information and create reports such as number of visits, time distribution,
geographical maps showing the location of the visitors for a given timeframe, the user-return rate etc.
Easy Virtual Hosting (to be done in collaboration with the prof, who keeps ownership)
The goal of this project is to have a web interface to easily create and maintain a set of applications for a
given domain name: mail box, email aliases, web site, Wiki etc. A small amount of configuration for a new domain
should be possible (such as perhaps a couple of picture and some text for the web site)
International recipes
Build recipes from a database of ingredients and instructions. Let people search your recipes, and display the
instructions using their preferred unit measures.
Web-based email aggregator
Many internet users have several email addresses, which they sometimes forward from one to the other, and/or which
they check from time to time. In this project, you will develop an application that will be configured to display
in a single interface the emails coming from the different sources. Your tool will connect to each email servers (POP3
based, IMPA based, and some important, non standard ones as well) and aggregate the result either as a POP3 or IMAP based
mail server itself (in which case it will be accessed via a mail client) or you can even imagine creating a small
web-based mail client yourself.
On-line polling system
A suite of tools around polls can be developed, going from simple, one question poll, to detailed questionnaires with
different formats for the answers (single/multiple choice, text, values etc..), or even system allowing to
setup a vote between different web sites (e.g. the best blog of the month etc...).
For this project, the goal is to have something that is extremely simple to setup for the users, and display the results in
an intuitive and useful manner.