Absensi Karyawan Github Free Guide

If the system calculates payroll, add a field for THR. In the salary.php file, insert:

$thr = ($month == 'March' || $month == 'April') ? ($base_salary * 1) : 0;

Ari was staring at a spreadsheet. Not just any spreadsheet—the attendance spreadsheet. It was a shared Google Sheet with 43 employees, 14 conditional formatting rules, and three different timezone columns.

Every morning, he manually checked who had “checked in” by typing IN in Column C. But yesterday, someone had accidentally deleted rows 12 through 28.

His co-founder, Lina, walked in. “Three people haven’t logged their sick leave. And HR is asking for last month’s attendance report. Also, we have zero budget for attendance software.” absensi karyawan github free

Ari sighed. “We’re a tech startup running on coffee and hope. I’ll find something… free.”


| Project Name | Tech Stack | Key Features | License | GitHub Stars (approx) | |--------------|------------|--------------|---------|------------------------| | Larafast Absensi | Laravel, MySQL, Bootstrap | QR code scan, real-time clock, role management | MIT | 420+ | | OpenHR Attendance | PHP, CodeIgniter, jQuery | GPS location, overtime calculation, PDF reports | GPL-3.0 | 280+ | | Flutter Attendance App | Flutter, Firebase, Riverpod | Cross-platform (Android/iOS), face recognition optional | Apache 2.0 | 560+ | | Django HRM Suite | Django, SQLite, Chart.js | REST API for mobile, automatic late penalty | BSD-3 | 310+ | | React Absensi Karyawan | React, Node.js, MongoDB | PWA support, offline check-in sync | MIT | 190+ |

Sources: GitHub search results (2023–2025) for "absensi karyawan", "employee attendance system", "attendance open source". If the system calculates payroll, add a field for THR

As developers uploaded their code to GitHub, a divergence in technology appeared.

  • The "Modern" Era (Laravel & Vue/React):

  • The "Hardware" Era (Arduino/Raspberry Pi): Ari was staring at a spreadsheet

  • Most free systems implement JWT (JSON Web Tokens) or session-based auth. Few implement two-factor authentication (2FA). For Indonesia's absensi context, many repositories add NIK (National ID) validation.

    Indonesian companies often have a grace period (e.g., 15 menit). The script should calculate late_minutes = check_in_time - shift_start_time - grace_period.

    Yes, if:

    No, if:

    Open the AttendanceController.php file. Find the checkLate function. Add logic:

    if ($minutesLate > 15) 
        $deduction = ($minutesLate / 60) * $hourlyRate;
        $attendance->fine = $deduction;