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.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PeopleSync is a mobile & web-based employee attendance application designed as an HRIS MVP with a focus on data accuracy, auditability, and backend scalability.
๐ Key Features
โ Implemented (Admin Panel - Filament v4)
Kelola Karyawan (Employee Management)
Menu
Description
Status
Data Karyawan
Employee CRUD with department assignment, soft delete support
โ
Kelola Kehadiran (Attendance Management)
Menu
Description
Status
Kehadiran Harian
Daily attendance with manual entry, late/early detection
โ
Review Kehadiran (Harian)
Daily attendance review with permission-based access
โ
Review Kehadiran (Bulanan)
Monthly attendance review/recap
โ
Hari Libur
Holiday management for attendance calculation
โ
Jadwal Kerja
Work schedule per day of week (pre-seeded, edit only)
โ
Lokasi Kehadiran
Geofencing locations with interactive map & radius
-- Partial unique index for soft deleteCREATEUNIQUE INDEXusers_email_uniqueON users(email) WHERE deleted_at IS NULL;
CREATEUNIQUE INDEXemployees_number_uniqueON employees(employee_number) WHERE deleted_at IS NULL;
-- Attendance lookup optimizationCREATEINDEXattendances_employee_dateON attendances(employee_id, date);
๐ ๏ธ Tech Stack
Layer
Technology
Version
Backend
Laravel
12.x
Database
PostgreSQL
-
Auth (API)
JWT (tymon/jwt-auth)
2.x
Auth (Admin)
Filament
4.x
RBAC
Spatie Laravel Permission
6.x
Admin UI
Filament
4.x
Mobile
Flutter
Planned
Cache
Redis
Planned
โจ Filament v4 Highlights
Custom Components
MapPicker โ Interactive Leaflet map with radius picker for geofencing locations
Features Used
Modern Schema patterns (live(), visible(), dehydrate hooks)
Cannot create/delete โ Only edit existing schedules
๐ Geofencing (Location)
Features
Interactive map picker with search
Configurable radius (10m - 5000m)
Haversine formula for distance calculation
Active/inactive status
Methods Available
$location->isWithinRadius($lat, $lng); // Check if coordinate is within radius$location->calculateDistance($lat, $lng); // Get distance in meters
Location::findNearest($lat, $lng); // Find nearest active location
Location::findContaining($lat, $lng); // Find all locations containing point
PeopleSync is intentionally designed as a production-minded MVP, focusing on:
โ Correctness โ Strong data validation & constraints
โ Auditability โ Source tracking, soft deletes
โ Extensibility โ Ready for payroll, multi-tenant, and more
Rather than feature count, the priority is real-world quality.
About
PeopleSync adalah HRIS sederhana (MVP) yang fokus pada Employee / Attendance / Payroll. Arsitektur dirancang untuk cepat dibangun menggunakan Laravel Filament (Backoffice Admin) & Rest API (untuk mobile)