Admin Data
Admin-only data console: view any table, delete records, take a full backup (JSON download) and restore from a backup. Every action is written to the Activity Log.
๐ฌ One-Click Demo Sample Data
Instantly fill every showcase page with believable rows โ payroll run, asset register, application links, messages, assignments, behaviour points, support plans, library shelf, help-desk tickets, house points, cafeteria menu, lost & found, PTA meetings and more. Idempotent: tables that already have data are skipped, so clicking twice never duplicates. Perfect before showing the platform to a prospective school.
๐๏ธ Full backup & restore
โ๏ธ Google Drive Backup & Sync (school-owned, free)
Back up the entire school database straight into the schoolโs own Google Drive with one click, restore from Drive with one click, and let the platform re-back-up automatically on a schedule. Backups are the same portable JSON archives used everywhere else, so they restore perfectly. The connection uses Googleโs drive.file permission: this site can only see the backup files it created โ never the rest of the schoolโs Drive.
โ๏ธ Setup & automatic sync schedule (owner only)
How auto-sync works on a free stack: whenever an admin opens any page and a backup is due, it uploads silently in the background (after the first authorisation in that browser). Full setup steps: docs/GOOGLE-DRIVE-SYNC-GUIDE.md in this package. One-time DB update for older installs: run database/drive-sync.sql.
๐ Disaster Recovery Wizard โ restore a school onto a FRESH database from Google Drive (click to open)
When to use this: the schoolโs old Supabase project was paused too long / deleted / permanently lost, but backups exist in the schoolโs Google Drive. This wizard rebuilds everything on a brand-new database in ~30โ45 minutes with free tools. (If the old project is merely paused, do NOT use this โ just restore it at supabase.com and press the ๐ heartbeat on the Platform Health Console.)
- Create the fresh database: supabase.com โ New project โ copy the new Project URL and anon public key (Project Settings โ API).
- Install the schema: new project โ SQL Editor โ paste the ENTIRE
database/complete-schema.sqlfrom the site files โ Run โ wait for โinstalled successfully โ โ. (This auto-installs keep-alive, the vault, Drive-sync and security settings.) - Reconnect this website: edit
assets/js/config.jsโ replace the old SUPABASE_URL and SUPABASE_ANON_KEY with the new values โ push to GitHub; Vercel redeploys the SAME site onto the fresh database. - Recreate the first admin: Login page โ Request access โ sign up; then in Supabase โ Table Editor โ
profilesโ set that row torole = super_admin,status = approved. - Reconnect Google Drive: sign in here as that admin โ expand โ๏ธ Setup in the โ๏ธ Google Drive card above โ paste the schoolโs existing OAuth Client ID (it is tied to the site URL, not the database, so the SAME one still works) โ Save.
- One-click restore: click ๐ List Drive backups above โ authorise with the schoolโs Google account โ every past backup appears โ on the NEWEST one click ๐ Recover to new project (not plain Restore). Recovery mode imports every school record, skips dead login accounts, clears stale references, retries row-by-row, and verifies the SHA-256 seal first.
- Re-onboard people: staff/parents/students sign up again (send one broadcast); approve them on Approvals โ restored records re-link by admission/staff number and email.
- Re-arm ALL safeguards: open the ๐ก๏ธ Platform Health Console โ press ๐ heartbeat, re-add the two GitHub Action secrets with the NEW url/key, repoint UptimeRobot at the new project, switch Drive auto-sync back ON and run one fresh backup. Every tile must be green.
Full printable runbook with a โwhat survives / what doesnโtโ table: docs/DISASTER-RECOVERY-RUNBOOK.md (included in this package). Prevention: keep auto-sync ON and glance at the Health Console weekly โ then this wizard is never needed.
โป๏ธ Portable Data Archive Center
Every machine-readable export can come back. Portable JSON preserves UUIDs, dates, arrays and JSON fields for later restoration/analysis; CSV remains available for spreadsheets and can be re-imported into the selected table. Files are processed locally and are never stored in Supabase.