![]() |
|---|
Aplikasi web absensi karyawan menggunakan QR Code dan GPS.
- Laravel 11
- Laravel Jetstream
- Endroid QR Code
- Leaflet.js
- OpenStreetMap
- MySQL/MariaDB
- Composer
- NPM & Node.js atau Bun
- PHP 8.3
- MySQL/MariaDB
-
Clone/download repository ini
-
Buat database (jika tidak menggunakan SQLite)
-- nama database sesuaikan dengan yang ada di .env CREATE DATABASE db_absensi_karyawan;
-
Jalankan perintah
# untuk membuat file `.env` composer run-script post-root-package-install # untuk instalasi dependency php composer install # untuk instalasi dependency javascript npm install # atau bun install # untuk membuat key aplikasi php artisan key:generate --ansi --force # untuk menghubungkan storage ke public php artisan storage:link # untuk membuat tabel database [BUAT DATABASE DAHULU] php artisan migrate # untuk membuat file css dan javascript yang diperlukan npm run build # atau bun run build
Menjalankan aplikasi (local)
php artisan serve
Pilih salah satu opsi berikut:
- Jalankan perintah
php artisan db:seed DatabaseSeederuntuk menyiapkan data awal - Jalankan perintah
php artisan db:seed FakeDataSeederuntuk menyiapkan data awal beserta data dummy (absensi & karyawan)
| Scan Page | Scan Page (Mobile) |
|---|---|
![]() |
![]() |
| Riwayat Absensi Karyawan | Pengajuan Izin | Riwayat Pengajuan Izin |
|---|---|---|
![]() |
![]() |
![]() |
| Dashboard Admin | Dashboard Admin Dark |
|---|---|
![]() |
![]() |
| Barcode | Create/Edit Barcode |
|---|---|
![]() |
![]() |
| Absensi Karyawan | ||
|---|---|---|
| Absensi per hari | Absensi per minggu | Absensi per bulan |
![]() |
![]() |
![]() |
| Data Karyawan | Create/Edit Data Karyawan |
|---|---|
![]() |
![]() |
| Export/Import from/to XLSX | |
|---|---|
| Export/Import Data Karyawan & User | Export/Import Data Karyawan & User + Preview Data |
![]() |
![]() |
| Export/Import Data Absensi & User | Export/Import Data Absensi & User + Preview Data |
![]() |
![]() |
| Pengajuan Izin (Admin) | Detail Pengajuan Izin |
|---|---|
![]() |
![]() |
Fitur pembatasan login perangkat untuk mencegah titip absen. Device token (UUID) otomatis digenerate dan disimpan di localStorage browser saat login.
-
Login dari perangkat berbeda ditolak
-
Admin dapat mereset perangkat dari menu Employee
-
Admin & superadmin tidak terpengaruh
-
Dapat dinonaktifkan via .env:
DEVICE_RESTRICTION_ENABLED=false
Karyawan yang absen masuk tapi pulang sebelum jam shift berakhir akan mendapatkan status 'Tidak Tuntas' (incomplete), bukan 'Hadir'. Deteksi otomatis saat scan keluar.
Pengajuan izin tidak langsung disetujui, melainkan melalui proses approval:
- Karyawan mengajukan izin/sakit via form
- Status pengajuan: Menunggu (pending)
- Admin menyetujui atau menolak pengajuan
- Jika disetujui, data absensi otomatis terisi untuk rentang tanggal tersebut
- Karyawan dapat melihat status pengajuannya di halaman Riwayat Izin
Atau, beri star...⭐⭐⭐⭐




















