Portal Guides & Documentation

Excellence Schools website

How to use the Excellence Schools Portal

Role-based guides plus deployment, security, backups and architecture notes.

Admin Guide

  1. 1Sign in with your admin Login ID.
  2. 2Admit students under Students → Admit Student; assign a class and parent.
  3. 3Create parent accounts under Parents → Create Parent, then use “Link a Ward”.
  4. 4Create teachers under Teachers → Create Teacher and assign classes/subjects.
  5. 5Create sessions/terms under Sessions & Terms and set the current ones.
  6. 6Manage subjects under Subjects (add or deactivate without deleting history).
  7. 7Create report cards under Report Cards → Create Report, enter marks, then Publish and Finalize.
  8. 8Approve teacher question sets under Approvals, then Publish to students.
  9. 9Adjust grading, behaviour keys and school info under Settings.
  10. 10Review all actions under Audit Logs (read-only).

Teacher Guide

  1. 1Sign in with your teacher Login ID.
  2. 2Open Question Bank → New Question Set.
  3. 3Pick your class, subject, session and term (only those assigned to you).
  4. 4Add questions: multiple choice, true/false or short answer. Set marks and the correct answer.
  5. 5Save as Draft, then Submit for Approval. You cannot publish directly to students.
  6. 6Download the CSV template to import questions in bulk.
  7. 7Use Duplicate to reuse a previous term's set without altering the original.
  8. 8If rejected, read the admin's reason, edit, and resubmit.
  9. 9Student practice results appear in your dashboard overview.

Parent Guide

  1. 1Sign in with your parent Login ID.
  2. 2Your wards appear on the dashboard. Tap a ward to see their reports.
  3. 3Reports are grouped by session and term. Tap View Report to open a report card.
  4. 4Tap Print Report Card or Download PDF to print or save an A4 PDF.
  5. 5Tap Save Offline to keep a report readable without internet (stored securely on your device).
  6. 6Scan the QR code on any report card to verify it is genuine on the public verify page.
  7. 7Only your own wards' reports are visible — you cannot search other students.
  8. 8If information looks wrong, contact the school office.

Student Guide

  1. 1Sign in with your student Login ID.
  2. 2Open Practice and choose a subject and a published practice set.
  3. 3Read the instructions, then Start. A countdown timer runs for timed tests and auto-submits.
  4. 4Answer each question; your progress is saved automatically if the page refreshes.
  5. 5Submit to see your score, correct answers and explanations instantly.
  6. 6Your dashboard shows average score, highest score and topics to revisit.
  7. 7When offline, attempts are saved locally and synced automatically when you reconnect.

Architecture & Deployment

  • Stack: React + TypeScript + Tailwind CSS frontend; Node/Express + TypeScript API; PostgreSQL database; PWA with service worker + IndexedDB offline storage.
  • Database: Normalized PostgreSQL with foreign keys and soft deletes — users, students, parents, teachers, classes, subjects, sessions, terms, report_cards, question_sets, attempts, audit_logs, school_settings. This demo mirrors that schema in the browser.
  • Frontend deploy: Vercel/Netlify. Backend: Render/Railway. Database: managed PostgreSQL (daily automated, weekly retained, monthly archive backups).
  • Subdomain DNS: Add a CNAME record — Host: portal, Target: your hosting provider's assigned target — in your domain provider's DNS panel.
  • SSL/HTTPS: Enable automatic HTTPS via your hosting provider; force HTTP→HTTPS redirect. No passwords or student data over HTTP.
  • Environment variables: DATABASE_URL, SESSION_SECRET, STORAGE_BUCKET, ARGON2/BCRYPT cost factor. Server secrets only — never use a VITE_ prefix.

Security & Privacy

  • Passwords hashed with Argon2/bcrypt server-side; secure HTTP-only session cookies; rate-limited login.
  • Role-based authorization checked on the server for every sensitive action — never the frontend alone.
  • Report cards use unique, unpredictable verification tokens — no guessable public student URLs.
  • Verification pages show only minimal authenticity info (NDPA 2023 compliant).
  • Parents see only their own wards; teachers only their assigned classes/subjects.
  • Offline report storage is scoped per authenticated parent; no other student's data is cached.
  • Correct answers are never exposed before a controlled-marking submission.

Backups

  • Daily automated PostgreSQL backups (point-in-time where supported).
  • Weekly retained backups for the past ~4 weeks; monthly archive.
  • Restore: run the latest dump against a fresh managed instance, update DATABASE_URL, and restart the backend.
  • Generated report-card PDFs are also persisted to object storage as an immutable audit copy.