Skip to main content

SKOLE-CALS — Academic Calendar Module

Module ID: SKOLE-CALS | Version: 1.0 | Status: Active
Products: Parent App (read) · Teacher App (manage) · Web App (manage)

1. Overview

Scope In

  • Create, update, soft-delete academic events with date range, event type, time
  • Parent and Teacher views of upcoming events
  • Filter by event_type

Scope Out

  • iCal export / Google Calendar sync
  • Parent RSVP

2. Requirements

Functional Requirements (FR)

What the module must DO — actions, behaviors, and outcomes.
  • SKOLE-CALS-FR001: The module shall allow admins and teachers to create academic events with titles, descriptions, types, date ranges (from/to), and times.
  • SKOLE-CALS-FR002: The module shall support categorized event types: holiday, exam, sports, ptm, cultural, and other.
  • SKOLE-CALS-FR003: The module shall enable authorized users to update and soft-delete calendar events.
  • SKOLE-CALS-FR004: The module shall allow all users to view upcoming school events, filterable by their type.
  • SKOLE-CALS-FR005: The module shall perform chronological display of events, sorted by the start date in ascending order.

Non-Functional Requirements (NFR)

How well the module must do it — performance, security, and reliability.
  • SKOLE-CALS-NFR001: The module shall behave reliably by excluding soft-deleted events (deleted_status = 1) from visibility across all apps.
  • SKOLE-CALS-NFR002: The module shall perform multi-tenant isolation by scoping all events strictly to the school’s skole_id.

Constraints

Rules and boundaries — tech choices and platform restrictions.
  • C001: We must implement event duration support where the end date can differ from the start date to accommodate multi-day events like exams or sports days.
  • C002: We must use a dedicated academic_events table to separate formal calendar dates from activity-based social content.

3. Sub-modules / Backlog


4. Logical Implementation


5. UI Requirements

Teacher App — CalendarScreen

Components:

Parent App — AcademicCalendarScreen

Web App


6. Conditional Expressions


7. Database Tables


8. API Endpoints