SQLite via better-sqlite3 with Drizzle ORM migrations
Why: A self-contained container keeps a small household deployment simple and cheap to run.
Tradeoff: Single-node storage — moving to multi-instance hosting would require a networked database.
A private care-coordination platform for household employers and approved care workers. Managers assign and track work; workers see only their own tasks; schedules, proof photos, handoffs, and an audit log keep everyone accountable.
In British Columbia, people who self-manage their care — including CSIL household employers — are legally the employer. They are responsible for scheduling, task assignment, timesheets, and employment records, while their care workers need predictable shifts, clear instructions, and safe ways to report concerns. Most of that coordination still happens through group chats, paper notes, and memory.
A private household task board with strict role separation. A manager creates, assigns, and completes work and maintains employer records; each worker sees only their own tasks and open work they can claim. Shifts follow a two-week A/B cycle, and proof photos, end-of-shift handoffs, safety reports, and an append-only audit log make accountability routine rather than extra effort.
These points are grounded in the project repository, its tests, and its technical documentation. They are not estimates of business impact.
Workers cannot see other workers' profiles, tasks, reports, or audit data. Disabled workers are blocked on every request, so an existing session cannot retain access. Photos are served only through authenticated, ownership-checked routes.
Profile and task proof photos are retained for a fixed 90-day period and are never exposed as static files.
The repository defines a required verification suite of Node.js tests, lint, and a production build, run before any change is considered complete.
Runs on SQLite in a single container, sized for one household per deployment. Payroll CSVs provide hours, rate, and gross amounts — deductions and net pay remain payroll-software scope, documented in the CSIL readiness matrix.
Manager and worker dashboards covering task assignment, claiming, completion, and proof photos
Evidence: Verifiable in the live product at care.danspelt.com
Two-week rotating schedules with day-off requests and shift-coverage acceptance
Evidence: Documented in the repository README
Timesheet, payroll, and monthly CSV exports built around BC employment-standards and CSIL record-keeping duties
Evidence: Requirements matrix documented in docs/csil-compliance.md
Care-team wellbeing signals and safety incident reporting grounded in published WHO and OECD research
Evidence: Design rationale documented in docs/care-worker-needs.md
Designed so workers see only their own work and data, never other workers'
Why: A self-contained container keeps a small household deployment simple and cheap to run.
Tradeoff: Single-node storage — moving to multi-instance hosting would require a networked database.
Why: Flags long shift runs, short turnarounds, and heavy loads without inferring health or fatigue.
Tradeoff: The signals are workload indicators rather than predictions, and the product copy says so.
Why: Accountability needs a record that cannot be quietly rewritten after the fact.
Tradeoff: Corrections are new entries, so the log grows rather than being edited in place.