Inspiration

For the first fourth of the hackathon, we spent our time iterating through a variety of project ideas. Eventually, we identified the root of our difficulties in selecting a project that was doable, challenging, and engaging to the whole group: all of all were more interested in the algorithmic side of our ideas and less knowledgeable/passionate about the specific applications or frameworks that our project ideas would be running off of. Small talk within the group eventually led us to the stable matching algorithm, which we identified as a viable project concept after having one group member whiteboard out the problem for some teammates who had never heard of stable matching. After this came a long session of brainstorming on the potential applications of the algorithm. We settled on class scheduling as an application of the algorithm because we recognized all Georgia Tech students have dealt with the immense stress of class registration, and that the current process creates a large number of unstable matches that, if reduced, could ensure students are able to get into the classes they want and need to make the most out of their time at Georgia Tech.

What it does

Our project takes both student information - including time tickets, major, credit hours, GPA, and class preferences - and class information - including course ID, class name, and class capacity, from an SQL Database and uses it to generate an optimal schedule for every student in our dataset. This is accomplished by using students and their ranked list of preferred classes as the primary input and classes and the ranked list of students whom they give precedence to as our secondary input into our algorithm.

How we built it

Our first step was to take what we knew about the stable matching algorithm and put the algorithm into code. This step proved to be much more complex and time-intensive than expected. After we had our algorithm, we shifted our focus to generating data - housed in a CSV - to feed into our algorithm. We deployed an Azure Database and the data to the 'cloud' so that we can use it from any device in order to further scale or project to be accessible by anyone interested in using it.

Challenges we ran into

The most significant challenge we encountered was settling on a project idea in the first place. As a team, we had a wide array of individual ideas about what project to work on but hadn't spent time before the hackathon discussing what type of project we should focus on. Our brainstorming session that was supposed to wrap up Friday night ultimately extended late into Saturday morning. This put us in a time crunch for developing our final project.

Accomplishments that we're proud of

We stretched out the Gale-Shapely one-to-one matching algorithm to work for one-to-many matchings and many-to-many matchings. We were also able to achieve stable matching for two sets with different cardinalities.

What we learned

We learned that it is essential to have an established workflow for a project and that tracing your code regularly, especially when working on a large-scale project, is very important. All team members also learned a great deal about the logic behind the stable-matching algorithm and the functionality of Azure SQL databases.

What's next for tinder.edu

Right now, our project is built around Georgia Tech's registration schedule. The project could easily be expanded upon in the future to apply to class registration at other universities. The algorithm could also be applied to a wide variety of other scenarios, such as matching employees up with task assignments.

Built With

Share this project:

Updates