Add 21 files, update 16 files, rename 1 file
This commit is contained in:
1 parent
b9e4ed4dfc
commit
278293b397
39 files changed
+2434
-61
No files matched your search
@@ -0,0 +1,77 @@
|
||||
# Data Model
|
||||
|
||||
SchoolOS uses Prisma with SQLite. IDs are portable strings and timestamps are
|
||||
stored in UTC. The schema is the source of truth; this document is a domain
|
||||
map, not a replacement for `prisma/schema.prisma`.
|
||||
|
||||
## Organization And Identity
|
||||
|
||||
- `School`, `SchoolYear`, `SchoolDistrict`: organizational boundaries.
|
||||
- `User`: authenticated account, role, school membership, locale, and soft
|
||||
deletion state.
|
||||
- `ClassGroup`, `ClassGroupTeacher`, `Enrollment`: teaching assignments and
|
||||
current/historical class membership.
|
||||
- `Student`, `ParentStudentLink`, `ParentContact`, `EmergencyContact`: student
|
||||
profile and linked guardians. Access must always be evaluated through the
|
||||
active student, parent link, class assignment, and school scope.
|
||||
|
||||
## Academic Record
|
||||
|
||||
- `Subject`, `CompetencyTemplate`, `CompetencyCategory`, `Competency`, and
|
||||
`MasteryLevelDefinition` define editable school competency frameworks.
|
||||
- `ClassCompetencyAssignment` links a framework to a class.
|
||||
- `LearningProgressEntry` is the evidence record used by progress, mastery,
|
||||
and competence visualizations.
|
||||
- `Assessment`, `AssessmentCompetencyLink`, and `AssessmentResult` capture
|
||||
assessment creation, competency links, and student results.
|
||||
- `GradingScheme`, `GradingWeightRule`, and `ComputedGrade` hold calculation
|
||||
rules and computed outcomes.
|
||||
- `Report`, `ReportCardTemplate`, and `ReportSection` hold report-card drafts,
|
||||
templates, and sections.
|
||||
|
||||
## Classroom Operations
|
||||
|
||||
- `AttendanceSession` and `AttendanceRecord`: attendance and absence status.
|
||||
- `LessonPlan`, `Homework`, and `HomeworkSubmission`: instructional planning
|
||||
and student work.
|
||||
- `TimetableSlot`, `CalendarEvent`, `SchoolEvent`, and `EventRegistration`:
|
||||
time-bound school activity.
|
||||
- `TeacherAbsence`, substitute models, transport models, and library checkout
|
||||
models support daily school operations.
|
||||
|
||||
## Student Support And Communication
|
||||
|
||||
- `TeacherNote`, `BehaviorCategory`, `BehaviorIncident`, and
|
||||
`BehaviorIntervention`: staff-only support context.
|
||||
- `IllnessReport`, `CounselingAppointment`, `HealthRecord`, and `Wellness`
|
||||
models contain sensitive information; they require strict role, student, and
|
||||
school checks.
|
||||
- `CommunicationRoom`, `CommunicationRoomMember`, `CommunicationMessage`,
|
||||
`ParentMessage`, `Announcement`, and `Notification` provide communication
|
||||
and delivery records.
|
||||
|
||||
## Student Work And Learning Hub
|
||||
|
||||
- `Notebook`, `NotebookPage`, `NotebookPageVersion`, and `Drawing` store
|
||||
digital student work and version history.
|
||||
- `Resource`, `SubjectCategory`, `SubjectContent`, `SubjectTopic`,
|
||||
`SubjectLesson`, and `LessonQuestion` represent learning content.
|
||||
- Badge, reward, competition, portfolio, goal, and study-plan models support
|
||||
student-facing learning workflows.
|
||||
|
||||
## Compliance And Audit
|
||||
|
||||
- `AuditLog` records sensitive operational actions.
|
||||
- `DataExportRequest`, `DeletionFlag`, `DataRetentionPolicy`, `DpiaRecord`,
|
||||
`ComplianceConsultation`, and `SchoolComplianceStatus` support rights,
|
||||
retention, and governance workflows.
|
||||
- `Backup` stores metadata for storage-backed backup files; backup files live
|
||||
below `BACKUP_PATH` and must not be placed in the database.
|
||||
|
||||
## Change Rules
|
||||
|
||||
- Additive schema changes require a Prisma migration and an updated seed path.
|
||||
- Never rename or remove a stored field without a migration/backfill plan.
|
||||
- New personal-data fields require a purpose, access policy, audit requirement,
|
||||
export behavior, erasure behavior, and retention category before release.
|
||||
- New feature tables must include school scope where the data is school-owned.
|
||||
Reference in new issue
Block a user