FAQ
FAQ
How do I reset an admin password?
- Self-service: click "Forgot password" on the login page and reset via email verification code.
- Reset others: a super admin can reset other admins' passwords in "User Management → Admins".
- Super admin forgot: manually edit the admin record in the main DB
data/csms.db(prefer self-service or another super admin's reset).
How do I back up data?
All CSMS data lives under data/:
- Main DB:
data/csms.db - Per-school DBs:
data/schools/{id}.db
data/ is in .gitignore and never enters version control. Full backup & automation scripts: .
Do you support MySQL?
v0.3.x supports SQLite only. MySQL may be considered in a later version. Multi-tenant + single-process SQLite is the current stable choice.
How do I upgrade to a new version?
git pull
npm install
npm run db:migrate # if schema changed, run migration
# restart per your deployment (PM2: pm2 restart csms / Docker: docker compose up -d --build)Why doesn't "Install to home screen" appear?
PWA install prompts require HTTPS. npm run dev is HTTP locally and won't prompt; deploy to an HTTPS domain to enable it.
Can score data become inconsistent?
No. Every score change is written to score_logs with a trace; revoke and audit are supported. API requests /api/* always hit the network, never cached, keeping data real-time and consistent.
How can external systems integrate?
Via the . Issue a credential in the admin panel /admin/api-tokens (Bearer / X-API-Token) and configure scope + 12 fine-grained permissions. Dangerous permissions (students:delete, structure:delete) are off by default.
Are different schools' data visible to each other?
No. Each school has its own DB (data/schools/{id}.db), routed by schoolId at the app layer; lower-level admins cannot access other schools' data. See and .
