Skip to main content

Roadmap

Milestones

MilestoneSprintExit Criteria
M0: RailsSprint 0Three repos bootstrapped, CI green, Sanctum login works, a seeded SuperAdmin can log in to web + mobile and hit /me.
M1: Foundation CRUDsSprint 1–2Organizations / units / employees fully manageable via API, web, and Filament.
M2: Shifts & RosterSprint 2–3ShiftManager can draft, publish, and edit a monthly roster. Conflict detection works.
M3: Attendance coreSprint 3–4Employee can check-in/out from web. Processor generates attendance rows and red flags.
M4: ApprovalsSprint 4–5Leave + regularization flow (including recalculation) usable end-to-end.
M5: Locum + LockingSprint 5–6Locum replacement and lock/unlock cycle working.
M6: Reports + PayrollSprint 6–7CSV/XLSX export and payroll push endpoint live.
M7: Mobile MVPSprint 7–8Flutter app shipped to internal testers via TestFlight + Play Internal.
M8: PilotSprint 8–9First paying client's pilot unit running on the system.
M9: V1 GASprint 10Security pass + load test + production release.
M10: V1.1 kick-offSprint 11Telegram + geo + device hardening under way.

Gantt (approximate)

gantt
title Attendance System — V1 & V1.1
dateFormat YYYY-MM-DD
axisFormat %b %d

section V1
M0 Rails :done, m0, 2026-05-04, 1w
M1 Foundations :m1, after m0, 2w
M2 Shifts/Roster :m2, after m1, 2w
M3 Attendance core :m3, after m2, 2w
M4 Approvals :m4, after m3, 2w
M5 Locum/Locking :m5, after m4, 1.5w
M6 Reports/Payroll :m6, after m5, 1w
M7 Mobile MVP :m7, after m3, 2w
M8 Pilot :m8, after m6, 1w
M9 V1 GA :m9, after m8, 1w

section V1.1
M10 Telegram :2026-08-24, 1.5w
Geo hardening :after M10 Telegram, 1w
Device binding :1w
Integrations :1w
Notifications :1w
Load test / Rollout :0.5w

Dependency Map

M0 ──► M1 ──► M2 ──► M3 ──► M4 ──► M5 ──► M6 ──► M8 ──► M9
└─────► M7 ─────────────────┘