Inspiration 💫
Missed Connections is inspired by the childhood nostalgia of Nintendo's Streetpass, a game included in the Nintendo 3DS handheld gaming system. Streetpass enabled users to exchange game data with other 3DS users they pass by in real life, adding an interactive element to gaming by rewarding real-world encounters. We strived to implement a modern-day approach to this feature, allowing people with similar interests to form meaningful connections with the people they pass throughout the day.
What it does 🛠️
Missed Connections is a unique full-stack iOS social app designed to enhance your everyday encounters. It tracks your location throughout the day, recording when you encounter like-minded individuals. At the end of each day, the algorithm matches you with people you passed who share your interests, allowing you to discover potential friendships and connections that you may have missed in real life.
How we built it 🤓
Our app offers an easily-accessible and intuitive user experience with an interface implemented using Swift. Leveraging Django's built-in authentication library, we allow users to signup, create a profile, login, and logout of the app. After logging in, as long as the app is open or remains in a suspended state, it will stream updates to the backend every 20 minutes. Logging user location was implemented using Apple's Geo-tracking CoreLocation framework. These calls are stored to our Django backend server, which then finds all other users that were approximately close to you. Users are considered approximate when they are 0.1 kilometer away from you at any time during a location poke. After getting approximate users, we utilize ChatGPT to test the similarity between you and the people you passed throughout the day, using interests and background as reference data. If they share high similarities, we later notify the respective users that they shared a "missed connection," offering the unique opportunity to connect further. At the end of the day, you can find up to three people you walked by who share similar interests to you. We share this information to the frontend Swift server, where you can then further connect with these people by adding them as friends on the app and accessing their social media.
Challenges we ran into 💪
We initially struggled in connecting the backend and frontend in a coherent manner. We had two teams working on two separate parts of the project, and it was necessary to continually document what we were working on, making references for API endpoints and how the JSON data was formatted for client server transactions. This can be seen in our README, where we document these endpoints and any extraneous information that we deemed important for the other team to stay in the loop.
Accomplishments that we're proud of 👏
We are proud of the constant communication and collaboration that we did throughout the project. The team members who worked on the frontend and the backend consistently communicated and shared ideas with one another, ensuring that both sides were clear on the implementation of the app and comfortable with their role and workload.
What we learned 🧑🏫
Although we were slightly familiar with Django and Swift, we really got to utilize the full functionality of the various libraries and the APIs that they provided. There was a large community between these two frameworks, making it easy to learn and debug. We also learned from each other, realizing the depth of this code on the frontend and backend would be impossible to understand individually, but we could achieve this large of a project in a short time span by relying on one another.
🌟 What's next for Missed Connections 🌟
We hope to get more users onto the platform and continue to enhance our algorithm for better matching between users. Ideally, we would want to create our own Machine Learning algorithm using our user interest data to make friendship recommendations more accurate and personalized. Further, we'd like to eventually have our application hosted on the App Store.
Log in or sign up for Devpost to join the conversation.