Inspiration

People often want to hang out but actually making plans is harder than it should be. Finding people with similar interests is one challenge, but coordinating schedules and confirming plans is another. We wanted to build something that helps people go from “wanting to hang out” to actually making it happen. The idea for Connect came from combining: matching by vibe and availability with a simple way for groups to decide on activities and confirm plans.

What it does

Connect is a hangout app that matches users based on their interests, location, and calendar availability. Users create a profile, connect their Google Calendar, and get matched with a small group of people who share at least one two-hour free window in the next week. Groups can see each other’s profiles and vote on activities using a map view. Once an activity is chosen, the app can trigger an AI assistant called Riley to place a phone call to confirm a reservation and return the result to the app.

How we built it

The frontend is built with React, TypeScript, and Vite, and handles onboarding, profiles, and the dashboard. Supabase is used for authentication, database storage, and profile data. The backend uses Python with FastAPI to run the matching system, sync Google Calendar availability, and trigger AI reservation calls. We use sentence-transformers to generate embeddings for user interests, Mapbox for maps and location features, Google OAuth and the Calendar FreeBusy API for availability, and Vapi with Twilio to power the AI voice call assistant.

Challenges we ran into

One challenge was setting up Google OAuth and syncing calendar availability correctly. Another was configuring Vapi and Twilio so the AI assistant could reliably place outbound phone calls. We also had to carefully design the matching logic so users are grouped only when they share real overlapping free time.

Accomplishments that we're proud of

We’re proud of building a full system where users can create profiles, connect their calendars, get matched with compatible groups, vote on activities, and confirm plans with an AI phone call. Seeing all of these pieces work together made the project feel complete.

What we learned

We learned how to combine several APIs and tools into one application, including Supabase, Google OAuth, embeddings for matching, and AI voice calls through Vapi. We also learned how to build a full-stack system where the frontend, backend, and database all work together.

What's next for this app

Next we want to improve event discovery by adding real venue data, store event votes in the database, and make the AI assistant smarter when placing reservation calls. We also plan to add notifications and messaging so groups can coordinate more easily.

Built With

Share this project:

Updates