Beta Featured

Perimtr

Perimtr is a mobile geofenced attendance and workforce platform for the HR offices of Philippine local government units. Built with Nuxt 4, PostgreSQL, and a Flutter mobile app, it lets office and field teams clock in from their phones while the server verifies each event against geofences, trusted networks, and integrity checks, then turns the record into schedules, leave and overtime under Civil Service Commission rules, CSC Form 48, and payroll exports.

September 12, 2026
View Live Project
nuxtvueflutterpostgresdrizzlemaplibregovernment
Perimtr

Perimtr is built on one rule: the phone collects evidence and the server makes the attendance decision. Every clock-in is checked against accuracy-aware geofences, trusted office networks, clock skew, and an integrity engine that flags impossible travel and repeated coordinates. Every submission is kept with its full evidence trail, whether it was accepted or not.

The admin console covers the whole HR workflow. Staff see who is on site today and what is waiting for review, manage the employee roster with bulk Excel import, draw work-location fences on a map, and set up schedules, shifts, holidays, and the organization chart. Leave and overtime follow Civil Service Commission rules, with accrual, compensatory time off, and credits that move only on approval. Attendance prints as CSC Form 48 exactly as it appears on screen, exports to CSV and payroll files, and locks by month with carry-forward, while dashboards update live and a scheduler runs recurring work on its own.

Employees use a Flutter app that checks the fence before they press anything, shows hours worked and late marks, lists their rostered shifts, and lets them file leave and overtime. Field staff photograph their work with a generated map stamp. Each handset is enrolled once and approved by HR, with Play Integrity attestation verified on the server, and events are held on the phone and sent when the office is reachable. The geofence engine exists in both TypeScript and Dart, and a shared conformance table generated from the server's engine keeps the two from disagreeing.

The record is built so it cannot be quietly changed. Attendance events are append-only and enforced by database triggers, corrections are appended rather than edited, employees are never deleted, and the audit log is hash-chained. Perimtr can also run as an on-premises appliance with no outbound internet, serving its own map tiles, taking nightly backups, and rolling back a failed migration on its own.

It is built with Nuxt 4, Nuxt UI, and Nuxt layers, better-auth with two-factor authentication and seven roles, Drizzle ORM on PostgreSQL, MapLibre GL, and Zod, with the mobile client written in Flutter and Dart. The API contract is published as OpenAPI and checked for drift in CI, and the test suite runs on Vitest with PGlite and fast-check.

Perimtr admin console and mobile app

Other Projects

TRACE
TRACE

TRACE is a quiet, local-first personal record of what you actually did, built around the idea "Don't optimize your life. Remember it." Built with Flutter, Riverpod, and Drift on SQLite, it lets you log what you built, read, explored, and lived by writing it the way you would say it, then turns that sentence into an entry you confirm in seconds. There are no streaks, badges, or scores, no account is needed, everything is stored on the device, and optional sync to Neon Postgres keeps your record across your own devices.

flutterdartsqliteneon
View Live Site
Libreng Sakay
Libreng Sakay

Libreng Sakay is a real-time public transit tracking and ridership platform for the free bus service of Bataan Province, Philippines. Built with Laravel, Inertia, Vue 3, and Laravel Reverb, it serves passengers, drivers, scanner operators, inspectors, dispatchers, and administrators with live bus positions, tap-to-board passenger counting, dispatch messaging, and ridership reporting, all over WebSockets. The platform is completed by two native Android apps written in Kotlin, the Libreng Sakay Driver app for running trips from the road and the Libreng Sakay Kiosk that counts riders as they tap their Bataeño Pass at the bus door.

laravelvuetailwindcsskotlin
View Live Site
PDS Express
PDS Express

PDS Express is a web app built with Next.js that helps users enter their personal information once and automatically generate a filled CSC Form 212 Personal Data Sheet PDF for government job applications, HR requirements, and other official submissions. Built with Next.js App Router, React, Tailwind CSS, PostgreSQL, Prisma ORM, and pdf-lib, it supports structured PDS sections such as personal information, family background, education, work experience, trainings, and references, while also offering a mobile-friendly experience with Progressive Web App support and planned features like authentication, payments, resume import, and AI-assisted autofill.

ainexttailwindcssneon
View Live Site

© 2025 Leigh Dinaya. All rights reserved.