PromptStack

School or LMS

A system for a school or training provider: students, courses, enrolment, attendance, assessment, and results, with separate access for staff, students, and guardians.

You can change every choice once the builder opens.
Core features for the MVP
  • Student records with guardian contact details
  • Course and class management across terms
  • Enrolment of students onto courses
  • Attendance register per class session
  • Grade entry, weighting, and published results
  • Role-separated portals for staff, students, and guardians
  • Report cards exported as PDF
Left for later
  • Automatic timetable generation
  • Fee invoicing and payment tracking
  • Assignment submission and marking
  • Announcements and messaging to guardians

Recommended stack

SectionRecommended
LanguageTypeScript
Frontend frameworkNext.js
UI and stylingTailwind CSSshadcn/ui
BackendNext.js server
API styleServer actions
Database enginePostgreSQL
Database providerNeon
ORM and data accessDrizzle
AuthenticationClerk
Authorization and rolesRole-based access control
SecurityInput validationRate limitingSecurity headers and CSPSecrets managementAudit logsEncryption at rest
File storageAWS S3
Email and notificationsResend
Hosting and deploymentVercel
CI/CDGitHub Actions
Monitoring and analyticsSentry
TestingVitestPlaywright
ExtrasReports and PDF exportCSV and Excel import/exportAccessibility (WCAG)BackupsDocumentation

Data model draft

Student

A person enrolled at the institution.

  • id
  • admissionNumber
  • fullName
  • dateOfBirth
  • yearGroup
  • guardianId
  • enrolledAt
  • Belongs to one Guardian
  • Has many Enrolments
  • Has many AttendanceRecords
Course

A subject taught to a class over a term.

  • id
  • code
  • title
  • teacherId
  • termId
  • creditValue
  • Belongs to one Teacher
  • Has many Enrolments
  • Has many ClassSessions
Enrolment

Links one student to one course, and carries their result.

  • id
  • studentId
  • courseId
  • finalGrade
  • status
  • enrolledAt
  • Belongs to one Student
  • Belongs to one Course
  • Has many Assessments
AttendanceRecord

Whether a student was present at one class session.

  • id
  • studentId
  • classSessionId
  • status
  • recordedById
  • recordedAt
  • Belongs to one Student
  • Belongs to one ClassSession
Guardian

A parent or carer who may view their own children's records.

  • id
  • fullName
  • email
  • phone
  • relationship
  • Has many Students