Skip to content

ADR-003: Web Admin Console — Open-Source CMS

Status

Accepted

Context

The HarvestPlus platform requires a Web Admin Console for health officials and school administrators to:

  1. Manage school and student enrollment data.
  2. Build and publish curriculum modules and video content.
  3. Monitor health screening statistics and program KPIs.
  4. Generate compliance reports (PDF/Excel).

The options considered were:

Option Description Trade-offs
Custom-Built Admin Build a bespoke React admin from scratch Full control, but high cost and maintenance burden
Open-Source Headless CMS Use an existing admin framework as the foundation Faster to deliver, proven security, extensible
SaaS Platform (e.g., Contentful) Fully managed content platform Vendor lock-in, recurring cost, limited custom logic

Decision

We will build the Web Admin Console on top of an open-source headless CMS/admin framework, extended with custom modules for the HarvestPlus-specific workflows (health screening, M&E, reporting).

Recommended baseline: Directus or Strapi — both are MIT-licensed, self-hostable, and provide:

  • A pre-built, role-configurable admin UI.
  • REST and GraphQL API auto-generated from the data model.
  • Fine-grained RBAC (matches our role model: Admin, Coordinator, Viewer).
  • Asset management for video uploads and thumbnails.
  • Webhook support for event-driven notifications (linked to STU-005).

The final tool selection (Directus vs. Strapi vs. alternative) will be made during the Discovery phase, based on team familiarity and hosting constraints. The architecture is tool-agnostic — the Flutter mobile app communicates with the REST API layer regardless of which CMS backs it.

How This Helps the User (HarvestPlus)

Feature How the Open-Source CMS Delivers It
Publish nutrition videos Upload assets via admin UI, set grade/category tags
Create curriculum modules Drag-and-drop module builder, no code needed
Manage student rosters Bulk CSV import > data model synced to app
View health KPIs Custom dashboard plugin fed by the screening API
Assign content by grade Built-in relational content linking

Consequences

Positive

  • Significantly reduces admin UI development time — foundation is pre-built.
  • HarvestPlus team can manage content independently after handover.
  • Self-hostable — no per-seat or per-user SaaS fees.
  • Security patches come from a large open-source community.

Negative

  • Requires initial configuration and schema mapping during Discovery.
  • Custom reporting module (ADM-103) will still need custom development.
  • Some deep UX customisations may require bespoke plugin work.