# golamrabbanyshikder/gms-gateway-service architecture

> Architecture diagram of the GitHub repository golamrabbanyshikder/gms-gateway-service, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/golamrabbanyshikder/gms-gateway-service
- Repository: https://github.com/golamrabbanyshikder/gms-gateway-service

## Overview

GMS Gateway is the client-facing edge for the Global Medical System: it centralizes JWT validation and routes traffic to backend, file, and biometric services. The repository also contains MVC workflows for authentication, patient records, and appointments, including voice-assisted booking. Sampled controller code confirms calls to backend and biometric clients and the booking-to-audit/confirmation actions; README documents proxy routing. Some controller and routing implementation details were not sampled, so uncertain wiring is omitted.

Main entry points: [`src/main/java/com/gms/gateway/controller/BookingViewController.java`](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/controller/BookingViewController.java) (Appointment booking), [`src/main/java/com/gms/gateway/GatewayServiceApplication.java`](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/GatewayServiceApplication.java) (Gateway app), [`src/main/java/com/gms/gateway/client/BackendServiceClient.java`](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/client/BackendServiceClient.java) (Backend client), [`src/main/java/com/gms/gateway/controller/PatientBookingController.java`](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/controller/PatientBookingController.java) (Patient booking)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_edge["Gateway and security"]
  node_gateway["Gateway app"]
  node_security["JWT security"]
  node_jwt["JWT provider"]
  node_auth["Login flows"]
  node_authservice["Authentication<br/>[AuthService.java]"]
  node_users[("User accounts")]
end

subgraph group_care["Care workflows"]
  node_booking["Appointment booking"]
  node_patientbooking["Patient booking"]
  node_patients["Patient records"]
  node_confirmation["Booking confirmation"]
end

subgraph group_voice["Voice intake"]
  node_voiceintake["Voice extraction"]
  node_translator["Transcript translation"]
  node_transcription["Audio transcription"]
  node_tts["Speech synthesis<br/>[TtsService.java]"]
end

subgraph group_services["Service integrations"]
  node_backendclient["Backend client"]
  node_backend["Backend service"]
  node_biometricclient["Biometric client"]
  node_biometric["Biometric service"]
  node_files["File service"]
  node_audit["Audit client<br/>[AuditClient.java]"]
end

node_client(("Web client"))
node_openai["OpenAI Whisper"]
node_googletts["Google TTS"]

node_client -->|"sends requests"| node_gateway
node_gateway -->|"validates edge auth"| node_security
node_security -->|"checks tokens"| node_jwt
node_security -->|"loads user details"| node_users
node_client -->|"submits login"| node_auth
node_auth -->|"authenticates"| node_authservice
node_authservice -->|"looks up account"| node_users
node_booking -->|"books and queries"| node_backendclient
node_patientbooking -->|"books and queries"| node_backendclient
node_patients -->|"manages records"| node_backendclient
node_patients -->|"enrolls face"| node_biometricclient
node_backendclient -->|"routes API calls"| node_backend
node_biometricclient -->|"sends biometric requests"| node_biometric
node_gateway -->|"proxies file routes"| node_files
node_gateway -->|"proxies biometric routes"| node_biometric
node_gateway -->|"proxies other routes"| node_backend
node_booking -->|"logs booking"| node_audit
node_booking -->|"notifies confirmation"| node_confirmation
node_booking -->|"extracts transcript"| node_voiceintake
node_patientbooking -->|"extracts transcript"| node_voiceintake
node_patientbooking -->|"transcribes audio"| node_transcription
node_booking -->|"transcribes audio"| node_transcription
node_voiceintake -->|"translates and extracts"| node_translator
node_transcription -.->|"requests transcription"| node_openai
node_tts -.->|"fetches audio chunks"| node_googletts

click node_gateway "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/GatewayServiceApplication.java"
click node_security "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/config/SecurityConfig.java"
click node_jwt "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/config/JwtTokenProvider.java"
click node_auth "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/controller/AuthController.java"
click node_authservice "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/service/AuthService.java"
click node_users "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/repository/UserRepository.java"
click node_booking "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/controller/BookingViewController.java"
click node_patientbooking "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/controller/PatientBookingController.java"
click node_patients "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/controller/PatientViewController.java"
click node_backendclient "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/client/BackendServiceClient.java"
click node_biometricclient "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/client/BiometricServiceClient.java"
click node_audit "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/client/AuditClient.java"
click node_voiceintake "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/service/VoiceIntakeService.java"
click node_translator "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/service/BanglaToEnglishTranslator.java"
click node_transcription "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/service/WhisperTranscriptionService.java"
click node_confirmation "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/service/AppointmentConfirmationService.java"
click node_tts "https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/service/TtsService.java"

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_gateway,node_security,node_jwt,node_auth,node_authservice,node_users,node_client toneBlue
class node_booking,node_patientbooking,node_patients,node_confirmation toneAmber
class node_voiceintake,node_translator,node_transcription,node_tts toneMint
class node_backendclient,node_backend,node_biometricclient,node_biometric,node_files,node_audit toneRose
class node_openai,node_googletts toneIndigo
```

## Components

### Gateway and security

- [Gateway app](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/GatewayServiceApplication.java): `src/main/java/com/gms/gateway/GatewayServiceApplication.java`
- [JWT security](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/config/SecurityConfig.java): `src/main/java/com/gms/gateway/config/SecurityConfig.java`
- [JWT provider](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/config/JwtTokenProvider.java): `src/main/java/com/gms/gateway/config/JwtTokenProvider.java`
- [Login flows](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/controller/AuthController.java): `src/main/java/com/gms/gateway/controller/AuthController.java`
- [Authentication](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/service/AuthService.java): `src/main/java/com/gms/gateway/service/AuthService.java`
- [User accounts](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/repository/UserRepository.java): `src/main/java/com/gms/gateway/repository/UserRepository.java`

### Care workflows

- [Appointment booking](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/controller/BookingViewController.java): `src/main/java/com/gms/gateway/controller/BookingViewController.java`
- [Patient booking](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/controller/PatientBookingController.java): `src/main/java/com/gms/gateway/controller/PatientBookingController.java`
- [Patient records](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/controller/PatientViewController.java): `src/main/java/com/gms/gateway/controller/PatientViewController.java`
- [Booking confirmation](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/service/AppointmentConfirmationService.java): `src/main/java/com/gms/gateway/service/AppointmentConfirmationService.java`

### Voice intake

- [Voice extraction](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/service/VoiceIntakeService.java): `src/main/java/com/gms/gateway/service/VoiceIntakeService.java`
- [Transcript translation](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/service/BanglaToEnglishTranslator.java): `src/main/java/com/gms/gateway/service/BanglaToEnglishTranslator.java`
- [Audio transcription](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/service/WhisperTranscriptionService.java): `src/main/java/com/gms/gateway/service/WhisperTranscriptionService.java`
- [Speech synthesis](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/service/TtsService.java): `src/main/java/com/gms/gateway/service/TtsService.java`

### Service integrations

- [Backend client](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/client/BackendServiceClient.java): `src/main/java/com/gms/gateway/client/BackendServiceClient.java`
- **Backend service**
- [Biometric client](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/client/BiometricServiceClient.java): `src/main/java/com/gms/gateway/client/BiometricServiceClient.java`
- **Biometric service**
- **File service**
- [Audit client](https://github.com/golamrabbanyshikder/gms-gateway-service/blob/main/src/main/java/com/gms/gateway/client/AuditClient.java): `src/main/java/com/gms/gateway/client/AuditClient.java`

### Other components

- **Web client**
- **OpenAI Whisper**
- **Google TTS**

## Connections

- Web client → Gateway app: sends requests
- Gateway app → JWT security: validates edge auth
- JWT security → JWT provider: checks tokens
- JWT security → User accounts: loads user details
- Web client → Login flows: submits login
- Login flows → Authentication: authenticates
- Authentication → User accounts: looks up account
- Appointment booking → Backend client: books and queries
- Patient booking → Backend client: books and queries
- Patient records → Backend client: manages records
- Patient records → Biometric client: enrolls face
- Backend client → Backend service: routes API calls
- Biometric client → Biometric service: sends biometric requests
- Gateway app → File service: proxies file routes
- Gateway app → Biometric service: proxies biometric routes
- Gateway app → Backend service: proxies other routes
- Appointment booking → Audit client: logs booking
- Appointment booking → Booking confirmation: notifies confirmation
- Appointment booking → Voice extraction: extracts transcript
- Patient booking → Voice extraction: extracts transcript
- Patient booking → Audio transcription: transcribes audio
- Appointment booking → Audio transcription: transcribes audio
- Voice extraction → Transcript translation: translates and extracts
- Audio transcription → OpenAI Whisper: requests transcription
- Speech synthesis → Google TTS: fetches audio chunks
