Source code absensi wajah dengan PHP GitHub

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Show

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

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.

Source code absensi wajah dengan PHP GitHub

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

      ├── database
        └── csv
          ├── users.csv
          └── departments.csv
      
      0 untuk membuat admin baru atau jalankan perintah
      ├── database
        └── csv
          ├── users.csv
          └── departments.csv
      
      1 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

      ├── database
        └── csv
          ├── users.csv
          └── departments.csv
      
      2, 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

      ├── database
        └── csv
          ├── users.csv
          └── departments.csv
      
      3 tambahkan option
      ├── database
        └── csv
          ├── users.csv
          └── departments.csv
      
      4 untuk menentukan tahun libur yang di-generate (default
      ├── database
        └── csv
          ├── users.csv
          └── departments.csv
      
      5). Pastikan anda sudah mendapatkan API Key dari Calendarific API.

    • Buat kode absen dengan jalankan perintah

      ├── database
        └── csv
          ├── users.csv
          └── departments.csv
      
      6 lalu buat daftar absen dengan perintah
      ├── database
        └── csv
          ├── users.csv
          └── departments.csv
      
      7. 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