(50 points)

For the rest of the semester you are going to propose, design, and construct a database driven web application that provides a significant user interface based on HTML/CSS/JavaScript that uses a MySQL database. As part of this project, you will be expected to integrate third-party libraries not used in class. Your project may not be based on an example provided in the text books.

Proposal Requirements

Write a proposal (1000 words) that describes a database driven web application that you will deliver as a final project. Format the proposal as a web page. First, describe the project from the viewpoint of the user, not a web programmer. Specifically, describe the features the application provides, not how they are done. Subsequent parts of the proposal should describe key aspects of the user interface and the kind of data that needs to be stored in the database.

A portion of the proposal should consist of a list of features (a.k.a requirements) that the application will support. This list should also include possible errors that the user may encounter. For example, a list of features for an e-commerce site may be:

  1. Allow the user to log in to their account. If the log in does not exist an error is presented to the user and the user is asked to try and log in again.
  2. Allow the user to search for a product by name.
  3. Allow the user to add a product to a shopping cart.
  4. ... many more requirements

Hint

Note that you have about six days in total to complete this project (if you start work over the weekend). You have four days for HW 4, so this should give you a general idea of how much you can do (more than HW 4, but not much more). Keep this in mind when you are proposing a project.

Milestone

Your proposal should also clearly identify a first milestone to be completed by Wednesday June 7 (in class). For example, the first milestone might be that you have a first draft of the front-end HTML pages with some back-end stubs. Or it might be that your SQL tables are designed and populated with some initial data that you can query and update and you also have a list of queries that you will need.

Working in Teams

You may work alone on your project or with one other person. If you work with another person notify of me who that is by Thursday, June 30 in class. I must approve all teams. Do not ask me to allow a team of three or more. If working with another person all work on the project must be done together. All coding must be done together; at no time should a team member work alone. Note that there is an expectation for a more significant web application from groups

Grading

Your proposal will be graded both on textual content (40 points) and HTML design (10 points). Therefore, be sure to take time to edit and proof-read your proposal.

What to submit

In addition to the files required by the parts above (at least one HTML file), submit a text file named references.txt. In this file, provide a citation for each resource you used (excluding class notes, and assigned readings) to complete the assignment. For example, if you found a Stack Overflow answer helpful, provide a link to it. Additionally, provide a brief description of how the resource helped you. Your file should look something akin to:

uvaid: mst3k

http://www.w3schools.com/bootstrap/bootstrap_ref_comp_glyphs.asp
Helped me to use a glyphicon correctly.

Also provide a readme.txt file that includes your UVA computing ID and directions identifying which files are associated with each part of the assignment.

Your readme should have a format similar to:

uvaid: mst3k

Project Proposal

index.html -> the proposal

requires img1.png and img2.png

Make a zip archive named with your UVA computing ID and "proposal" that includes all of the required files (zip -r [zipfile.zip] [directory_to_zip]). Upload this to the submission website.

Remember, you may upload your submission multiple times. Try this before the deadline so that there is time to recover from any technical difficulties.