Inspiration
Our inspiration came straight from the room here at SFU! A teammate in our tram is single, and when a dating event was announced here at the hackathon, our teammate felt super nervous and anxious about the thought of going alone. As we were hyping them up, we joked about how much easier and less terrifying it would be if we could all just go together as a squad to brave the singles scene or better yet, find someone as a team. That sparked the whole idea: why not build a platform that matches people based on shared "vibes" and duos, making dating and meeting new people fun, social, and way less intimidating?
What it does
DoubleTake is a dating platform that allows you to partner up with your best friend and find a match with another pair. It solves the interview-like process of regular dating apps which focuses more on individual prospects and commonly used (dry) pickup lines. It's safer, less pressure, and a lot more fun, because your best friend comes too.
Key Features include :
Duo - Create a single profile for you and your friend, finding a shared interest and making
Discovery Feed - Find and match your next double date through a single swipe.
Search - Search based on common filter types and hobbies another pair may have as well as potential vibes based on TiDB's Algorithm .
Matchs - Every duo you like matches you back and you enter the messaging groupchat
Your Duo - Your Duo profile with your friend
How we built it
Frontend (Jill) : Jill used react for the pages which uses hooks to load the data of the user and to know who the current user is. She created an api.js that either asks the fake back end in mocks or sends the real request through the httpClient.js into a Spring boot API. Components were used as reusable blocks that pages were assembled from and the context folder is shared the the current duo and user on every screen. Jill used tailwind for the CSS with the assistance of Claude Code to ideate and sort out technical bugs and structural plans of the project.
Database/Backend (Valerie) : Valerie built some of the backend infrastructure using Java Spring Boot, connecting it directly to a cloud TiDB database to manage our application data and user profiles. She engineered the backend architecture, handled the database persistence layer, and integrated the vector search features so the app could process and match data smoothly.
Backend (Annie) : I built part of the backend infrastructure and database architecture using Java Spring Boot and TiDB. I developed the main application logic, engineering the REST controllers and service layers to handle user workflows, while designing, adding, and structuring the database tables to securely persist our application data.
Challenges we ran into
Frontend (Jill): Tailwind's long class lists were frustrating, but Jill saw its value for building quickly without separate CSS files. Her biggest challenge was building a mock API that matched exactly what the real backend would return, including data shapes and error codes. She solved it by working backwards from each screen to identify the functions needed, creating one mock function per endpoint from the team's API contract, and adding a single setting to switch between mock and real data.
Database/Backend (Valerie) : Integrating the vector search functionality was a major hurdle, setting up the AI embedding pipeline to translate plain-English descriptions into accurate vector queries for TiDB required careful handling. We also had to troubleshoot cloud deployment networking, resolving CORS blocking between our local frontend and our Render backend.
Backend (Annie) : One of our biggest hurdles was successfully bridging the gap between our frontend and backend. Connecting the client-side interface to the live API endpoints required troubleshooting network routing, handling data mapping discrepancies, and ironing out communication bugs so the frontend could seamlessly send and receive data from the server.
Accomplishments that we're proud of
Frontend (Jill): Bringing the entire user experience to life by building a sleek, responsive interface that seamlessly translates complex user interactions and smooth navigation into an intuitive, polished client-side app. Database\Backend (Valerie): Architecting the backend services and integrating the cutting-edge AI vector-embedding pipeline (AiEmbeddingService.java) that allows our app to perform intelligent, plain-text semantic "vibe matching" directly inside our cloud database.
Database\ Backend (Annie): Engineering the core backend infrastructure, building out robust REST controllers, managing the service layer logic, and structuring and adding the relational database tables to ensure rock-solid data flow and persistence.
What we learned
Frontend (Jill) : Jill earned how React projects are structured, from reusable components and routing to sharing state with context, and how Tailwind integrates through Vite. Jill practiced hooks, promises and API calls, and adopted better JavaScript practices like centralizing API calls, handling loading and error states, and documenting functions.
Database/Backend (Valerie) : Valerie learned that when we set our minds to a goal, we can pick up entirely new technologies and build complex full-stack features in a remarkably short amount of time. Even though I had no prior experience with a lot of this tech stack before starting, this project showed me how fast we can learn, prototype, and ship a fully functional, AI-powered application from scratch.
Backend (Annie) : I learned how rapidly we can design, build, and deploy a robust backend system from scratch when diving into new technologies. This project taught me the ins and outs of structuring scalable Java architectures, managing database schemas, and successfully integrating client-server communication under a tight timeframe.
What's next for DoubleTake
DoubleTake is in it's earliest stages of development where many possibilities and scopes can be included to better improve the application such as :
- Customization and filters of potential prospects
- Your personal profile
- Messaging feature -Photo Intergration
Built With
- java
- javascript
- react
- supabase
- tailwind
- tidb
Log in or sign up for Devpost to join the conversation.