Inspiration
The University of Toronto is the most academically demanding campus in the world, thus finding a date is nearly impossible. Most dating apps treat UofT students like any other users, overlooking the realities of intense workloads, crazy mismatched schedules, and the way academic environments shape personalities. UofTwo was inspired by the idea that compatibility on campus is more than just physical attraction but rather about alignment in schedules, lifestyles, values, and how people communicate under real academic pressure. Being different from Tinder static profiles, UofTwo begins by asking users to upload their course schedules and complete a thoughtful questionnaire backed by psychological research. From this, AI generates a high-level summary and overview of the student's personality and lifestyle that captures what they are looking for. By combining AI insights with real-world logistics, UofTwo reimagines dating as something built specifically for student life at UofT.
What it does
Our project is more than just a regular dating app; it's built by Uoft students, for UofT students. Through the seamless onboarding process, UofTwo matches users using a compatibility system that combines AI-driven insights, behavioral engagement, and practical scheduling alignment. The app prioritizes matches who not only share compatible values and interests, but also have overlapping free time—making it easier to actually meet on campus. UofT's campus is large, so we want to make sure couples are able to spend the most amount of optimal time together. Furthermore, our safety feature's make sure users don't send inappropriate messages to make ensure a smooth and streamlined experience.
How we built it
Built using Nextjs, our elegant front end takes users to a stunning landing page where they are tempted to start their new love journey at UofT. During onboarding, they are first asked to upload their schedule which we parse using Pdf-parser and store it as a json in our backend powered by Supabase and Prisma. Our complex matching system uses OpenAI to analyze their questionnaire responses to extract 10 personality/lifestyle features using keyword analysis. The algorithm then implements a three weight component. 50% of compatibility will be feature similarity where we utilize cosine similarity. 30% will be AI summary compatibility where word overlap analysis will be used to identify shared values and complementary traits. Last but not least, 20% of the compatibility score will be schedule overlap. We also generate high-dimensional semantic embeddings using OpenAI’s text-embedding-3-large model for advanced semantic search capabilities and the final compatibility score (0-100%) determines match ranking.
Challenges we ran into
Integrating the backend with the front end was difficult at times. Sometimes the front end would work and let you upload but not properly save into the backend. Sometimes the back end would work but the front end would not be able to properly fetch the data. The smooth integration of the variety of functionality to work harmoniously with each other demanded a careful scrutinization of code files. In the end, we were able to discover all the bugs for a perfectly working end to end full stack application.
Accomplishments that we're proud of
Our greatest accomplishment throughout this whole journey is connecting the frontend to the backend. Being able to fully integrate all the APIs (supabase, openai, etc) is something that felt extremely satisfying when worked out. This full stack app took substantial time in debugging and strategic thinking. For example, somethings the backend would work but the front end would not be able to fetch from it and properly display the information. The process of continual refinement and making sure every functionality is smoothly connected to each other was an amazing learning opportunity.
What we learned
On the technical side, we learned how to seamlessly pass and manage multiple parameters across the stack, from frontend inputs to backend APIs and AI models. This included handling course schedules, questionnaire responses, engagement metrics, and AI-generated summaries in a structured and scalable way. On the more general side, we learned how to balance ambition with technicality, especially with time constraints.
What's next for UofTwo
The future implementations for UofTwo include adding an ai scraper that constantly scans the user's messages to see how they interact with others. These insights would help refine compatibility scoring, allowing the system to learn what types of interactions are the most engaging to the specific user.
Built With
- css
- html
- javascript
- nextjs
- openai
- prisma
- supabase
- typescript


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