BB Manager is a Vite-powered React SPA for managing Boys' Brigade members, marks, and section settings against a Supabase backend.
- Frontend: React 19 + TypeScript
- Build tool: Vite
- Styling: Tailwind CSS
- Backend: Supabase Auth + Postgres
- Deployment: Vercel
There is no in-repo Express server or Docker runtime. The app is built as a static SPA and deployed on Vercel with SPA rewrites via vercel.json.
- Install dependencies with
npm install. - Create a local
.envfrom.env.example. - Start the dev server with
npm run dev. - Run
npm run check:db-contract,npm run typecheck,npm run test:run, andnpm run buildbefore shipping changes.
npm run check:db-contractreads.envand.env.local, signs in with the smoke-test user, resolvescurrent_app_role(), and confirms the seededsettingsrows forcompanyandjuniorare readable through the published client credentials.npm run test:runruns the lean automated suite used by CI on every push and pull request.npm run test:coveragereports coverage for the same suite.npm run test:e2ereads.envand.env.localand runs the browser smoke suite against a real Supabase-backed environment. It requiresE2E_TEST_EMAILandE2E_TEST_PASSWORD.tests/e2e/contains manual Supabase-backed smoke-test runbooks for auth, section settings, member CRUD, and marks workflows.
The CI smoke suite expects the test account to have a valid app role, seeded settings rows for both sections, and at least one member in the Company section so the settings and weekly-marks save flows have real data to exercise.
It verifies the client-visible contract only; it does not prove every live RLS restriction without privileged Supabase inspection.
VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEYE2E_TEST_EMAILE2E_TEST_PASSWORD
- ARCHITECTURE.md: canonical system overview
- AGENTS.md: contributor and agent operating guide
- docs/03-getting-started.md: local setup
- docs/04-deployment.md: Vercel deployment runbook
- docs/user-guide.md: handout for new users