Tentang Proyek

RunForNation adalah website pendaftaran resmi event lari yang diadakan di GOR Pontianak. Website ini dirancang untuk menampung dan mengelola pendaftaran hingga 1.500 peserta secara online — menggantikan proses pendaftaran manual yang rentan antrian dan kesalahan data.

Dibangun dengan Laravel, sistem ini menyediakan alur pendaftaran yang mulus mulai dari pengisian formulir, pemilihan kategori lomba, pembayaran online, hingga pengunduhan e-ticket resmi — semuanya dalam satu platform yang cepat dan aman.

Fitur Utama

Formulir Pendaftaran

Pendaftaran online dengan validasi data peserta secara real-time

Pilihan Kategori

Beberapa kategori jarak lari dengan kuota dan harga berbeda

Pembayaran Online

Integrasi payment gateway Midtrans — transfer, QRIS, kartu kredit

E-Ticket & QR Code

Tiket digital berisi QR Code unik untuk verifikasi di lokasi

Dashboard Panitia

Monitoring pendaftaran, kuota tersisa, dan rekap pembayaran

Cek Status Daftar

Peserta dapat cek status & cetak ulang tiket kapan saja

Tantangan & Solusi

Lonjakan traffic saat pembukaan pendaftaran

Ribuan pengguna mengakses website serentak saat pendaftaran dibuka, berpotensi menyebabkan server down dan race condition pada kuota yang tersisa.

Implementasi queue system pada Laravel untuk mengantrekan proses pendaftaran, dikombinasikan dengan database locking optimistic untuk mencegah overselling kuota.

Keamanan pembayaran dan validasi tiket

Risiko pembuatan tiket palsu dan manipulasi status pembayaran yang bisa merugikan panitia dan peserta yang mendaftar secara sah.

Integrasi webhook Midtrans dengan signature key verification, dan QR Code tiket digenerate dengan token unik terenkripsi yang divalidasi saat scan di lokasi event.

Manajemen 1.500 data peserta yang efisien

Panitia membutuhkan akses cepat ke data seluruh peserta untuk keperluan cetak nomor BIB, pengelompokan kategori, dan rekap akhir.

Dashboard admin dengan fitur filter, search, dan export Excel/PDF menggunakan Laravel Excel, sehingga panitia bisa mengolah data tanpa perlu akses langsung ke database.