L3:limited-quota-event-ticketing · Software Wing · Featured
Limited-quota event ticketing
Transactional booking prevents overselling for premium events, with online payments and QR e-tickets.
- Client
- DariOrdal
- Role
- Full Stack Engineer, freelance in a two-person team
- Period
- Jul 2025 to Aug 2025
Results
57%
Share of repository commits I authored (54 of 95), across 24 merged pull requests
Counted in git history and pull requests from Jul to Aug 2025.
Verified1 transaction
Atomic quota check and decrement prevent selling the last seat twice
Verified in the booking code as a design property, not measured as a production incident count.
Strongly inferred
Problem
DariOrdal sells limited-quota tickets for premium events. Concurrent checkouts risked selling the last seat twice, while gaps between payment and ticket issuance created manual work for organizers.
What I did
- I reorganized the Next.js 14 API into repository and service layers and automated deployment from GitHub.
- I put quota checks and atomic decrements for each ticket tier inside one Prisma checkout transaction to prevent double-selling.
- I connected iPaymu payments and callbacks to QR e-ticket generation and email invoices, covering payment through event entry.
- I built an admin dashboard for event management, sortable and exportable transaction tables, refresh-token sessions and analytics.
Architecture
- ClientTicket storefrontNext.js 14
- ClientAdmin dashboardEvent and transaction management
- ServiceNext.js API routesRepository and service layers
- DataPostgreSQL (Prisma)Ticket quotas and orders
- ExternaliPaymuPayment gateway
Data flow
- Ticket storefront to Next.js API routes (checkout)
- Admin dashboard to Next.js API routes (manage)
- Next.js API routes to PostgreSQL (Prisma) (atomic booking)
- Next.js API routes to iPaymu (payments)
- iPaymu sends asynchronously to Next.js API routes (callbacks)
Tech stack
Next.js 14
TypeScript
Prisma
PostgreSQL
Redis- iPaymu
AWS S3TanStack Table
Tailwind CSS
shadcn/ui
Bun
L2 · Related career entryFull Stack Engineer (freelance) · DariOrdal