# angelcodesbomb/web-dev-1 architecture

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

- Interactive diagram: https://gitdiagram.com/angelcodesbomb/web-dev-1
- Repository: https://github.com/angelcodesbomb/web-dev-1

## Overview

This repository is a collection of independent web projects rather than one application. Its documented workflows include task management and university coordination; the tree and sampled source also expose a flashcard study app and a readability dashboard. DigiRep’s route map, attendance API, and database connection are visible, but unsampled components prevent confirming which frontend features call that API. The graph keeps each project separate and omits unverified wiring.

Main entry points: [`DigiRep/frontend/src/App.js`](https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/App.js) (Application routes), [`OpenFlash/js/app.js`](https://github.com/angelcodesbomb/web-dev-1/blob/main/OpenFlash/js/app.js) (Hash router), [`Smart-Readability-Dashboard/js/main.js`](https://github.com/angelcodesbomb/web-dev-1/blob/main/Smart-Readability-Dashboard/js/main.js) (Text analysis), [`OpenFlash/js/storage.js`](https://github.com/angelcodesbomb/web-dev-1/blob/main/OpenFlash/js/storage.js) (Deck and progress storage)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_taskflow["TaskFlow"]
  node_task_app["Task management<br/>[index.html]"]
end

subgraph group_digirep["DigiRep"]
  node_digi_routes["Application routes<br/>[App.js]"]
  node_digi_home["Home page<br/>[HomePage.js]"]
  node_digi_timetable["Timetable notices"]
  node_digi_schedule["Timetable display<br/>[Timetable.js]"]
  node_digi_attendance["Attendance tracker"]
  node_digi_classroom["Classroom module<br/>[ClassroomModule.js]"]
  node_digi_society["Society module<br/>[SocietyModule.js]"]
  node_digi_ranking["Rankings<br/>[RankingModule.js]"]
  node_digi_results["Results data<br/>[ResultData.js]"]
  node_digi_result_page["Result page<br/>[ResultPage.js]"]
  node_digi_profile["Student profile"]
  node_digi_api["Attendance API<br/>[server.js]"]
end

subgraph group_openflash["OpenFlash"]
  node_flash_router["Hash router<br/>[app.js]"]
  node_flash_landing["Welcome view<br/>[landing.js]"]
  node_flash_home["Deck dashboard<br/>[home.js]"]
  node_flash_editor["Deck editor<br/>[editor.js]"]
  node_flash_study["Study session<br/>[study.js]"]
  node_flash_store[("Deck and progress storage<br/>[storage.js]")]
end

subgraph group_readability["Readability Dashboard"]
  node_read_main["Text analysis<br/>[main.js]"]
  node_read_plugins["Text metric plugins"]
  node_read_output["Analysis dashboard<br/>[index.html]"]
end

node_task_user(("Task manager"))
node_digi_user(("University users"))
node_mongo[("MongoDB")]
node_flash_user(("Learner"))
node_local_storage[("Browser local storage")]
node_read_user(("Text author"))
node_nlp["Compromise NLP"]
node_speech["Browser speech synthesis"]

node_task_user -->|"manages tasks"| node_task_app
node_digi_user -->|"opens features"| node_digi_routes
node_digi_routes -->|"routes to"| node_digi_home
node_digi_routes -->|"routes to"| node_digi_timetable
node_digi_routes -->|"routes to"| node_digi_schedule
node_digi_routes -->|"routes to"| node_digi_attendance
node_digi_routes -->|"routes to"| node_digi_classroom
node_digi_routes -->|"routes to"| node_digi_society
node_digi_routes -->|"routes to"| node_digi_ranking
node_digi_routes -->|"routes to"| node_digi_result_page
node_digi_routes -->|"routes to"| node_digi_profile
node_digi_api -->|"queries attendance"| node_mongo
node_digi_result_page -->|"uses data"| node_digi_results
node_flash_user -->|"navigates"| node_flash_router
node_flash_router -->|"renders"| node_flash_landing
node_flash_router -->|"renders"| node_flash_home
node_flash_router -->|"renders"| node_flash_editor
node_flash_router -->|"renders"| node_flash_study
node_flash_router -->|"checks decks"| node_flash_store
node_flash_editor -->|"saves decks"| node_flash_store
node_flash_study -->|"reads and saves progress"| node_flash_store
node_flash_store -->|"reads and writes"| node_local_storage
node_read_user -->|"submits text"| node_read_main
node_read_main -->|"runs metrics"| node_read_plugins
node_read_main -->|"updates results"| node_read_output
node_read_main -.->|"analyzes text"| node_nlp
node_read_main -.->|"previews speech"| node_speech

click node_task_app "https://github.com/angelcodesbomb/web-dev-1/blob/main/TaskFlow/index.html"
click node_digi_routes "https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/App.js"
click node_digi_home "https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/HomePage.js"
click node_digi_timetable "https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/TimetableNotificationsModule.js"
click node_digi_schedule "https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/Timetable.js"
click node_digi_attendance "https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/AttendanceTracker.js"
click node_digi_classroom "https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/ClassroomModule.js"
click node_digi_society "https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/SocietyModule.js"
click node_digi_ranking "https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/RankingModule.js"
click node_digi_results "https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/ResultData.js"
click node_digi_result_page "https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/ResultPage.js"
click node_digi_profile "https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/StudentProfilePage.js"
click node_digi_api "https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/backend/server.js"
click node_flash_router "https://github.com/angelcodesbomb/web-dev-1/blob/main/OpenFlash/js/app.js"
click node_flash_landing "https://github.com/angelcodesbomb/web-dev-1/blob/main/OpenFlash/js/views/landing.js"
click node_flash_home "https://github.com/angelcodesbomb/web-dev-1/blob/main/OpenFlash/js/views/home.js"
click node_flash_editor "https://github.com/angelcodesbomb/web-dev-1/blob/main/OpenFlash/js/views/editor.js"
click node_flash_study "https://github.com/angelcodesbomb/web-dev-1/blob/main/OpenFlash/js/views/study.js"
click node_flash_store "https://github.com/angelcodesbomb/web-dev-1/blob/main/OpenFlash/js/storage.js"
click node_read_main "https://github.com/angelcodesbomb/web-dev-1/blob/main/Smart-Readability-Dashboard/js/main.js"
click node_read_plugins "https://github.com/angelcodesbomb/web-dev-1/tree/main/Smart-Readability-Dashboard/js/plugins"
click node_read_output "https://github.com/angelcodesbomb/web-dev-1/blob/main/Smart-Readability-Dashboard/index.html"

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_task_app,node_digi_user,node_speech toneBlue
class node_digi_routes,node_digi_home,node_digi_timetable,node_digi_schedule,node_digi_attendance,node_digi_classroom,node_digi_society,node_digi_ranking,node_digi_results,node_digi_result_page,node_digi_profile,node_digi_api,node_mongo,node_local_storage toneAmber
class node_flash_router,node_flash_landing,node_flash_home,node_flash_editor,node_flash_study,node_flash_store toneMint
class node_read_main,node_read_plugins,node_read_output,node_task_user toneRose
class node_flash_user,node_read_user,node_nlp toneIndigo
```

## Components

### TaskFlow

- [Task management](https://github.com/angelcodesbomb/web-dev-1/blob/main/TaskFlow/index.html): `TaskFlow/index.html`

### DigiRep

- [Application routes](https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/App.js): `DigiRep/frontend/src/App.js`
- [Home page](https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/HomePage.js): `DigiRep/frontend/src/components/HomePage.js`
- [Timetable notices](https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/TimetableNotificationsModule.js): `DigiRep/frontend/src/components/TimetableNotificationsModule.js`
- [Timetable display](https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/Timetable.js): `DigiRep/frontend/src/components/Timetable.js`
- [Attendance tracker](https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/AttendanceTracker.js): `DigiRep/frontend/src/components/AttendanceTracker.js`
- [Classroom module](https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/ClassroomModule.js): `DigiRep/frontend/src/components/ClassroomModule.js`
- [Society module](https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/SocietyModule.js): `DigiRep/frontend/src/components/SocietyModule.js`
- [Rankings](https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/RankingModule.js): `DigiRep/frontend/src/components/RankingModule.js`
- [Results data](https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/ResultData.js): `DigiRep/frontend/src/components/ResultData.js`
- [Result page](https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/ResultPage.js): `DigiRep/frontend/src/components/ResultPage.js`
- [Student profile](https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/frontend/src/components/StudentProfilePage.js): `DigiRep/frontend/src/components/StudentProfilePage.js`
- [Attendance API](https://github.com/angelcodesbomb/web-dev-1/blob/main/DigiRep/backend/server.js): `DigiRep/backend/server.js`

### OpenFlash

- [Hash router](https://github.com/angelcodesbomb/web-dev-1/blob/main/OpenFlash/js/app.js): `OpenFlash/js/app.js`
- [Welcome view](https://github.com/angelcodesbomb/web-dev-1/blob/main/OpenFlash/js/views/landing.js): `OpenFlash/js/views/landing.js`
- [Deck dashboard](https://github.com/angelcodesbomb/web-dev-1/blob/main/OpenFlash/js/views/home.js): `OpenFlash/js/views/home.js`
- [Deck editor](https://github.com/angelcodesbomb/web-dev-1/blob/main/OpenFlash/js/views/editor.js): `OpenFlash/js/views/editor.js`
- [Study session](https://github.com/angelcodesbomb/web-dev-1/blob/main/OpenFlash/js/views/study.js): `OpenFlash/js/views/study.js`
- [Deck and progress storage](https://github.com/angelcodesbomb/web-dev-1/blob/main/OpenFlash/js/storage.js): `OpenFlash/js/storage.js`

### Readability Dashboard

- [Text analysis](https://github.com/angelcodesbomb/web-dev-1/blob/main/Smart-Readability-Dashboard/js/main.js): `Smart-Readability-Dashboard/js/main.js`
- [Text metric plugins](https://github.com/angelcodesbomb/web-dev-1/tree/main/Smart-Readability-Dashboard/js/plugins): `Smart-Readability-Dashboard/js/plugins`
- [Analysis dashboard](https://github.com/angelcodesbomb/web-dev-1/blob/main/Smart-Readability-Dashboard/index.html): `Smart-Readability-Dashboard/index.html`

### Other components

- **Task manager**
- **University users**
- **MongoDB**
- **Learner**
- **Browser local storage**
- **Text author**
- **Compromise NLP**
- **Browser speech synthesis**

## Connections

- Task manager → Task management: manages tasks
- University users → Application routes: opens features
- Application routes → Home page: routes to
- Application routes → Timetable notices: routes to
- Application routes → Timetable display: routes to
- Application routes → Attendance tracker: routes to
- Application routes → Classroom module: routes to
- Application routes → Society module: routes to
- Application routes → Rankings: routes to
- Application routes → Result page: routes to
- Application routes → Student profile: routes to
- Attendance API → MongoDB: queries attendance
- Result page → Results data: uses data
- Learner → Hash router: navigates
- Hash router → Welcome view: renders
- Hash router → Deck dashboard: renders
- Hash router → Deck editor: renders
- Hash router → Study session: renders
- Hash router → Deck and progress storage: checks decks
- Deck editor → Deck and progress storage: saves decks
- Study session → Deck and progress storage: reads and saves progress
- Deck and progress storage → Browser local storage: reads and writes
- Text author → Text analysis: submits text
- Text analysis → Text metric plugins: runs metrics
- Text analysis → Analysis dashboard: updates results
- Text analysis → Compromise NLP: analyzes text
- Text analysis → Browser speech synthesis: previews speech
