# ibrahim-private/study-manager architecture

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

- Interactive diagram: https://gitdiagram.com/ibrahim-private/study-manager
- Repository: https://github.com/ibrahim-private/study-manager

## Overview

This is a browser-based Arabic study planner for organizing subjects, folders and study files, tracking task completion and review history, and recording mistakes. The main workflow is to sign in, load user data, browse or organize study material, mark work complete, and view progress. The single JavaScript file appears to own these features and rendering; excerpts confirm data loading, task/history updates, and image compression, but the omitted code and empty README leave finer module boundaries and service wiring uncertain.

Main entry points: [`main.js`](https://github.com/ibrahim-private/study-manager/blob/main/main.js) (Application UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Study planner"]
  node_main["Application UI<br/>[main.js]"]
  node_library["Study library<br/>[main.js]"]
  node_tasks["Task tracking<br/>[main.js]"]
  node_history["Study history<br/>[main.js]"]
  node_mistakes["Mistake log<br/>[main.js]"]
  node_dashboard["Progress dashboard<br/>[main.js]"]
  node_image["Image compression<br/>[main.js]"]
end

subgraph group_persistence["User data"]
  node_store[("User data store<br/>[main.js]")]
end

node_student(("Student"))
node_auth{{"Authentication service"}}

node_student -->|"uses"| node_main
node_main -->|"authenticates"| node_auth
node_main -->|"loads and saves"| node_store
node_main -->|"renders and edits"| node_library
node_main -->|"updates"| node_tasks
node_tasks -->|"records completion"| node_history
node_main -->|"records"| node_mistakes
node_main -->|"renders"| node_dashboard
node_main -->|"compresses uploads"| node_image

click node_main "https://github.com/ibrahim-private/study-manager/blob/main/main.js"
click node_library "https://github.com/ibrahim-private/study-manager/blob/main/main.js"
click node_tasks "https://github.com/ibrahim-private/study-manager/blob/main/main.js"
click node_history "https://github.com/ibrahim-private/study-manager/blob/main/main.js"
click node_mistakes "https://github.com/ibrahim-private/study-manager/blob/main/main.js"
click node_dashboard "https://github.com/ibrahim-private/study-manager/blob/main/main.js"
click node_image "https://github.com/ibrahim-private/study-manager/blob/main/main.js"
click node_store "https://github.com/ibrahim-private/study-manager/blob/main/main.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_main,node_library,node_tasks,node_history,node_mistakes,node_dashboard,node_image toneBlue
class node_store toneAmber
class node_student,node_auth toneIndigo
```

## Components

### Study planner

- [Application UI](https://github.com/ibrahim-private/study-manager/blob/main/main.js): `main.js`
- [Study library](https://github.com/ibrahim-private/study-manager/blob/main/main.js): `main.js`
- [Task tracking](https://github.com/ibrahim-private/study-manager/blob/main/main.js): `main.js`
- [Study history](https://github.com/ibrahim-private/study-manager/blob/main/main.js): `main.js`
- [Mistake log](https://github.com/ibrahim-private/study-manager/blob/main/main.js): `main.js`
- [Progress dashboard](https://github.com/ibrahim-private/study-manager/blob/main/main.js): `main.js`
- [Image compression](https://github.com/ibrahim-private/study-manager/blob/main/main.js): `main.js`

### User data

- [User data store](https://github.com/ibrahim-private/study-manager/blob/main/main.js): `main.js`

### Other components

- **Student**
- **Authentication service**

## Connections

- Student → Application UI: uses
- Application UI → Authentication service: authenticates
- Application UI → User data store: loads and saves
- Application UI → Study library: renders and edits
- Application UI → Task tracking: updates
- Task tracking → Study history: records completion
- Application UI → Mistake log: records
- Application UI → Progress dashboard: renders
- Application UI → Image compression: compresses uploads
