S6 Schools Easy Start Guide
This guide gets a new evaluator, school owner, or pilot administrator from a fresh local checkout to a useful S6 Schools demo run.
For a newly provisioned school administrator, follow the screen-by-screen Visual School Setup Guide after signing in. It uses the same sequence as the readiness hub and links directly to each live workspace.
For production deployment, use docs/VPS_DEPLOYMENT.md instead. This file is for local demo, training, and pilot preparation.
1. What You Need
- Windows, macOS, or Linux with Node.js and npm.
- Docker Desktop with virtualization enabled.
- PostgreSQL provided by
docker compose. - This repository checked out locally.
The app uses:
- Next.js frontend on
http://localhost:3000 - NestJS API on
http://localhost:4000/api - PostgreSQL on
localhost:5432
2. Start The App
From the repo root:
docker compose up -d postgres
npm install
npm run db:generate
npm run db:push
npm run db:seed
npm run devOpen:
- App:
http://localhost:3000/login - API health:
http://localhost:4000/api/health - API readiness:
http://localhost:4000/api/health/ready
3. Demo Accounts
All local seeded accounts use this password:
edupilot123super@edupilot.test/dashboard/super-adminadmin@edupilot.test/dashboard/adminprincipal@edupilot.test/dashboard/principalhod@edupilot.test/dashboard/hodteacher@edupilot.test/dashboard/teacherparent@edupilot.test/dashboard/parentlearner@edupilot.test/dashboard/learneradmissions@edupilot.test/app/admissionsfinance@edupilot.test/dashboard/adminsupport@edupilot.test/dashboard/support4. First 15-Minute Walkthrough
Step 1: Sign in as school admin
- Go to
http://localhost:3000/login. - Sign in with
admin@edupilot.testandedupilot123. - Confirm the Dashboard button remains visible in the app shell.
Step 2: Check school setup
Go to /app/onboarding.
Use the School Setup hub to:
- Review required setup progress.
- Follow CTAs into settings, records, login cards, import/export, and data quality.
- Run a data quality scan.
- Skip optional recommended steps when they are not needed for a demo.
- Mark setup complete only after required checks pass.
If the curriculum foundation option is available, open /app/onboarding/curriculum after setting the school profile. Choose the correct starter template or explicitly continue with Blank/custom before manually creating the academic structure.
Then open /app/settings.
Confirm or update:
- School name and contact details.
- Branding colours and logo.
- Academic defaults.
- Report settings.
- Uploaded school files.
Step 3: Check records
Go to /app/records.
Use the tabs to review:
- Learners.
- Guardians.
- Staff.
- Classes.
- Subjects.
- Login cards.
- CSV import/export.
Try these quick actions:
- Create a learner.
- Create or edit a guardian.
- Link the guardian to the learner.
- Generate login cards.
- Reissue staff login credentials.
Step 4: Send a communication
Go to /app/communications.
Try:
- Create an announcement.
- Publish it.
- Open SMS Campaigns.
- Draft a campaign to a safe demo audience.
- Send in dry-run mode unless real SMSMessenger credentials are configured.
Step 5: Run daily attendance
Go to /app/attendance.
Try:
- Select a class and date.
- Create a register.
- Mark all present.
- Mark one learner absent or late.
- Submit the register.
- Check that absence notifications and summaries update.
Step 6: Run the teacher workflow
Sign out and sign in as teacher@edupilot.test.
Try:
- Open
/app/learning. - Create or update homework.
- Review learner submissions.
- Mark a submission and add feedback.
- Open
/app/question-bank. - Create or review a question.
- Open
/app/quizzes. - Create or update a quiz.
- Open
/app/reports. - Capture marks.
Step 7: Run the learner workflow
Sign in as learner@edupilot.test.
Try:
- View assigned homework.
- Submit homework.
- Attempt a quiz.
- Review results and feedback.
- Check timetable and resources.
Step 8: Run the parent workflow
Sign in as parent@edupilot.test.
Try:
- View linked child dashboard data.
- Open homework.
- Review gradebook entries.
- View reports.
- Submit an absence note.
- View finance statements for linked accounts.
Step 9: Check leadership views
Sign in as principal@edupilot.test or hod@edupilot.test.
Try:
- Review HOD or principal dashboard.
- Open
/app/insights. - Generate or inspect academic risk snapshots.
- Create an intervention plan.
- Open
/app/data-quality. - Run a data quality scan.
5. Key App Areas
/app/app/onboarding/app/records/app/settings/app/communications/app/attendance/app/learning/app/resources/app/question-bank/app/quizzes/app/reports/app/admissions/apply/:schoolSlug/app/consents/app/bookings/app/insights/app/data-quality/app/timetable/app/behaviour/app/finance/app/south-africa6. Live Provider Safety
By default, the demo is safe:
- SMS sends stay dry-run unless SMSMessenger credentials are configured.
- Email invitations use local dry-run unless SMTP is configured.
- WhatsApp is disabled or dry-run only.
- Payments use the dummy provider unless a real provider is implemented and configured.
- Demo seed is blocked in production unless explicitly allowed.
Do not add production secrets to the repository.
7. Common Checks
Run these before a demo or handover:
npm run lint
npm run test:api
npm run build
npm run test:e2e
npm run smokenpm run test:api and npm run test:e2e reset/reseed the local test database. Do not run them against a real school database.
8. Troubleshooting
Postgres is not reachable
Run:
docker compose up -d postgresThen rerun:
npm run db:push
npm run db:seedLogin fails
Check:
- You are using a seeded email from this guide.
- The password is
edupilot123. - The API is running on
http://localhost:4000/api. - The database was seeded.
App opens but pages are empty
Check API readiness:
npm run smokeOr open:
http://localhost:4000/api/health/readySMS does not send live
That is expected unless SMSMessenger credentials are configured. In dry-run mode, delivery records are still created for testing.
Payment checkout is a demo URL
That is expected. Live payment providers are future/provider-gated and must not be represented as active.
9. What To Read Next
- Visual school setup:
/manual/school-setup - Full manual:
docs/USER_MANUAL.md - Feature map:
FEATURES.md - Product spec:
PRODUCT.md - Known limitations:
docs/KNOWN_LIMITATIONS.md - VPS deployment:
docs/VPS_DEPLOYMENT.md - Backup and restore:
docs/BACKUP_RESTORE.md - Security:
SECURITY.mdanddocs/SECURITY_PRODUCTION.md