Skip to content

A service to allow easy display of meeting room status from Outlook/Exchange

Notifications You must be signed in to change notification settings

csudcy/room_display

Repository files navigation

Room Display

A service to allow easy display of meeting room status from Outlook/Exchange on a web based tablet interface

Room Display

Running

Docker

The easiest way to run the server is using docker-compose:

cp config.env.template config.env
vi config.env
# Update environment variables (see below)
docker-compose up

Once the image has finished building & everything is running, you should be able to hit [http://192.168.99.100:5000] to view the website.

Heroku

Heroku should automatically work via the Procfile

Cloud9

To run on Cloud9 (and possibly Debian based Linux in general):

sudo apt-get install python-lxml
sudo pip install -r requirements.txt
python room_display/app.py runserver

Settings

The following environment variables can be set (all are optional):

  • Server settings:
    • IP: The IP to bind the web server to (defaults to 0.0.0.0)
    • PORT: The port to bind the web server to (defaults to 5000)
  • Misc settings:
    • DEMO_MODE: If this is set to "true", the server will operate in a demonstration mode (using example data)
    • INSTABOOK_TIMES: A comma separated list of meeting lengths allowed by Insta-booking
  • Exchange settings:
    • OUTLOOK_DOMAIN: Domain for the outlook user to log onto
      • If this is left blank, demo mode will be enabled
    • OUTLOOK_EWS_URL: URL to the EWS endpoint on the exchange server e.g. [https:///EWS/Exchange.asmx]
    • OUTLOOK_USERNAME: User for exchange
    • OUTLOOK_PASSWORD: Password for exchange
    • OUTLOOK_ROOM_DICT (See below): A JSON dump of a dict containing the room name as a key and the room's email address as a value
    • OUTLOOK_ROOM_SEARCH_TERM (See below): A string fragment to match to find contacts that are meeting rooms from the exchange global address list
    • OUTLOOK_REFRESH_TIME: How often to grab the data from Exchange
    • OUTLOOK_TIMEZONE_NAME: What timezone the Exchange server is in e.g. Europe/London
  • Security settings:
    • ALLOWED_IPS: A comma separated listed of allowed IPs. Default is allowed by any IP.
  • Frontend settings:
    • POLL_INTERVAL: Poll wait time for the client in minutes. Defaults to 1.
    • POLL_START_MINUTE: Poll start time in minutes from midnight. Defaults to 420 (7am)
    • POLL_END_MINUTE: Poll end time in minutes from midnight. Defaults to 1140 (7pm).

Either the list of meeting rooms must be supplied as a json.dumps string:

json.dumps({'Meeting Room A': '[email protected]', 'Meeting Room B': '[email protected]'})

OR you can set the search term to a fragment of a meeting room name and let the app find the meeting rooms for itself. E.g.: If the meeting rooms are called "Cloud Meet", "Corporate Meet" and "Blue Meet" then the search term should be "Meet".

Todo

Backend:

  • InstaBooking:
    • Booking takes a while to showup; maybe add it to the booking list rather than refreshing?
    • Check if the room is free

Frontend:

  • UI improvements:
    • Meeting progress bar / countdown clock
    • Bigger colour bar
    • On small screen, navbar obscures some meeting info
  • InstaBooking:
    • Show a confirmation dialog
    • Let the user know if there was an error booking
  • Extend booking
  • Fix dashboard updating - Angular doesnt seem to pickup when first_booking is changed?
  • Add home page & move there after inactivity
  • Add currently free room suggestions
  • Add soonest free room suggestions

Extra ideas:

Credits

About

A service to allow easy display of meeting room status from Outlook/Exchange

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •