How haitriu301/smart-trip-planner works
Smart Trip Planner is currently a web application for account lifecycle and trip planning. A user registers and verifies an account, signs in, then reaches protected trip pages to create and manage trips and their calendar days. The backend exposes separate authentication, trip, and trip-day endpoints, with services coordinating domain behavior and repositories persisting state. The README also describes maps, weather, collaboration, realtime editing, costs, Stripe, and AI as later phases; those capabilities are not represented as implemented components here. Some frontend imports are absent from the supplied tree, so their wiring is omitted.
Main entry points: AuthService.java Account lifecycle · client.ts API client · TripDayService.java Day management · App.tsx React application
Components 23
Web client
- React application
frontend/src/App.tsx - Session bootstrap
frontend/src/main.tsx - API client
frontend/src/api/client.ts - Auth forms
frontend/src/features/auth - Trips page
frontend/src/pages/TripsPage.tsx
HTTP API
- Auth endpoints
backend/src/main/java/com/trieu/tripplanner/controller/AuthController.java - Trip endpoints
backend/src/main/java/com/trieu/tripplanner/controller/TripController.java - Trip-day endpoints
backend/src/main/java/com/trieu/tripplanner/controller/TripDayController.java - JWT security
backend/src/main/java/com/trieu/tripplanner/security - Error responses
backend/src/main/java/com/trieu/tripplanner/exception/GlobalExceptionHandler.java
Domain services
- Account lifecycle
backend/src/main/java/com/trieu/tripplanner/service/AuthService.java - Refresh sessions
backend/src/main/java/com/trieu/tripplanner/service/RefreshTokenService.java - Verification tokens
backend/src/main/java/com/trieu/tripplanner/service/VerificationTokenService.java - Trip management
backend/src/main/java/com/trieu/tripplanner/service/TripService.java - Day management
backend/src/main/java/com/trieu/tripplanner/service/TripDayService.java - Mail delivery
backend/src/main/java/com/trieu/tripplanner/service/MailService.java
Persistence
- Trip store
backend/src/main/java/com/trieu/tripplanner/repository/TripRepository.java - Trip-day store
backend/src/main/java/com/trieu/tripplanner/repository/TripDayRepository.java - User store
backend/src/main/java/com/trieu/tripplanner/repository/UserRepository.java - Refresh-token store
backend/src/main/java/com/trieu/tripplanner/repository/RefreshTokenRepository.java - Verification-token store
backend/src/main/java/com/trieu/tripplanner/repository/VerificationTokenRepository.java
Other components
- Traveler
- Mail provider
backend/src/main/java/com/trieu/tripplanner/provider/mail/MailProvider.java
Connections 22
- Traveler → React application: uses
- React application → Auth forms: routes auth
- React application → Trips page: routes trips
- Session bootstrap → API client: restores session
- Auth forms → API client: submits requests
- Trips page → API client: requests trips
- API client → Auth endpoints: sends requests
- API client → Trip endpoints: sends requests
- Trip endpoints → Trip management: delegates
- Trip-day endpoints → Day management: delegates
- Auth endpoints → Account lifecycle: delegates
- Auth endpoints → JWT security: sets refresh cookie
- Day management → Trip store: checks trip
- Day management → Trip-day store: reads and writes days
- Day management → Trip store: reads trip
- Account lifecycle → Refresh sessions: manages sessions
- Account lifecycle → Verification tokens: manages tokens
- Refresh sessions → Refresh-token store: reads and writes
- Verification tokens → Verification-token store: reads and writes
- Account lifecycle → User store: loads accounts
- Account lifecycle → Mail delivery: sends mail
- Mail delivery → Mail provider: dispatches mail