During this course, you will design and implement a database-driven web application. This will be an individual project, based on a data set that is of interest to you. Each week, the homework will include a new increment building on the previous weeks' work. It is, therefore, important that you view this as a continuing project and keep up.
Project Domain
The precise nature of the project is largely up to you. Throughout the semester, I will have some things to say about the complexity required of the database design and of the queries, but the choice of the data itself and of the application is yours. Be creative here. Pick something you're interested in such as a hobby, a project for another course, or a useful tool for your job. I am more than happy to entertain "unusual" suggestions and invite you to talk with me about them (stop in or send me email). Also, if you are having difficulty coming up with something, stop in and see me, I have a number suggestions that could be of interest.
The data domain should be "substantial" but not "enormous". I'll give you specific metrics here during the second week of the course. Make it incremental if necessary. That is, devise an database that has a relatively simple core set of data items, and then add to it as time allows.
In general, I would like the implementation platform to be Microsoft, but you may suggest an alternative more appropriate for your proposed project. The features you include should mirror the features we work with in the lab sessions.
Open-ended assignments such as this are usually fun but they can become nightmarish, depending largely on the approach you take and on how well you keep up. Do not hesitate to come in and talk to me if you are having any trouble with any part of it.
Project Deliverables
Project points will be given for a specified portion of each weekly homework assignment. These will be summed up separately from the regular homework assignment points. See the administrivia page for the relative weights. In addition, project points will be given for the final system deliverable and the final presentation, both of which will be due at the course's final exam period. The course schedule will specify the date and time. The expectations for these two deliverables are as follows:
The Final System (170 points) - Use KV to submit your completed final project website by the beginning of the course's final exam period. Be sure to submit the following:
- The URL I can use to access your site from my machine in the lab. Include any loginID/passwords I need, and don't use "localhost" for this.
- A zip/tar file of all your source code. I'll only need to see the code here, so you can purge out image files and other things in order to save space.
- The administrator loginID/password to your lab machine. Hopefully, I won't need to use this, but include it just in case.
We'll discuss the key requirements for this in class, but for a B-ish sort of grade, your implementation should integrate all the features implemented in the PDP portions of the weekly project assignments. I'll reserve A-ish sorts of grades for those projects that add other nice features/technologies to produce a nice integrated website application. If you have any questions about what it would take to move your personal project from the B-ish to the A-ish level, let me know.
The Final Presentation (30 points) - During the final exam period, be prepared to give a 5-minute presentation and demo of your system to me and other members of the class. We'll do this in the lab where your systems can run. Be prepared to explain:
- Your Project Domain - Explain why you built this project, what problem it attempts to solve and who cares about it.
- Your Database Design - Describe the database structure, showing either an ERD or the relational database diagram from your DBMS.
- The Features of Your Website - Show the pages that you've implemented and what they do. This should be a live demo.
I expect this to be an informal presentation, without slides or other prepared materials. To get full credit for this part of the project, you must: (1) attend the final exam period; (2) be prepared to give a reasonable explanation of what they've done; and (3) actively participate in the session.
I'll add these two scores together a record them as your last personal project score in the grading database. If you have any questions about any aspect of this project, please let me know.