Web-Based QR Code Attendance & Permission Management System
Sistem Presensi Online Siswa & Manajemen Perizinan Berbasis QR Code dari Kartu Pelajar untuk SMP Muhammadiyah Tonjong
Fitur Utama • Arsitektur System • Panduan Instalasi • Struktur Direktori • Tim Pengembang
AbsensiScan SPEMTO v1.0 adalah sistem manajemen presensi digital dan pengajuan perizinan siswa yang terintegrasi secara otomatis menggunakan Scanner QR Code Kartu Pelajar. Aplikasi ini dikembangkan khusus untuk menyederhanakan operasional kehadiran, rekapitulasi data harian, serta pemantauan perizinan di SMP Muhammadiyah Tonjong, Kabupaten Brebes.
Aplikasi ini menggunakan backend tangguh Laravel 11, database relasional MySQL, serta otentikasi multi-role aman berbasis Sanctum API Tokens & Custom Access Control.
| Emoji | Fitur Utama | Deskripsi Detail |
|---|---|---|
| 🏷️ | Scan QR Code Kartu Pelajar | Pemindaian kehadiran super cepat menggunakan QR Scanner/Barcode Scanner pada kartu pelajar siswa dengan pencatatan jam_scan dan tanggal otomatis. |
| 👥 | Master Data Terstruktur | Pengelolaan data lengkap Siswa, Guru, Kelas (7A–9C), serta pendaftaran aktif Tahun Ajaran (2026/2027). |
| 🔑 | Multi-Role Access Control | Pembagian hak akses khusus untuk Administrator/Petugas, Guru / Wali Kelas, serta Siswa / Pengurus Kelas. |
| 📝 | Manajemen Izin & Sakit | Pengajuan dan persetujuan (approval) surat izin/sakit siswa secara terpusat dengan dukungan lampiran dokumen bukti. |
| 🛡️ | Integritas Relasi Wali & Pengurus | Pemetaan otomatis antara Ketua Kelas/Pengurus Kelas ke daftar Siswa dan Wali Kelas ke tabel User. |
| 📜 | Activity & Login Logging | Pencatatan otomatis setiap aksi pengguna (Activity Logs) dan histori masuk akun (Login Logs) untuk keamanan data. |
| 🧹 | Optimized Caching & Symlink | Mendukung pemuatan gambar bukti izin/foto via storage:link dan siap di-deploy ke server produksi secara cepat. |
ALUR PROSES PRESENSI & IZIN:
[Scanner QR Code / User Device]
│
▼ (Kirim NISN / Code)
[Laravel Backend Engine]
│
▼
{Autentikasi & Validasi}
├──────► (Valid QR Scan) ──► [Record Presensi: jam_scan & tanggal] ──┐
│ │
└──────► (Form Pengajuan) ──► [Record Izin/Sakit: Pending] ──────────┼──► [(MySQL Database)] ──► [Dashboard Rekapitulasi]
│
- Core Engine: PHP 8.2+ & Laravel Framework 11.x
- Database: MySQL 8.0+
- Authentication: Laravel Sanctum / Token-Based API
- Frontend UI: Bootstrap 5, AdminLTE, OverlayScrollbars
- Helpers: QrCode Helper Engine & Activity Logger
- PHP >= 8.2
- MySQL / MariaDB Server
- Composer >= 2.x
- Web Server (Nginx / Apache / XAMPP)
-
Clone Repository
git clone https://github.com/dev-spemto/AbsensiScan.git cd AbsensiScan/server -
Install Dependency Composer
composer install -
Konfigurasi File Environment Salin file
.env.examplemenjadi.env, lalu sesuaikan konfigurasi database Anda:cp .env.example .env php artisan key:generateAtur kredensial database pada file
.env:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=presensi_siswa DB_USERNAME=root DB_PASSWORD= -
Jalankan Migrasi Database & Seeder
php artisan migrate --seed -
Hubungkan Symlink Storage (Wajib untuk direktori foto & file bukti izin)
php artisan storage:link -
Jalankan Server Lokal
php artisan serveAkses dashboard melalui browser di:
http://127.0.0.1:8000
AbsensiScan/server/
├── app/
│ ├── Helpers/
│ │ └── QrCodeHelper.php # Engine Helper Pembuat/Pembaca QR Code
│ ├── Http/Controllers/ # Controller Presensi, Izin, Siswa, & Auth
│ └── Models/ # Eloquent Models (Siswa, Presensi, Izin, dll)
├── database/
│ └── migrations/ # 19 File Migrasi Database
├── public/
│ ├── storage/ # Symlink Direktori Penyimpanan Berkas
│ └── vendor/ # Asset Frontend (AdminLTE, OverlayScrollbars)
├── resources/
│ └── views/ # Blade Views Tampilan Application UI
├── routes/
│ ├── api.php # Endpoint API Scanner & Mobile
│ └── web.php # Routing Dashboard & Auth Session
└── README.md # Dokumentasi Resmi Project
Jika hendak merilis aplikasi ke server produksi (production VPS/Hosting), jalankan perintah optimasi berikut:
# Set .env: APP_ENV=production & APP_DEBUG=false
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan optimize
Sistem ini dikembangkan dan dikelola secara penuh oleh Tim IT / Dev SPEMTO:
- 🏫 Lembaga: SMP Muhammadiyah Tonjong (SPEMTO)
- 📍 Alamat: Jl. Raya Linggapura No.46, Kecamatan Tonjong, Kabupaten Brebes, Jawa Tengah
- 🌐 Website Resmi: https://smpmuhtonjong.sch.id
- 🐙 GitHub Organization: @dev-spemto
© 2026 Tim IT SMP Muhammadiyah Tonjong. All Rights Reserved.
Dedicated to Digitalizing School Attendance & Operational Excellence.