Inspiration
From numerous surveys (and personal experience), we found that people drift apart with time since they forget to connect with their contacts. During COVID, >46% of people reported that they fell out of touch with their close friends. Our first goal was to build a relationship management system that keeps track of your contacts and reminds you to stay connected with your circle which growing your social circle based on your connection patterns.
What it does
Social circle is a relationship management system that intelligently optimizes friendships between users and learns from their connection patterns to suggest new friends.
It has two main functions:
SocialCircle creates meetings for you to connect with your circle of friends and family. It can automatically schedule meetings on Google Calendar between both of you to increase accountability (in contrast to annoying notifications that are easy to ignore). The algorithm to generate suggestions is progressive and dynamic.
If you're looking for new friends, SocialCircle intelligently recommends people to connect with, using other user's existing connection patterns as a baseline. It optimizes for long-term, high-quality friendships.
SocialCircle's ML algorithm learns from past recommendations and connections, tracking how frequently each pair of people interacted during a 1-month period. Over time, the algorithm is optimized to pair people together who are most likely to have long-term friendships and not drift apart.
We simulated a social graph of 1000 users over 400 days to ensure that the algorithm converged towards recommending high-quality friendships.
How we built it
The simulation was built in Python and the recommendation algorithm is a neural network built in PyTorch. The backend runs a connection-suggestion algorithm for your existing contacts using a linearly increasing model. Any connections between users are added on the web app by specifying the date of connecting, the quality of the connection, and notes (for future talking points generated by ChatGPT).
Challenges we ran into
- Sleep deprivation
- The model was tested for about 1000 users with ~100,000 simulated connections between them. The SQL backend struggles to handle this scale due to which we migrated a limited amount of the simulated data.
- Since a user's connection patterns are learned on-the-fly, we had to write an approximate simulation to model these interactions to test our ML model. This involved certain assumptions that might be less realistic in real-life
- Google's APIs require OAuth tokens which expire every few hours. We would like to have a more robust integration with the same.
Accomplishments that we're proud of
- A functioning web app with all essential features included built in a very diverse tech stack (Python, Java, MySQL, Hibernate, Thymeleaf, jQuery, HTML, CSS)
- A connection-suggestion model that does not overburden users with notifications and adds accountability.
- A decent prediction model that is able to reduce the loss to reasonable levels
- A robust simulation framework with an integrated deep learning model.
Log in or sign up for Devpost to join the conversation.