CloudTicket
Full-stack ticketing app with atomic transactions to prevent overselling — ASP.NET Core 8 API, React 19 frontend, PostgreSQL on Supabase, JWT auth.
A scalable, high-accuracy ticketing web application built to solve a real engineering challenge: inventory integrity under high-demand conditions. The core focus is preventing overselling through atomic database transactions that guarantee absolute data consistency.
Tech Stack
| Layer | Technology |
|---|---|
| Backend | ASP.NET Core 8.0 |
| Frontend | React 19 + Vite |
| Database | PostgreSQL (Supabase) |
| Auth | JWT Bearer Tokens (24hr expiry) |
| Password Hashing | BCrypt |
Architecture
CloudTicket/
├── CloudTicket.API/ # ASP.NET Core Web API
│ ├── Controllers/ # API endpoints
│ ├── Models/ # Entity models
│ ├── Services/ # Business logic
│ ├── DTOs/ # Request/response models
│ └── Migrations/ # EF Core migrations
└── cloudticket-ui/ # React frontend (Vite)
API Endpoints
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| POST | /api/auth/register |
No | Register a new user |
| POST | /api/auth/login |
No | Login, receive JWT |
| GET | /api/events |
No | List all events |
| POST | /api/events |
Yes | Create a new event |
| POST | /api/purchases |
Yes | Buy tickets (atomic) |
| GET | /api/purchases/my-tickets |
Yes | View your tickets |
Key Engineering Decision
Ticket purchases are wrapped in atomic transactions — concurrent requests cannot oversell an event. On first run in development, sample data (4 events + 2 test users) is automatically seeded via EF Core migrations.
Tools
ASP.NET Core 8 React 19 Vite PostgreSQL Supabase JWT BCrypt EF Core