Project Phase I
Goal
You will build a complete database application with a web service interface and a
simple web-based front end.
You have considerable freedom in defining your application, but it must be some kind
of an inventory management tool.
As such, it should observe the following constraints:
- The database must contain a product inventory.
- You must keep track of quantities in stock, and price per unit.
- The web interface enables the inventory to be browsed.
- The web interface also supports updating the inventory.
You therefore need to take the following steps:
- Decide and describe the specific purpose of your application.
- Model the inventory, derive a database schema and create the tables.
- Populate the inventory database with data of your own making.
- Expose the database as a web service.
- Design the web front end, including browsing and updates.
- Implement the front end in terms of the web service.
Notes
- You shouldn't spend much time populating the database; just add enough to show the functionality of the application. 15-20 inventory items should be fine.
- Don't spend much energy on the web front end. Instead focus on the database and web service aspects.
- Web services will not be given much lecture time (syllabus, calendar). A collection of resources is listed here, and you should use web search and the class mailing list as much as you can. Don't postpone this part until the last minute.
Turn-in
You need to turn in a zipped archive using the turn-in server web form. The due date is May 3 (not April 26th) 17:45. The archive contents should be as follows:
- A short (half page) README.txt file with the URL of your running web application, and roadmap for the rest of the archive contents.
- A brief, concise description of the purpose of your application.
- The inventory model, e.g. your E-R diagrams.
- The database schema.
- The database tables, e.g. the actual tuples you created.
- The web service interface, preferably in WSDL format.
- A summary showing the queries that implement the web service.
- All the code you wrote for the project.
Database tables should be handed in as comma-delimited text files in the Excel-compatible CSV format. Other file formats may be PDF, plain text or HTML.
Grading
Grading will be based on your skill in applying the data management techniques discussed in lecture, and the quality of your design, implementation and project presentation. The application will be accessed at the supplied URL, and checked against the code listings - you must not change the running code after the turn-in. Approach the project as a prototype to be demonstrated to a client and you'll do well (even more so if you assume the client is pedantic about database stuff).
Questions?
Send your questions to Stefan, Alon or the course mailing list.