Project
The goal of the course project is to give students in-depth knowledge of a subfield of web applications. Besides the implementation aspects, completing a successful project also requires effective written and oral communication skills.
The project will be implemented as a group. The group will write a large, useful web application. The web application will adhere to the design and software engineering principles discussed in class. You may want to use open-source resources and expand them. Starting with an open-source application will give you a good starting point and may allow you to try out some different development techniques or technologies than those discussed in class.
Deliverables
Project Requirements, Design, and Plan
The deliverable is a collection of web pages on the course wiki that describes the requirements for the project, a general design, and a work plan.
- Requirements - describe the functionality that will be implemented. Be as precise as possible. Identify the most important functionality that must be implemented. Also, describe optional functionality that will be implemented if time allows.
- Design - the steps you will take to complete the project, which will include what will be implemented and the technologies used to implement each piece.
- Work Plan - a tentative plan for what parts of the work you plan to have each member charged with doing.
Static HTML Mockup
The group will create example web pages that represent the look of the application as well as the flow and what information will be on or asked for on individual screens. Creating the HTML pages, CSS files, favicons, and graphics first and identifying any presentation issues will make implementing the web application easier. The static HTML pages are also much easier to create than dynamic web pages, which means that we can quickly create a prototype that can be analyzed for potential design and usability problems.
All the links will go to static HTML pages, representing what, for example, a Servlet or JSP would display to the user.
The group will meet with Professor Gregory and me as a group to present the mock-up. This meeting will also give the group a chance to ask clarification questions about how the application should behave. Based on the feedback, the group will revise the requirements, the work plan, and design document.
This deliverable includes
- HTML pages for most of the functionality the forms for these pages.
In addition to submit buttons in forms (which won't yet work), use links to go to the response page.
- CSS files to specify layout and look of pages.
- Any images, graphics, favicons.
Web Application Implementation, High-Priority Functionality
Your goal is to create a demo-able version of the application so that Professor Gregory can see what you've done and provide feedback. At this point, you'll also have a better idea of what is possible within the time constraints. Revise the work plan and design document based on your progress and Professor Gregory's feedback.
Web Application Implementation, Final
Your project implementation should be working correctly by the second deliverable date. You should provide documentation about how to install, configure, and run the application.
Documentation
Goals: 1) Sell your product to others and 2) remind yourself what you did and why.
We want to make your work available to others to use, and we want them to use it. You will create Web pages that describe the motivation behind your Web application and how to use it.
You can show this application to employers to demonstrate what you've done. You will need reminders about what you did: how you designed the application and why you designed it that way.
Specifically, your Web pages should include:
- an overview of the application: what it is, why it was developed, who should use it, and how it works. A few screenshots or diagrams can help the reader understand better.
- a demonstration of your application. This can be either a "live" demo, a static mockup, or it can be screenshots, demonstrating how a typical user uses the application.
- The design and implementation of your application. This part
includes an overview of the design (the components and how they
interact; a figure will be very useful and reduce the amount you need
to write), the technologies used, and details about how you
implemented the application.
Use the figures from the lecture slides to guide you.
- Information about how to set up and use the application on a web application server. This includes data base information, configuration files, and any other storage information.
- A user manual or help for each type of user. Be specific and precise in describing what to do. Screenshots are again very useful.
- Future work: suggestions for new features, additions to the application
Final Demonstration
Your group will develop and conduct a presentation of about 30 minutes (including questions) to the client, presenting an overview of how to use the application.
Your presentation should demonstrate
- the application's functionality
- demonstrate typical situations of how a user would use the application
- the application's security features (what a malicious user can't do)
Each person in the group should speak approximately the same amount of time. Since the client will have the opportunity to ask questions during your presentation, prepare only about 20 minutes of presentation and be prepared to answer questions!