Inspiration

Every group chat has the same conversation: "Where do you want to go?" "I don't care, you pick." "Anywhere's fine." Deciding what to do, especially with other people, is weirdly hard. We noticed that you can always recognize the right answer when you see it, even if you can't name it yourself.

That reminded us of Akinator, the genie that guesses the character you're thinking of by asking a few questions. What if it guessed the place you're in the mood for instead? It fit our track perfectly: something entertaining and interactive, that also ends with a real plan for your night.

What it does

FindMyVibe is an Akinator-style game where Puss, our cat guide, guesses where you actually want to go.

  • Solo quest: type what, where and when in one line ("live music in Austin tonight"), answer a few playful questions, and Puss reveals a real place with a photo, rating, opening hours and why it fits. Say "not my vibe," tell him what was off, and he asks a smarter follow-up and guesses again.
  • Group quest: one person creates a party and shares a code. Everyone answers their own questions on their own phone, Puss blends everyone's answers into three picks (with a line on what each place offers each person), and the party votes live. Ties are settled by Puss's coin flip.
  • Open when you are: if you say "tonight after 8pm," places that are closed then are skipped.

How we built it

  • Frontend: Next.js + React + Tailwind, with a storybook theme and an animated walking cat we drew in SVG.
  • Backend: Python + FastAPI.
  • AI: Google Gemini writes the questions, turns answers into a search, reads your one-line request, and picks from the results. It can only choose from real places we give it, never make one up.
  • Real places: SerpApi's Google Maps results for places, photos, ratings and weekly opening hours.
  • Group mode: rooms stored in SQLite, private tokens for each player, and live syncing so everyone's screen stays in step.
  • Deployment: an AWS EC2 server with Caddy for automatic HTTPS, on our own domain, findmyvibe.tech.

Challenges we ran into

  • Getting started and designing the UI. Turning "Akinator for places" into screens people would enjoy took several rounds, and we went through a few designs before landing on the storybook look.
  • Making the AI trustworthy. Gemini sometimes justified picks with things the data didn't say, so we tightened the prompts and made it choose only from real search results.
  • When things break. If Gemini or the search API fails, the game falls back to built-in questions and saved results instead of erroring in front of you.
  • Making multiplayer fair. Early group picks only described one person's taste, so we made Puss explain what each place offers every member, and added a coin flip for ties.
  • Deploying for the first time. EC2, DNS, HTTPS, and a setup script that froze on a fresh server taught us a lot.

Accomplishments that we're proud of

  • It's live at a real domain, and works on phones.
  • The second guess actually gets better after you say what was wrong, which is the Akinator magic we were going for.
  • Group mode turns "I don't care, you pick" into a two-minute game.

What we learned

  • Git: branches, merges and resolving merge conflicts as a team.
  • Deploying on AWS EC2: servers, DNS records, HTTPS, and updating a live site.
  • API keys: creating them, keeping them out of code and logs, and rotating one when it leaked.
  • Frontend UI: building a themed, responsive interface in React and Tailwind.
  • Working with AI: writing prompts that return structured answers, and designing around the AI being wrong or unavailable.

What's next for FindMyVibe

  • Events tonight (concerts, markets, shows), not just venues.
  • "When" for group mode, so party picks respect opening hours too.
  • Shareable result cards to send the plan to the group chat.

Built With

Share this project:

Updates

Submission history