Aplikasi manajemen antrian penjemputan siswa di sekolah. Orang tua bisa mengajukan antrian penjemputan secara online, sedangkan pihak sekolah (guru, petugas/officer, dan admin) memverifikasi dan mengelola proses penjemputan secara real-time — supaya penjemputan lebih tertib, aman, dan tidak menumpuk di gerbang sekolah.
Setiap sekolah memiliki jadwal jam antrian penjemputan (queue window). Saat jam antrian dibuka, orang tua yang anaknya sudah ditandai Ready oleh guru dapat mengambil nomor antrian dari dashboard mereka. Petugas (officer) di lapangan lalu memverifikasi identitas penjemput sebelum siswa diizinkan pulang. Seluruh proses ini dapat dipantau melalui dashboard antrian secara real-time oleh guru, officer, maupun admin sekolah.
- Multi-role login — Super Admin, School Admin, Teacher, Officer, dan Parent, masing-masing dengan dashboard dan hak akses berbeda.
- Manajemen sekolah (Super Admin) — mengaktifkan/menonaktifkan akun School Admin per sekolah.
- Manajemen data sekolah (School Admin) — kelola data kelas, guru, officer, orang tua, dan siswa.
- Penjadwalan antrian — atur jam pre-open, open, dan close untuk setiap jadwal penjemputan per kelas.
- Status kesiapan siswa — guru menandai siswa Ready / Not Ready sebelum orang tua bisa mengambil antrian.
- Request Pickup (Parent) — orang tua memilih anak dan mengambil antrian saat jam antrian sedang dibuka.
- Verifikasi penjemput (Officer) — konfirmasi penjemputan oleh orang tua langsung atau oleh penjemput terotorisasi (dengan PIN), termasuk status on hold jika tidak cocok.
- Dashboard antrian real-time — memantau status antrian: Pending, Active, On Hold, dan Completed.
- Riwayat penjemputan (Pickup History) — catatan siswa yang sudah selesai dijemput.
- Daftar penjemput terotorisasi — orang tua dapat mendaftarkan pihak lain (selain dirinya) yang diizinkan menjemput anak, lengkap dengan PIN keamanan.
- Override jam antrian (mode uji) — memungkinkan simulasi/testing jam buka-tutup antrian tanpa menunggu waktu asli.
| Role | Akses Utama |
|---|---|
| Super Admin | Mengelola akun-akun School Admin di seluruh sekolah |
| School Admin | Mengelola kelas, guru, officer, orang tua, siswa, dan jadwal antrian di sekolahnya |
| Teacher | Menandai status kesiapan (Ready/Not Ready) siswa di kelasnya |
| Officer | Memverifikasi dan mengonfirmasi penjemputan siswa di lapangan |
| Parent | Mengajukan (request) antrian penjemputan untuk anaknya |
- Backend: CodeIgniter 4 (PHP 8.2+)
- Frontend: HTML, Bootstrap 5, JavaScript (Fetch API untuk request antrian secara asynchronous)
- Database: MySQL / MariaDB, dikelola melalui phpMyAdmin
- Database Driver: MySQLi
- Arsitektur: MVC (Model-View-Controller) bawaan CodeIgniter 4
app/
├── Controllers/
│ ├── PickupController.php # Alur request, konfirmasi, dan dashboard antrian
│ ├── Login.php / Register.php # Autentikasi pengguna
│ ├── User.php # Dashboard umum per role
│ ├── SuperAdminController.php # Manajemen sekolah (Super Admin)
│ └── SchoolAdmin/ # Manajemen kelas, guru, officer, orang tua, siswa
├── Models/
│ ├── M_user.php, M_student.php, M_schedule.php, ...
│ ├── PickupModel.php # Data permintaan pickup
│ ├── QueueModel.php # Status & statistik antrian
│ └── AuthorizedPickupModel.php # Data penjemput terotorisasi
├── Views/
│ ├── pickup/ # Halaman request, konfirmasi, riwayat pickup
│ └── ...
└── Config/Routes.php # Definisi seluruh routing aplikasi
-
Clone / extract proyek, lalu install dependency PHP:
composer install
-
Siapkan database melalui phpMyAdmin:
- Buat database baru (contoh:
database_test). - Import struktur tabel (migration ada di
app/Database/Migrations/), lalu jalankan:php spark migrate
- Buat database baru (contoh:
-
Konfigurasi environment — salin file
envmenjadi.env, lalu sesuaikan bagian database:database.default.hostname = localhost database.default.database = database_test database.default.username = root database.default.password = database.default.DBDriver = MySQLi database.default.port = 3306 -
Jalankan server pengembangan:
php spark serve
Aplikasi akan berjalan di
http://localhost:8080.
- Guru menandai siswa sebagai Ready setelah kegiatan sekolah selesai.
- Saat jam antrian dibuka (sesuai jadwal), orang tua membuka menu Request Pickup dan mengambil antrian untuk anaknya.
- Officer di lapangan membuka daftar Pending Request, lalu memverifikasi identitas penjemput (orang tua langsung atau penjemput terotorisasi dengan PIN).
- Setelah terverifikasi, status permintaan berubah menjadi Completed dan tercatat di Pickup History.
user_name : Elva Super
user_email : elva@super
user_pass : pw123
user_name : Elva School
user_email : elva@school
user_pass : pw123
user_name : Elva Parent
user_email : elva@parent
user_pass : pw123
user_name : Elva Officer
user_email : elva@officer
user_pass : pw123
user_name : Elva Teacher
user_email : elva@teacher
user_pass : pw123
Author Notes Merupakan Tugas untuk Mata Kuliah Pemrograman Berbasis Web dengan Bapak Saut Pintubipar Saragih, S.Kom., M.MSI.