Instruction file imported from sadiajahleel-coder/compliancetrackerapp (
.cursor/rules/project-context.mdc). Copyright stays with the author.
ComplianceHQ — orientation for Cursor
Read before making changes, in this order:
MASTER_DOCUMENT.md— stack, every API route, every DB schema, every env var, known issues, deploy processFEATURES.md— what's actually built, per feature, with commit references and live/partial/unconfigured statusBRANCHING.md— branch strategy and PR flow you must follow
Don't get burned by these
mainandstagingare protected — PR-only, no direct pushes. Branch offdevasfeature/<name>/fix/<name>/chore/<name>.- No CI exists yet. Nothing runs your changes automatically — run
node --check server.jsand exercise the app manually before opening a PR. - A real secret was committed to git history (
JWT_SECRET, MongoDB password, VAPID keys, in the file literally namedenv, no dot). It's untracked now but old values are still readable in history until rotated. Only.env.example(placeholder values) belongs in git. - The frontend is one file,
public/app.html(~4800 lines, vanilla JS, no build step, no framework, nosrc/). An earlier React/Vite prototype was dead code and has been removed — don't reintroduce that pattern. - Push notifications silently no-op —
web-pushis imported inserver.jsbut not installed. - File uploads are base64 strings inside MongoDB documents — hard 16MB MongoDB document ceiling, not just the app's own (inconsistent) limit message.
- Paystack billing is unconfigured — while
PAYSTACK_SECRET_KEYis unset, the webhook accepts unsigned requests.