Inspiration

I wanted to make something that was ultimately usefull to me as a club officer. I know how much of a chore it can be to reserve a room for clubs through EMS that I wanted to make a more easy way. Also, with different policy changes from companies, I wanted to have a cross platform solution.

What it does

This project is based upon building a way to get data to and from EMS Accurent which is the software product that RIT uses for room reservations.

How we built it and Challenges

This project uses lots of connectors for all the different services we wanted to interact with. Main ones being google calendar and selenium to interact and make an API for EMS. The EMS connector was by far the hardest. After exploring it out, we found NO easy API or interface to the website that wouldn't require special level accesses (not accessible to a club officer). The only thing made available to us though the browser was the drawn

elements that was created by obfuscated js. In order to push and pull data from EMS, we have to do the following in order

  1. Login to a RIT account and handle Duo
  2. Navigate through EMS web elements and search a room's availability
  3. Parse the positions of anything on a room that was not empty white colors as unavailable with a reason
  4. After checking availability, Attempt to create a reservation by simulating a user's actions
  5. Send "reservation pending" status back to google calendar
  6. Once the reservation is approved, conform the event on gcal and broadcast the event details to all connectors

Some common services used by clubs such as slack require approval from a RIT slack admin and that would take longer than the duration of a hackathon and therefore would be considered a future connector.

Accomplishments that we're proud of

Making an API for EMS with no given easy way to access the data. Contributing directly to a tool that will actually be useful to students and club officers.

What we learned

How to parse websites with selenium and how to automate old and outdated services. Also how to create connectors/bridges between lots of different messing platforms.

What's next for RIT Club Controller

We would like to include hardware check-in stations that can be easily made. Possible future calendar integrations include making a availability schedule for a favorite room so that you can see the availability as RSVP statuses.

Share this project:

Updates