CSI 3140. WWW Structures, Techniques and Standards
[ Home | Syllabus | Schedule | Resources ]

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.
Guy-Vincent Jourdan | Initial design courtesy of Marcel Turcotte and SnipSnap