Project Requirements

This draft document describes the high-level project requirements for the spring 2012 section of this course.


The system manages resources available on a short-term, first-come-first-serve basis and supports reservations on currently unavailable resources as well as notification when those resources become available.


The equipment counter at a fitness center has a certain number of items such as racquets, balls, etc. available for check-out. Anyone (including guests) can browse the available items on the reservation system, but only registered members can borrow items, where a staff person performs the actual check-out. Available items can be checked out immediately and are checked back in when they are returned.

A member might want to borrow a soccer ball, but there might not be any available. In that case, the member can place a reservation on the item in such a way that the member is notified via text message (short email message to a mobile device) when the item becomes available. Then the member can do something else, say, go to the weight room, until the soccer ball becomes available. Multiple reservations on the same item are handled on a first-come-first-serve basis. If the member does not pick up the item within a certain time of the notification, the reservation expires and is canceled.

Entities and their attributes


  • notification address (mobile email, serves as unique id)
  • password
  • first and last name
  • roles (in this case: guest, member, staff, or both member and staff)
  • items checked out
  • reservations held


  • name
  • description
  • member currently holding this resource
  • reservations


  • resource being reserved
  • member holding the reservation
  • time reservation was made
  • status (e.g., pending, completed, expired)


  • notification of availability of a resource
  • expiration of a reservation

User roles


  • browse available resources
  • join as a member (requires staff approval)


  • reserve an unavailable resource
  • view, modify, and delete own reservations
  • receive notification when a resource reserved by the member becomes available


  • create, modify, and delete resources
  • check out an available resource to a member
  • check in a resource returned by a member (this step automatically triggers notification)
  • view and delete reservations by resource, by member, or via the complete list


  • approve, modify (e.g. for password reset), and delete users