Arsitektur Sistem
Gambaran Umum
Aplikasi Absensi GPS menggunakan arsitektur terdistribusi yang terdiri dari tiga komponen utama:
- Backend - Aplikasi server berbasis Laravel
- Frontend Admin - Aplikasi web berbasis Vue.js
- Aplikasi Mobile - Aplikasi Android untuk siswa
Teknologi yang Digunakan
Backend
- Laravel 12 - Framework PHP untuk pengembangan backend
- MySQL - Database relasional untuk penyimpanan data
- Laravel Sanctum - Untuk autentikasi API frontend
- API Key Authentication - Untuk autentikasi API mobile
Frontend
- Vue.js 3 - Framework JavaScript untuk pengembangan frontend
- Inertia.js - Library untuk menghubungkan Laravel dan Vue.js
- Shadcn UI - Komponen UI untuk tampilan yang konsisten
- Chart.js - Library untuk membuat visualisasi data
Mobile
- Android (Kotlin) - Platform untuk aplikasi mobile
- Retrofit - Library untuk komunikasi HTTP dengan API
- Google Maps API - Untuk fitur GPS dan peta
Alur Data
- Siswa menggunakan aplikasi Android untuk melakukan absensi dengan GPS
- Aplikasi Android mengirim data absensi ke backend melalui API
- Backend memproses dan menyimpan data absensi ke database
- Admin/Guru mengakses data absensi melalui frontend web
- Frontend mengambil data dari backend melalui API
Struktur Database
Aplikasi ini menggunakan database MySQL dengan struktur tabel sebagai berikut:
Tabel users
- id (primary key)
- name
- password
- role (admin, guru)
Tabel kelas
- id (primary key)
- nama_kelas
- deskripsi
Tabel siswa
- id (primary key)
- id_siswa (unique)
- nama
- password
- kelas_id (foreign key)
- alamat
- no_telp
Tabel absensi
- id (primary key)
- siswa_id (foreign key)
- tanggal
- waktu_masuk
- waktu_keluar
- status (hadir, sakit, izin, alpha)
- lokasi_masuk
- lokasi_keluar
Keamanan
- API Key Authentication - Untuk mengamankan API yang diakses oleh aplikasi mobile
- Laravel Sanctum - Untuk mengamankan API yang diakses oleh frontend
- Password Hashing - Untuk mengamankan password pengguna
- CSRF Protection - Untuk melindungi dari serangan CSRF
- Validasi Input - Untuk mencegah SQL Injection dan XSS