# matandaelis/iara-monitoring-and-evaluation architecture

> Architecture diagram of the GitHub repository matandaelis/iara-monitoring-and-evaluation, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/matandaelis/iara-monitoring-and-evaluation
- Repository: https://github.com/matandaelis/iara-monitoring-and-evaluation

## Overview

IARA is a monitoring, evaluation, governance, and donor-reporting platform. Users configure projects and results frameworks, collect survey evidence, measure indicators, review data, align budgets, and produce reports. The graph highlights those domain stages and the review/calculation layers supported by the excerpts and README. Several capabilities are documented but their implementation was not sampled, so those branches are shown at subsystem level; edges are limited to documented or indexed relationships.

Main entry points: [`WEB/ClientApp/src/app/generated.routes.ts`](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/ClientApp/src/app/generated.routes.ts) (Program configuration), [`WEB/Models/Datum.cs`](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Models/Datum.cs) (Indicator data), [`WEB/Models/Response.cs`](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Models/Response.cs) (Field responses), [`WEB/Services/MeReviewService.cs`](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Services/MeReviewService.cs) (Review evaluation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_planning["Program planning"]
  node_admin["Program configuration"]
  node_results["Results framework<br/>[LogFrame.cs]"]
  node_indicator["Indicator definitions<br/>[Indicator.cs]"]
  node_budget["Budget alignment"]
end

subgraph group_evidence["Evidence collection"]
  node_surveys["Questionnaires<br/>[Questionnaire.cs]"]
  node_field["Field responses<br/>[Response.cs]"]
  node_public["Public collection<br/>[public.routes.ts]"]
end

subgraph group_assurance["Measurement and governance"]
  node_contribution["Form contributions"]
  node_data[("Indicator data<br/>[Datum.cs]")]
  node_rollup["Logframe rollups"]
  node_variance["Variance analysis<br/>[VarianceEngine.cs]"]
  node_quality["Data quality audit"]
  node_review["Review workflow"]
  node_mecontroller["M&amp;E review API"]
  node_meservice["Review evaluation<br/>[MeReviewService.cs]"]
  node_rules["Review rules"]
end

subgraph group_delivery["Reporting and platform"]
  node_webapp["IARA web app<br/>[app.routes.ts]"]
  node_exports["Donor reporting"]
  node_sql[("SQL Server")]
end

node_staff(("Program teams"))
node_external["Kobo / ODK"]

node_staff -->|"uses"| node_webapp
node_webapp -->|"routes to"| node_admin
node_admin -.->|"configures"| node_results
node_admin -.->|"configures"| node_indicator
node_admin -.->|"configures"| node_surveys
node_staff -.->|"aligns spending"| node_budget
node_staff -->|"collects feedback"| node_public
node_public -->|"submits responses"| node_field
node_external -.->|"supplies evidence"| node_field
node_surveys -.->|"structures collection"| node_field
node_field -->|"contributes values"| node_contribution
node_contribution -->|"writes values"| node_data
node_results -->|"provides framework"| node_rollup
node_rollup -->|"uses"| node_variance
node_staff -->|"submits data"| node_review
node_review -->|"reviews values"| node_data
node_mecontroller -->|"delegates to"| node_meservice
node_meservice -->|"evaluates with"| node_rules
node_meservice -->|"loads review data"| node_sql
node_staff -.->|"requests reports"| node_exports
node_data -.->|"feeds reporting"| node_exports
node_data -.->|"audited by"| node_quality

click node_webapp "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/ClientApp/src/app/app.routes.ts"
click node_admin "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/ClientApp/src/app/generated.routes.ts"
click node_results "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Models/LogFrame.cs"
click node_indicator "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Models/Indicator.cs"
click node_budget "https://github.com/matandaelis/iara-monitoring-and-evaluation/tree/master/WEB/ClientApp/src/app/budget"
click node_surveys "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Models/Questionnaire.cs"
click node_field "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Models/Response.cs"
click node_public "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/ClientApp/src/app/public/public.routes.ts"
click node_contribution "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Code/FormIndicatorContributionEngine.cs"
click node_data "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Models/Datum.cs"
click node_rollup "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Code/LogFrameRollupEngine.cs"
click node_variance "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Code/VarianceEngine.cs"
click node_quality "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Code/DataQualityAuditService.cs"
click node_review "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Controllers/DataReviewsController.cs"
click node_mecontroller "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Controllers/MeReviewsController.cs"
click node_meservice "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Services/MeReviewService.cs"
click node_rules "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Code/MeReview/DeterministicRuleEngine.cs"
click node_exports "https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Code/DonorExportService.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_admin,node_results,node_indicator,node_budget toneBlue
class node_surveys,node_field,node_public toneAmber
class node_contribution,node_data,node_rollup,node_variance,node_quality,node_review,node_mecontroller,node_meservice,node_rules toneMint
class node_webapp,node_exports,node_sql toneRose
class node_staff,node_external toneIndigo
```

## Components

### Program planning

- [Program configuration](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/ClientApp/src/app/generated.routes.ts): `WEB/ClientApp/src/app/generated.routes.ts`
- [Results framework](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Models/LogFrame.cs): `WEB/Models/LogFrame.cs`
- [Indicator definitions](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Models/Indicator.cs): `WEB/Models/Indicator.cs`
- [Budget alignment](https://github.com/matandaelis/iara-monitoring-and-evaluation/tree/master/WEB/ClientApp/src/app/budget): `WEB/ClientApp/src/app/budget`

### Evidence collection

- [Questionnaires](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Models/Questionnaire.cs): `WEB/Models/Questionnaire.cs`
- [Field responses](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Models/Response.cs): `WEB/Models/Response.cs`
- [Public collection](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/ClientApp/src/app/public/public.routes.ts): `WEB/ClientApp/src/app/public/public.routes.ts`

### Measurement and governance

- [Form contributions](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Code/FormIndicatorContributionEngine.cs): `WEB/Code/FormIndicatorContributionEngine.cs`
- [Indicator data](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Models/Datum.cs): `WEB/Models/Datum.cs`
- [Logframe rollups](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Code/LogFrameRollupEngine.cs): `WEB/Code/LogFrameRollupEngine.cs`
- [Variance analysis](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Code/VarianceEngine.cs): `WEB/Code/VarianceEngine.cs`
- [Data quality audit](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Code/DataQualityAuditService.cs): `WEB/Code/DataQualityAuditService.cs`
- [Review workflow](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Controllers/DataReviewsController.cs): `WEB/Controllers/DataReviewsController.cs`
- [M&E review API](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Controllers/MeReviewsController.cs): `WEB/Controllers/MeReviewsController.cs`
- [Review evaluation](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Services/MeReviewService.cs): `WEB/Services/MeReviewService.cs`
- [Review rules](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Code/MeReview/DeterministicRuleEngine.cs): `WEB/Code/MeReview/DeterministicRuleEngine.cs`

### Reporting and platform

- [IARA web app](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/ClientApp/src/app/app.routes.ts): `WEB/ClientApp/src/app/app.routes.ts`
- [Donor reporting](https://github.com/matandaelis/iara-monitoring-and-evaluation/blob/master/WEB/Code/DonorExportService.cs): `WEB/Code/DonorExportService.cs`
- **SQL Server**

### Other components

- **Program teams**
- **Kobo / ODK**

## Connections

- Program teams → IARA web app: uses
- IARA web app → Program configuration: routes to (evidence: `WEB/ClientApp/src/app/generated.routes.ts`)
- Program configuration → Results framework: configures
- Program configuration → Indicator definitions: configures
- Program configuration → Questionnaires: configures
- Program teams → Budget alignment: aligns spending
- Program teams → Public collection: collects feedback
- Public collection → Field responses: submits responses (evidence: `WEB/ClientApp/src/app/public/public.routes.ts`)
- Kobo / ODK → Field responses: supplies evidence
- Questionnaires → Field responses: structures collection (evidence: `WEB/Models/Questionnaire.cs`)
- Field responses → Form contributions: contributes values (evidence: `WEB/Code/FormIndicatorContributionEngine.cs`)
- Form contributions → Indicator data: writes values (evidence: `WEB/Code/FormIndicatorContributionEngine.cs`)
- Results framework → Logframe rollups: provides framework (evidence: `WEB/Code/LogFrameRollupEngine.cs`)
- Logframe rollups → Variance analysis: uses (evidence: `WEB/Code/LogFrameRollupEngine.cs`)
- Program teams → Review workflow: submits data
- Review workflow → Indicator data: reviews values (evidence: `WEB/Controllers/DataReviewsController.cs`)
- M&E review API → Review evaluation: delegates to (evidence: `WEB/Controllers/MeReviewsController.cs`)
- Review evaluation → Review rules: evaluates with (evidence: `WEB/Services/MeReviewService.cs`)
- Review evaluation → SQL Server: loads review data (evidence: `WEB/Services/MeReviewService.cs`)
- Program teams → Donor reporting: requests reports
- Indicator data → Donor reporting: feeds reporting
- Indicator data → Data quality audit: audited by
