# tuntunhlaing/booking-system architecture

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

- Interactive diagram: https://gitdiagram.com/tuntunhlaing/booking-system
- Repository: https://github.com/tuntunhlaing/booking-system

## Overview

Booking-System is described as a system for booking classes using packages. The tree shows separate user, class-booking, package-management, authentication, and shared-domain modules. No source excerpts were provided, so the graph keeps relationships to the README’s broad product description and does not infer internal calls or runtime flow.

Main entry points: [`booking-package/src/main/java/com/example/booking/pack/api/PackageManagementApi.java`](https://github.com/tuntunhlaing/booking-system/blob/main/booking-package/src/main/java/com/example/booking/pack/api/PackageManagementApi.java) (Package API), [`booking-user/src/main/java/com/example/booking/user/api/BookingClassApi.java`](https://github.com/tuntunhlaing/booking-system/blob/main/booking-user/src/main/java/com/example/booking/user/api/BookingClassApi.java) (Class API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_booking["Booking"]
  node_class_api["Class API"]
  node_class_service["Class booking"]
  node_user_api["User management API"]
  node_registration_api["Registration API"]
  node_user_service["User management"]
end

subgraph group_packages["Packages"]
  node_package_api["Package API"]
  node_package_service["Package management"]
end

subgraph group_identity["Identity"]
  node_auth_api["Authentication API"]
  node_auth_service["Authentication service"]
  node_jwt_filter["JWT filter<br/>[JwtAuthFilter.java]"]
end

subgraph group_shared["Shared domain"]
  node_domain_entities["Booking entities"]
  node_repositories[("Repositories")]
  node_schedulers["Expiry jobs"]
  node_application["Application setup"]
end

node_user(("Booking user"))

node_user -->|"books classes"| node_class_api
node_user -->|"uses packages"| node_package_api
node_package_api -->|"supports booking"| node_class_api

click node_class_api "https://github.com/tuntunhlaing/booking-system/blob/main/booking-user/src/main/java/com/example/booking/user/api/BookingClassApi.java"
click node_class_service "https://github.com/tuntunhlaing/booking-system/blob/main/booking-user/src/main/java/com/example/booking/user/service/BookingClassService.java"
click node_user_api "https://github.com/tuntunhlaing/booking-system/blob/main/booking-user/src/main/java/com/example/booking/user/api/BookingUserManagementApi.java"
click node_registration_api "https://github.com/tuntunhlaing/booking-system/blob/main/booking-user/src/main/java/com/example/booking/user/api/BookUserRegistrationApi.java"
click node_user_service "https://github.com/tuntunhlaing/booking-system/blob/main/booking-user/src/main/java/com/example/booking/user/service/BookingUserManagementService.java"
click node_package_api "https://github.com/tuntunhlaing/booking-system/blob/main/booking-package/src/main/java/com/example/booking/pack/api/PackageManagementApi.java"
click node_package_service "https://github.com/tuntunhlaing/booking-system/blob/main/booking-package/src/main/java/com/example/booking/pack/service/PackageManagementService.java"
click node_auth_api "https://github.com/tuntunhlaing/booking-system/blob/main/booking-auth/src/main/java/com/example/booking/security/api/AuthenticationApi.java"
click node_auth_service "https://github.com/tuntunhlaing/booking-system/blob/main/booking-auth/src/main/java/com/example/booking/security/service/AuthenticationService.java"
click node_jwt_filter "https://github.com/tuntunhlaing/booking-system/blob/main/booking-auth/src/main/java/com/example/booking/security/jwt/JwtAuthFilter.java"
click node_domain_entities "https://github.com/tuntunhlaing/booking-system/tree/main/booking-core-domain/src/main/java/com/example/booking/entity"
click node_repositories "https://github.com/tuntunhlaing/booking-system/tree/main/booking-core-domain/src/main/java/com/example/booking/repo"
click node_schedulers "https://github.com/tuntunhlaing/booking-system/tree/main/booking-common/src/main/java/com/example/booking/scheduled"
click node_application "https://github.com/tuntunhlaing/booking-system/blob/main/booking-application/src/main/java/com/example/booking/BookingSystemApplication.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_class_api,node_class_service,node_user_api,node_registration_api,node_user_service,node_user toneBlue
class node_package_api,node_package_service toneAmber
class node_auth_api,node_auth_service,node_jwt_filter toneMint
class node_domain_entities,node_repositories,node_schedulers,node_application toneRose
```

## Components

### Booking

- [Class API](https://github.com/tuntunhlaing/booking-system/blob/main/booking-user/src/main/java/com/example/booking/user/api/BookingClassApi.java): `booking-user/src/main/java/com/example/booking/user/api/BookingClassApi.java`
- [Class booking](https://github.com/tuntunhlaing/booking-system/blob/main/booking-user/src/main/java/com/example/booking/user/service/BookingClassService.java): `booking-user/src/main/java/com/example/booking/user/service/BookingClassService.java`
- [User management API](https://github.com/tuntunhlaing/booking-system/blob/main/booking-user/src/main/java/com/example/booking/user/api/BookingUserManagementApi.java): `booking-user/src/main/java/com/example/booking/user/api/BookingUserManagementApi.java`
- [Registration API](https://github.com/tuntunhlaing/booking-system/blob/main/booking-user/src/main/java/com/example/booking/user/api/BookUserRegistrationApi.java): `booking-user/src/main/java/com/example/booking/user/api/BookUserRegistrationApi.java`
- [User management](https://github.com/tuntunhlaing/booking-system/blob/main/booking-user/src/main/java/com/example/booking/user/service/BookingUserManagementService.java): `booking-user/src/main/java/com/example/booking/user/service/BookingUserManagementService.java`

### Packages

- [Package API](https://github.com/tuntunhlaing/booking-system/blob/main/booking-package/src/main/java/com/example/booking/pack/api/PackageManagementApi.java): `booking-package/src/main/java/com/example/booking/pack/api/PackageManagementApi.java`
- [Package management](https://github.com/tuntunhlaing/booking-system/blob/main/booking-package/src/main/java/com/example/booking/pack/service/PackageManagementService.java): `booking-package/src/main/java/com/example/booking/pack/service/PackageManagementService.java`

### Identity

- [Authentication API](https://github.com/tuntunhlaing/booking-system/blob/main/booking-auth/src/main/java/com/example/booking/security/api/AuthenticationApi.java): `booking-auth/src/main/java/com/example/booking/security/api/AuthenticationApi.java`
- [Authentication service](https://github.com/tuntunhlaing/booking-system/blob/main/booking-auth/src/main/java/com/example/booking/security/service/AuthenticationService.java): `booking-auth/src/main/java/com/example/booking/security/service/AuthenticationService.java`
- [JWT filter](https://github.com/tuntunhlaing/booking-system/blob/main/booking-auth/src/main/java/com/example/booking/security/jwt/JwtAuthFilter.java): `booking-auth/src/main/java/com/example/booking/security/jwt/JwtAuthFilter.java`

### Shared domain

- [Booking entities](https://github.com/tuntunhlaing/booking-system/tree/main/booking-core-domain/src/main/java/com/example/booking/entity): `booking-core-domain/src/main/java/com/example/booking/entity`
- [Repositories](https://github.com/tuntunhlaing/booking-system/tree/main/booking-core-domain/src/main/java/com/example/booking/repo): `booking-core-domain/src/main/java/com/example/booking/repo`
- [Expiry jobs](https://github.com/tuntunhlaing/booking-system/tree/main/booking-common/src/main/java/com/example/booking/scheduled): `booking-common/src/main/java/com/example/booking/scheduled`
- [Application setup](https://github.com/tuntunhlaing/booking-system/blob/main/booking-application/src/main/java/com/example/booking/BookingSystemApplication.java): `booking-application/src/main/java/com/example/booking/BookingSystemApplication.java`

### Other components

- **Booking user**

## Connections

- Booking user → Class API: books classes (evidence: `README.md`)
- Booking user → Package API: uses packages (evidence: `README.md`)
- Package API → Class API: supports booking (evidence: `README.md`)
