This site

    Recent site activity

    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