How ansh5922/wetravel works
WeTravel is a group-travel platform with a Node.js API for accounts, trips, collaboration, expenses, and memories, plus a FastAPI AI service for itinerary-related intelligence, preference embeddings, consensus, and receipt OCR. The main user workflow is to create or join a trip, coordinate plans and chat, then record shared expenses and memories. Sampled source confirms the Node expense route-to-controller flow and AI embedding/OCR controller calls; other subsystem links are included only at the documented or tree-supported module level.
Main entry points: index.js HTTP API · expense.service.js Expense logic · controllers AI controllers · main.py AI API
Components 27
Core backend
- HTTP API
backend/src/index.js - Accounts and auth
backend/src/services/auth.service.js - Auth routes
backend/src/routes/auth.routes.js
Trip collaboration
- Trips and invites
backend/src/controllers/trip.controller.js - Trip routes
backend/src/routes/trip.routes.js - Users and friends
backend/src/controllers - Group chat
backend/src/services/chat.service.js - Chat routes
backend/src/routes/chat.routes.js - WebSocket delivery
backend/src/websocket - Itinerary planning
backend/src/controllers/itinerary.controller.js - Trip memories
backend/src/controllers/memory.controller.js
Expenses and receipts
- Expense routes
backend/src/routes/expense.routes.js - Expense handling
backend/src/controllers/expense.controller.js - Expense logic
backend/src/services/expense.service.js - Expense records
backend/src/repositories/expense.repository.js - Image uploads
backend/src/services/imagekit.service.js
AI services
- AI API
ai/app/main.py - AI routes
ai/app/api/routes - AI controllers
ai/app/controllers - AI services
ai/app/services - Preference embeddings
ai/app/services/embedding_service.py - Group consensus
ai/app/repositories/consensus_repository.py - Receipt OCR
ai/app/services/ocr_service.py
Persistence
- Application database
backend/src/repositories/prisma.client.js - AI profile store
ai/app/core/database.py
Other components
- Traveler
- Travel data API
Connections 30
- Traveler → HTTP API: sends requests
- HTTP API → Auth routes: mounts
- Auth routes → Accounts and auth: routes auth
- HTTP API → Trip routes: mounts
- Trip routes → Trips and invites: routes trip actions
- HTTP API → Chat routes: mounts
- Chat routes → Group chat: routes chat
- HTTP API → Expense routes: mounts
- Expense routes → Expense handling: dispatches
- Expense handling → Expense logic: calls
- Expense logic → Expense records: uses
- Expense records → Application database: reads and writes
- Expense logic → Image uploads: requests upload auth
- Expense logic → AI API: submits receipt OCR
- Expense logic → WebSocket delivery: notifies OCR result
- HTTP API → WebSocket delivery: attaches server
- HTTP API → Trip memories: mounts memory routes
- HTTP API → Itinerary planning: mounts itinerary routes
- HTTP API → Users and friends: mounts user and friend routes
- HTTP API → AI API: separate service
- Traveler → AI API: requests AI features
- AI API → AI routes: mounts routers
- AI routes → AI controllers: dispatches
- AI controllers → AI services: calls
- AI controllers → Preference embeddings: generates embeddings
- Preference embeddings → AI profile store: saves profile vector
- AI controllers → Receipt OCR: processes receipt
- AI controllers → Group consensus: loads and saves consensus
- Group consensus → AI profile store: reads and writes
- AI services → Travel data API: fetches travel data