Skip to content

naimulkarim/TicketingSystem

Repository files navigation

TicketingSystem

A cloud-native, event-driven online ticketing platform for concerts, sports, and live shows.

Architecture

  • Pattern: Domain-Driven Design · CQRS · Event-Driven (Saga)
  • Backend: .NET 8 microservices (ASP.NET Core Web API)
  • Frontend: Angular 17 (NgRx, Signal-based components)
  • Messaging: RabbitMQ via MassTransit
  • Database: SQL Server (EF Core, one DB per service)
  • Cache / Seat lock: Redis
  • Gateway: YARP reverse proxy
  • Observability: OpenTelemetry · Jaeger · Prometheus · Serilog

Services

Service Port Responsibility
Identity 5001 OAuth2 / OIDC / JWT
EventCatalog 5002 Events, venues, seat maps
Booking 5003 Reservation saga orchestrator
Payment 5004 PSP integration, refunds
Notification 5005 Email / SMS / push
ApiGateway 5000 Routing, auth, rate limiting
Frontend 4200 Angular SPA

Quick Start (Docker Compose)

# Clone
git clone https://github.com/<your-org>/TicketingSystem.git
cd TicketingSystem

# Copy env template
cp .env.example .env
# Edit .env with your secrets

# Start full stack
docker compose up --build

# Frontend dev server (separate terminal)
cd frontend && npm install && ng serve

Open http://localhost:4200

Solution Structure

TicketingSystem/
├── src/
│   ├── SharedKernel/          Base classes: AggregateRoot, DomainEvent, ValueObject
│   ├── Services/
│   │   ├── Identity/
│   │   ├── EventCatalog/
│   │   ├── Booking/           Saga orchestrator (most complex)
│   │   ├── Payment/
│   │   └── Notification/
│   └── ApiGateway/            YARP
├── frontend/                  Angular workspace
├── deploy/                    Docker Compose + (Helm coming soon)
└── tests/

Key Design Decisions

  • Outbox pattern ensures at-least-once RabbitMQ delivery without distributed transactions
  • Redis seat locking (10-min TTL) prevents overselling during checkout
  • MassTransit saga coordinates the booking → payment → ticket issuance workflow
  • CQRS with MediatR separates write commands from read queries in every service

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors