Revision Log

Changes that have been made since initial publication, most recent first:

Overview

In this project, you will work in groups of 3–4 to design and prototype a database-driven web application for reviewing books and recording reading activity. GoodReads and LibraryThing are good examples of this kind of application in the wild.

Requirements

In addition to the above, you must design and provide at least one additional feature for users. Here are few ideas for potential features:

User Views

In Lecture 4, we discussed user views: different perspectives on the system that meet the needs of different kinds of users. Think of your project as having at least two user views:

Adding a new user view is also a good starting point for an ambitious extra feature. For example, you could add a Publisher view so publishers can see things about how widely their books are read.

Multiple Editions

Modeling books can be complicated. There are multiple printings, multiple editions, etc. A user reads some particular edition, but that edition may be equivalent to some other edition (e.g. an earlier printing, hardcover vs. softcover, etc.).

There are also more substantial different editions, such as new editions of textbooks or technical books. New editions may even add or remove authors.

You will need to decide how to model the relationships between different editions, printings, formats, etc. Your guiding principle should be making the system valuable for the user to record their reading and talk about books.

Deliverables

The following table summarizes the project deliverables; see below for more details on each deliverable.

Deliverable Grade Pct Due
Initial Data Model 5% Oct. 9
Peer Review 10% Oct. 10/11
Revised Data Model 25% Oct. 20
Development Midterm Report 10% Nov. 13
Final Presentation 20% Dec. 4
Final Code and Report 30% Dec. 6

All deadlines are at 6:30 PM.

Initial Data Model

By Oct. 9, you must submit a draft data model. This draft must consist of:

On Oct. 9, each group will give a short presentation to the class about their data model to get feedback.

Peer Review

By Oct. 11, you must submit a written version of your peer feedback. Send your feedback to each group using the TRACS e-mail tool by Oct. 10 at midnight, and submit a compiled document for grading consisting of:

Revised Data Model

Submit a revised data model by Oct. 20, consisting of the same materials you submitted in the Initial Data Model, updated and revised based on the feedback you received from your peers and me.

Midterm Report

On Nov. 13, submit a midterm report on your development status. This report must include:

Submit your report as 2 files: a PDF containing the text and diagrams, and an SQL script file with the DDL.

Final Presentation

On Dec. 4, each group will give a short presentation to the rest of the class demonstrating their application. This presentation should contain:

Final Code and Report

By Dec. 6, submit your final project. This should be a zip archive containing:

Group Contribution Report

On Dec. 6 (the same day as the final project is due), each group member must individual submit a short report (can be less than a page) assessing their own contribution and that of their group members. This report will not be directly graded, but may influence the grading of the group.

If your group has great dynamics and everyone pulls their weight, shows up for meetings, etc., this can even be a single sentence.

  1. We will talk later in the class about how to build password authentication securely.

  2. PostgreSQL includes a search function that we will learn how to use.

  3. GoodReads does not have this feature. That is one reason I do not regularly use GoodReads.