-
-
QR Code for Telegram Bot
-
Using the bot to get all ongoing classes in Wellman Hall for Wednesday at 2:25 pm
-
Checking Ongoing Classes in Tercero Hall
-
Checking vacant classrooms in Olson Hall
-
Getting the weekly schedule for Veihmeyer Hall, room 212
-
Help Section
-
Code Snippet
-
Example of the 13,000 line long JSON Database
Inspiration
It all started when a friend left something in a classroom, and we were on the other side of campus when she remembered. While walking back, we were talking about how it would've been nice to know when the classroom would be unoccupied-making it easier to look for a small item under seats as it wouldn't be possible during an ongoing class. The idea then struck. Checking all of the CRN numbers for each course offered at UC Davis to create a dictionary of all classes, where we could use the class timings, sizes and other information to get help on campus.
What it does
Imagine you're tired or just want to study in an empty classroom. This bot can help you search for a Vacant room in the hall of your choice.
Or Imagine that you have some spare time and just wanted to sit in a random class, but would've liked the option of knowing what class is going on in which room. Just enter in the hall name, and you receive a list of all currently scheduled classes.
This is also helpful to student clubs who want to use a hall for their student meeting and would want to check which class may be empty at a particular time. 3 taps and you have the weekly schedule for any room in any hall!
How we built it
Firstly, we need to get the raw data for all the classes. We used the UC Davis Class Search Tool and sent in all the possible CRNs for the quarter, and saved each CRN's Class Name, Location, Schedule, Professor, and Maximum Occupancy in a JSON file. We then modified and cleaned up the JSON data such that it better suits the class search aspect, making the keys as all the possible halls. For the User Interface, we managed to get the pyTelegramBot to serve as the middleman. It takes in the user input, parses it, and responds with the relevant information after searching and comparing according to the current/requested time against the scheduled times for each class in the JSON Database. The Python Script is then run on an Ubuntu server via IBM zSystems, such that the bot is active and polling to serve all active users.
Challenges we ran into
It was challenging to sort out the time-comparing aspect, where the program would loop through all the scheduled courses in each room of the selected hall, and compare with the requested time. This is how it knows whether the classroom is empty or in use. Another challenge was getting the Telegram API to fit in with the commands required. That, along with just getting the JSON data, and modifying it into a usable format were the bookends of the difficulties.
Accomplishments that we're proud of
It felt great when the bot actually returned the schedule for a requested Classroom! Just knowing that there might be a possibility that this could help a student who may need a well-deserved rest, a place to study, or just satiate their curiosity is all we can hope for. Taking an idea from an unfinished concept to a project that actually works is really rewarding in itself.
What we learned
It takes a lot of effort to manage any scheduling system. What we did was just get our feet wet in the shallow end of the pool, but creating systems like this from the ground up is really challenging and fun.
What's next for UC Davis Class Search
The primary hindrance that we see in our project is the User Interface/Experience. Instead of just relying on this Telegram bot, our plan is to deploy this onto a webserver where anyone can visit the page and know what they need. A nice GUI, which drop-down columns, Hall search, and the response in a table would really be beneficial. Since the majority of work on the blackened system is done, we're hoping that a simple GUI shouldn't be a problem!


Log in or sign up for Devpost to join the conversation.