Skip to main content
Back to engineering proof
Active
Founder and sole developer

CareBoard

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.

The problem

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.

The approach

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.

Evidence in the implementation

These points are grounded in the project repository, its tests, and its technical documentation. They are not estimates of business impact.

Security and role isolation

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.

Privacy by default

Profile and task proof photos are retained for a fixed 90-day period and are never exposed as static files.

Testing

The repository defines a required verification suite of Node.js tests, lint, and a production build, run before any change is considered complete.

Known constraint

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.

Working outcomes

  • 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'

Technical choices and tradeoffs

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.

Wellbeing signals derived only from schedule and task data

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.

Append-only audit log for task history

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.

Technical foundation

  • Next.js 16 (App Router)
  • React 19
  • TypeScript
  • Tailwind CSS 4
  • shadcn/ui
  • SQLite (better-sqlite3)
  • Drizzle ORM
  • Auth.js (NextAuth v5)
  • PWA (manifest + service worker)
  • Docker
  • Coolify