Sistem manajemen antrian digital untuk Penerimaan Siswa Baru (PSB) yang mendukung multiple loket dengan notifikasi WhatsApp real-time. Dirancang untuk meningkatkan efisiensi dan mengurangi antrian fisik di institusi pendidikan.
- Mengelola hingga 6 loket secara bersamaan
- Sistem pemanggilan nomor tanpa tumpang tindih
- Status real-time untuk setiap loket
- Notifikasi otomatis saat nomor antrian dipanggil
- Informasi detail loket tujuan
- Konfirmasi pendaftaran dengan nomor antrian
- Monitoring status antrian secara langsung
- Statistik pendaftar (total, dilayani, menunggu)
- Public display untuk ruang tunggu
- Sinkronisasi otomatis data pendaftar
- Backup data harian
- Import data dari formulir online
- Manajemen data pendaftar
- Update status manual
- Sistem pencarian dan filter
- Reset harian dengan backup otomatis
- Backend: PHP 7.4+
- Database: MySQL 5.7+
- Frontend: HTML5, JavaScript ES6, Tailwind CSS
- APIs: Google Sheets API, WhatsApp API
- Libraries: cURL, MySQLi
βββ index.php # Landing page
βββ config.php # Konfigurasi database & API
βββ functions.php # Helper functions
βββ sync.php # Sinkronisasi Google Sheets
βββ dashboard.php # Dashboard utama
βββ dashboard_public.php # Display publik
βββ dashboard_api.php # API endpoint dashboard
βββ login_loket.php # Login loket
βββ control.php # Kontrol panel loket
βββ admin_login.php # Login admin
βββ admin.php # Panel admin
βββ logout.php # Logout loket
βββ logout_admin.php # Logout admin
βββ status_api.php # API status antrian
- PHP 7.4 atau lebih tinggi
- MySQL 5.7 atau lebih tinggi
- Web server (Apache/Nginx)
- Google Sheets API credentials
- WhatsApp API credentials
- Clone repository
git clone https://github.com/classyid/multi-loket-queue-system.git
cd multi-loket-queue-system- Setup Database
CREATE DATABASE loketpsb;
USE loketpsb;
CREATE TABLE pendaftar (
id INT PRIMARY KEY AUTO_INCREMENT,
nama VARCHAR(255) NOT NULL,
whatsapp VARCHAR(20) NOT NULL,
timestamp DATETIME NOT NULL,
nomor_antrian INT NOT NULL,
status ENUM('waiting', 'called', 'done') DEFAULT 'waiting',
loket_id VARCHAR(50) DEFAULT NULL
);
CREATE TABLE log_whatsapp (
id INT PRIMARY KEY AUTO_INCREMENT,
nomor_pendaftar VARCHAR(20) NOT NULL,
message TEXT NOT NULL,
status ENUM('success', 'failed') NOT NULL,
response_msg TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);- Konfigurasi
Edit file
config.php:
define('GOOGLE_SHEET_API_URL', 'YOUR_GOOGLE_SHEETS_API_URL');
define('API_KEY', 'YOUR_WHATSAPP_API_KEY');
define('SENDER', 'YOUR_WHATSAPP_SENDER_NUMBER');
define('DB_HOST', 'localhost');
define('DB_USER', 'your_db_user');
define('DB_PASS', 'your_db_password');
define('DB_NAME', 'loketpsb');- Setup Google Sheets API
- Buat Google Apps Script untuk API endpoint
- Deploy sebagai web app dengan akses publik
- Masukkan URL ke konfigurasi
- Setup WhatsApp API
- Daftar ke provider WhatsApp API
- Dapatkan API key dan sender number
- Masukkan credentials ke konfigurasi
- Akses
/login_loket.php - Pilih loket yang akan dioperasikan
- Gunakan tombol "Panggil Nomor Berikutnya" untuk memanggil antrian
- Akses
/admin_login.php - Login dengan credentials admin
- Kelola data pendaftar dan lakukan reset harian
- Akses
/dashboard_public.phpuntuk melihat status antrian - Akses
/dashboard.phpuntuk monitoring lengkap
Edit array $loket_list di login_loket.php:
$loket_list = [
'loket_1' => 'Loket 1',
'loket_2' => 'Loket 2',
// Tambahkan loket baru
'loket_7' => 'Loket 7',
];Edit function sendWhatsappMessage() di functions.php untuk menyesuaikan template pesan.
Setup cron job untuk menjalankan sync.php:
# Sinkronisasi setiap 5 menit
*/5 * * * * /usr/bin/php /path/to/project/sync.phpGET /dashboard_api.php- Data dashboard utamaGET /status_api.php- Status antrian currentPOST /sync.php- Manual sync dari Google Sheets
- Session-based authentication
- SQL injection protection dengan prepared statements
- Input sanitization dan validation
- HTTPS recommended untuk production
- Fork repository
- Buat feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Buat Pull Request
- β¨ Initial release
- π’ Multi-loket queue management
- π± WhatsApp notifications
- π Real-time dashboard
- π¨βπΌ Admin panel
Distributed under the MIT License. See LICENSE for more information.
- Email: kontak@classy.id
- Tailwind CSS untuk styling
- Font Awesome untuk icons
- Google Sheets API untuk integrasi data
- WhatsApp MPedia API untuk notifikasi
β Jika project ini membantu, jangan lupa berikan star!
