Architecture Overview
Platform: HarvestPlus Nutrition Education & Monitoring
Stack: Flutter (Mobile) · React (Admin) · REST API · PostgreSQL · Cloud CDN
System Design
graph TD
A[Mobile App - Flutter] --> B[API Gateway]
C[Admin Web Portal - React] --> B
B --> D[Auth Service - OAuth2/OIDC]
B --> E[Core API - Health & Education]
E --> F[PostgreSQL - Records & Analytics]
E --> G[Object Storage - Videos & Media]
E --> H[CMS - Curriculum Engine]
I[Cloud CDN / Edge] -.-> A
I -.-> C
I -.-> G
Platform Modules
Admin Console
The web-based admin portal is the command centre for program administrators and health officials.
| Module | Description |
|---|---|
| Dashboard | Real-time KPIs — Total Students, Meals Served, Participation Rate, Wellness Score |
| Schools | Onboard, configure, and monitor individual school programs |
| Students | View progress, screening records, and engagement history per student |
| Programs | Create and assign nutrition curricula by grade and district |
| Reporting | Generate PDF/Excel impact reports and health indicator summaries |
| Inventory | Track meal distribution, stock levels, and supply chain compliance |
| Settings | System-wide configuration, branding, and notification preferences |
Content Management System (CMS)
The CMS enables health program managers to build and publish educational content without engineering involvement.
- Video Library: Upload, tag, and publish nutritional education videos by category (Fruits, Vegetables, Proteins, Hydration, etc.)
- Module Builder: Assemble ordered lessons combining videos, text cards, and knowledge checks.
- Curriculum Assignment: Assign modules to grades or schools. Schedule auto-release dates.
- Completion Tracking: Monitor per-student and per-school completion rates across all modules.
Student Mobile App
The student-facing app is designed for daily engagement with a low-friction, high-motivation experience.
| Feature | Description |
|---|---|
| Daily Goals | Nutrition Score, Calorie Goal, and Water Intake targets — tracked per day |
| Learn by Category | Browse content by food group (Fruits, Vegetables, Proteins) with lesson counts |
| Video Highlights | Curated featured video surfaced on the home screen with duration and progress indicator |
| Progress Tracker | Visual completion history with streak and milestone tracking |
| Community | School-level participation leaderboard (optional, admin-configurable) |
Technology Stack
| Layer | Technology | Notes |
|---|---|---|
| Mobile | Flutter | Single codebase — Android & iOS |
| Admin Web | React | Cloud-native, responsive |
| API | RESTful (Go / Node) | JWT / OAuth2 authenticated |
| Database | PostgreSQL | Managed, multi-AZ |
| Media Storage | S3-compatible Object Store | Videos, thumbnails, documents |
| CDN / Edge | Cloud Platform | AWS / GCP / Azure / Cloudflare — provider-agnostic |
| Auth | OAuth2-compliant IdP | Auth0, Keycloak, or Firebase — selected at implementation |
Data Flow
sequenceDiagram
participant S as Student App
participant A as Admin Portal
participant API as API Gateway
participant DB as Database
participant CDN as Media CDN
S->>CDN: Stream video lesson
S->>API: Submit quiz response + health log
API->>DB: Write screening record
A->>API: Request performance dashboard
API->>DB: Aggregate school-level analytics
API->>A: Return dashboard data
Key Non-Functional Requirements
| Property | Target |
|---|---|
| Availability | 99.5% uptime during school hours |
| Offline Support | Full mobile function without internet — sync on reconnect |
| Response Time | API responses < 400ms at P95 |
| Data Privacy | DPDP-compliant — PII anonymized in all reports |
| Scalability | Designed for 50,000+ students across multiple districts |