28 lines
2.5 KiB
Markdown
28 lines
2.5 KiB
Markdown
# 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/init.js`): admin@school.com / admin123, teacher@school.com / teacher123, student@school.com / student123, parent@school.com / parent123.
|
|
- 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.
|