Sprint Breakdown
Two-week sprints. Each sprint lists the vertical slice that ships — backend, web, and mobile for the same capability whenever possible.
Sprint 0 — Rails (1 week)
Backend
- Install spatie/laravel-permission, Sanctum, Horizon, Filament, Pest.
- Create
AppServiceProviderbindings for scope resolution. - Stub
App\Support\Auditabletrait +audit_logsmigration. - Seed SuperAdmin + SystemAdmin + demo tenant.
Web
- Vite + TS + Tailwind + shadcn bootstrap.
- Auth pages (login, logout, refresh).
AppShellwith role-aware navigation.- Typed Axios client generated from an OpenAPI stub.
Mobile
flutter create, Riverpod + Dio + go_router.- Auth screen, token persistence, dev-only API base-url switcher.
DevOps
- GitHub Actions pipelines (server, ui, app) with caching.
- Staging environment on
dev.*domains.
Exit: SuperAdmin logs in on web and mobile; a smoke test passes in CI on every repo.
Sprint 1 — Organizations & Units (2 weeks)
- Migrations + models + policies + resources for orgs and units.
- CRUD endpoints and Filament resources.
- Web pages for list/create/edit.
- Tests: policy matrix, duplicate codes, soft-delete behavior.
Sprint 2 — Employees + Shifts (2 weeks)
- Employee CRUD, deployment management, transfer flow.
- Shift CRUD with overlap validation.
- Web pages + import CSV for employees.
- Pest: overlap detection, transfer history preservation.
Sprint 3 — Roster (2 weeks)
- Bulk roster upsert endpoint with conflict reporting.
- Publish / unpublish states.
- Web roster grid editor (virtualized).
- Mobile: "my shifts this week" view.
- Pest: cross-employee overlap, locum slotting.
Sprint 4 — Attendance Core (2 weeks)
PunchIngestService,AttendanceProcessor,RedFlagEngine.POST /attendance/punchendpoint wired to queues.- Web: daily attendance view with flag chips.
- Mobile: check-in / check-out with offline buffer.
- Pest: rule windows, overnight, multiple punches, flags.
Sprint 5 — Leave + Regularization (2 weeks)
- Submission, approval chain, decision endpoints.
- Web inboxes for ShiftManager / HR.
- Mobile: request forms + status view.
AttendanceRecalculatorservice invoked on approval.
Sprint 6 — Locum + Locking (1.5 weeks)
- Locum assignment and revoke.
- Auto-lock scheduled command.
- Unlock override with audit.
- Web banners showing lock state.
Sprint 7 — Reports + Payroll (1 week)
- Report filter API + exports queue.
- CSV + XLSX + PDF generators.
- Payroll push (nightly) + pull endpoint.
- Web reports page.
Sprint 8 — Mobile MVP polish (2 weeks, overlaps S4–S7)
- Permissions flow, onboarding, empty states, dark mode.
- App icons, splash, release builds.
- Crashlytics + basic analytics.
Sprint 9 — Pilot (1 week)
- On-site install, data seeding from client records.
- Training for ShiftManager + HR.
- Incident runbook.
- Daily stand-up with pilot unit for 2 weeks.
Sprint 10 — V1 GA (1 week)
- Security review, dependency audit, OWASP top-10 pass.
- k6 load test (
POST /attendance/punchat 500 rps). - Runbooks and on-call rota.
- Marketing docs + demo tenant.