# manikeshmk/explainable_scoring architecture

> Architecture diagram of the GitHub repository manikeshmk/explainable_scoring, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/manikeshmk/explainable_scoring
- Repository: https://github.com/manikeshmk/explainable_scoring

## Overview

ExplainGrade is represented here by the browser-based grading and analytics application present in the supplied tree. The principal workflow is a user entering answers in the web UI, the UI calling the in-browser scorer, and the UI presenting an explainable result. The tree also supports batch grading, analytics visualization, and score-query chat. README-described Python, API, streaming, storage, and cloud subsystems are absent from this checkout, so they are not mapped; several source excerpts are partial, limiting claims about wiring.

Main entry points: [`app.js`](https://github.com/manikeshmk/explainable_scoring/blob/main/app.js) (UI controller), [`analytics.html`](https://github.com/manikeshmk/explainable_scoring/blob/main/analytics.html) (Analytics dashboard), [`analytics-handler.js`](https://github.com/manikeshmk/explainable_scoring/blob/main/analytics-handler.js) (Analytics renderer), [`index.html`](https://github.com/manikeshmk/explainable_scoring/blob/main/index.html) (Grading interface)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_grading["Grading workflow"]
  node_controller["UI controller<br/>[app.js]"]
  node_scorer["Scoring engine<br/>[scorer.js]"]
  node_explanation["Explainable results<br/>[app.js]"]
  node_history["Temporal tracking<br/>[app.js]"]
  node_batch["Batch grading<br/>[app.js]"]
end

subgraph group_insights["Analytics and insights"]
  node_batch_viz["Batch charts"]
  node_analytics_page["Analytics dashboard<br/>[analytics.html]"]
  node_analytics_handler["Analytics renderer"]
  node_learning_curves["Learning curves"]
  node_chat["Score query assistant<br/>[chat.js]"]
end

subgraph group_web["Web experience"]
  node_grading_ui["Grading interface<br/>[index.html]"]
  node_chat_page["Chat interface<br/>[chat.html]"]
  node_results_page["Test results<br/>[test_results.html]"]
  node_research_page["Research overview<br/>[research.html]"]
  node_pipeline_page["Pipeline overview<br/>[pipeline.html]"]
  node_technologies_page["Technology overview<br/>[technologies.html]"]
  node_usage_page["Usage guidance<br/>[usage.html]"]
  node_theme["Theme behavior<br/>[ui.js]"]
end

node_user(("Teacher or user"))

node_user -->|"enters answers"| node_grading_ui
node_grading_ui -->|"submits form"| node_controller
node_controller -->|"grades answers"| node_scorer
node_controller -->|"records submission"| node_history
node_controller -->|"renders feedback"| node_explanation
node_controller -->|"starts class grading"| node_batch
node_batch -->|"grades each answer"| node_scorer
node_batch -->|"renders score charts"| node_batch_viz
node_user -->|"opens dashboard"| node_analytics_page
node_analytics_page -->|"loads analytics"| node_analytics_handler
node_analytics_handler -->|"draws curves"| node_learning_curves
node_user -->|"asks question"| node_chat_page
node_chat_page -->|"sends query"| node_chat
node_user -->|"views results"| node_results_page
node_user -->|"views research"| node_research_page
node_user -->|"views pipeline"| node_pipeline_page
node_user -->|"views technologies"| node_technologies_page
node_user -->|"views guidance"| node_usage_page

click node_grading_ui "https://github.com/manikeshmk/explainable_scoring/blob/main/index.html"
click node_controller "https://github.com/manikeshmk/explainable_scoring/blob/main/app.js"
click node_scorer "https://github.com/manikeshmk/explainable_scoring/blob/main/scorer.js"
click node_explanation "https://github.com/manikeshmk/explainable_scoring/blob/main/app.js"
click node_history "https://github.com/manikeshmk/explainable_scoring/blob/main/app.js"
click node_batch "https://github.com/manikeshmk/explainable_scoring/blob/main/app.js"
click node_batch_viz "https://github.com/manikeshmk/explainable_scoring/blob/main/batch_analytics_visualizer.js"
click node_analytics_page "https://github.com/manikeshmk/explainable_scoring/blob/main/analytics.html"
click node_analytics_handler "https://github.com/manikeshmk/explainable_scoring/blob/main/analytics-handler.js"
click node_learning_curves "https://github.com/manikeshmk/explainable_scoring/blob/main/batch_analytics_visualizer.js"
click node_chat_page "https://github.com/manikeshmk/explainable_scoring/blob/main/chat.html"
click node_chat "https://github.com/manikeshmk/explainable_scoring/blob/main/chat.js"
click node_results_page "https://github.com/manikeshmk/explainable_scoring/blob/main/test_results.html"
click node_research_page "https://github.com/manikeshmk/explainable_scoring/blob/main/research.html"
click node_pipeline_page "https://github.com/manikeshmk/explainable_scoring/blob/main/pipeline.html"
click node_technologies_page "https://github.com/manikeshmk/explainable_scoring/blob/main/technologies.html"
click node_usage_page "https://github.com/manikeshmk/explainable_scoring/blob/main/usage.html"
click node_theme "https://github.com/manikeshmk/explainable_scoring/blob/main/ui.js"

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_controller,node_scorer,node_explanation,node_history,node_batch,node_user toneBlue
class node_batch_viz,node_analytics_page,node_analytics_handler,node_learning_curves,node_chat toneAmber
class node_grading_ui,node_chat_page,node_results_page,node_research_page,node_pipeline_page,node_technologies_page,node_usage_page,node_theme toneMint
```

## Components

### Grading workflow

- [UI controller](https://github.com/manikeshmk/explainable_scoring/blob/main/app.js): `app.js`
- [Scoring engine](https://github.com/manikeshmk/explainable_scoring/blob/main/scorer.js): `scorer.js`
- [Explainable results](https://github.com/manikeshmk/explainable_scoring/blob/main/app.js): `app.js`
- [Temporal tracking](https://github.com/manikeshmk/explainable_scoring/blob/main/app.js): `app.js`
- [Batch grading](https://github.com/manikeshmk/explainable_scoring/blob/main/app.js): `app.js`

### Analytics and insights

- [Batch charts](https://github.com/manikeshmk/explainable_scoring/blob/main/batch_analytics_visualizer.js): `batch_analytics_visualizer.js`
- [Analytics dashboard](https://github.com/manikeshmk/explainable_scoring/blob/main/analytics.html): `analytics.html`
- [Analytics renderer](https://github.com/manikeshmk/explainable_scoring/blob/main/analytics-handler.js): `analytics-handler.js`
- [Learning curves](https://github.com/manikeshmk/explainable_scoring/blob/main/batch_analytics_visualizer.js): `batch_analytics_visualizer.js`
- [Score query assistant](https://github.com/manikeshmk/explainable_scoring/blob/main/chat.js): `chat.js`

### Web experience

- [Grading interface](https://github.com/manikeshmk/explainable_scoring/blob/main/index.html): `index.html`
- [Chat interface](https://github.com/manikeshmk/explainable_scoring/blob/main/chat.html): `chat.html`
- [Test results](https://github.com/manikeshmk/explainable_scoring/blob/main/test_results.html): `test_results.html`
- [Research overview](https://github.com/manikeshmk/explainable_scoring/blob/main/research.html): `research.html`
- [Pipeline overview](https://github.com/manikeshmk/explainable_scoring/blob/main/pipeline.html): `pipeline.html`
- [Technology overview](https://github.com/manikeshmk/explainable_scoring/blob/main/technologies.html): `technologies.html`
- [Usage guidance](https://github.com/manikeshmk/explainable_scoring/blob/main/usage.html): `usage.html`
- [Theme behavior](https://github.com/manikeshmk/explainable_scoring/blob/main/ui.js): `ui.js`

### Other components

- **Teacher or user**

## Connections

- Teacher or user → Grading interface: enters answers
- Grading interface → UI controller: submits form
- UI controller → Scoring engine: grades answers
- UI controller → Temporal tracking: records submission
- UI controller → Explainable results: renders feedback
- UI controller → Batch grading: starts class grading
- Batch grading → Scoring engine: grades each answer
- Batch grading → Batch charts: renders score charts
- Teacher or user → Analytics dashboard: opens dashboard
- Analytics dashboard → Analytics renderer: loads analytics
- Analytics renderer → Learning curves: draws curves
- Teacher or user → Chat interface: asks question
- Chat interface → Score query assistant: sends query
- Teacher or user → Test results: views results
- Teacher or user → Research overview: views research
- Teacher or user → Pipeline overview: views pipeline
- Teacher or user → Technology overview: views technologies
- Teacher or user → Usage guidance: views guidance
