Web Database Applications

Final Project Requirements

General Information

The Final Project assignment for this class is to build a simple database-enabled website.

Specifically, build a simple website that interacts with a database. You will come up with the idea (for example, a Lost and Found site), plan the layout, design and build the database tables, write the HTML, and glue it all together. You'll demo your site in the last class meeting. You can use any tools you want, and the site can be anything you want; it just has to work by our last class meeting so you can show it off.

The phrase that will help you throughout the project is "keep it simple." Don't be afraid or ashamed of simple, and don't dismiss any of your ideas because you think they are too simple. A simple website that works is much better than one that's beautifully complex but doesn't work. The specific requirements for the site are easy to meet, and all you have to do to get an A on the project is meet those requirements. So be nice to yourself: keep your idea simple, and fight the urge to keep adding features to it, unless you're absolutely sure you have time.

Specific Requirements (How to get an "A" on the Project)

  1. You can use any tools you want to implement the site. In other words, the choice of web server, database, and language are up to you... whatever you feel most comfortable with.

  2. You must be able to demonstrate the site in class on the last day of class. (See Developing and Hosting below for more details).

  3. You must turn in your files to me, including any documentation (see homework), and the database, on a PC-compatible floppy disk (preferred), 100 MB zip disk, or CD-ROM, by the end of the last class.

  4. The project must demonstrate the following:

  5. The database must contain at least 1 table with a minimum of 4 columns, one of which should be a Primary Key. If you use more than one database table, each table should have a Primary Key.

  6. Optional for Extra Credit: Any of the following will get you extra credit:

Final Presentation

Part of the last class session is Show And Tell, where you will have about 5 minutes to show off your site to everyone. Regardless of whether your project is running on your class PC or on a remote site, we will access it from the instructor's computer at the front of the class, and project it on the wall, so everyone can see it.

Developing and Hosting Your Site

You can build your site anywhere: on your computer in class, or at home, or at the office, or at a 3rd party ISP that provide database services. Examples of 3rd party hosts that provide these services will be given in class.

WARNING: If you use the classroom computers, be aware that their hard disks get zapped nightly, so it's up to you to use floppies or otherwise preserve your files. This is good practice anyway, no matter where your files are. The rule to remember about disk failures and lost files: it's not if, it's when it's gonna happen.

The requirement to keep in mind is that you must demonstrate your site at the Show And Tell during the last class.

Sample Project Descriptions

Here are some ideas to get you started. Feel free to use one of these, a variation, or think up your own. (Remember the "s" word).

Gallery of Past Projects

Milestones and Due Dates:

We will devote some class time to working on projects, but be prepared to work on it outside of class as well, since you may need more time.

What When Due Description
Project Ideas By Class 4 Come up with 3 possible ideas for you project, and write 2 or 3 sentences about each one, just like in the Sample Project Descriptions above. You can change your mind later, but get 3 ideas down at this point.
Choose Idea Class 5

Choose one project idea, and make a picture sketch of the home page, to hand in at Class 5. The sketch doesn't have to be fancy, but it should show the following: (a) the boilerplate text, for example, My Guestbook, and field names like First Name, Last Name, and so forth, (b) form fields, (c) buttons.

Project Description

Part 1: Functional Description

Class 6

 

Choose one idea, and describe in more detail what it does. Include the following:

  1. Project Overview: The name of the site, and a 1-paragraph description of what it does, from a visitor's point of view.
  2. User Interface Diagram: A sketch of how the main data entry page will look, showing the fields, buttons, and boilerplate text you plan to include. This can be the same as the sketch from the previous homework.
  3. Functional Description: The specific functions each button will perform. For example, "When the user presses the Add button, the form data will be inserted into the database, after checking for duplicates." Write one sentence, two at the most, about each button.

This is a hardcopy delivery. Treat it as if it were a real project you were doing for your boss or client. I am expecting at least 2 pages (1 of which is the sketch), but not more than 4.

Turn in a copy, and keep a copy to which you will add Part 2 for the next homework (see below).

Once you have done this homework, you should start working on your project, if you haven't already, even if it's just to tinker and experiment. Start thinking about what the major building blocks will be.

Project Description

Part 2: Architecture and Design Description

Class 7

 

The Architecture and Design Description describes the major components, and how they work together to perform the functions you outlined in your Functional Description. Include the following information:

Technology Identification

  • State what technologies you use. For example: ASP, ODBC, Access, Personal Web Server).

An Architecture Diagram

  • This is a sketch with a box for each file in your project, labeled with the filename. Provide arrows between the boxes wherever data or control flows between them. Use the "soup can" icon to represent your database.
  • Inside the database icon, draw a box for each database table you plan to build (you're only required to have 1), and write the table name inside the box. If you have more than 1 table, draw arrows between them to show any relationships.

A Data Dictionary

  • Separate from the Architecture Diagram, list the names of the database tables, the columns in each table, their datatypes, their field lengths if appropriate, and whether they are required or optional. Indicate which column(s) comprise the Primary Key of each table.

Add this as Part 2 of your existing Project Description, and turn in the hardcopy of both Part 1 and Part 2, as a single document. Include a cover page with your project name, your name, and the date. You are free to make revisions and updates to Part 1 before turning it in again this time.

For Part 2, I am expecting at least 2 pages, but not more than 4. Thus, your total Project Description will be somewhere between 5 and 9 pages, including 1 title page and the 2 drawings (the User Interface Diagram, and the Architecture Diagram).

Once you have done this homework, you should definitely start building something. If you don't know where to start, begin with the Guestbook, and modify it (for example, make it into an Address Book by changing the interface, and adding an Address and Zip Code field to the database table).

Prototype

Class 8

 

Show me a working prototype of your project, even if it is only bare bones. You should at least have your database created with a table in it, be able to connect to the database from a script, and get something simple in or out. It doesn't have to be fancy or pretty at all... just show that the major wires are hooked up right.

This means bringing your files to class and getting them up and running on your class PC, or being able to demo your prototype from a remote site.

Final Project At Class 10 Show and Tell time!

 

Soapbox Advice On Software Development and Demos

Work and build in small increments. Start with the most basic, simple thing you can think of in your project, like a home page with the word "Hello" on it. Get that working. Then add something simple to it, like a form with one single field, but no database behind it yet. Get that working. Then write the code that connects to the database, but doesn't do anything with it yet; just print out a message saying that you successfully connected to the database. Get that working. Then write code that inserts the single form field into the database. Get that working. And so on... you get the idea.

This way, you have a string of successes, instead of one big failure. Fight the urge to build too much at each step... take baby steps each time.

As you continue to build, occasionally save off a working copy that you can go back to. Just copy all your files off into a folder named Version1, Version2, etc. This has two advantages: (1) you can always demonstrate something that works, and (2) it can help you figure out what you just changed that made it break.

Finally, when Demo Day comes, don't make any last minute changes, no matter how strong the urge. Murphy's Law is especially prevalent at software demos. The most innocent, simple change ("oh, I think I'll just capitalize the word hello on my home page") will almost certainly break something, no matter how confident you are. Just leave it alone! I can't tell you how many students (and professionals alike!) have said, about 5 minutes before demo-time, "Well, I had it working, and then I decided to add just one more thing..."  It's a trap!

So here are some things to remember: