# lokeshnagrikar/eventos architecture

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

- Interactive diagram: https://gitdiagram.com/lokeshnagrikar/eventos
- Repository: https://github.com/lokeshnagrikar/eventos

## Overview

EventOS is a multi-tenant event-agency platform spanning lead and quote management, event booking and operations, client payments, workspace security, and media galleries. The main user journey moves from managing a CRM lead and preparing a quote to converting an accepted quote into a booking, then coordinating event timelines and finances; clients can review proposals and use the portal. The graph combines documented system topology and product capabilities with sampled service calls. Several feature branches are documented but their internal wiring was not sampled, so those links are intentionally limited.

Main entry points: [`backend/event-service/src/main/java/com/eventos/event`](https://github.com/lokeshnagrikar/eventos/tree/main/backend/event-service/src/main/java/com/eventos/event) (Event Operations), [`backend/api-gateway/src/main/java/com/eventos/gateway`](https://github.com/lokeshnagrikar/eventos/tree/main/backend/api-gateway/src/main/java/com/eventos/gateway) (API Gateway), [`backend/gallery-service/src/main/java/com/eventos/gallery/service/GalleryItemService.java`](https://github.com/lokeshnagrikar/eventos/blob/main/backend/gallery-service/src/main/java/com/eventos/gallery/service/GalleryItemService.java) (Photo Galleries), [`backend/crm-service/src/main/java/com/eventos/crm`](https://github.com/lokeshnagrikar/eventos/tree/main/backend/crm-service/src/main/java/com/eventos/crm) (Leads and Quotes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Platform Entry"]
  node_web["Web Experience"]
  node_gateway["API Gateway"]
end

subgraph group_identity["Identity Workspace"]
  node_auth["Identity and Workspace"]
  node_authdb[("Auth Database")]
end

subgraph group_sales["CRM and Proposals"]
  node_crm["Leads and Quotes"]
  node_crmdb[("CRM Database")]
end

subgraph group_operations["Event Operations"]
  node_booking["Booking Conversion"]
  node_event["Event Operations"]
  node_eventdb[("Event Database")]
  node_payment["Payment Engine"]
end

subgraph group_media["Client Media"]
  node_gallery["Photo Galleries"]
  node_gallerydb[("Gallery Database")]
end

node_browser(("Agency and Client"))
node_cloudinary["Cloudinary"]
node_rabbit["RabbitMQ"]
node_google["Google Identity"]

node_browser -->|"uses"| node_web
node_web -->|"API requests"| node_gateway
node_gateway -->|"routes"| node_auth
node_gateway -->|"routes"| node_crm
node_gateway -->|"routes"| node_event
node_gateway -->|"routes"| node_gallery
node_auth -->|"reads/writes"| node_authdb
node_auth -.->|"verifies tokens"| node_google
node_crm -->|"reads/writes"| node_crmdb
node_crm -->|"fetches team settings"| node_auth
node_booking -->|"fetches quote and lead"| node_crm
node_event -->|"reads/writes"| node_eventdb
node_event -->|"converts accepted quote"| node_booking
node_event -->|"calculates fee"| node_payment
node_gallery -->|"checks client events"| node_event
node_gallery -->|"uploads media"| node_cloudinary
node_gallery -->|"stores metadata"| node_gallerydb
node_gallery -->|"publishes deletion event"| node_rabbit
node_crm -.->|"publishes domain events"| node_rabbit
node_event -.->|"publishes domain events"| node_rabbit

click node_web "https://github.com/lokeshnagrikar/eventos/tree/main/web/src"
click node_gateway "https://github.com/lokeshnagrikar/eventos/tree/main/backend/api-gateway/src/main/java/com/eventos/gateway"
click node_auth "https://github.com/lokeshnagrikar/eventos/tree/main/backend/auth-service/src/main/java/com/eventos/auth"
click node_crm "https://github.com/lokeshnagrikar/eventos/tree/main/backend/crm-service/src/main/java/com/eventos/crm"
click node_booking "https://github.com/lokeshnagrikar/eventos/blob/main/backend/event-service/src/main/java/com/eventos/event/service/BookingService.java"
click node_event "https://github.com/lokeshnagrikar/eventos/tree/main/backend/event-service/src/main/java/com/eventos/event"
click node_payment "https://github.com/lokeshnagrikar/eventos/blob/main/backend/event-service/src/main/java/com/eventos/event/payment/service/FeeCalculationService.java"
click node_gallery "https://github.com/lokeshnagrikar/eventos/blob/main/backend/gallery-service/src/main/java/com/eventos/gallery/service/GalleryItemService.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_web,node_gateway,node_browser toneBlue
class node_auth,node_authdb toneAmber
class node_crm,node_crmdb toneMint
class node_booking,node_event,node_eventdb,node_payment toneRose
class node_gallery,node_gallerydb,node_cloudinary,node_rabbit,node_google toneIndigo
```

## Components

### Platform Entry

- [Web Experience](https://github.com/lokeshnagrikar/eventos/tree/main/web/src): `web/src`
- [API Gateway](https://github.com/lokeshnagrikar/eventos/tree/main/backend/api-gateway/src/main/java/com/eventos/gateway): `backend/api-gateway/src/main/java/com/eventos/gateway`

### Identity Workspace

- [Identity and Workspace](https://github.com/lokeshnagrikar/eventos/tree/main/backend/auth-service/src/main/java/com/eventos/auth): `backend/auth-service/src/main/java/com/eventos/auth`
- **Auth Database**

### CRM and Proposals

- [Leads and Quotes](https://github.com/lokeshnagrikar/eventos/tree/main/backend/crm-service/src/main/java/com/eventos/crm): `backend/crm-service/src/main/java/com/eventos/crm`
- **CRM Database**

### Event Operations

- [Booking Conversion](https://github.com/lokeshnagrikar/eventos/blob/main/backend/event-service/src/main/java/com/eventos/event/service/BookingService.java): `backend/event-service/src/main/java/com/eventos/event/service/BookingService.java`
- [Event Operations](https://github.com/lokeshnagrikar/eventos/tree/main/backend/event-service/src/main/java/com/eventos/event): `backend/event-service/src/main/java/com/eventos/event`
- **Event Database**
- [Payment Engine](https://github.com/lokeshnagrikar/eventos/blob/main/backend/event-service/src/main/java/com/eventos/event/payment/service/FeeCalculationService.java): `backend/event-service/src/main/java/com/eventos/event/payment/service/FeeCalculationService.java`

### Client Media

- [Photo Galleries](https://github.com/lokeshnagrikar/eventos/blob/main/backend/gallery-service/src/main/java/com/eventos/gallery/service/GalleryItemService.java): `backend/gallery-service/src/main/java/com/eventos/gallery/service/GalleryItemService.java`
- **Gallery Database**

### Other components

- **Agency and Client**
- **Cloudinary**
- **RabbitMQ**
- **Google Identity**

## Connections

- Agency and Client → Web Experience: uses
- Web Experience → API Gateway: API requests
- API Gateway → Identity and Workspace: routes
- API Gateway → Leads and Quotes: routes
- API Gateway → Event Operations: routes
- API Gateway → Photo Galleries: routes
- Identity and Workspace → Auth Database: reads/writes
- Identity and Workspace → Google Identity: verifies tokens
- Leads and Quotes → CRM Database: reads/writes
- Leads and Quotes → Identity and Workspace: fetches team settings
- Booking Conversion → Leads and Quotes: fetches quote and lead
- Event Operations → Event Database: reads/writes
- Event Operations → Booking Conversion: converts accepted quote
- Event Operations → Payment Engine: calculates fee
- Photo Galleries → Event Operations: checks client events
- Photo Galleries → Cloudinary: uploads media
- Photo Galleries → Gallery Database: stores metadata
- Photo Galleries → RabbitMQ: publishes deletion event
- Leads and Quotes → RabbitMQ: publishes domain events
- Event Operations → RabbitMQ: publishes domain events
