Inspiration

Booking rooms for club meetings and student activities is a notoriously frustrating process, especially at UCF. The process is slow and often breaks down with rooms often erroneously being reported as full or otherwise unavailable. A process that could easily be improved through automating ends up falling on the shoulders of building administrators who find their inboxes inundated with desperate students. We came up with a better solution. A solution not just for clubs, but for spur of the moment meetings too. Inspired by systems such as the John C. Hitt's busyness meters and the Disney Springs parking garage parking spot counters, we came up with the idea of a website that not only allows users to book rooms, but also find empty rooms for that cram study session before a final.

What it does

Our project enables users to check room availability, book rooms, and schedule spaces that meet specific requirements such as seating capacity, equipment, accommodations, and other preferences.

How we built it

We used Vite and React for the front-end development which communicates with an API written in Go that manages the booking and availability data in a MongoDB database. A Python program running on a Raspberry PI 3B reads the output of an infrared motion sensor to detect activity in a room and sends activity updates to the API. The API and website are both hosted on an Oracle Cloud VPS.

Challenges we ran into

We faced difficulties with ensuring real-time updates on room availability and managing conflicts in booking schedules.

What we learned

Through this project, we gained deeper knowledge of front-end optimization with Vite, back-end API development with Go, database administration with MongoDB Atlas, and managing complex booking logic.

What's next for Room Availability

In the future, we plan to introduce features such as automated reminders, improved search filters, booking priority for professors and faculty, and expanded room availability to more buildings across campus.

Built With

Share this project:

Updates