# vu-tien-duc/k23cnt3_vutienduc_project4_eventticket architecture

> Architecture diagram of the GitHub repository vu-tien-duc/k23cnt3_vutienduc_project4_eventticket, 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/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket
- Repository: https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket

## Overview

This is a Spring-based event-ticketing backend. Its apparent customer workflow covers account access, event discovery, ticket ordering, payment, and post-event reviews; administrators have separate management capabilities. The tree also identifies venue, promotion, event-image, profile, and AI-chat features. Available excerpts directly confirm review handling, payment operations, and AI-provider calls; other subsystem links are not drawn because their call wiring was not sampled, and the README is empty.

Main entry points: [`EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdPaymentController.java`](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdPaymentController.java) (Payment API), [`EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/admin/TtbAdminReviewController.java`](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/admin/TtbAdminReviewController.java) (Review moderation), [`EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdReviewController.java`](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdReviewController.java) (Review API), [`EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/VtdReviewService.java`](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/VtdReviewService.java) (Review rules)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_customer["Customer access"]
  node_auth_api["Authentication API"]
  node_auth_service["Authentication"]
  node_social_auth["Social sign-in"]
  node_profile["User profile"]
end

subgraph group_commerce["Ticket commerce"]
  node_event_api["Event discovery"]
  node_venue_api["Venue browsing"]
  node_promotion_api["Promotions"]
  node_order_api["Order API"]
  node_payment_api["Payment API"]
  node_payment_service["Payment processing"]
  node_tickets["Ticket access"]
end

subgraph group_admin["Administration"]
  node_admin_orders["Order management"]
  node_admin_reviews["Review moderation"]
  node_admin_events["Event management"]
  node_admin_users["User management"]
end

subgraph group_support["Engagement"]
  node_review_api["Review API"]
  node_review_service["Review rules"]
  node_ai_api["AI chat API"]
  node_ai_service["AI chat service<br/>[AiChatService.java]"]
end

subgraph group_data["Persistence"]
  node_review_store[("Review records")]
  node_order_store[("Order records")]
  node_payment_store[("Payment records")]
  node_user_store[("User records")]
end

node_visitor(("Customer"))
node_admin_actor(("Administrator"))
node_ai_provider{{"AI provider"}}

node_visitor -->|"requests reviews"| node_review_api
node_review_api -->|"calls"| node_review_service
node_review_service -->|"reads and writes"| node_review_store
node_admin_actor -->|"moderates reviews"| node_admin_reviews
node_admin_reviews -->|"moderates records"| node_review_store
node_visitor -->|"requests payment"| node_payment_api
node_payment_api -->|"creates payment"| node_payment_service
node_payment_api -->|"checks order ownership"| node_order_store
node_payment_api -->|"confirms webhook payment"| node_payment_service
node_ai_api -->|"handles chat"| node_ai_service
node_ai_service -.->|"sends prompts"| node_ai_provider

click node_auth_api "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdAuthController.java"
click node_auth_service "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/VtdAuthService.java"
click node_social_auth "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/VtdSocialAuthService.java"
click node_profile "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdUserProfileController.java"
click node_event_api "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdEventController.java"
click node_venue_api "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdVenueController.java"
click node_promotion_api "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdPromotionController.java"
click node_order_api "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdOrderController.java"
click node_payment_api "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdPaymentController.java"
click node_payment_service "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/VtdPaymentService.java"
click node_tickets "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdTicketController.java"
click node_review_api "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdReviewController.java"
click node_review_service "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/VtdReviewService.java"
click node_ai_api "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/AiChatController.java"
click node_ai_service "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/AiChatService.java"
click node_admin_orders "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/admin/TtbAdminOrderController.java"
click node_admin_reviews "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/admin/TtbAdminReviewController.java"
click node_admin_events "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/admin/TtbAdminEventController.java"
click node_admin_users "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/admin/TtbAdminUserController.java"
click node_review_store "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/repository/ReviewRepository.java"
click node_order_store "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/repository/OrderRepository.java"
click node_payment_store "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/repository/PaymentRepository.java"
click node_user_store "https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/repository/UserRepository.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_auth_api,node_auth_service,node_social_auth,node_profile toneBlue
class node_event_api,node_venue_api,node_promotion_api,node_order_api,node_payment_api,node_payment_service,node_tickets toneAmber
class node_admin_orders,node_admin_reviews,node_admin_events,node_admin_users toneMint
class node_review_api,node_review_service,node_ai_api,node_ai_service toneRose
class node_review_store,node_order_store,node_payment_store,node_user_store,node_visitor,node_admin_actor,node_ai_provider toneIndigo
```

## Components

### Customer access

- [Authentication API](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdAuthController.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdAuthController.java`
- [Authentication](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/VtdAuthService.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/VtdAuthService.java`
- [Social sign-in](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/VtdSocialAuthService.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/VtdSocialAuthService.java`
- [User profile](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdUserProfileController.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdUserProfileController.java`

### Ticket commerce

- [Event discovery](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdEventController.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdEventController.java`
- [Venue browsing](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdVenueController.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdVenueController.java`
- [Promotions](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdPromotionController.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdPromotionController.java`
- [Order API](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdOrderController.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdOrderController.java`
- [Payment API](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdPaymentController.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdPaymentController.java`
- [Payment processing](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/VtdPaymentService.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/VtdPaymentService.java`
- [Ticket access](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdTicketController.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdTicketController.java`

### Administration

- [Order management](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/admin/TtbAdminOrderController.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/admin/TtbAdminOrderController.java`
- [Review moderation](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/admin/TtbAdminReviewController.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/admin/TtbAdminReviewController.java`
- [Event management](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/admin/TtbAdminEventController.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/admin/TtbAdminEventController.java`
- [User management](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/admin/TtbAdminUserController.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/admin/TtbAdminUserController.java`

### Engagement

- [Review API](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdReviewController.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/VtdReviewController.java`
- [Review rules](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/VtdReviewService.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/VtdReviewService.java`
- [AI chat API](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/AiChatController.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/controller/user/AiChatController.java`
- [AI chat service](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/AiChatService.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/service/user/AiChatService.java`

### Persistence

- [Review records](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/repository/ReviewRepository.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/repository/ReviewRepository.java`
- [Order records](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/repository/OrderRepository.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/repository/OrderRepository.java`
- [Payment records](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/repository/PaymentRepository.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/repository/PaymentRepository.java`
- [User records](https://github.com/vu-tien-duc/k23cnt3_vutienduc_project4_eventticket/blob/main/EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/repository/UserRepository.java): `EventTicket_BDHT_Project/backend-api/src/main/java/com/eventticket/repository/UserRepository.java`

### Other components

- **Customer**
- **Administrator**
- **AI provider**

## Connections

- Customer → Review API: requests reviews
- Review API → Review rules: calls
- Review rules → Review records: reads and writes
- Administrator → Review moderation: moderates reviews
- Review moderation → Review records: moderates records
- Customer → Payment API: requests payment
- Payment API → Payment processing: creates payment
- Payment API → Order records: checks order ownership
- Payment API → Payment processing: confirms webhook payment
- AI chat API → AI chat service: handles chat
- AI chat service → AI provider: sends prompts
