Welcome to the Term Project page!

1.  Overview

To complete the term project you will work in either pairs or groups of three, and develop a web application. This web application can be basically anything you want as long as it is approved by the teaching staff.

The project has two phases: design and development. During the design phase you will be working on your project proposals (as described below). This will be followed by the development phase.

During the last week of the semester your project will be frontally evaluated and graded. You will have to explain your design, implementation, various features and show good understanding of your web application. In addition, each group will have approximately 10 minutes to present their project to class.

After the presentation, the whole class + the teaching staff will vote for the best project. The winners will be presented with a really cool prize!

The WOW effect! Although not required, try to think of a really interesting idea and plan a great user interface. There is nothing like a great interface to make the users enjoy your website. Also, it might help you get those extra votes for the grand prize at the end of the course! :)

1.1  The design phase

In order to get your project approved you must submit a project proposal. The project proposal will be returned to you with comments; you will then finalize your proposals by making the necessary modifications.

Your proposal somehow resembles a contract - you should make an effort to develop your application as close as possible to the one you proposed. Part of your grade depends on how close you actually are to your proposal.

1.2  The development phase

Starts right after the design phase. During this time period you will implement the proposed design.

2.  Requirements

There are several requirements you must comply with.

  • Groups of 2-3 students are mandatory.
  • Your web application must adhere to the approved project proposal.
  • You have to use some of the material learned in class/tutorial sessions during weeks 1-9.
  • You are encouraged to use some of the material learned in class/tutorial sessions after week 9.
  • Your web application must:
    • be usable.
    • be deployable on the Tomcat web server.
    • have an easy and clear user interface.
    • be fully supported by at least two of the following web browsers: Internet Explorer, Mozilla Firefox, Safari, Google Chrome.
    • must pass all validation tests, i.e. comply with the different specifications in use (e.g. xHTML, CSS, etc.).
    • demonstrate good data/layout/style/logic separation, e.g. XML for data, HTML for layout, CSS for style, and code for logic.

In addition you are required to incorporate several features into your web development as listed in Section 2.1.

2.1  Web features

Your projects must include some of the features listed below. The actual amount depends on the group size:

  • Groups of 2 must implement at least 10
  • Groups of 3 must implement at least 12

The list of features

  1. User management: registration, login, authentication
  2. User data persistency: user is recognized across different visits
  3. Server data persistency: a web application may be reloaded, the data should remain
  4. Session data consistency, e.g. a shopping cart
  5. Server-side dynamic content generation
  6. Allowing the user to have personal storage and preferences
  7. Allowing different users to interact/communicate
  8. Using filters for multi-language support or personalization
  9. Asynchronous updates from web-server, without user's intervention
  10. Client-side form validation (e.g. username taken/free)
  11. Browser/client-side interaction logic
  12. Smart caching of results
  13. Interaction with third-party software
  14. Using third-party web-services (SOAP, REST)
  15. Using XML to store data and XSL transformations to present it
  16. Generating or reading web feeds (RSS, ATOM)

3.  Possible ideas

The best is to come up with your own idea. But, just to give you a flavor of what is expected, some ideas are given below.

  • Web-alization of desktop applications: some conventional applications which you want to develop online
    • For example: A shared whiteboard for text boxes and images
  • Community oriented applications: users sharing information
    • For example: An online meeting scheduler with interactive meeting room
  • Mashups: linking different sources of data from web
    • For example: Multi-source feed reader, which allows embedding in third party websites

4.  Project schedule

Below are the deadlines for the project. Dates in red are fixed. Dates in green are tentative.

DeadlineTask
11.02.10Project presented in class (pdf)
24.02.10Groups are formed (notify the TA about your group)
03.03.10The submission of preliminary project proposals
15.03.10Final project proposals
15.03.10-11.04.10The development phase
11.04.10Project submission (this is a firm deadline, there will be no extensions!)
12.04.10Project evaluation and grading
13.04.10Project presentations
15.04.10Course summary and the best project award!

5.  Project proposal

The project proposal somehow resembles a contract. You should develop your application as close as possible to the one you proposed. Part of your grade depends on how close you actually are to your proposal.

The project proposal must include the following sections:

  1. An overview of the web application you wish to implement. This includes a top-level overview of the services and the motivation for such an application.
  2. High-level design of the application: how the user interacts with the application and the server-side mechanism.
  3. A complete list of different services, with use-cases.
  4. A list of technologies/methods you will be using to implement your project. Also, specify which web features you incorporate from the list in Section 2.1.

6.  Project submission

Projects are to be submitted electronically to Marian not later than Sunday, 11.04.10 at 23:59. Each submission MUST include:

  1. The web application package with deployment instructions as follows:
    • The web application directory from Tomcat webapps (including WEB-INF, static files, web.xml, and additional files if needed).
    • A list of system requirements:
      • Compatible browsers
      • Required third-party libraries/software
      • Special Tomcat configuration (non-default settings)
    • Web application configuration instructions:
  2. The web application sources with documentation as follows:
    • All source files (including third-party sources)
    • Documentation:
      • High level design of the web application (listing different software components)
      • The objective of each of your source files (brief description)
      • Special build instructions (if needed)
      • A list of third-party packages used

7.  Project grading

The project will be graded frontally on Monday, 12.04.10. The grading will take place in ICT638, 16:00-19:00. Please, sign up for time slots on Monday (use same password as for grades page).

The project will be graded as follows:

  • Each group has 15 minutes to demonstrate their project.
  • You will have to answer questions about your design, implementation details, usage of 3rd party code/libraries, etc.
  • You will demonstrate several use cases (as requested).
  • You will also be asked about the differences between the project proposal and your actual implementation.

You can receive up to 26 points of the final grade on Monday.

8.  Project presentations

In addition to the grading, you are also required to present your project in class. Some guidelines for the presentations:

  • Each group has 10 minutes to demonstrate their project
  • The order of presentations will be decided by the course staff
  • In your presentation you will
    • demonstrate the project
    • outline the architecture of the project
    • mention the 3rd party libraries in use
    • describe the challenges you faced

The presentation is worth another 4 points of the final grade.