# gayatri831/assignment-tracker architecture

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

- Interactive diagram: https://gitdiagram.com/gayatri831/assignment-tracker
- Repository: https://github.com/gayatri831/assignment-tracker

## Overview

Assignment Tracker is a small Flask web app for students to manage assignment deadlines. The main workflow submits assignments through a form, validates them, stores accepted entries in memory, and renders a dashboard with pending/completed counts and due-date ordering. Students can also toggle completion or delete entries; separate routes expose assignment JSON and a health response. The README documents these capabilities, while the sampled source shows their implementation in app.py. The graph omits delivery infrastructure and tests.

Main entry points: [`app.py`](https://github.com/gayatri831/assignment-tracker/blob/main/app.py) (Flask routes), [`templates/index.html`](https://github.com/gayatri831/assignment-tracker/blob/main/templates/index.html) (Assignment dashboard), [`templates/base.html`](https://github.com/gayatri831/assignment-tracker/blob/main/templates/base.html) (Shared page layout), [`static/style.css`](https://github.com/gayatri831/assignment-tracker/blob/main/static/style.css) (Page styling)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web experience"]
  node_routes["Flask routes<br/>[app.py]"]
  node_dashboard["Dashboard rendering<br/>[app.py]"]
  node_index_template["Assignment dashboard<br/>[index.html]"]
  node_base_template["Shared page layout<br/>[base.html]"]
  node_styles["Page styling<br/>[style.css]"]
end

subgraph group_management["Assignment management"]
  node_validation["Form validation<br/>[app.py]"]
end

subgraph group_state["Runtime state and APIs"]
  node_assignment_store[("In-memory assignments<br/>[app.py]")]
  node_assignments_api["Assignments JSON API<br/>[app.py]"]
  node_health_route["Health endpoint<br/>[app.py]"]
end

node_student(("Student"))
node_commit_env["Render commit variable"]

node_student -->|"submits requests"| node_routes
node_routes -->|"validates form"| node_validation
node_validation -->|"checks duplicates"| node_assignment_store
node_routes -->|"adds, toggles, deletes"| node_assignment_store
node_routes -->|"renders homepage"| node_dashboard
node_dashboard -->|"reads and sorts"| node_assignment_store
node_dashboard -->|"reads commit ID"| node_commit_env
node_dashboard -->|"renders data"| node_index_template
node_index_template -->|"uses layout"| node_base_template
node_base_template -->|"loads stylesheet"| node_styles
node_routes -->|"serves API route"| node_assignments_api
node_assignments_api -->|"reads assignments"| node_assignment_store
node_routes -->|"serves health route"| node_health_route

click node_routes "https://github.com/gayatri831/assignment-tracker/blob/main/app.py"
click node_dashboard "https://github.com/gayatri831/assignment-tracker/blob/main/app.py"
click node_index_template "https://github.com/gayatri831/assignment-tracker/blob/main/templates/index.html"
click node_base_template "https://github.com/gayatri831/assignment-tracker/blob/main/templates/base.html"
click node_styles "https://github.com/gayatri831/assignment-tracker/blob/main/static/style.css"
click node_validation "https://github.com/gayatri831/assignment-tracker/blob/main/app.py"
click node_assignment_store "https://github.com/gayatri831/assignment-tracker/blob/main/app.py"
click node_assignments_api "https://github.com/gayatri831/assignment-tracker/blob/main/app.py"
click node_health_route "https://github.com/gayatri831/assignment-tracker/blob/main/app.py"

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_routes,node_dashboard,node_index_template,node_base_template,node_styles toneBlue
class node_validation toneAmber
class node_assignment_store,node_assignments_api,node_health_route toneMint
class node_student,node_commit_env toneIndigo
```

## Components

### Web experience

- [Flask routes](https://github.com/gayatri831/assignment-tracker/blob/main/app.py): `app.py`
- [Dashboard rendering](https://github.com/gayatri831/assignment-tracker/blob/main/app.py): `app.py`
- [Assignment dashboard](https://github.com/gayatri831/assignment-tracker/blob/main/templates/index.html): `templates/index.html`
- [Shared page layout](https://github.com/gayatri831/assignment-tracker/blob/main/templates/base.html): `templates/base.html`
- [Page styling](https://github.com/gayatri831/assignment-tracker/blob/main/static/style.css): `static/style.css`

### Assignment management

- [Form validation](https://github.com/gayatri831/assignment-tracker/blob/main/app.py): `app.py`

### Runtime state and APIs

- [In-memory assignments](https://github.com/gayatri831/assignment-tracker/blob/main/app.py): `app.py`
- [Assignments JSON API](https://github.com/gayatri831/assignment-tracker/blob/main/app.py): `app.py`
- [Health endpoint](https://github.com/gayatri831/assignment-tracker/blob/main/app.py): `app.py`

### Other components

- **Student**
- **Render commit variable**

## Connections

- Student → Flask routes: submits requests
- Flask routes → Form validation: validates form
- Form validation → In-memory assignments: checks duplicates
- Flask routes → In-memory assignments: adds, toggles, deletes
- Flask routes → Dashboard rendering: renders homepage
- Dashboard rendering → In-memory assignments: reads and sorts
- Dashboard rendering → Render commit variable: reads commit ID
- Dashboard rendering → Assignment dashboard: renders data
- Assignment dashboard → Shared page layout: uses layout
- Shared page layout → Page styling: loads stylesheet
- Flask routes → Assignments JSON API: serves API route
- Assignments JSON API → In-memory assignments: reads assignments
- Flask routes → Health endpoint: serves health route
