Inspiration
Making schedule's so hard. Especially as a sophomore, I can't register as early as a lot of people can. Even if I make a viable schedule, I have to continue remaking them because by the time it is my time to register, someone else has taken the spot. I decided to make a schedule generator so that I can just sit back and choose the best option I am given while my computer goes through and creates hundreds of schedules for me to pick from.
What it does
Looks through all the possible combination of classes in a short amount of time and gives the user choices so that they can choose which schedule they want to pick. It can find all possible combinations of classes that don't cause a time conflict between any of the classes.
How I built it
A lot of caffeine and long sleepless night. Technology wise, I wrote a python script, hooked it up to Google Cloud Functions, made a node.js/javascript front end and hooked it up to the python api I made.
Challenges I ran into
I bit more than I can chew. I tried to play with the light, temperature, humidity sensor at the beginning which was not a great idea because I was working alone and I did not have enough time to do everything. Because of that, I ended up staying up all night trying to finish the project I started.
Accomplishments that I'm proud of
I put in a lot of thought and utilized what I've learned in class to solve a real-life problem. Obviously, it was possible to brute-force every single combination of the courses, but that would soon grow to be impossible when the number of classes and the number of sections increase. I can proudly say that I have a scalable solution that will continue working when the input size becomes greater.
What I learned
I learned more about different data structures. I was trying to find the best way to solve the problem and along the way, I briefly touched each data structure until I came up with my final version. I also learned some data scraping. There was no api readily available for NJIT course schedule. Therefore, I had to collect my own data. To do this, I looked around multiple places until I found a good place to start. Then, I wrote a simple python script to grab and convert all the data into a usable version.
What's next for Schedule generator
I will add a bunch of options and improve the UI so that it'll be easier to use. One integral feature that I forgot to add in was allowing the user to filter out the classes that are full. Adding it will be trivial since I already have access to the class opening data.

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