The work
LIV DOT brings host operations and the public ticket-buying journey into one event platform. Hosts can create events, manage crew and streaming readiness, and move events through lifecycle states; guests can discover events and select tickets.
The challenge
Hosts and ticket buyers move through different parts of the same event lifecycle. Readiness checks, live-state transitions, ticket inventory, and checkout need to stay understandable while preventing invalid state changes.
Approach and architecture
I kept readiness and lifecycle rules in a pure domain core, with application use cases depending on an event-repository port. The HTTP adapter and UI can change without moving those policies into components.
The Next.js UI uses TanStack Query behind an event-repository port. NestJS endpoints persist event data through TypeORM migrations to PostgreSQL, and lifecycle updates use an atomic expected-version check so stale clients receive a conflict response.
An MSW adapter supports local exploration with controlled latency and failure scenarios, keeping loading, validation, and error states reproducible.
My contributions
- Built a six-step event-creation flow with an optional section-based seat-map builder and preview.
- Implemented host workflows for event details, readiness, crew and streaming, live control, replay, ticketing, and order management.
- Built the guest discovery, event details, seat-selection, multi-event basket, and checkout experience.
- Implemented NestJS event endpoints and PostgreSQL persistence, with version-checked state transitions and migration-managed schema.
- Added deterministic scenarios for readiness blockers, invalid transitions, network failures, and stale-version conflicts.
Outcome
The result is a full-stack event operations product with a frontend-led host and guest experience, an event API, and persistent PostgreSQL records. The public demo is explorable with seeded events; account preview remains browser-local and checkout is simulated, with no production identity or payment provider connected.
Technologies
- Next.js App Router
- React
- TypeScript
- TanStack Query
- Tailwind CSS
- shadcn/ui
- Radix UI
- Zod
- NestJS
- TypeORM
- PostgreSQL
- REST API
- MSW
- Vitest
- React Testing Library
- Playwright
- Docker Compose
