How ashjha75/ticketing-system works
This is an Angular client and Spring modular-monolith API for event ticket sales. Users authenticate, browse published events, reserve tickets, manage bookings, and view profiles; administrators manage events and inspect booking/revenue metrics. The backend’s booking service owns validation, inventory reservation, persistence, and confirmation notification, while inventory locking protects concurrent stock changes. The README documents PostgreSQL, Redis caching, and rate limiting; source excerpts were sampled selectively, so links for unsampled feature wiring are limited to documented capabilities and evident module boundaries.
Main entry points: BookingService.java Booking orchestration · app.module.ts Angular app · EventQueryService.java Event search · AuthService.java Auth orchestration
Components 29
Angular client
- Angular app
ticketing-system-ui/src/app/app.module.ts - Login and register
ticketing-system-ui/src/app/components/auth/login/login.component.ts - Event browsing
ticketing-system-ui/src/app/components/events/event-list/event-list.component.ts - Event details
ticketing-system-ui/src/app/components/events/event-detail/event-detail.component.ts - Bookings view
ticketing-system-ui/src/app/components/bookings/booking-list/booking-list.component.ts - Admin dashboard
ticketing-system-ui/src/app/components/admin/dashboard/dashboard.component.ts - Profile
ticketing-system-ui/src/app/components/profile/profile.component.ts
Identity and users
- Auth service
ticketing-system-ui/src/app/services/auth.service.ts - Auth endpoints
ticketing-system/src/main/java/com/ashish/ticketing/modules/auth/controller/AuthController.java - Auth orchestration
ticketing-system/src/main/java/com/ashish/ticketing/modules/auth/service/AuthService.java - User management
ticketing-system/src/main/java/com/ashish/ticketing/modules/user/service/UserService.java - JWT security
ticketing-system/src/main/java/com/ashish/ticketing/config/SecurityConfig.java
Events and catalog
- Event endpoints
ticketing-system/src/main/java/com/ashish/ticketing/modules/event/controller/EventController.java - Event search
ticketing-system/src/main/java/com/ashish/ticketing/modules/event/service/EventQueryService.java - Event administration
ticketing-system/src/main/java/com/ashish/ticketing/modules/event/service/EventCommandService.java - Event commands
ticketing-system/src/main/java/com/ashish/ticketing/modules/event/service/EventCommandService.java
Booking and inventory
- Booking endpoints
ticketing-system/src/main/java/com/ashish/ticketing/modules/booking/controller/BookingController.java - Booking orchestration
ticketing-system/src/main/java/com/ashish/ticketing/modules/booking/service/BookingService.java - Booking queries
ticketing-system/src/main/java/com/ashish/ticketing/modules/booking/service/BookingQueryService.java - Inventory control
ticketing-system/src/main/java/com/ashish/ticketing/modules/inventory/service/InventoryService.java
Operations
- Admin endpoints
ticketing-system/src/main/java/com/ashish/ticketing/modules/admin/controller/AdminController.java - Dashboard metrics
ticketing-system/src/main/java/com/ashish/ticketing/modules/admin/service/AdminService.java - Email notifications
ticketing-system/src/main/java/com/ashish/ticketing/modules/notification/service/NotificationService.java - Retry and expiry jobs
ticketing-system/src/main/java/com/ashish/ticketing/modules/scheduler/NotificationRetryScheduler.java - Audit logging
ticketing-system/src/main/java/com/ashish/ticketing/modules/audit/service/AuditService.java
Other components
- User or admin
- PostgreSQL
- Redis cache
- Email provider
Connections 33
- User or admin → Angular app: uses
- Angular app → Login and register: renders
- Angular app → Event browsing: renders
- Angular app → Bookings view: renders
- Angular app → Admin dashboard: renders
- Login and register → Auth service: authenticates
- Auth service → Auth endpoints: HTTP requests
- Auth endpoints → Auth orchestration: dispatches
- Auth orchestration → User management: validates users
- Auth orchestration → PostgreSQL: persists tokens and users
- JWT security → Auth endpoints: secures routes
- Event browsing → Event endpoints: browses events
- Event details → Event endpoints: loads details
- Event endpoints → Event search: dispatches queries
- Event search → PostgreSQL: reads events
- Event administration → Event commands: manages events
- Event commands → PostgreSQL: writes events
- Bookings view → Booking endpoints: manages bookings
- Booking endpoints → Booking orchestration: dispatches
- Booking orchestration → User management: loads active user
- Booking orchestration → Event search: loads published event
- Booking orchestration → Inventory control: reserves or releases
- Booking orchestration → Booking queries: reads bookings
- Booking orchestration → PostgreSQL: saves booking
- Booking orchestration → Email notifications: requests confirmation
- Inventory control → PostgreSQL: locks and updates stock
- Admin dashboard → Admin endpoints: requests metrics
- Admin endpoints → Dashboard metrics: dispatches
- Dashboard metrics → PostgreSQL: aggregates metrics
- Email notifications → Email provider: sends email
- Retry and expiry jobs → Email notifications: retries failures
- Audit logging → PostgreSQL: writes audit logs
- Event search → Redis cache: caches reads