# misterworld2026/misterworld-server architecture

> Architecture diagram of the GitHub repository misterworld2026/misterworld-server, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/misterworld2026/misterworld-server
- Repository: https://github.com/misterworld2026/misterworld-server

## Overview

This is a Spring Boot travel-booking backend with a connected Python voice service. The principal customer journey is authenticate, choose a product and schedule, obtain a voice-assisted or manual selection, and submit a travel application; the README notes that some reservation policies remain unresolved and endpoints are deliberately blocked. Product, schedule, member, inventory, notification, and voice capabilities are also represented. Several controller-to-service links and unsampled subsystems are shown only as unverified; edges cite the supplied source excerpts or README where available.

Main entry points: [`src/main/java/com/misterworld/server/travelschedule/service/TravelScheduleService.java`](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/travelschedule/service/TravelScheduleService.java) (Schedule management), [`src/main/java/com/misterworld/server/travelapplication/service/TravelApplicationService.java`](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/travelapplication/service/TravelApplicationService.java) (Applications and quotes), [`src/main/java/com/misterworld/server/notification/service/SmsNotificationService.java`](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/notification/service/SmsNotificationService.java) (SMS notifications), [`voice-service/app/main.py`](https://github.com/misterworld2026/misterworld-server/blob/main/voice-service/app/main.py) (Python voice service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity and access"]
  node_auth["Authentication<br/>[AuthService.java]"]
  node_member["Member profiles<br/>[MemberService.java]"]
  node_security["JWT sessions"]
end

subgraph group_catalog["Travel catalog"]
  node_products["Products and options"]
  node_productdata[("Product data")]
  node_schedules["Schedule management"]
  node_scheduledata[("Schedule data")]
  node_inventory["Item inventory"]
end

subgraph group_booking["Booking lifecycle"]
  node_booking["Applications and quotes"]
  node_applicationdata[("Application records")]
  node_participants["Travel participants"]
  node_payment["Mock payment"]
end

subgraph group_messaging["Notifications"]
  node_notifications["SMS notifications"]
  node_smsdata[("Notification records")]
  node_smsprovider["SMS provider adapter"]
end

subgraph group_voice["Voice assistance"]
  node_voicepreview["Voice preview"]
  node_voiceapi["Voice interpretation API<br/>[VoiceService.java]"]
  node_pythonvoice["Python voice service<br/>[main.py]"]
  node_stt["Speech recognition<br/>[stt.py]"]
  node_interpreter["Utterance interpreter<br/>[interpreter.py]"]
end

node_traveler(("Traveler"))
node_staff(("Staff"))
node_spring["Spring application"]

node_traveler -.->|"signs in"| node_auth
node_auth -->|"checks member"| node_member
node_auth -->|"issues sessions"| node_security
node_traveler -.->|"browses"| node_products
node_products -.->|"reads and saves"| node_productdata
node_staff -.->|"manages catalog"| node_products
node_traveler -.->|"selects dates"| node_schedules
node_schedules -->|"reads and locks"| node_scheduledata
node_traveler -.->|"uses inventory"| node_inventory
node_traveler -.->|"requests booking"| node_booking
node_booking -->|"checks and saves"| node_applicationdata
node_booking -->|"saves participants"| node_participants
node_schedules -->|"checks applicants"| node_applicationdata
node_schedules -->|"requests departure alerts"| node_notifications
node_booking -.->|"imports notification service"| node_notifications
node_notifications -->|"stores delivery records"| node_smsdata
node_notifications -->|"dispatches SMS"| node_smsprovider
node_traveler -.->|"previews selection"| node_voicepreview
node_voicepreview -->|"validates options"| node_products
node_traveler -.->|"requests interpretation"| node_voiceapi
node_voiceapi -.->|"calls service"| node_pythonvoice
node_pythonvoice -->|"transcribes audio"| node_stt
node_pythonvoice -->|"interprets text"| node_interpreter
node_voicepreview -.->|"requests transcription"| node_pythonvoice
node_traveler -.->|"uses mock payment"| node_payment

click node_spring "https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/MisterworldServerApplication.java"
click node_auth "https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/auth/service/AuthService.java"
click node_member "https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/member/service/MemberService.java"
click node_security "https://github.com/misterworld2026/misterworld-server/tree/main/src/main/java/com/misterworld/server/security"
click node_products "https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/travelproduct/service/TravelProductService.java"
click node_productdata "https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/repository/TravelProductRepository.java"
click node_schedules "https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/travelschedule/service/TravelScheduleService.java"
click node_scheduledata "https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/repository/TravelScheduleRepository.java"
click node_inventory "https://github.com/misterworld2026/misterworld-server/tree/main/src/main/java/com/misterworld/server/inventory"
click node_booking "https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/travelapplication/service/TravelApplicationService.java"
click node_applicationdata "https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/travelapplication/repository/TravelApplicationRepository.java"
click node_participants "https://github.com/misterworld2026/misterworld-server/tree/main/src/main/java/com/misterworld/server/travelapplication"
click node_payment "https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/travelapplication/service/MockPaymentService.java"
click node_notifications "https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/notification/service/SmsNotificationService.java"
click node_smsdata "https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/notification/repository/SmsNotificationRepository.java"
click node_smsprovider "https://github.com/misterworld2026/misterworld-server/tree/main/src/main/java/com/misterworld/server/notification/integration"
click node_voicepreview "https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/service/VoicePreviewService.java"
click node_voiceapi "https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/voice/service/VoiceService.java"
click node_pythonvoice "https://github.com/misterworld2026/misterworld-server/blob/main/voice-service/app/main.py"
click node_stt "https://github.com/misterworld2026/misterworld-server/blob/main/voice-service/app/stt.py"
click node_interpreter "https://github.com/misterworld2026/misterworld-server/blob/main/voice-service/app/interpreter.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_auth,node_member,node_security toneBlue
class node_products,node_productdata,node_schedules,node_scheduledata,node_inventory toneAmber
class node_booking,node_applicationdata,node_participants,node_payment toneMint
class node_notifications,node_smsdata,node_smsprovider toneRose
class node_voicepreview,node_voiceapi,node_pythonvoice,node_stt,node_interpreter,node_traveler,node_staff toneIndigo
class node_spring toneTeal
```

## Components

### Identity and access

- [Authentication](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/auth/service/AuthService.java): `src/main/java/com/misterworld/server/auth/service/AuthService.java`
- [Member profiles](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/member/service/MemberService.java): `src/main/java/com/misterworld/server/member/service/MemberService.java`
- [JWT sessions](https://github.com/misterworld2026/misterworld-server/tree/main/src/main/java/com/misterworld/server/security): `src/main/java/com/misterworld/server/security`

### Travel catalog

- [Products and options](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/travelproduct/service/TravelProductService.java): `src/main/java/com/misterworld/server/travelproduct/service/TravelProductService.java`
- [Product data](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/repository/TravelProductRepository.java): `src/main/java/com/misterworld/server/repository/TravelProductRepository.java`
- [Schedule management](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/travelschedule/service/TravelScheduleService.java): `src/main/java/com/misterworld/server/travelschedule/service/TravelScheduleService.java`
- [Schedule data](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/repository/TravelScheduleRepository.java): `src/main/java/com/misterworld/server/repository/TravelScheduleRepository.java`
- [Item inventory](https://github.com/misterworld2026/misterworld-server/tree/main/src/main/java/com/misterworld/server/inventory): `src/main/java/com/misterworld/server/inventory`

### Booking lifecycle

- [Applications and quotes](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/travelapplication/service/TravelApplicationService.java): `src/main/java/com/misterworld/server/travelapplication/service/TravelApplicationService.java`
- [Application records](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/travelapplication/repository/TravelApplicationRepository.java): `src/main/java/com/misterworld/server/travelapplication/repository/TravelApplicationRepository.java`
- [Travel participants](https://github.com/misterworld2026/misterworld-server/tree/main/src/main/java/com/misterworld/server/travelapplication): `src/main/java/com/misterworld/server/travelapplication`
- [Mock payment](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/travelapplication/service/MockPaymentService.java): `src/main/java/com/misterworld/server/travelapplication/service/MockPaymentService.java`

### Notifications

- [SMS notifications](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/notification/service/SmsNotificationService.java): `src/main/java/com/misterworld/server/notification/service/SmsNotificationService.java`
- [Notification records](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/notification/repository/SmsNotificationRepository.java): `src/main/java/com/misterworld/server/notification/repository/SmsNotificationRepository.java`
- [SMS provider adapter](https://github.com/misterworld2026/misterworld-server/tree/main/src/main/java/com/misterworld/server/notification/integration): `src/main/java/com/misterworld/server/notification/integration`

### Voice assistance

- [Voice preview](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/service/VoicePreviewService.java): `src/main/java/com/misterworld/server/service/VoicePreviewService.java`
- [Voice interpretation API](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/voice/service/VoiceService.java): `src/main/java/com/misterworld/server/voice/service/VoiceService.java`
- [Python voice service](https://github.com/misterworld2026/misterworld-server/blob/main/voice-service/app/main.py): `voice-service/app/main.py`
- [Speech recognition](https://github.com/misterworld2026/misterworld-server/blob/main/voice-service/app/stt.py): `voice-service/app/stt.py`
- [Utterance interpreter](https://github.com/misterworld2026/misterworld-server/blob/main/voice-service/app/interpreter.py): `voice-service/app/interpreter.py`

### Other components

- **Traveler**
- **Staff**
- [Spring application](https://github.com/misterworld2026/misterworld-server/blob/main/src/main/java/com/misterworld/server/MisterworldServerApplication.java): `src/main/java/com/misterworld/server/MisterworldServerApplication.java`

## Connections

- Traveler → Authentication: signs in (evidence: `README.md`)
- Authentication → Member profiles: checks member (evidence: `src/main/java/com/misterworld/server/auth/service/AuthService.java`)
- Authentication → JWT sessions: issues sessions (evidence: `src/main/java/com/misterworld/server/auth/service/AuthService.java`)
- Traveler → Products and options: browses (evidence: `README.md`)
- Products and options → Product data: reads and saves (evidence: `src/main/java/com/misterworld/server/travelproduct/service/TravelProductService.java`)
- Staff → Products and options: manages catalog (evidence: `README.md`)
- Traveler → Schedule management: selects dates (evidence: `README.md`)
- Schedule management → Schedule data: reads and locks (evidence: `src/main/java/com/misterworld/server/travelschedule/service/TravelScheduleService.java`)
- Traveler → Item inventory: uses inventory (evidence: `README.md`)
- Traveler → Applications and quotes: requests booking (evidence: `README.md`)
- Applications and quotes → Application records: checks and saves (evidence: `src/main/java/com/misterworld/server/travelapplication/service/TravelApplicationService.java`)
- Applications and quotes → Travel participants: saves participants (evidence: `src/main/java/com/misterworld/server/travelapplication/service/TravelApplicationService.java`)
- Schedule management → Application records: checks applicants (evidence: `src/main/java/com/misterworld/server/travelschedule/service/TravelScheduleService.java`)
- Schedule management → SMS notifications: requests departure alerts (evidence: `src/main/java/com/misterworld/server/travelschedule/service/TravelScheduleService.java`)
- Applications and quotes → SMS notifications: imports notification service (evidence: `src/main/java/com/misterworld/server/travelapplication/service/TravelApplicationService.java`)
- SMS notifications → Notification records: stores delivery records (evidence: `src/main/java/com/misterworld/server/notification/service/SmsNotificationService.java`)
- SMS notifications → SMS provider adapter: dispatches SMS (evidence: `src/main/java/com/misterworld/server/notification/service/SmsNotificationService.java`)
- Traveler → Voice preview: previews selection (evidence: `README.md`)
- Voice preview → Products and options: validates options (evidence: `src/main/java/com/misterworld/server/service/VoicePreviewService.java`)
- Traveler → Voice interpretation API: requests interpretation (evidence: `README.md`)
- Voice interpretation API → Python voice service: calls service (evidence: `README.md`)
- Python voice service → Speech recognition: transcribes audio (evidence: `voice-service/app/main.py`)
- Python voice service → Utterance interpreter: interprets text (evidence: `voice-service/app/main.py`)
- Voice preview → Python voice service: requests transcription
- Traveler → Mock payment: uses mock payment (evidence: `README.md`)
