# chandan-me/event-booking-system architecture

> Architecture diagram of the GitHub repository chandan-me/event-booking-system, 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/chandan-me/event-booking-system
- Repository: https://github.com/chandan-me/event-booking-system

## Overview

EventPass is an event discovery, booking, ticketing, and live-admission platform. Attendees browse events, authenticate, book tickets, complete payment, and receive digital passes; organizers manage events and capacity and use ticket check-in and attendee-roster tools. The React portal sends API requests through a gateway to separate authentication, event, booking, and notification services. The README documents the service topology and major capabilities; unsampled implementation details are represented only where the tree supports a component, with no inferred internal call chains.

Main entry points: [`backend/services/booking-service/app/services/booking_service.py`](https://github.com/chandan-me/event-booking-system/blob/main/backend/services/booking-service/app/services/booking_service.py) (Booking and payment), [`frontend/src/App.jsx`](https://github.com/chandan-me/event-booking-system/blob/main/frontend/src/App.jsx) (React portal), [`backend/services/api-gateway/app/main.py`](https://github.com/chandan-me/event-booking-system/blob/main/backend/services/api-gateway/app/main.py) (API gateway), [`frontend/src/api/client.js`](https://github.com/chandan-me/event-booking-system/blob/main/frontend/src/api/client.js) (API client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_portal["Web portal"]
  node_portal_ui["React portal<br/>[App.jsx]"]
  node_auth_context["Session context<br/>[AuthContext.jsx]"]
  node_event_browse["Event browsing<br/>[EventsPage.jsx]"]
  node_event_detail["Event details"]
  node_organizer_tools["Organizer operations"]
  node_attendee_wallet["Booking wallet"]
  node_http_client["API client<br/>[client.js]"]
end

subgraph group_ingress["API ingress"]
  node_gateway["API gateway<br/>[main.py]"]
  node_gateway_proxy["Request proxy<br/>[proxy.py]"]
end

subgraph group_commerce["Event and booking"]
  node_event_service["Event catalog<br/>[event_service.py]"]
  node_booking_service["Booking and payment<br/>[booking_service.py]"]
  node_ticket_ops["Digital tickets<br/>[ticket_service.py]"]
  node_event_client["Event client<br/>[event_client.py]"]
  node_booking_db[("Booking database")]
  node_ticket_db[("Ticket database")]
  node_event_db[("Event database")]
end

subgraph group_identity_notify["Identity and messaging"]
  node_auth_service["Authentication<br/>[auth_service.py]"]
  node_notification_service["Email notifications<br/>[main.py]"]
  node_auth_db[("Auth database<br/>[session.py]")]
end

node_attendee(("Attendee"))
node_organizer(("Organizer"))
node_rabbitmq["RabbitMQ"]
node_razorpay["Razorpay"]
node_mysql[("MySQL")]

node_attendee -->|"uses"| node_portal_ui
node_organizer -->|"uses"| node_portal_ui
node_portal_ui -->|"provides session"| node_auth_context
node_portal_ui -->|"routes to"| node_event_browse
node_portal_ui -->|"routes to"| node_event_detail
node_portal_ui -->|"routes to"| node_organizer_tools
node_portal_ui -->|"routes to"| node_attendee_wallet
node_event_detail -->|"requests via"| node_http_client
node_organizer_tools -->|"requests via"| node_http_client
node_attendee_wallet -.->|"requests via"| node_http_client
node_auth_context -->|"manages tokens"| node_http_client
node_http_client -->|"sends HTTP"| node_gateway
node_gateway -->|"dispatches requests"| node_gateway_proxy
node_gateway -->|"routes HTTP"| node_auth_service
node_gateway -->|"routes HTTP"| node_event_service
node_gateway -->|"routes HTTP"| node_booking_service
node_gateway -->|"routes HTTP"| node_notification_service
node_auth_service -->|"stores identity data"| node_auth_db
node_event_service -->|"reads and writes"| node_event_db
node_booking_service -->|"requests event data"| node_event_client
node_booking_service -->|"persists bookings"| node_booking_db
node_booking_service -->|"creates tickets"| node_ticket_db
node_booking_service -.->|"issues passes"| node_ticket_ops
node_booking_service -->|"processes payment"| node_razorpay
node_booking_service -->|"publishes events"| node_rabbitmq
node_rabbitmq -->|"delivers events"| node_notification_service
node_notification_service -.->|"stores notifications"| node_mysql
node_event_db -.->|"uses"| node_mysql
node_booking_db -.->|"uses"| node_mysql
node_auth_db -.->|"uses"| node_mysql
node_ticket_ops -->|"supports check-in"| node_organizer_tools

click node_portal_ui "https://github.com/chandan-me/event-booking-system/blob/main/frontend/src/App.jsx"
click node_auth_context "https://github.com/chandan-me/event-booking-system/blob/main/frontend/src/context/AuthContext.jsx"
click node_event_browse "https://github.com/chandan-me/event-booking-system/blob/main/frontend/src/pages/EventsPage.jsx"
click node_event_detail "https://github.com/chandan-me/event-booking-system/blob/main/frontend/src/pages/EventDetailPage.jsx"
click node_organizer_tools "https://github.com/chandan-me/event-booking-system/blob/main/frontend/src/pages/OrganizerDashboardPage.jsx"
click node_attendee_wallet "https://github.com/chandan-me/event-booking-system/blob/main/frontend/src/pages/UserDashboardPage.jsx"
click node_http_client "https://github.com/chandan-me/event-booking-system/blob/main/frontend/src/api/client.js"
click node_gateway "https://github.com/chandan-me/event-booking-system/blob/main/backend/services/api-gateway/app/main.py"
click node_gateway_proxy "https://github.com/chandan-me/event-booking-system/blob/main/backend/services/api-gateway/app/core/proxy.py"
click node_auth_service "https://github.com/chandan-me/event-booking-system/blob/main/backend/services/auth-service/app/services/auth_service.py"
click node_event_service "https://github.com/chandan-me/event-booking-system/blob/main/backend/services/event-service/app/services/event_service.py"
click node_booking_service "https://github.com/chandan-me/event-booking-system/blob/main/backend/services/booking-service/app/services/booking_service.py"
click node_ticket_ops "https://github.com/chandan-me/event-booking-system/blob/main/backend/services/booking-service/app/services/ticket_service.py"
click node_event_client "https://github.com/chandan-me/event-booking-system/blob/main/backend/services/booking-service/app/clients/event_client.py"
click node_booking_db "https://github.com/chandan-me/event-booking-system/blob/main/backend/services/booking-service/app/repositories/booking_repository.py"
click node_ticket_db "https://github.com/chandan-me/event-booking-system/blob/main/backend/services/booking-service/app/repositories/ticket_repository.py"
click node_notification_service "https://github.com/chandan-me/event-booking-system/blob/main/backend/services/notification-service/app/main.py"
click node_event_db "https://github.com/chandan-me/event-booking-system/blob/main/backend/services/event-service/app/repositories/event_repository.py"
click node_auth_db "https://github.com/chandan-me/event-booking-system/blob/main/backend/services/auth-service/app/db/session.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_portal_ui,node_auth_context,node_event_browse,node_event_detail,node_organizer_tools,node_attendee_wallet,node_http_client toneBlue
class node_gateway,node_gateway_proxy,node_mysql toneAmber
class node_event_service,node_booking_service,node_ticket_ops,node_event_client,node_booking_db,node_ticket_db,node_event_db toneMint
class node_auth_service,node_notification_service,node_auth_db toneRose
class node_attendee,node_organizer,node_rabbitmq,node_razorpay toneIndigo
```

## Components

### Web portal

- [React portal](https://github.com/chandan-me/event-booking-system/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Session context](https://github.com/chandan-me/event-booking-system/blob/main/frontend/src/context/AuthContext.jsx): `frontend/src/context/AuthContext.jsx`
- [Event browsing](https://github.com/chandan-me/event-booking-system/blob/main/frontend/src/pages/EventsPage.jsx): `frontend/src/pages/EventsPage.jsx`
- [Event details](https://github.com/chandan-me/event-booking-system/blob/main/frontend/src/pages/EventDetailPage.jsx): `frontend/src/pages/EventDetailPage.jsx`
- [Organizer operations](https://github.com/chandan-me/event-booking-system/blob/main/frontend/src/pages/OrganizerDashboardPage.jsx): `frontend/src/pages/OrganizerDashboardPage.jsx`
- [Booking wallet](https://github.com/chandan-me/event-booking-system/blob/main/frontend/src/pages/UserDashboardPage.jsx): `frontend/src/pages/UserDashboardPage.jsx`
- [API client](https://github.com/chandan-me/event-booking-system/blob/main/frontend/src/api/client.js): `frontend/src/api/client.js`

### API ingress

- [API gateway](https://github.com/chandan-me/event-booking-system/blob/main/backend/services/api-gateway/app/main.py): `backend/services/api-gateway/app/main.py`
- [Request proxy](https://github.com/chandan-me/event-booking-system/blob/main/backend/services/api-gateway/app/core/proxy.py): `backend/services/api-gateway/app/core/proxy.py`

### Event and booking

- [Event catalog](https://github.com/chandan-me/event-booking-system/blob/main/backend/services/event-service/app/services/event_service.py): `backend/services/event-service/app/services/event_service.py`
- [Booking and payment](https://github.com/chandan-me/event-booking-system/blob/main/backend/services/booking-service/app/services/booking_service.py): `backend/services/booking-service/app/services/booking_service.py`
- [Digital tickets](https://github.com/chandan-me/event-booking-system/blob/main/backend/services/booking-service/app/services/ticket_service.py): `backend/services/booking-service/app/services/ticket_service.py`
- [Event client](https://github.com/chandan-me/event-booking-system/blob/main/backend/services/booking-service/app/clients/event_client.py): `backend/services/booking-service/app/clients/event_client.py`
- [Booking database](https://github.com/chandan-me/event-booking-system/blob/main/backend/services/booking-service/app/repositories/booking_repository.py): `backend/services/booking-service/app/repositories/booking_repository.py`
- [Ticket database](https://github.com/chandan-me/event-booking-system/blob/main/backend/services/booking-service/app/repositories/ticket_repository.py): `backend/services/booking-service/app/repositories/ticket_repository.py`
- [Event database](https://github.com/chandan-me/event-booking-system/blob/main/backend/services/event-service/app/repositories/event_repository.py): `backend/services/event-service/app/repositories/event_repository.py`

### Identity and messaging

- [Authentication](https://github.com/chandan-me/event-booking-system/blob/main/backend/services/auth-service/app/services/auth_service.py): `backend/services/auth-service/app/services/auth_service.py`
- [Email notifications](https://github.com/chandan-me/event-booking-system/blob/main/backend/services/notification-service/app/main.py): `backend/services/notification-service/app/main.py`
- [Auth database](https://github.com/chandan-me/event-booking-system/blob/main/backend/services/auth-service/app/db/session.py): `backend/services/auth-service/app/db/session.py`

### Other components

- **Attendee**
- **Organizer**
- **RabbitMQ**
- **Razorpay**
- **MySQL**

## Connections

- Attendee → React portal: uses (evidence: `README.md`)
- Organizer → React portal: uses (evidence: `README.md`)
- React portal → Session context: provides session (evidence: `frontend/src/App.jsx`)
- React portal → Event browsing: routes to (evidence: `frontend/src/App.jsx`)
- React portal → Event details: routes to (evidence: `frontend/src/App.jsx`)
- React portal → Organizer operations: routes to (evidence: `frontend/src/App.jsx`)
- React portal → Booking wallet: routes to (evidence: `frontend/src/App.jsx`)
- Event details → API client: requests via
- Organizer operations → API client: requests via
- Booking wallet → API client: requests via
- Session context → API client: manages tokens (evidence: `frontend/src/context/AuthContext.jsx`)
- API client → API gateway: sends HTTP (evidence: `README.md`)
- API gateway → Request proxy: dispatches requests (evidence: `backend/services/api-gateway/app/main.py`)
- API gateway → Authentication: routes HTTP (evidence: `README.md`)
- API gateway → Event catalog: routes HTTP (evidence: `README.md`)
- API gateway → Booking and payment: routes HTTP
- API gateway → Email notifications: routes HTTP (evidence: `README.md`)
- Authentication → Auth database: stores identity data
- Event catalog → Event database: reads and writes (evidence: `backend/services/event-service/app/services/event_service.py`)
- Booking and payment → Event client: requests event data (evidence: `backend/services/booking-service/app/services/booking_service.py`)
- Booking and payment → Booking database: persists bookings (evidence: `backend/services/booking-service/app/services/booking_service.py`)
- Booking and payment → Ticket database: creates tickets (evidence: `backend/services/booking-service/app/services/booking_service.py`)
- Booking and payment → Digital tickets: issues passes (evidence: `backend/services/booking-service/app/services/booking_service.py`)
- Booking and payment → Razorpay: processes payment (evidence: `README.md`)
- Booking and payment → RabbitMQ: publishes events (evidence: `README.md`)
- RabbitMQ → Email notifications: delivers events (evidence: `README.md`)
- Email notifications → MySQL: stores notifications
- Event database → MySQL: uses (evidence: `README.md`)
- Booking database → MySQL: uses (evidence: `README.md`)
- Auth database → MySQL: uses (evidence: `README.md`)
- Digital tickets → Organizer operations: supports check-in (evidence: `README.md`)
