Inspiration
Group chats break on the smallest decisions. "Dinner near UCL?" turns into 40+ messages, passive "whatever" replies, and the loudest friend wins anyway. We built for students who already coordinate in superapp-style chat, especially international groups used to WeChat mini-apps where planning should take seconds, not the whole day!
What it does
Coordination Wizard is a Zymix mini-app inside group chat. Tap + → set plan (Dinner, Hotpot, KTV, Bubble Tea), area, budget → real venues load from Google Places → poll posts to chat → group votes yes/maybe/no (anonymous optional) → Claude picks one winner
How we built it
Next.js 14 (App Router) + TypeScript + Tailwind — mobile-first 390px WebView UI matching Zymix chat React Context + useReducer for wizard state; LocalStorage for MVP persistence Google Places Text Search → /api/suggest-options for real London venues Claude API → /api/aggregate for conflict-aware winner + rationale In-chat poll with live mock votes (~3s total, 4 virtual members) for solo demo Swipe + keyboard voting (← No · ↑ Maybe · → Yes) Playwright E2E — 11/11 tests on Pixel 5 viewport Deployed on Vercel with proxied place photos and generated marketing assets
Challenges we ran into
Poll-closed race — mock votes finishing before the user flipped UI back to poll-live; fixed with status guard E2E flakiness — networkidle unreliable on chat UI; added React hydration sentinel + gotoBase() helper Standing out — many teams ship "group polls"; we reframed around decision + wallet loop + AI why, not bar charts Venue photos — Places photos need Place Photo API enabled in GCP; graceful fallback when empty Solo demo vs real group — mock mode proves flow fast; live multi-device sync left as stretch
Accomplishments that we're proud of
I built all of this myself in almost less than a day all by myself for the first time so proud of taking this small step
What we learned
should have done more planning. some details could be more optimised, idea generation and thinking is key
What's next for you
NA
Built With
- chromium-/-pixel-5-viewport)-storage:-localstorage-(mvp-client-state-?-no-database)-tooling:-node.js
- css-frameworks-&-ui:-next.js-14-(app-router)
- eslint/typescript
- google-place-photo-api-(hero-images-via-proxy-route)-platform-&-deploy:-vercel-(hosting
- google-places-api-(venue-search)
- html
- javascript
- languages:-typescript
- npm
- react-18
- serverless-api-routes)-testing:-playwright-(e2e
- shadcn/ui-(radix-ui-primitives)-apis:-anthropic-claude-api-(group-decision-+-rationale)
- tailwind-css
Log in or sign up for Devpost to join the conversation.