Skip to main content

SKOLE-DASH — Dashboard Module

Module ID: SKOLE-DASH | Version: 1.0 | Status: Active
Products: Parent App · Teacher App · Web App

1. Overview

FieldValue
Module NameDashboard / Home
Module CodeDASH
Business ValueThe entry point after login. Surfaces the most important information at a glance — today’s attendance, pending diary tasks, recent activities, and unread write-to requests. Reduces clicks and keeps users engaged.

2. Requirements

Functional Requirements (FR)

What the module must DO — actions, behaviors, and outcomes.
  • SKOLE-DASH-FR001: The module shall show today’s attendance status of the child on the parent dashboard.
  • SKOLE-DASH-FR002: The module shall show the count of pending diary entries on the parent dashboard.
  • SKOLE-DASH-FR003: The module shall display the most recent 3 activity posts on the parent dashboard.
  • SKOLE-DASH-FR004: The module shall surface the unread write-to reply count on the parent dashboard.
  • SKOLE-DASH-FR005: The module shall show assigned student count and today’s pending attendance on the teacher dashboard.
  • SKOLE-DASH-FR006: The module shall display school statistics (student count, staff count, active notices) on the web admin dashboard.

Non-Functional Requirements (NFR)

How well the module must do it — performance, security, and reliability.
  • SKOLE-DASH-NFR001: The module shall perform data aggregation from multiple modules (ATND, DIRY, ACTV, WRIT) within 500ms to ensure a responsive landing experience.
  • SKOLE-DASH-NFR002: The module shall behave reliably by showing “Not yet recorded” states when source data is unavailable.
  • SKOLE-DASH-NFR003: The module shall ensure that dashboard data is scoped correctly to the skole_id and user permissions.

Constraints

Rules and boundaries — tech choices and platform restrictions.
  • C001: We must implement the dashboard as a pure aggregator because it does not own the primary data records (which reside in ATND, DIRY, etc.).
  • C002: We must support multi-tenant scoping via skole_id for all statistics shown on the web admin dashboard.

3. UI Requirements

Parent App — Dashboard

IDScreenRouteDescription
SKOLE-DASH-UI001DashboardScreen/Greeting, child selector, stat cards, recent activity feed
Components:
IDComponentProps
SKOLE-DASH-UC001WelcomeBannerparentName, date
SKOLE-DASH-UC002AttendanceSummaryCardstatus, checkIn, checkOut
SKOLE-DASH-UC003PendingDiaryCardcount, onPress
SKOLE-DASH-UC004RecentActivitiesFeedactivities[]
SKOLE-DASH-UC005WriteToUnreadBadgecount

Teacher App — HomeScreen

IDScreenRouteDescription
SKOLE-DASH-UI002HomeScreen/homeQuick stats: students assigned, attendance pending today, latest diary entries

Web App — Dashboard

IDScreenRouteDescription
SKOLE-DASH-UI003Admin Dashboard/:skoleId/dashboardSchool overview stats grid + recent activity timeline

4. Conditional Expressions

IDExpressionTriggerTrue ActionFalse Action
SKOLE-DASH-CE001children.length > 1Parent dashboardShow child switcher tabShow single child stats
SKOLE-DASH-CE002todayAttendance === nullParent dashboardShow “Not yet recorded”Show attendance status
SKOLE-DASH-CE003pendingDiary > 0PendingDiaryCardShow count badge in redShow green checkmark
SKOLE-DASH-CE004user.type === 'staff'Home screenTeacher dashboard layout

5. Internal Module Connections

DirectionModules AggregatedData / Event
DASH → ATNDAttendanceToday’s attendance status per child
DASH → DIRYDiaryPending diary entry count
DASH → ACTVActivitiesLatest 3 activities in feed
DASH → WRITWrite ToUnread reply count
DASH → STUDStudentsTeacher’s assigned student count