Unigo EOD Tracker — Work Tracking & Attendance
Internal HR platform for a Nepal company: Kathmandu-timezone check-in/lunch/checkout, hourly EOD logging with pause chains, overtime tracking, and Bikram Sambat reports with CSV export.
What this project is
Built to replace manual EOD reporting, EOD Tracker digitizes the entire workday from login to checkout. Employees check in, log what they work on every hour, pause for lunch, and check out — all automatically validated for late arrivals, early checkouts, and overtime.
The system runs entirely on Asia/Kathmandu time and the Bikram Sambat calendar: month/day navigation in BS (Baisakh–Chaitra), BS↔AD conversion for every query, daily hours bar charts with drill-down, and a monthly BS calendar. Five roles — admin / manager / hr / team_lead / employee — are enforced in both UI and API.
Key features
out → working → on_lunch → working → checked_out with lunch auto-pause/resume of tasks, lunch pause reasons, and mobile check-in (mobile) badges for admins.
In-progress / done / partially_completed entries, pause history, editHistory audit trail, and ↳ continue chains for unfinished work carried forward.
Per-employee thresholds (default 10:00 in / 17:00 out), 15-min grace, mandatory late/early reasons, auto overtime = checkout − threshold.
BS month length calc, BS↔AD conversion, Nepali month-boundary reporting, daily bar charts, one-click drill-down, and BS-labeled CSV export.
Monthly BS calendar with check-in/lunch/checkout/overtime, holiday highlighting, Saturday dimming, click-to-view entries, admin edit/delete.
Single/multi-date requests, half-day/sick/casual/annual types, per-date approve/reject/needs_talk with comments, bulk actions, auto-derived partial status.
Today Overview (Checked In / On Lunch / Checked Out / Absent) auto-refreshing every 30s, late/early tables, teams with leads, EMP001 IDs, Nepali holidays, meetings & todos.
How it works
- 1Login → Check In (late? reason required)
- 2Add hourly tasks → Pause/Resume/Complete with notes
- 3Lunch Start (auto-pauses tasks) → Lunch End (auto-resumes)
- 4Checkout (early? reason required, overtime auto-calculated)
- 5Verify in My Reports / Attendance; HR views live dashboard & BS monthly reports
A timezone-correct, BS-native HR system with 8 tables (22 Drizzle migrations), 12 API groups, concurrent task auto-pause logic, and full audit trails — auditable, concurrent, and built for Nepal from the ground up.

