CSCE 590: Problem Set 1

Due: Monday, 11 February 2007 @2:30pm

My Library

For this problem set you will use Java Servlets to implement a simple version of an online library database as exemplified by LibraryThing. Of course, LibraryThing implements a very large set of features, you will only be required to implement the following set of features:

  1. Visitors should be able to create accounts. You do not need to implement email confirmation. Accounts must be password protected, but you can store passwords in the clear (obviously, you never do this in a real application!). Each user receives a unique username.
  2. Each user will be able to enter books. For each book you will store:
    1. Title
    2. Authors (one primary author and then the rest)
    3. Year Published
    4. ISBN
  3. Only the user should be able to delete and edit books he has entered.
  4. The list of books entered by any user should be available for all to see at a URL that is simple and ends with the username of the user.
  5. When displaying the list of books, the user should be able to re-sort them by title, primary author, and year.
  6. There is a list that shows everyone's books. This list can also be re-sorted in the same ways.
  7. You must use a style sheet for the website. The website does not need to look extremely polished but it should be pleasantly simple (google style). Use semantic markup.
  8. You can keep the database (really, array) in memory if you want, but I think it will be easier to debug your website if you write/read the array from a file so you don't have to enter new books every time you restart the servlet.

Submission Instructions

Each project is to be done either individually or by at most two people. On February 11, during class, each group will give me a demo. You will thus need to either bring your laptop to class or deploy your servlet so that I can access it from my laptop via the Internet. Also, before class each team will email me a zipped file of your complete project directory, that is, all send me all your source code.

José M. Vidal
Last modified: Sat Jan 26 10:12:18 EST 2008