Compliance Matrix
Detailed mapping of Data-SMARTS requirements to Universal Learning Portal implementation, with specific system locations for each capability.
Data Collection
Support for Early Grade Reading Assessments (EGRA) including letter naming, word reading, oral passage reading, and comprehension
- →
Mobile App → Assessment System → AssessmentDefinition entity - →
Mobile App → /assessment/perform → Timed section screens - →
Mobile App → /assessment/section → Letter sounds, word reading components - →
Backend → AssessmentSectionDefinition → Configurable section types
Support for Early Grade Mathematics Assessments (EGMA) including number identification and arithmetic operations
- →
Mobile App → Assessment System → Same framework as EGRA - →
Mobile App → AssessmentDefinition → Configurable for math content - →
Backend → AssessmentQuestion → Supports numeric answer types
Configurable assessment templates that can be adjusted without technical intervention
- →
Backend → AssessmentDefinition entity → Admin-configurable - →
Backend → AssessmentSectionDefinition → Sections, timing, scripts - →
Backend → AssessmentQuestion → Question text, scoring, order - →
Dashboard → Assessment Configuration screens
Support for multiple languages without requiring translation of the core system
- →
Mobile App → app_localizations.dart → i18n framework - →
Mobile App → Assessment content stored as data, not code - →
Backend → Country entity → Language configuration - →
Backend → AssessmentDefinition → Language field for content
Mobile-first design optimized for tablet and smartphone use in the field
- →
Mobile App → Flutter framework → Native mobile experience - →
Mobile App → Responsive layouts throughout 89 screens - →
Mobile App → Touch-optimized controls and buttons - →
Mobile App → Android (API 28+) and iOS (12+) support
Intuitive user interface requiring minimal training for field staff
- →
Mobile App → Streamlined workflow: Login → School → Visit → Forms - →
Mobile App → Consistent navigation patterns across modules - →
Mobile App → Visual progress indicators - →
Mobile App → Script/guidance text in assessment screens
Full offline operation for all data collection activities
- →
Mobile App → Realm database for local storage - →
Mobile App → OfflineQueueService → Queues all operations - →
Mobile App → All forms, schools, teachers cached locally - →
Mobile App → Works without any network connectivity
Local storage of all forms, assessments, and reference data
- →
Mobile App → Realm DB → Schema version 4 - →
Mobile App → 25+ entity types stored locally - →
Mobile App → ProjectForm, FormSection, FormQuestion entities - →
Mobile App → Pre-sync of reference data on login
Automatic synchronization when connectivity is restored
- →
Mobile App → SyncService → 15-minute auto-sync interval - →
Mobile App → NetworkService → Connectivity monitoring - →
Mobile App → OfflineQueueService → Auto-process on reconnect - →
Mobile App → SyncService → Single-shot delta sync
Conflict resolution for data modified both locally and remotely
- →
Mobile App → SyncProperties → Tracks versions - →
Mobile App → ConflictResolutionScreen → Manual resolution UI - →
Mobile App → Last-write-wins with timestamp tracking - →
Backend → Soft delete pattern preserves all versions
Customizable timers for timed assessment sections (1-minute, 3-minute, etc.)
- →
Mobile App → AssessmentSectionDefinition → timed: true, timeLimit: seconds - →
Mobile App → /assessment/section → Timer component - →
Mobile App → Auto-stop when time expires - →
Backend → Configurable per section
Support for traditional stopping rules in reading assessments
- →
Mobile App → Assessment screens → Early termination logic - →
Mobile App → Consecutive error tracking - →
Backend → AssessmentSectionDefinition → stoppingRules field
Flexible scoring modes: positive marking (count correct) and negative marking (count errors)
- →
Mobile App → SectionAnswer → Stores raw answers - →
Mobile App → Score calculation based on mode - →
Backend → AssessmentSectionDefinition → scoringMode field - →
Backend → Configurable per assessment type
Audio recording for oral assessments with noise suppression
- →
Mobile App → Audio capture capability exists - →
Mobile App → Files stored locally and synced to S3
Photo capture for documentation and verification
- →
Mobile App → PhotoService → Camera/gallery integration - →
Mobile App → FormQuestion type: PHOTO - →
Mobile App → AWS S3 upload with compression - →
Mobile App → Offline queue for photo uploads
GPS coordinate capture for each assessment session
- →
Mobile App → LocationService → GPS capture - →
Mobile App → SchoolVisit → latitude, longitude fields - →
Mobile App → Location embedded object with accuracy - →
Mobile App → Geolocator package integration
Timestamp recording for all data entries
- →
Mobile App → All entities have createdAt, updatedAt - →
Mobile App → SectionAnswer → startTime, endTime - →
Backend → Audit timestamps on all records - →
Backend → Flyway migrations track schema changes
Bulk import of learner lists via Excel/CSV
- →
Backend → Bulk import API endpoints - →
Backend → CSV/Excel parsing utilities - →
Dashboard → Import screens for schools, pupils, teachers
Pre-loading of school and class roster information
- →
Mobile App → Initial sync loads all assigned schools - →
Mobile App → Teacher and pupil data pre-cached - →
Backend → Scoped data sync based on user role
Unique learner identification for longitudinal tracking
- →
Mobile App → Pupil entity with UUID - →
Backend → Pupil → Unique ID generation - →
Backend → PupilAssessment links to pupilId - →
Backend → Historical assessment data preserved
Statistical sampling tools with stratification options
- →
Backend → Query DSL supports filtering by region/district - →
Backend → Random selection capabilities
Data Cleaning
Field-level validation during data entry (format, range, required fields)
- →
Mobile App → FormQuestion → validation field (JSON rules) - →
Mobile App → Real-time validation on input - →
Mobile App → Required field indicators - →
Backend → Entity validation annotations
Cross-field consistency checks (e.g., age vs grade level)
- →
Backend → Custom validation logic in services - →
Backend → Business rule checks on save
Immediate feedback to data collectors on validation errors
- →
Mobile App → Inline error messages on forms - →
Mobile App → Visual indicators (red borders, icons) - →
Mobile App → Prevents submission until errors fixed
Configurable validation rules per assessment type
- →
Mobile App → FormQuestion → validation JSON field - →
Backend → ProjectForm → Form-level validation config - →
Backend → Admin-configurable without code changes
Automatic detection of duplicate records based on configurable criteria
- →
Backend → Unique constraints on key fields - →
Backend → creationId prevents duplicate submissions - →
Backend → School merging capability exists
Fuzzy matching for name variations and data entry errors
Duplicate resolution workflow with merge capabilities
- →
Backend → School merge functionality exists - →
Backend → duplication_status field on District
Prevention of duplicate submissions through unique identifiers
- →
Mobile App → UUID generation for all entities - →
Mobile App → creationId on TeacherVisit, SchoolVisit - →
Backend → Idempotent operations using creation IDs - →
Backend → Database unique constraints
Statistical outlier detection for assessment scores
Pattern analysis to identify suspicious data (e.g., identical scores)
Flagging of unusual response patterns for review
- →
Backend → SchoolVisit → validationDecision field - →
Backend → Manual flagging capability exists
Monitoring of required field completion rates
- →
Backend → Query DSL can aggregate completion data - →
Backend → isComplete flag on visits
Identification of partially completed assessments
- →
Mobile App → PupilAssessment → status field (IN_PROGRESS, COMPLETED) - →
Mobile App → Incomplete assessments visible in list - →
Backend → Status tracking in database
Multi-level review and approval process for flagged data
- →
Backend → validationDecision field on SchoolVisit - →
Backend → Role-based access for reviewers
Complete audit trail of all data modifications
- →
Backend → Soft delete pattern preserves all data - →
Backend → createdAt, updatedAt on all entities - →
Backend → SyncProperties tracks sync history - →
Backend → Flyway migrations versioned
Recording of original values before any changes
- →
Backend → Soft delete never removes data - →
Backend → SyncProperties → serverVersion, localVersion
User attribution for all edits and approvals
- →
Mobile App → monitorId on all visits and assessments - →
Backend → User context on all operations - →
Backend → Manager/Monitor attribution on records
Analysis & Reporting
Real-time dashboards showing key performance indicators
- →
Mobile App → MonitoringDashboard screen - →
Backend → Query DSL for aggregations - →
Dashboard → KPI widgets and charts
Customizable dashboard layouts per user role
- →
Backend → Role-based data scoping - →
Backend → Different views per role type
Drill-down capability from summary to detailed views
- →
Mobile App → Navigation: Country → Region → District → School - →
Mobile App → Tap on metrics to see details - →
Dashboard → Hierarchical navigation
Pre-built report templates for common reporting needs
- →
Backend → Query DSL with predefined queries - →
Backend → Standard report endpoints - →
Mobile App → SchoolReportScreen, VisitReportScreen
Custom report builder with drag-and-drop functionality
Scheduled report generation and distribution
Multiple export formats (PDF, Excel, CSV)
- →
Backend → CSV export capabilities - →
Backend → Data export endpoints
Longitudinal tracking of learner performance over time
- →
Mobile App → PupilAssessmentsScreen → History view - →
Backend → Pupil → Multiple PupilAssessment records - →
Backend → Historical data preserved indefinitely
Year-over-year comparison of assessment results
- →
Backend → CountryTerm entity → schoolYear field - →
Backend → Query DSL can filter by date ranges
Map-based visualization of performance by region
- →
Mobile App → Google Maps integration - →
Mobile App → SchoolLocationScreen → Map view - →
Backend → DistrictPolygon → Geographic boundaries
Heat maps showing areas of concern or success
Performance comparison across schools, districts, and regions
- →
Backend → Query DSL supports group-by aggregations - →
Backend → Geographic hierarchy queries - →
Dashboard → Comparison tables and charts
Performance bands and proficiency levels
- →
Mobile App → SectionAnswer → bracket field - →
Backend → AssessmentSectionDefinition → analysisBrackets - →
Backend → Configurable proficiency thresholds
Bulk data export for external analysis
- →
Backend → Export API endpoints - →
Backend → CSV data dumps - →
Backend → Scoped by user permissions
API access for integration with other systems
- →
Backend → REST API → 150+ operations - →
Backend → REST API with delta sync protocol - →
Backend → Token-based authentication
Administration
Support for multiple independent organizations within a single deployment
- →
Backend → Organisation entity (root tenant) - →
Backend → All data scoped to organisation - →
Backend → Complete data isolation
Data isolation between organizations with no cross-tenant data leakage
- →
Backend → Mandatory organisation_id on queries - →
Backend → Service layer enforces scoping - →
Backend → No cross-tenant joins possible
Organization-specific branding and configuration options
- →
Backend → Organisation → Configuration fields - →
Backend → Country → Custom labels (regionLabel, districtLabel)
Hierarchical organization structure (country > region > district)
- →
Backend → Country → Region → District → School hierarchy - →
Mobile App → Full hierarchy navigation - →
Backend → Geographic scoping throughout
Predefined roles for common user types (Admin, Monitor, Teacher, etc.)
- →
Backend → Monitor → dtype: PROJECT_STAFF, REGION_OFFICIAL, COUNTRY_OFFICIAL - →
Backend → Manager → admin, senior, finance flags - →
Backend → Teacher → dbRoles array - →
Mobile App → Role-based screen access
Custom role definition with granular permissions
- →
Backend → Existing role types with flags - →
Backend → ManagerProject → Project-level access
Geographic scope restrictions (access only to assigned areas)
- →
Backend → Monitor → regionId scoping - →
Backend → OfficialOperatingDistrict → District assignments - →
Mobile App → Only assigned schools visible - →
Backend → Query filters by user scope
Feature-level access control (read, write, delete, export)
- →
Backend → Role-based API access - →
Backend → Soft delete (admin-only hard delete)
User provisioning and deprovisioning workflows
- →
Backend → Manager/Monitor CRUD operations - →
Backend → isActive flag for deprovisioning - →
Backend → Spring Security integration
Bulk user import via CSV/Excel
- →
Backend → Bulk import endpoints - →
Backend → CSV parsing for monitors, teachers - →
Dashboard → Import wizard screens
Self-service password reset capabilities
- →
Mobile App → ForgotPinScreen - →
Backend → Password reset via admin portal - →
Backend → PIN reset via admin
User activity tracking and audit logs
- →
Backend → User attribution on all records - →
Backend → Timestamps on all operations
Flexible hierarchy levels (country, region, district, school)
- →
Backend → Country → Region → District → School entities - →
Backend → Full CRUD for each level - →
Mobile App → Hierarchy navigation
Custom naming for hierarchy levels per country
- →
Backend → Country → regionLabel, districtLabel fields - →
Mobile App → Dynamic labels from Country config
Geographic polygon support for district boundaries
- →
Backend → DistrictPolygon entity - →
Backend → points, geometry fields - →
Backend → Bounding box (north, east, south, west)
School location management with GPS coordinates
- →
Mobile App → School → latitude, longitude - →
Mobile App → SchoolLocationScreen → Map view - →
Backend → GPS validation on school records
Project-based organization of monitoring activities
- →
Backend → Project entity - →
Backend → ManagerProject → Project assignments - →
Backend → ProjectForm → Forms per project - →
Backend → ProjectStaff → Staff assignments
Configurable assessment templates per project
- →
Backend → AssessmentDefinition → Project-scoped - →
Backend → Admin configuration without code - →
Mobile App → Syncs project-specific assessments
Form builder for custom data collection needs
- →
Backend → ProjectForm → Dynamic form definition - →
Backend → FormSection → Section groupings - →
Backend → FormQuestion → 10+ question types - →
Mobile App → Dynamic form rendering
Real-time system health monitoring
- →
Backend → Health check endpoints - →
Backend → GCP Cloud Run monitoring
User activity and login tracking
- →
Mobile App → Session-based login tracking - →
Backend → Manager → authToken, loginPassword timestamps
Data sync status monitoring across devices
- →
Mobile App → SyncStatusScreen - →
Mobile App → PendingSyncScreen → Queue visibility - →
Mobile App → SyncProperties → Sync timestamps
AI Integration
Automatic speech recognition for oral reading assessments
Support for multiple languages and accents
Real-time transcription during assessments
AI-assisted scoring for reading fluency assessments
Pattern recognition for common error types
Consistency checking across human scorers
Early identification of at-risk learners
Performance trend prediction based on historical data
Intervention recommendation based on patterns
Comprehension answer analysis and scoring
Detection of unusual scoring patterns
Context-aware help and guidance for users
- →
Mobile App → Assessment scripts and guidance text - →
Mobile App → ScoringGuidanceDialogScreen
Automated report narrative generation
Implementation Summary
Requires Development (18)
- DQ-2.2Fuzzy matching for name variations and data entry errors...
- DQ-3.1Statistical outlier detection for assessment scores...
- DQ-3.2Pattern analysis to identify suspicious data (e.g., identica...
- AN-2.2Custom report builder with drag-and-drop functionality...
- AN-2.3Scheduled report generation and distribution...
- AN-4.2Heat maps showing areas of concern or success...
- AI-1.1Automatic speech recognition for oral reading assessments...
- AI-1.2Support for multiple languages and accents...
- AI-1.3Real-time transcription during assessments...
- AI-2.1AI-assisted scoring for reading fluency assessments...
- AI-2.2Pattern recognition for common error types...
- AI-2.3Consistency checking across human scorers...
- AI-3.1Early identification of at-risk learners...
- AI-3.2Performance trend prediction based on historical data...
- AI-3.3Intervention recommendation based on patterns...
- AI-4.1Comprehension answer analysis and scoring...
- AI-5.1Detection of unusual scoring patterns...
- AI-6.2Automated report narrative generation...
Needs Enhancement (20)
- DC-5.1Audio recording for oral assessments with noise suppression...
- DC-6.4Statistical sampling tools with stratification options...
- DQ-1.2Cross-field consistency checks (e.g., age vs grade level)...
- DQ-2.1Automatic detection of duplicate records based on configurab...
- DQ-2.3Duplicate resolution workflow with merge capabilities...
- DQ-3.3Flagging of unusual response patterns for review...
- DQ-4.1Monitoring of required field completion rates...
- DQ-5.1Multi-level review and approval process for flagged data...
- DQ-6.2Recording of original values before any changes...
- AN-1.2Customizable dashboard layouts per user role...
- AN-2.4Multiple export formats (PDF, Excel, CSV)...
- AN-3.2Year-over-year comparison of assessment results...
- AN-4.1Map-based visualization of performance by region...
- AD-1.3Organization-specific branding and configuration options...
- AD-2.2Custom role definition with granular permissions...
- AD-2.4Feature-level access control (read, write, delete, export)...
- AD-3.4User activity tracking and audit logs...
- AD-6.1Real-time system health monitoring...
- AD-6.2User activity and login tracking...
- AI-6.1Context-aware help and guidance for users...
Fully Implemented (50)
- DC-1.1Support for Early Grade Reading Assessments (EGRA) including...
- DC-1.2Support for Early Grade Mathematics Assessments (EGMA) inclu...
- DC-1.3Configurable assessment templates that can be adjusted witho...
- DC-1.4Support for multiple languages without requiring translation...
- DC-2.1Mobile-first design optimized for tablet and smartphone use ...
- DC-2.2Intuitive user interface requiring minimal training for fiel...
- DC-3.1Full offline operation for all data collection activities...
- DC-3.2Local storage of all forms, assessments, and reference data...
- DC-3.3Automatic synchronization when connectivity is restored...
- DC-3.4Conflict resolution for data modified both locally and remot...
- DC-4.1Customizable timers for timed assessment sections (1-minute,...
- DC-4.2Support for traditional stopping rules in reading assessment...
- DC-4.3Flexible scoring modes: positive marking (count correct) and...
- DC-5.2Photo capture for documentation and verification...
- DC-5.3GPS coordinate capture for each assessment session...
- ... and 35 more requirements fully met
Ready to Plan Implementation?
Review the requirements not yet met and create a development roadmap to achieve full compliance.