emptyclassroom
Find Empty Classrooms!! (and see classroom occupancy times) https://emptyroom.vercel.app/
Inspiration
Friends and I like to occasionally study / hang around empty classrooms around campus. It's fun to explore new rooms and all the different buildings at BU. But on a handful of times during a study sesh, we were interrupted by a late class coming in. Boo.
There was no current way to find classroom schedules at BU, and to make matters even worse Northeastern has a way to find classroom schedules for their college.
Fueled by a gap in the market and spite, emptyclassroom was created, a way for BU students to find empty classrooms to wreck havoc in.
What it does
finds empty classrooms. It's in the name. (finds classrooms in every college, also allows occupancy schedules of classrooms to be viewed)
How we built it
Because BU doesn't provide classroom information and because there were no exposed API's to find class dates from student link, a little creativity was required.
Using the BU Course Search Tool, when you press the search icon it sends a request to BU's database and returns all classes that match your query.
By submitting a query and inputting a page size of 100,000 (overkill I know) it's possible to get the course code of every single course offered at BU.
The BU Course Search Tool also allows you to click on courses offered and see all the teacher, section, and most important TIME and LOCATION where the course is offered.
All that's left to do is run 12,000 course requests from all the course codes we got, isolate every response into a classroom with specific date and time ranges, and sort through all of them. Fun.
beautifulsoup was used to extract all the important information from each individual course request and isolate the classroom number and date and time ranges on which it was occupied. That information was stored in a NoSql local DB (fancy words for JSON) and then used in the React client. The information contained days in which rooms were and weren't occupied and time ranges for those days. Those ranges were manipulated and parsed to give human readable responses to searches.
Challenges we ran into
I love Typescript but man do I hate Typescript
Accomplishments that we're proud of
the website. Also figuring out how to get the classroom data. (Can BU just make everything accessible thanks)
What we learned
That Typescript is very headache inducing even though it's just looking out for us
What's next for emptyroom
A very big missing part of the project is the ability to search for a specific room (or just search for a building, the scroll bar is too long). However that would most likely require a lot of brainpower and It's 6am or it would require migrating to an actual sql database so actual queries could be made instead of dealing with JSON.
Also more mobile friendly
Log in or sign up for Devpost to join the conversation.