Skip to main content

Spyrl — Project Plan

Version: 1.0 · Date: 2026-10-31 · Status: Baseline for approval Related: summary.md · brd.md · prd.md · architecture.md · review.md · CONVENTIONS.md Time convention: weeks are counted from project kick-off (W1). Calendar dates will be fixed at kick-off. All durations are estimates to re-baseline at the end of R0.


1. Scope​

1.1 In scope​

ReleaseModulesOutcome
R0 FoundationsPLT (control plane MVP), IAM, ORG, NTF core, audit, CI/CD, observability, Stage A productionA tenant can be provisioned, can sign in securely and can configure its organisation
R1 MVPEMP, ATT, LVE, PAY (India statutory incl. TDS with IT declarations), RPT (standard), MOB (ESS + MSS)A pilot SME runs a full attend-to-pay month in Spyrl
R2CLM, EXT (+F&F), ENG, MOB kiosk + face verification, biometric device gateway, Form 16/24Q, public API & webhooks, SAMLThe full HR lifecycle; Professional plan launch
R3FFM, TSMField Force and Timesheet add-ons
R4LMS, advanced analytics, dedicated-cell automation, accounting integrationsThe Enterprise plan matures

1.2 Out of scope (until re-prioritised)​

Recruitment/ATS, performance management (appraisals, OKRs), surveys, asset management, helpdesk, multi-country payroll, on-premise installs, an invoicing/billing engine for client projects, and any per-client code forks. See prd.md "Future enhancements".

1.3 Scope-control rules​

  1. Configuration over customisation. A client request becomes a configurable product feature behind a flag, or it is declined.
  2. MVP scope changes need the product owner and tech lead to agree, and must have their impact on milestone M6 (pilot payroll) recorded.
  3. Anything not traceable to a BR/FR is not built.

2. Team & governance​

2.1 Team (core ~8 FTE + specialists)​

RoleFTENotes
Product owner / business analyst1Owns the BRD/PRD and backlog; runs the pilot programme
Tech lead / architect1Owns architecture.md and the ADRs; hands-on on platform and payroll engine
Backend engineers (NestJS)3One focused on payroll and compliance
Frontend engineers (React)2Web SPA and admin console
Mobile engineer (Expo)1ESS/MSS app, offline punches; kiosk in R2
QA / automation engineer1Test strategy, Playwright/Maestro, payroll golden tests
DevOps / SRE0.5Dokploy, RDS, CI/CD, observability; grows to 1 in Stage B
Product designer0.5Design system, key flows, usability tests
Payroll & compliance specialist (consultant)0.25Validates statutory rules, reviews golden test cases
Implementation / customer success0.5 from W20Pilot onboarding, import templates, training

2.2 Cadence​

  • Two-week sprints. Sprint review with pilot-client representatives from W16.
  • Architecture review every two weeks. Every significant decision is recorded as an ADR in the documentation site's decision log.
  • Release train: weekly from W12 (to dev/UAT), then weekly to production after GA, with the payroll-window freeze (25th–5th).
  • Monthly steering: scope, risks, budget, and milestone health (RAG).

2.3 Definition of Ready / Done​

ReadyDone
Story traces to FR/BR IDs; acceptance criteria in Given/When/Then; permissions and scopes stated; designs available for UI stories; test data identifiedCode reviewed; unit + integration tests pass; tenant-isolation tests pass; acceptance criteria verified with evidence; docs (module page / API) updated; telemetry added; feature flag default set; no new high-severity security findings

3. Development phases​

PhaseWeeksGoalExit criteria
Discovery & spikesW1–W4Validate assumptions and remove the biggest technical unknowns5+ SME interviews synthesised; pricing hypothesis; spike reports: (a) Prisma + RLS + PgBouncer, (b) attendance day engine prototype, (c) payroll engine with 10 golden cases, (d) Expo offline punch + geo-fence, (e) biometric push sample
R0 FoundationsW1–W10A secure multi-tenant skeleton in production (Stage A)M1–M3 met; isolation test suite green; first DR restore drill done
R1 MVP buildW9–W27The attend-to-pay coreAll Must FRs for R1 accepted; performance and security gates passed
PilotW23–W303–5 pilot tenants run two payroll cycles in parallel with their legacy processPayroll variance vs legacy explained to 100%; pilot NPS ≥ 30; P1 defects = 0
GAW30Public launch of Lite + StandardGo-live checklist (§9.4) signed off
R2W31–W46Professional planClaims, Exit+F&F, kiosk/face live with ≥ 2 paying tenants each
R3W47–W62Field Force & Timesheet add-ons≥ 3 field-force tenants live
R4W63+LMS, analytics, EnterpriseFirst dedicated-cell Enterprise tenant live

4. Module-wise implementation roadmap (epics)​

Epic IDs follow E-<MOD>-NN (see CONVENTIONS.md §5). The detailed FRs and stories are in prd.md.

R0​

EpicDescriptionDepends onWeeks
E-PLT-01Monorepo, CI pipeline, Docker images, Dokploy dev/UAT, preview environments—W1–W3
E-PLT-02Tenant context, Prisma tenant extension, RLS policies, isolation test harnessE-PLT-01W3–W6
E-PLT-03Control plane: tenant registry, provisioning workflow, plans/entitlements SDK, feature flagsE-PLT-02W4–W8
E-PLT-04Platform admin console v1 (tenants, plans, flags, support access)E-PLT-03W6–W10
E-IAM-01Invite activation, login, JWT/refresh, MFA (TOTP), password policy, sessionsE-PLT-02W3–W7
E-IAM-02Role builder (permission × scope), seeded role templates, guards, audit logE-IAM-01W5–W9
E-ORG-01Company, legal entity, locations (ID sequence, geo-fence), departments, designations, grades, holidays, setup wizard shellE-IAM-02W5–W9
E-NTF-01Outbox, notification service (email, push, in-app), templates, preferencesE-PLT-02W5–W9
E-NTF-02Approval workflow engine (up to 2 levels with conditions, approver resolution and reassignment, on-behalf auto-approve; delegation and escalation in R1; N-level and parallel steps in R2)E-NTF-01W7–W11
E-PLT-05Observability (OTel, Grafana, Sentry), Stage A prod cell, backups, synthetic checksE-PLT-01W6–W10

R1 (MVP)​

EpicDescriptionDepends onWeeks
E-EMP-01Employee record, effective-dated job assignment, custom fields (basic), directoryE-ORG-01W9–W12
E-EMP-02New hire → self-onboarding link → document approval → onboarding checklist → activation inviteE-EMP-01, E-NTF-02W10–W13
E-EMP-03Import toolkit (employees, opening balances, compensation, bank) with dry-runE-EMP-01W11–W14
E-IAM-03OIDC SSO (Google Workspace, Microsoft Entra ID), Standard plan and aboveE-IAM-01W14–W16
E-ATT-01Shift master, attendance policy (typed), rotations, week-offs, roster assignmentE-ORG-01W9–W12
E-ATT-02Punch ingestion (web, mobile selfie + geo-fence, CSV/API biometric import), punch dedupE-ATT-01W10–W14
E-ATT-03Day-computation engine (statuses, lates, half/full day, OT, extra days, penalties), recompute jobsE-ATT-02W11–W16
E-ATT-04Requests: attendance (WFH/on-duty), regularization, permission, shift change/swap, OT approvalE-ATT-03, E-NTF-02W13–W17
E-ATT-05Period lock and attendance-to-payroll handoff (payable days, LOP, OT, extra/penalty)E-ATT-03W16–W18
E-LVE-01Leave-type builder (templates), policy versions, applicabilityE-ORG-01W13–W16
E-LVE-02Ledger, accrual/proration/carry-forward/lapse jobs, opening balancesE-LVE-01W14–W18
E-LVE-03Requests, sandwich rules, comp-off earn/expire, cancellation, optional holidays, on-behalfE-LVE-02, E-NTF-02W15–W20
E-PAY-01Salary structure templates, formula components, effective-dated compensation, CTC breakdownE-EMP-01W13–W16
E-PAY-02Payroll engine library (gross-to-net, proration, rounding) + golden testsE-PAY-01W13–W19
E-PAY-03Statutory: EPF/EPS/EDLI, ESI, PT (state slabs), LWF, statutory pack versionsE-PAY-02W15–W20
E-PAY-04TDS: regime selection, IT declarations, proofs (basic), monthly projectionE-PAY-02W17–W22
E-PAY-05Run lifecycle (draft → … → locked → paid → reversed), variance checks, arrears, variable pay, advance salary & recovery, other deductionsE-PAY-02, E-ATT-05, E-LVE-02W18–W24
E-PAY-06Outputs: payslips (PDF, password-protected, email/app), ECR, ESI, PT files, bank files, payroll registerE-PAY-05W21–W26
E-RPT-01Report framework (dataset + scope-aware filters + export + schedule), persona dashboardsE-ATT-03, E-LVE-02W19–W26
E-MOB-01Expo app shell, company-code login, device binding, push, offline queueE-IAM-01W11–W15
E-MOB-02ESS: punch (selfie + geo), requests, leave, balances, payslips, profileE-MOB-01, E-ATT-02, E-LVE-03W14–W22
E-MOB-03MSS: approvals inbox, team calendar, on-behalf actions, team attendanceE-MOB-02, E-NTF-02W18–W24
E-PLT-06Billing (Razorpay subscriptions), metering, trial → paid lifecycleE-PLT-03W18–W24
E-PLT-07Hardening: pentest fixes, load tests (month-end), per-tenant export, DR drill #2allW25–W27

R2–R4 (epic level)​

ReleaseEpics
R2E-CLM-01 policy & categories; E-CLM-02 claims with two-stage approval & payout via payroll; E-EXT-01 separation/termination & clearance; E-EXT-02 F&F off-cycle run & letters; E-ENG-01 announcements & recognition; E-MOB-04 kiosk mode & face verification (consent, liveness); E-ATT-06 biometric device gateway; E-PAY-07 Form 16 / 24Q data; E-PLT-08 public API & webhooks; E-IAM-04 SAML; E-PAY-08 payroll journal export (Tally XML / CSV)
R3E-FFM-01 consented tracking & ingest service; E-FFM-02 accounts, contacts, configurable pipeline, activities, payments; E-FFM-03 geo-verified visits & beat plans; E-FFM-04 travel → CLM mileage; E-TSM-01 projects/tasks/teams; E-TSM-02 weekly entry, approvals, defaulters, effort variance
R4E-LMS-01 courses (incl. SCORM import), assignment & due dates, assessments, certificates; E-RPT-02 advanced analytics (attrition, absenteeism, OT cost); E-PLT-09 Stage B (ECS + Terraform cells) if not already triggered; E-PLT-10 dedicated-cell automation; E-PAY-09 accounting API integrations (Zoho Books, ERPs)

Stage B (ECS Fargate) is trigger-based (architecture.md §10.2) and may be pulled into R2 if a dedicated-cell contract or the scale threshold arrives earlier.


5. Dependencies​

5.1 Critical path​

E-PLT-02 (tenancy/RLS) → E-ORG-01 → E-EMP-01 → E-ATT-03 (day engine) → E-ATT-05 (period lock) → E-PAY-05 (run lifecycle) → E-PAY-06 (outputs) → M6 pilot payroll. Payroll is the longest, riskiest chain. It gets the strongest engineer, the compliance consultant and the earliest golden test cases.

5.2 External dependencies​

DependencyNeeded byOwnerFallback
Payroll/compliance specialist availabilityW2 onwardPOA second consultant on retainer
Pilot clients (3–5) committed with legacy payroll dataW16PO / foundersFriendly design partners with a discounted first year
AWS account and organisation set-up (ap-south-1)W1DevOps—
Razorpay merchant onboardingW18FinanceManual invoicing for pilots
Email/SMS/WhatsApp provider accounts and DLT registration (India SMS)W8DevOpsEmail + push only for MVP
Apple/Google developer accountsW11Mobile—
Biometric device samples (ZKTeco/eSSL) for testingW10QACSV import only in MVP
Legal review: DPDP notices, consent texts, terms, DPAW20FoundersHold GA

6. Milestones​

IDMilestoneWeekAcceptance
M1Spikes complete; architecture baseline confirmedW45 spike reports; ADRs updated; plan re-baselined
M2Secure tenant skeletonW8Provision a tenant → invite → MFA login → configure ORG; isolation suite green
M3Production Stage A liveW10Prod cell with backups, monitoring, on-call; DR restore drill #1 recorded
M4Attendance engine feature-completeW18Day statuses correct on a 30-scenario golden set; period lock works
M5Leave & payroll calculation completeW2250+ payroll golden cases pass (validated by the compliance specialist); leave ledger reconciles
M6First pilot payroll run (parallel)W26One pilot tenant's month calculated; variance vs legacy fully explained
M7MVP feature-complete, hardenedW27All R1 Must FRs accepted; pentest high/critical findings fixed; month-end load test passed
M8Second parallel cycle + go-live decisionW303+ pilots reconciled; go-live checklist signed
M9MVP GA (Lite + Standard)W30Public sign-up open; billing live
M10R2 GA (Professional)W46Claims, Exit+F&F, kiosk live
M11R3 GA (add-ons)W62Field Force and Timesheets live
M12First Enterprise dedicated cellR4 / triggerProvisioned by automation in under 1 day

7. Priorities​

  1. Correctness of money and time. Attendance and payroll accuracy beat feature breadth.
  2. Tenant isolation and security. It is never traded for speed.
  3. Mobile ESS/MSS. Adoption drives retention.
  4. Self-serve onboarding. It keeps the cost to serve low.
  5. Breadth (claims, exit, CRM, timesheets, LMS) comes in that order.

MoSCoW per requirement is in prd.md. For R1, anything marked Should may slip to R1.1 (within 6 weeks after GA) if it threatens M6.


8. Risks and mitigation​

IDRiskLikelihoodImpactMitigationOwner
RSK-01Payroll calculation errors (statutory, proration, rounding) damage trustMediumCriticalPure engine library; 50+ golden cases signed off by a specialist; parallel runs in the pilot; variance checks; immutable snapshots; reversal flowTech lead
RSK-02Cross-tenant data leakLowCriticalApp filter + forced RLS + composite FKs; isolation tests in CI; pentest; least-privilege DB rolesTech lead
RSK-03Prisma + RLS + connection pooling misbehaves under loadMediumHighSpike in W1–W4; transaction-scoped SET LOCAL; PgBouncer transaction mode test; fallback: pass the tenant via the session in a dedicated poolBackend
RSK-04Statutory rules change mid-build (e.g. Labour Codes wage definition, ESI/PF ceilings, PT slabs)HighMediumEffective-dated statutory pack published centrally; no hard-coded rates; compliance specialist watchPO
RSK-05Pilot clients unavailable or unwilling to share legacy payrollMediumHighRecruit 6–8 to land 3–5; incentives; anonymised data agreements; start recruiting in W4PO
RSK-06Scope creep from pilots ("just one custom rule")HighMediumConfiguration-over-customisation rule; backlog triage; R1.1 bucketPO
RSK-07Biometric device diversity (protocols, firmware)HighMediumMVP = CSV/API import + one validated device family; device gateway in R2; certified-device listBackend
RSK-08Mobile background-location and battery restrictions (Android OEMs, iOS)HighMedium (R3)R1 punches are foreground only; R3 tracking uses OS-sanctioned modes; point-to-point fallback; OEM testing matrixMobile
RSK-09Face verification accuracy, spoofing, privacy and legal concernsMediumHigh (R2)Liveness, explicit consent, templates not images, a manual fallback (PIN + selfie), DPIASecurity
RSK-10DPDP compliance obligations under-estimatedMediumHighLegal review by W20; privacy by design; consent and retention features in the MVPFounders
RSK-11Under-estimated effort (the payroll and attendance engines are deep)HighHighSpikes; re-baseline at M1; Should items can slip to R1.1; the strongest engineers on the critical pathTech lead
RSK-12Month-end load spikes (payroll + payslip emails + punches)MediumMediumQueues with per-tenant concurrency; k6 tests at 3× expected peak; autoscaled workersDevOps
RSK-13Small team, key-person risk (payroll, DevOps)MediumHighPairing; docs-as-code; runbooks; ADRs; cross-trainingTech lead
RSK-14Competition from established Indian HRMS vendors on priceHighMediumFocus on the attend-to-pay accuracy + mobile + field niche; Lite plan; fast onboardingFounders
RSK-15Stage A → Stage B migration disrupts productionLowMediumContainers + Terraform from day one; blue/green cutover; rehearse in stagingDevOps
RSK-16Implementation effort per tenant erodes marginMediumHighSetup wizard, import templates and toolkit, paid implementation packages; track staff-hours per tenant (BO-01, BO-04)Customer success
RSK-17Incident during the payroll windowMediumHighPayroll-window freeze (25th–5th), extended support hours, canary waves, reversal flow (BO-02, BO-05)Tech lead
RSK-18Low ESS or field adoptionMediumMediumOne app, low-end Android support, nudges, manager-led rollout, training material (BO-03)PO

9. Testing & release strategy​

The full strategy is in the documentation site under Testing & Maintenance.

9.1 Test layers​

LayerWhatGate
UnitDomain logic, policy evaluators, the payroll engine≥ 80% line coverage in packages/policy and packages/payroll-engine
Golden / property testsPayroll (50+ cases at M5, 150+ at GA); attendance day engine (30 scenarios at M4); leave accrual properties100% pass; any change to a golden output needs specialist sign-off
IntegrationAPI + DB with RLS; job workers; outboxPass on every PR
Tenant isolationAutomated cross-tenant access attempts for every repository and endpointZero failures; blocks merge
Contractzod/OpenAPI contracts shared by web and mobilePass on every PR
E2EPlaywright (web), Maestro (mobile) on critical journeys: provision, onboard, punch, leave, payroll run, payslipPass before each release wave
Performancek6 month-end scenario (payroll for 5k employees, 50k punches/hour, payslip fan-out)SLOs in architecture.md §13
SecuritySAST, dependency and container scanning on each PR; DAST on staging weekly; external pentest before GANo open high/critical findings at GA
Accessibilityaxe checks in CI; manual screen-reader pass on key flowsWCAG 2.1 AA for ESS flows
UATPilot tenants on UAT and prod (parallel payroll)Sign-off per pilot

9.2 Environments​

local (docker-compose) → preview (per PR, Dokploy) → dev → uat (pilot training, Dokploy) → staging (production-like) → prod cells (wave 0 internal and canary → wave 1 pooled → wave 2 dedicated).

9.3 Release process​

  • Trunk-based development; features behind flags; weekly release trains; expand/contract migrations; SLO-gated waves.
  • Payroll-window freeze (25th–5th): only patch fixes, with extra review.
  • Mobile: EAS builds; OTA for JS-only fixes; a minimum supported version is enforced.
  • Release notes are published to the tenants' in-app "What's new" and the docs site.

9.4 Go-live checklist (MVP GA)​

  • All R1 Must FRs accepted with evidence
  • Payroll golden suite ≥ 150 cases, specialist sign-off
  • Two parallel payroll cycles reconciled for ≥ 3 pilot tenants
  • Pentest: no open high or critical findings
  • DR drill #2 meets RPO ≤ 5 min and RTO ≤ 1 h
  • Monitoring, alerting, on-call rota and runbooks in place
  • DPDP notices, consent flows, terms, privacy policy and DPA approved by counsel
  • Billing live; trial → paid flow tested
  • Support process and SLAs published; help centre v1 published
  • Data export (tenant offboarding) tested

10. Budget indicators (infrastructure only, estimates)​

StageMonthly estimateNotes
Dev/UAT/preview (Dokploy on 1–2 VMs)₹8–15kSmall instances; previews torn down automatically
Stage A production (2× EC2, RDS Multi-AZ, ElastiCache, S3, CloudFront, backups)₹35–55k (on-demand; ~₹38–42k with reservations)Up to ~50 tenants / 10k employees
Stage B production (ECS Fargate, RDS Multi-AZ + replica, Redis, S3, NAT, observability)₹60–120kScales with cells; dedicated cells billed to Enterprise contracts
Third-party (email/SMS/WhatsApp, maps, Sentry, Grafana Cloud)₹10–40kGrows with usage; partly metered back to tenants

Team cost is excluded. Re-estimate at M1 with real AWS pricing.


11. Communication & reporting​

ArtefactFrequencyAudience
Sprint review + demoBi-weeklyTeam, stakeholders, pilots (from W16)
Milestone RAG + risk register updateMonthlySteering
Release notesWeeklyTenants, support
Documentation updates (docs-as-code)With every merged storyEveryone

12. Traceability​

Plan itemTraces to
Releases R0–R4CONVENTIONS.md §7, prd.md release plan
Epics E--NNPRD FR--* for the same module
MilestonesBRD business objectives BO-01..BO-10 (brd.md)
Risksarchitecture.md (technical), brd.md (business), review.md (final assessment)

Synced from /project-plan.md in the repository root. Edit the root file, not this page.