Langsung ke konten

← Kembali ke Labs

L3:limited-quota-event-ticketing · Software Wing · Pilihan

Ticketing acara berkuota terbatas

Booking transaksional mencegah overselling tiket acara premium, dengan pembayaran online dan e-ticket QR.

Klien
DariOrdal
Peran
Full Stack Engineer, freelance dalam tim dua orang
Periode
Jul 2025 hingga Agu 2025

Hasil

  • 57%

    Proporsi commit repositori yang saya tulis (54 dari 95), dalam 24 pull request yang di-merge

    Dihitung dari riwayat git dan pull request pada Jul hingga Agu 2025.

    Terverifikasi
  • 1 transaction

    Pengecekan dan pengurangan kuota secara atomik mencegah kursi terakhir terjual dua kali

    Diverifikasi sebagai sifat desain dalam kode booking, bukan diukur dari jumlah insiden produksi.

    Didukung bukti kuat

Masalah

DariOrdal menjual tiket acara premium dengan kuota terbatas. Checkout bersamaan berisiko menjual kursi terakhir dua kali, sementara jeda antara pembayaran dan penerbitan tiket menambah pekerjaan manual penyelenggara.

Yang saya kerjakan

  • Saya menata API Next.js 14 ke dalam lapisan repository dan service, lalu mengotomatiskan deployment dari GitHub.
  • Saya menempatkan pengecekan dan pengurangan kuota secara atomik per tier tiket dalam satu transaksi checkout Prisma untuk mencegah tiket terjual dua kali.
  • Saya menghubungkan pembayaran dan callback iPaymu dengan pembuatan e-ticket QR serta invoice email, dari pembayaran hingga masuk acara.
  • Saya membangun dashboard admin untuk pengelolaan acara, tabel transaksi yang bisa diurutkan dan diekspor, sesi refresh token, serta analytics.

Arsitektur

  1. KlienTicket storefrontNext.js 14
  2. KlienAdmin dashboardPengelolaan acara dan transaksi
  3. LayananNext.js API routesLapisan repository dan service
  4. DataPostgreSQL (Prisma)Kuota tiket dan pesanan
  5. EksternaliPaymuPayment gateway

Alur data

  • 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 S3
  • TanStack Table
  • Tailwind CSS
  • shadcn/ui
  • Bun

L2 · Riwayat karier terkaitFull Stack Engineer (freelance) · DariOrdal