Inspiration
Currently, when taking any type of pset-based class, it can be difficult to find people to collaborate with if you don't already know people taking the class.The find teammate feature on piazza is often fruitless: many people do not even check it. Even when you do find a pset partner, sometimes different working habits, schedules, and approaches to problems can make it difficult to work together.
What it does
Our app allows people to input the classes they are taking, their schedules, their confidence in the class, and the number of hours they are available. We then find an optimal matching (defined below) based on these parameters. We match people to partners, and display each other's contact information and parameters about the class they share.
How I built it
This app was coded in Android Studio using Java and XML. We created app graphics and designed the apps ourselves. For the algorithm, we assign them a weighted score based on schedule overlap, amount of time put into the class, confidence. It then matches multiple people together into groups of 2 or 3, depending on the class, using a weighted maximal matching algorithm, the blossom algorithm. Within each class, we represent every person as a node in a graph G = (V, E). We draw an edge between u, v in V if they share similar working styles, and assign a weight to them based on how similar they are.The Blossom algorithm (first discovered by Jack Edmonds), finds a maximal (weighted) matching in polynomial time, and is suitably efficient in practice.
Challenges I ran into
We were not the most familiar with Android Studio, so we had to learn its workings ourselves. We are also not very aesthetically-oriented, so creating attractive displays was a challenge.
Accomplishments that I'm proud of
Figuring out which graph algorithm to use was quite fun. Also, working out how to use Android Studio was quite rewarding. We had a lot of fun trying to make our UI more appealing, too.
What I learned
We learned a lot about how mobile apps work, including how data is sent between different components of the app. We also learned about implementing algorithms we'd learned in classes in code, and integrating them into a larger project.
What's next for Study Buddy
We hope to further develop the app and hope to scale with with some platform, such as Amazon AWS.
Log in or sign up for Devpost to join the conversation.