Project Requirements

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

Purpose

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.

Example

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

Users

  • 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

Resources

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

Reservations

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

Events

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

User roles

Guest

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

Member

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

Staff

  • 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

Admin

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

Comments