PhpDev.App
ryanaidilp/sistem_absensi_pegawai

ryanaidilp/sistem_absensi_pegawai

Stars: 130

Forks: 94

Pull Requests: 34

Issues: 21

Watchers: 5

Last Updated: 2023-03-10 12:52:22

This website contains API Backend and employee data management for SiAP application. This website is built with Laravel, Tailwind CSS, Vue JS, and Inertia JS. This website also has an attendance page (QR Code) and a table to display employee attendance data.

License: GNU General Public License v2.0

Languages: Shell, PHP, Vue, Blade

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 perintah php 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 perintah php 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.