/reservations-server

Primary LanguageJavaScriptMIT LicenseMIT

reservations-server

Build Status Join the chat at https://gitter.im/reservations-server/Lobby Standard - JavaScript Style Guide

Concept

A system for displaying and modifying meeting room reservations via wall mounted terminals at each room, a web interface, and Outlook/Google calendar.

Room Terminal

  • Display data
  • (optional) Edit data with touch controls

Web Interface

  • Display all rooms and their reservations
  • Create a reservation
  • Admin panel for configuring rooms

Integrations

  • Outlook
  • Google Calendar

API

  • GET /room
    • Returns all rooms in system
  • POST /room
    • Creates a room
    • Requires name
  • GET /room/:id
    • Returns the specified room
  • PUT /room/:id
    • Updates the specified room
    • Requires name
  • DELETE /room/:id
    • Deletes the specified room and all attached reservations
  • POST /reservation/
    • Creates a reservation
  • GET /reservation/:id
    • Returns the specified reservation
  • PUT /reservation/:id
    • Updates the specified reservation
  • DELETE /reservation/:id
    • Deletes the specified reservation

Objects

The _id field is returned for referencing objects but is never needed in POST or PUT bodies. This is the ID used in the REST path.

  • GET requests return the requested object
  • POST and PUT requests return the created or updated object
  • DELETE requests returns a message

Room

{
  _id: String,
  name: String,
  reservations: Array<String>
}

The reservations array is an array of reservation _id values.

Reservation

{
  _id: String,
  meetingName: String,
  owner: String,
  ownerEmail: String,
  start: Date,
  end: Date
}

Message

Message objects are sent as the body of any request that does not return a room or reservation.

{
  message: String
}