Lewati ke isi

Domain: Absensi & RFID

SSOT untuk modul kehadiran Scola — absensi siswa, absensi staf, RFID, rekap kehadiran.

Last verified: 2026-04-05


1. Visi & Best Practice

1.1 Regulasi Acuan

Regulasi Relevansi
Permendikbud tentang kehadiran siswa Kehadiran minimal untuk naik kelas (biasanya 75-90%)
SNP Standar Proses Kehadiran sebagai komponen penilaian proses
UU Ketenagakerjaan Kehadiran staf sebagai dasar payroll

1.2 Kondisi Ideal

Absensi Siswa (per session): - Guru mengabsen siswa per pertemuan (session/jam pelajaran) - Status: Hadir (H), Sakit (S), Izin (I), Alpa (A) - Integrasi dengan izin siswa (domain kesiswaan): izin → otomatis I/S - Rekap per siswa, per kelas, per periode - Dashboard: persentase kehadiran, trend, siswa bermasalah

Absensi Staf: - Self check-in/check-out (lokasi-based atau manual) - Rekap kehadiran staf per periode - Integrasi dengan payroll (kehadiran → komponen gaji)

RFID (Opsional): - Tap RFID card → auto-record kehadiran - RFID card registration per siswa/staf - Device management (RFID reader) - Event ingestion API (dari hardware) - Fallback: manual entry jika RFID down


2. Arsitektur & Data Model

2.1 Backend Modules

Module Tanggung Jawab
scola_attendance RFID cards/devices/events/monitoring/config + attendance rules siswa
scola_hr_attendance Self attendance staf, GPS radius validation, face registration/verification

Modular boundary note: - SC-ATTEND+ memakai feature flags scola_rfid dan scola_face_recognition. - Staf self-attendance berada di scola_hr_attendance dan wajib mengikuti scola_face_recognition, bukan scola_people. - SC-PEOPLE tetap mengacu ke scola_hr + scola_payroll untuk data pegawai, cuti, dan payroll.

2.2 Frontend Structure

src/views/AttendanceManagement/
├── Faculty/
│   ├── Attendance.vue                # Absensi per session (guru)
│   ├── AttendanceSheet.vue           # Sheet input kehadiran
│   └── AttendanceReport.vue          # Rekap kehadiran guru view
├── Admin/
│   ├── AttendanceSheetList.vue       # Semua sheet (admin)
│   ├── AttendanceBySession.vue       # Detail per session
│   ├── Config/AttendanceConfig.vue   # Konfigurasi kehadiran siswa + staf + RFID
│   └── RFID/                         # RFID cards/devices/events/monitoring/config
├── Staff/
│   └── SelfAttendance.vue            # Self check-in/out staf
└── Student/
    └── AttendanceHistory.vue          # Riwayat kehadiran siswa

2.3 Key Capabilities

Capability Roles
students.attendance.edit teacher (input absensi per session)
students.attendance.view teacher, vice_principal_student_affairs, principal (rekap read-only), admin
hr.attendance.view all staff (personal self-attendance; runtime gate scola_face_recognition)
settings.rfid.view admin (RFID management)

2.4 API Endpoints

Endpoint Method Deskripsi
/api/rfid/cards GET Daftar kartu RFID dengan filter
/api/rfid/cards POST Registrasi kartu RFID
/api/rfid/cards/<id> PUT, DELETE Update/hapus kartu RFID
/api/rfid/cards/import POST Bulk import kartu RFID
/api/rfid/cards/<id>/report-lost POST Laporkan kartu hilang dan replacement
/api/rfid/cards/<id>/history GET Riwayat/audit kartu
/api/rfid/devices GET Daftar perangkat RFID
/api/rfid/devices POST Registrasi perangkat RFID
/api/rfid/devices/<id> PUT, DELETE Update/hapus perangkat RFID
/api/rfid/devices/<id>/regenerate-secret POST Regenerasi secret perangkat
/api/rfid/devices/<id>/security-log GET Audit keamanan perangkat
/api/rfid/events GET Log event RFID
/api/rfid/events/<id>/retry POST Reprocess event gagal
/api/rfid/monitoring GET Dashboard monitoring RFID
/api/rfid/config GET, POST Bundle konfigurasi admin: config, rules, staff_config
/api/rfid/ingest POST Event ingestion dari hardware
/api/rfid/ping GET, POST Health/ping endpoint reader
/api/v1/attendance/settings GET Settings staf untuk self attendance
/api/v1/attendance/validate-location POST Validasi GPS radius staf
/api/v1/attendance/face/register POST Registrasi wajah staf
/api/v1/attendance/check-in POST Check-in staf
/api/v1/attendance/check-out POST Check-out staf

2.5 Deploy & Upgrade Notes

  • scola_attendance sekarang bergantung eksplisit pada scola_hr_attendance.
  • Untuk rollout backend absensi, upgrade canonical yang dipakai adalah -u scola_hr_attendance,scola_attendance.
  • Workflow backend GitHub Actions harus memperlakukan dua modul ini sebagai pasangan upgrade; jika salah satu berubah, keduanya ikut di-upgrade.
  • Perubahan paket untuk attendance staf harus lewat workflow install add-ons atau upgrade tier, bukan toggle ad-hoc modul satuan.
  • Checklist operasional detail ada di docs/operations/deployment-backend.md dan docs/operations/ci-cd.md.

3. Fitur & Status Implementasi

Fitur Status Catatan
Absensi siswa per session (guru) ✅ Done AttendanceSheet
Status H/S/I/A ✅ Done
Rekap kehadiran (guru) ✅ Done AttendanceReport
Rekap kehadiran (admin) ✅ Done AttendanceSheetList + BySession
Dashboard kehadiran ✅ Done AttendanceDashboard
Self check-in/out staf ✅ Done SelfAttendance
RFID card management ✅ Done Canonical GET/POST /api/rfid/cards
RFID device management ✅ Done Canonical GET/POST /api/rfid/devices
RFID event log & retry ✅ Done Canonical GET /api/rfid/events + retry endpoint
RFID monitoring dashboard ✅ Done Canonical GET /api/rfid/monitoring
RFID admin config bundle ✅ Done Canonical GET/POST /api/rfid/config tanpa fallback legacy
RFID event ingestion API ✅ Done /api/rfid/ingest
RFID health check ✅ Done /api/rfid/ping
Riwayat kehadiran (siswa) ✅ Done AttendanceHistory
Principal: rekap kehadiran ✅ Done Via principal routes (read-only)
Wakasek kesiswaan: rekap kehadiran ✅ Done Via vice-principal routes
Integrasi izin siswa ↔ absensi ✅ Done Auto-bridge: approved leave → pre-fill attendance
Integrasi kehadiran staf ↔ payroll ⚠️ Partial Data ada tapi bridge belum seamless
Geo-location check-in staf ✅ Done GPS radius validation ke koordinat sekolah
Face verification staf ✅ Done Face registration + verification saat self attendance
RFID offline mode ❌ Gap Requires constant connection

4. Gap Analysis & Backlog

P1 — Important

Gap Dampak Solusi Status
~~Izin siswa → absensi bridge~~ ~~Siswa izin masih tercatat alpa~~ Auto-update + pre-fill attendance when leave approved ✅ Done

P2 — Nice to Have

Gap Dampak Solusi
RFID offline buffering Internet drop → missed taps Local buffer + sync
Integrasi payroll staf Kehadiran staf belum menjadi komponen payroll end-to-end Bridge payroll berbasis attendance summary
Observability hardware RFID Diagnosis device issue masih reaktif Tambah health metrics/alerting per reader

5. File References

Frontend

  • src/router/teacherRoutes.js — Faculty attendance routes (line ~23-80)
  • src/router/adminRoutes.js — Admin attendance routes
  • src/views/AttendanceManagement/ — All attendance views
  • src/views/AdminViews/RFID/ — RFID cards, devices, events, monitoring, config

Backend

  • scola_attendance/ — Attendance + RFID module
  • scola_hr_attendance/ — Staff self-attendance, GPS, face verification

7. Panduan Konfigurasi Implementor

configuration-guides/absensi.md


8. Panduan End User

Role Panduan
Staff TU / Guru admin-staff.md, teacher.md
Ortu / Siswa parent.md, student.md
Quick Start input-absensi-harian.md