Sistem Absensi Pegawai (SiAP)
Website berisi API Backend dan manajemen data pegawai untuk aplikasi SiAP. Website ini dibangun dengan Laravel, Tailwind CSS, Vue JS, dan Inertia JS. Website ini juga memiliki halaman absensi (QR Code) dan tabel untuk menampilkan data kehadiran pegawai.
About
Aplikasi dan website ini dibangun untuk mengatasi permasalahan pencatatan absensi pegawai di lingkungan kantor pemerintahan Kecamatan Balaesang. Pencatatan kehadiran pegawai di kantor pemerintahan Kecamatan Balaesang selama ini masih dilakukan secara manual yaitu dengan memberi paraf pada absensi.
Permasalahan timbul saat sebagian besar pegawai tidak jujur dalam mengisi absen tersebut, ada yang titip ke teman untuk diparaf namanya, ada yang langsung isi absen sampai beberapa hari ke depan, ada yang mengisi absen diluar waktunya, dsb. Dengan adanya sistem ini, diharapkan bisa membantu mengatasi permasalahan-permasalahan yang telah disebutkan.
Feature
- Halaman absensi yang menampilkan QR Code untuk di-scan oleh pegawai menggunakan aplikasi SiAP Android.
- Halaman cetak yang menampilkan tabel data kehadiran pegawai (PNS & Honorer). Halaman ini juga menampilkan daftar Izin, Dinas Luar, dan Cuti di hari berjalan.
- Halaman administrator menggunakan Voyager
- API Backend untuk SiAP
- Export daftar hadir harian, bulanan, dan tahunan ke dalam file excel (.xlsx)
Konfigurasi
-
Environment Variable
CALENDARIFIC_KEY = *Your calendarific API-KEY* ONESIGNAL_APP_ID='Your One Signal APP-ID' ONESIGNAL_API_KEY='Your One Signal API-KEY' ONESIGNAL_API_URL='https://onesignal.com/api/v1/notifications' MEDIA_URL="Your media storage url" #Required if you deploy app in shared hosting LATITUDE_OFFSET="latitude of your office location" LONGITUDE_OFFSET="longitude of your office location"
-
Calendarific Key
Calendarific Key diperlukan untuk mendapatkan data hari libur nasional dari Calendarific API.
-
One Signal APP_ID, API_KEY, & API_URL
Variabel ini diperlukan untuk mengirim push notification ke aplikasi SiAP. Untuk mendapatkan data ini, silahkan buat akun di One Signal lalu ikuti petunjuk pada dokumentasi resminya.
-
Latitude & Longitude Offset
Data ini diperlukan untuk mengecek jarak user dari kantor saat melakukan presensi. Hal ini dilakukan untuk memastikan bahwa user melakukan presensi di kantor.
-
-
Instalasi & Konfigurasi
-
Clone repository ini
-
Jalankan perintah
composer install
-
Jalankan perintah
npm install
&npm run dev
-
Jalankan perintah
cp .env.example .env
-
Isikan konfigurasi database anda dan juga Environment Variable diatas pada file .env
-
Jalankan perintah
php artisan key:generate
-
Jalankan perintah
php artisan migrate
-
Jalankan perintah
php artisan voyager:install
untuk menginstall admin panel Voyager -
Setelah voyager berhasil diinstall, buat admin dengan menjalankan perintah
php artisan voyager:admin {[email protected]} --create
untuk membuat admin baru atau jalankan perintahphp artisan voyager:admin {[email protected]}
untuk menjadikan user yang sudah ada sebagai admin -
Buat file csv berisi data user dan department lalu masukkan ke dalam folder database dengan struktur
├── database └── csv ├── users.csv └── departments.csv
pastikan struktur data pada csv sesuai dengan struktur tabel.
-
Jalankan perintah
php artisan db:seed
, jika tidak ada file csv pada proses sebelumnya, comment/hilangkan UserSeeder & DepartmentSeeder dari DatabaseSeeder.php sebelum menjalankan seeder -
Untuk mengambil dan menyimpan data hari libur nasional, jalankan perintah
php artisan holiday:generate
tambahkan option--year
untuk menentukan tahun libur yang di-generate (default--year=2021
). Pastikan anda sudah mendapatkan API Key dari Calendarific API. -
Buat kode absen dengan jalankan perintah
php artisan absent:code
lalu buat daftar absen dengan perintahphp artisan absent:attende
. Pastikan data User dan Department sudah ada saat menjalankan perintah ini. -
Sebelum masuk ke aplikasi, comment/hilangkan baris kode berikut dari file voyager.php pada folder config untuk mencegah error undefined route
'widgets' => [ "App\\Widgets\\UserWidget", "App\\Widgets\\DepartmentWidget", //comment atau hapus baris ini ],
- Jalankan perintah
php artisan serve
lalu kunjungi url localhost:8000
-
To-Do List
- Halaman untuk menampilkan QR Code dan Countdown Timer.
- API Backend untuk Mobile App.
- Tracking kehadiran pegawai (PNS & Honorer)
- Export data laporan kehadiran (Excel)
- Harian
- Bulanan
- Tahunan
License
SIAP is open-sourced software licensed under the GPL v2.0.