Developed as project for the Software Engineering II course at Amirkabir University of Technology (Tehran Polytechnic).
Ticketino is a highly concurrent, distributed event ticketing and seat reservation platform. Engineered using a decoupled microservices architecture, the system is designed to maintain zero downtime and absolute data integrity during massive flash-traffic drops when high-demand concert or event tickets go live.
- ⚡ Anti-Double-Booking Reservation Engine: Utilizes Redis
SETNXdistributed locking with automatic 10-minute TTL expiration timers to guarantee atomic seat locks during concurrent traffic bursts. - 🗺️ Interactive Seat Mapping & Real-Time Lock Timers: Dynamic client-side venue layout rendering with instant seat status updates (Available, Temporarily Locked, Sold Out).
- 🔄 Asynchronous Event-Driven Architecture: Decouples transactional billing workflows from notifications using RabbitMQ event queues for high resilience and zero user latency.
- 📊 Organizer Real-Time Analytics Dashboard: Live sales progress metrics, revenue breakdowns, seat availability percentages, and custom venue layout generation tools.
- 🌙 Modern UX & Dark Mode Support: Sleek, responsive user interface built with Next.js 16 (App Router), React 19, and TailwindCSS, featuring full RTL and Vazirmatn typography support.
- 🛡️ JWT Role-Based Access Control: Secure authentication separating regular event buyers from event organizers and platform administrators.
- 🧪 Mutation-Tested Reliability: Core reservation and lock acquisition modules validated using Mutation Testing (achieving a 95.2% mutant kill rate).
| Domain | Technology | Role |
|---|---|---|
| Backend Services | Golang | High-throughput decoupled microservices |
| Frontend Web App | Next.js 16, React 19, TailwindCSS | Interactive client app & organizer admin panel |
| In-Memory Store | Redis 7 | Distributed locking (SETNX), TTL timers & caching |
| Message Broker | RabbitMQ 3 | Asynchronous event publishing & Saga orchestration |
| Primary Database | PostgreSQL 15 | Relational storage for users, venues, events & billing |
| DevOps & IaC | Docker Compose, Terraform | Local orchestration & infrastructure provisioning |
.
├── backend/ # Go Microservices
│ ├── cmd/ # Service entry points (reservation, catalog, billing, etc.)
│ ├── internal/ # Domain logic (reservation, identity, catalog, billing)
│ └── pkg/ # Shared packages (auth/JWT, Redis locks, RabbitMQ client)
├── frontend/ # Next.js Web Client & Admin Dashboard
│ ├── src/app/ # Next.js App Router (pages, event details, admin panel)
│ └── src/components/ # Reusable UI components & seat map renderer
├── docs/ # Comprehensive Architecture & Design Artifacts
│ ├── architecture/ # UML diagrams (Use Case, Class, Sequence, Activity, Deployment)
│ ├── operations/ # Incident management framework & on-call rotations
│ ├── postmortems/ # Root-cause analysis reports for infrastructure outages
│ ├── qa/ # Mutation testing reports and test strategies
│ └── scrum/ # Jira backlog export CSV & Sprint Burndown charts
├── infrastructure/ # IaC configurations (Terraform)
└── docker-compose.yml # Infrastructure orchestration (Postgres, Redis, RabbitMQ)
Spin up PostgreSQL, Redis, and RabbitMQ containers:
docker compose up -dNavigate to the frontend directory and start the Next.js dev server:
cd frontend
npm install
npm run devOpen your browser and navigate to:
- 🌐 User Discovery & Seat Booking: http://localhost:3000
- 📊 Organizer Admin Panel: http://localhost:3000/admin
To run the Go reservation service locally:
cd backend
go run cmd/reservation/main.go- Unit & Concurrency Tests: Run concurrent lock acquisition tests simulating 1,000+ simultaneous booking requests:
cd backend/internal/reservation go test -v -run TestConcurrentSeatLocking
- Mutation Testing: Validated via custom mutation operators to ensure 95.2% test suite effectiveness.
The docs/ directory includes extensive software engineering deliverables:
- Product Vision Document & Risk Analysis Report
- UML Diagrams: Vector diagrams for Use Case, Class, Sequence, Activity, Component, and K8s Deployment Topology.
- Postmortem Incident Reports: Detailed RCA write-ups for payment gateway outages, queue worker failures, and network partitions.
- Scrum & Agile Management: Jira sprint exports and Burndown charts.
Distributed under the MIT License. See LICENSE for more information.



