An all-in-one collaborative travel portal that eliminates friction in group trips — featuring democratic AI destination recommendations, interactive itinerary planning, real-time group chat, expense splitting treasury, and shared memory archives.
Planning group travel is notoriously chaotic. Group discussions often devolve into disorganized chat threads where itinerary ideas get lost, splitting shared expenses becomes a tedious accounting chore, and choosing a destination that satisfies everyone's budget and pace leads to endless debates.
I built NOMADIX as an intuitive, centralized travel portal designed to bring structure and democracy to group expeditions. By combining a statistical AI recommendation engine with real-time WebSocket communication, NOMADIX allows parties to seamlessly vote on destinations, build architectural day-by-day itineraries, settle group bills, and preserve encrypted polaroid memories in one unified workspace.
graph TD
Travelers((Group Members)) -->|Preferences & Survey| ReactUI[React 19 & Vite Frontend]
ReactUI -->|REST & Socket.io| ExpressAPI[Node.js & Express 5 Backend]
ExpressAPI --> Auth[JWT Authentication]
ExpressAPI --> Consensus[AI Consensus Engine]
Consensus -->|Tag Matching & Scoring| Destinations[30+ Curated World Destinations]
ExpressAPI -->|Real-time Sync| Socket[Socket.io WebSocket Server]
Socket -->|Live Voting, Chat & Itinerary| ReactUI
ExpressAPI -->|Persistence| MongoDB[(MongoDB & Mongoose)]
Managing live collaborative state across multiple party members—such as instant ballot updates during destination voting, itinerary activity modifications, and concurrent group chat messaging—required robust synchronization. I implemented dedicated Socket.io event rooms mapped to unique group IDs, seamlessly synchronizing real-time events with Zustand global stores on the frontend to prevent state drift and latency bottlenecks.
To deliver fast, unbiased destination recommendations without relying on slow or costly third-party LLM APIs, I designed an internal consensus scoring algorithm. The engine computes the statistical mode across traveler surveys for Budget, Vibe, and Pace, and executes deterministic weighted tag-matching against a curated MongoDB collection of global destinations to present democratic top choices.