Skip to content

Repository files navigation

DogsCBR Walks

Volunteer dog-walking program management, built for Hack for Humanity against DogsCBR's real intake forms, OHS material and walking procedure.

Onboarding (EOI → induction → OHS test → acknowledgement → coordinator approval → member card), a booking engine with eligibility rules, two-sided walk-day handover with live presence and incident reporting, post-walk reports feeding a dog log, and an impact dashboard with CSV/PDF export.

Dev deployment: https://aicolab-dogscbr-walks-dev.aicolab.workers.dev

Read this first

  • app/DEMO.md — a narrated run-through of the whole system, coordinator and walker side by side. The fastest way to understand what it does.
  • brainstorm-notes.md — the decision record: 60 forks, each settled explicitly, written before the build. Explains why almost everything is the way it is.
  • app/src/routes/ — flat-file routing, so the route names are the site map.

Heads up: this is an extract

This repo was carved out of a private monorepo with git subtree split. The history is real and complete for this app, but pnpm install will not work standalone — the app depends on six workspace packages that live in the monorepo:

package what it provides
@aicolab/better-auth auth client/server integration over the shared auth worker
@aicolab/room-service live sync — d1-sync bell fan-out, presence, capnweb client
@aicolab/cloudflare Cloudflare helpers (TanStack DB over Durable Objects)
@aicolab/ui-solid the design system components
@aicolab/tsconfig shared TypeScript bases
@aicolab/biome-config shared lint config

It also relies on the monorepo root's pnpm-workspace.yaml for pinned dependency versions, overrides, and seven patchedDependencies.

So: read it, don't try to run it. If you want a version that actually builds, say so and it can be wired up with those packages as submodules.

Stack

Solid 2 + TanStack Solid Start on Cloudflare Workers.

  • D1 — system of record (members, dogs, slots, bookings, reports, incidents, audit log), schema via drizzle
  • Durable Objects — WalksBell (data-less reactive fan-out over D1), WalkSessionRoom (one ephemeral room per active walk, for the bits that must never persist: handover prompts, opt-in live location, presence)
  • Workflows — OnboardingWorkflow, WalkBookingWorkflow, WalkReportWorkflow
  • R2 + Images — photo ID (private, auto-purged), dog and walk photos
  • Workers AI — voice-note transcription, image captions
  • Browser Rendering — printable member cards, grant reports
  • Resend — email, console-logged when no API key is set
  • Auth is a service binding (AUTH) to a shared aicolab-auth worker that isn't in this repo. Tenancy is multi-rescue from day one — each rescue is an organization, every row carries an orgId.

Layout

app/                       the worker + frontend
  src/routes/              flat-file routes (public, /coordinate, /carer)
  src/rooms/               Durable Objects
  src/workflows/           Cloudflare Workflows
  src/db/                  drizzle schema
  drizzle/                 migrations
  test/                    vitest against a real migrated D1
brainstorm-notes.md        the 60-decision design record
dogscbr-eoi-form.ts        DogsCBR's EOI form, translated verbatim
dogscbr-hackathon-briefing.html
dogsact-internal-docs/     DogsACT's own operational documents — source material

dogsact-internal-docs/ is DogsACT's material, not ours, provided during the event.

Secrets

app/.dev.vars.example lists what local dev wants. Nothing sensitive is committed — real .dev.vars is gitignored.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages