geocrop-platform./apps/nextgen/.harness/AGENTS.md

2.6 KiB

Africa Alert PWA — Project Memory

This file is the project-level memory for the Africa Alert PWA. Reins write here only when a lesson is specific to this repo and would be re-discovered painfully without it. Cross-project lessons go to the relevant agent's memory (mavis memory append <agent>); user-level preferences go to user memory.

Conventions

  • See .harness/docs/conventions.md for the SQL contract, controller template, store template, the frontend page template (5-file checklist for adding a new page — store, page, route in App.tsx, nav entry in Nav.tsx, changelog), the multi-context store pattern, auth/RBAC, sync contract, Paynow flow, and env vars.
  • See .harness/docs/testing.md for the test stack, manual recipes, and CI plan.
  • See .harness/agent.md (orchestrator) and each rein's agent.md for routing and scope.

Project facts (don't re-discover)

  • Dev branch: dev. Main branch: main. Origin: Gitea at https://git.techarvest.co.zw/fchinembiri/next-gen.git (this is NOT GitHub).
  • Branch model (Git Flow, main = production): work and test on dev; merge to main only after tests pass; main MUST always be deployable. No direct commits to main. See root AGENTS.md §7.1.
  • Demo accounts (dev only, seeded by server/src/database/seeds/demo.js): admin@school.com / admin123, teacher@school.com / teacher123, student@school.com / student123, parent@school.com / parent123, principal@school.com / principal123, bursar@school.com / bursar123, hr@school.com / hr123, librarian@school.com / librarian123.
  • SQLite file is server/data/school.db (WAL mode → -shm and -wal files alongside it).
  • PWA service worker is built by vite-plugin-pwa from vite.config.ts; the dev server doesn't ship a real SW (production npm run build does).
  • Docker Compose mounts data/ and uploads/ as volumes — both are gitignored.
  • The exams module is the canonical reference implementation for new modules (controller, store, page, route, nav) — see IMPLEMENTATION_SUMMARY.md and server/src/controllers/exams.controller.js.
  • client/src/store/api.ts is the single axios instance. Don't create a second one.

Open follow-ups (capture here, not in agent memory)

  • Test framework not yet chosen / installed — tester rein's first sprint.
  • No CI yet — tester rein owns it when the user asks.
  • npm run build for client currently ships the dist bundle into Docker; verify the production SW registration path hasn't drifted (the orchestrator should ask tester to add an offline-load smoke test).
  • outputs/ and logo/ directories at the repo root are unused artifacts (likely from an earlier build) — don't import from them.