18-02-2026

Ngantri DPMPTSP

"Sistem antrian online berbasis website untuk pelayanan DPMPTSP Lombok Barat"

Ngantri DPMPTSP

Sistem Antrian Dinas Penanaman Modal dan Perizinan

Aplikasi web untuk booking antrian online dengan sistem hybrid online-offline. Dibangun untuk memudahkan masyarakat dalam mengakses layanan dinas penanaman modal dan perizinan satu pintu.

🚀 Fitur Utama

Untuk User (Publik)

  1. Booking Antrian Online - Form sederhana dengan input nama, telepon, dan pilihan layanan
  2. Generate QR Code - Setiap booking mendapatkan QR code yang bisa dicetak/disimpan
  3. Real-time Queue Status - Lihat posisi antrian, status, dan estimasi waktu
  4. Dashboard Tracking - Pantau antrian Anda kapan saja dengan search dan filter
  5. Mobile Friendly - Interface yang responsif dan mudah digunakan di semua device

Untuk Admin

  1. Manajemen Antrian Real-time - Update status antrian secara langsung
  2. CRUD Layanan - Tambah, ubah, hapus layanan (support 21+ layanan)
  3. Dashboard Statistik - Lihat total antrian, sedang dilayani, dan sudah selesai
  4. Integrasi Hybrid - Kelola antrian online dan offline dalam satu sistem

📋 Persyaratan

  1. Node.js 18+
  2. Akun Supabase (gratis)
  3. Browser modern (Chrome, Firefox, Safari, Edge)

⚡ Quick Start

  1. Clone atau Download Project
git clone <repository-url>
cd <project-folder>

  1. Setup Supabase
  2. Buat akun di https://supabase.com
  3. Buat project baru
  4. Salin Project URL dan Anon Key
  5. Setup Environment Variables
# Buat file .env.local
NEXT_PUBLIC_SUPABASE_URL=your_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key

  1. Setup Database
  2. Buka SQL Editor di Supabase Dashboard
  3. Copy-paste isi /scripts/init-database.sql
  4. Jalankan SQL
  5. Install & Run
npm install
npm run dev

Buka http://localhost:3000

📱 Pages & Routes

RouteDeskripsiAkses
/Halaman utamaPublic
/bookingForm booking antrianPublic
/booking-confirmation/[id]Konfirmasi + QR CodePublic
/dashboardCek status antrianPublic
/admin/loginLogin adminPublic
/admin/dashboardDashboard adminProtected

🔐 Admin Login (Demo)

Email: admin@dinas.go.id
Password: admin123


⚠️ Ganti credentials untuk production! Edit di /app/api/admin/login/route.ts

🎨 Design Highlights

  1. Warna: Blue/Indigo untuk user (modern), Dark Gray untuk admin (profesional)
  2. Typography: Clean dan readable untuk semua usia (boomer-friendly)
  3. UX: Simple form, clear status indicators, large buttons
  4. Responsive: Mobile, tablet, desktop optimized

🛠 Tech Stack

  1. Frontend: Next.js 16, React 19, Tailwind CSS v4
  2. Backend: Supabase (PostgreSQL)
  3. Authentication: Supabase Auth + Demo Admin
  4. Real-time: Supabase Realtime subscriptions
  5. QR Code: qrcode library
  6. UI Components: shadcn/ui (Radix UI + Tailwind)

📊 Database Schema

Layanan (21 default)

- Pendaftaran Perusahaan Baru
- Perubahan Data Perusahaan
- Permohonan Izin Usaha
- ... (18 more)


Tables

  1. services - Master data layanan
  2. bookings - Data antrian (online + offline)
  3. queue_history - Riwayat antrian

Lihat /SETUP_GUIDE.md untuk detail schema lengkap.

🔄 Alur Hybrid Online-Offline

User Web Admin Office Database (Supabase)
| | |
+-- Book Antrian ---------> Supabase ---------> Store in DB
| | |
+-- Get QR Code Real-time Update Real-time Sync
| | |
+-- Check Status <------- Admin Updates ---------> Query DB
| | |
+-- See Position & Time | |
| |
Update Status in Admin Panel |
+--------> Update booking status


📦 Deployment

Deploy ke Vercel (Recommended)

  1. Push ke GitHub
  2. Import project di Vercel
  3. Set environment variables
  4. Deploy!
npm run build


🐛 Troubleshooting

Q: Form booking tidak submit? A: Pastikan environment variables sudah benar dan Supabase project aktif

Q: Admin dashboard kosong? A: Cek apakah sudah login dengan credentials yang benar

Q: QR Code tidak muncul? A: Clear browser cache dan refresh halaman

Lihat /SETUP_GUIDE.md untuk troubleshooting lengkap.

📞 Support

Dokumentasi lengkap: /SETUP_GUIDE.md

📝 License

Dibangun untuk PKL Dinas Penanaman Modal dan Perizinan 2026