# asmetha0205/ai-assignment-tracker architecture

> Architecture diagram of the GitHub repository asmetha0205/ai-assignment-tracker, 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/asmetha0205/ai-assignment-tracker
- Repository: https://github.com/asmetha0205/ai-assignment-tracker

## Overview

Students use the React app to access study planning, learning-material tools, and productivity and progress features. The app routes authenticated users to feature pages; those pages call Flask APIs for server-side generation, tracking, and persistence. The README describes additional capabilities whose detailed implementation was not sampled, so their internal wiring is not inferred here. Firebase, AI providers, and document-processing support are shown only where documented or evidenced by the supplied excerpts.

Main entry points: [`frontend/src/App.js`](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/App.js) (App and routing), [`backend/app.py`](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/backend/app.py) (Flask API), [`frontend/src/pages/Login.js`](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/Login.js) (Login and registration), [`frontend/src/api/services.js`](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/api/services.js) (API services)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["React application"]
  node_app["App and routing<br/>[App.js]"]
  node_authpages["Login and registration<br/>[Login.js]"]
  node_api["API services<br/>[services.js]"]
end

subgraph group_learning["Learning tools"]
  node_summarizer["Notes summarizer<br/>[NoteSummarizer.js]"]
  node_quiz["Quiz generator<br/>[QuizGenerator.js]"]
  node_flashcards["Flashcards<br/>[Flashcards.js]"]
  node_assistant["Academic assistant<br/>[AIAssistant.js]"]
end

subgraph group_engagement["Planning and progress"]
  node_planner["Study planner<br/>[StudyPlanner.js]"]
  node_exams["Exam countdown<br/>[ExamCountdown.js]"]
  node_progress["Progress analytics<br/>[Progress.js]"]
  node_leaderboard["Leaderboard<br/>[Leaderboard.js]"]
  node_pomodoro["Pomodoro timer<br/>[Pomodoro.js]"]
end

subgraph group_server["Backend services"]
  node_backend["Flask API<br/>[app.py]"]
  node_ai["AI models<br/>[ai_models.py]"]
  node_files["File processing<br/>[file_processor.py]"]
  node_pdf["PDF extraction<br/>[pdf_processor.py]"]
  node_firebase["Firebase services<br/>[config.js]"]
end

node_student(("Student"))
node_firestore[("Firestore")]
node_aiproviders{{"Gemini and Groq"}}
node_docs["Uploaded documents"]

node_student -->|"uses"| node_app
node_app -->|"routes"| node_authpages
node_app -->|"routes"| node_planner
node_app -->|"routes"| node_summarizer
node_app -->|"routes"| node_quiz
node_app -->|"routes"| node_flashcards
node_app -->|"routes"| node_assistant
node_app -->|"routes"| node_exams
node_app -->|"routes"| node_progress
node_app -->|"routes"| node_leaderboard
node_app -->|"routes"| node_pomodoro
node_app -->|"observes auth"| node_firebase
node_authpages -.->|"authenticates"| node_firebase
node_quiz -->|"generates and submits"| node_api
node_planner -->|"requests plans"| node_backend
node_api -->|"calls REST API"| node_backend
node_backend -->|"requests generation and answers"| node_ai
node_backend -->|"extracts uploads"| node_files
node_backend -->|"extracts quiz PDFs"| node_pdf
node_files -->|"extracts PDF text"| node_pdf
node_backend -->|"reads and writes"| node_firestore
node_ai -.->|"uses AI APIs"| node_aiproviders
node_student -->|"uploads"| node_docs
node_docs -->|"sent with API requests"| node_backend

click node_app "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/App.js"
click node_authpages "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/Login.js"
click node_planner "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/StudyPlanner.js"
click node_summarizer "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/NoteSummarizer.js"
click node_quiz "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/QuizGenerator.js"
click node_flashcards "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/Flashcards.js"
click node_assistant "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/AIAssistant.js"
click node_exams "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/ExamCountdown.js"
click node_progress "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/Progress.js"
click node_leaderboard "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/Leaderboard.js"
click node_pomodoro "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/Pomodoro.js"
click node_api "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/api/services.js"
click node_backend "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/backend/app.py"
click node_ai "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/backend/ai_models.py"
click node_files "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/backend/file_processor.py"
click node_pdf "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/backend/pdf_processor.py"
click node_firebase "https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/firebase/config.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_app,node_authpages,node_api toneBlue
class node_summarizer,node_quiz,node_flashcards,node_assistant,node_firestore toneAmber
class node_planner,node_exams,node_progress,node_leaderboard,node_pomodoro toneMint
class node_backend,node_ai,node_files,node_pdf,node_firebase toneRose
class node_student,node_aiproviders,node_docs toneIndigo
```

## Components

### React application

- [App and routing](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/App.js): `frontend/src/App.js`
- [Login and registration](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/Login.js): `frontend/src/pages/Login.js`
- [API services](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/api/services.js): `frontend/src/api/services.js`

### Learning tools

- [Notes summarizer](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/NoteSummarizer.js): `frontend/src/pages/NoteSummarizer.js`
- [Quiz generator](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/QuizGenerator.js): `frontend/src/pages/QuizGenerator.js`
- [Flashcards](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/Flashcards.js): `frontend/src/pages/Flashcards.js`
- [Academic assistant](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/AIAssistant.js): `frontend/src/pages/AIAssistant.js`

### Planning and progress

- [Study planner](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/StudyPlanner.js): `frontend/src/pages/StudyPlanner.js`
- [Exam countdown](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/ExamCountdown.js): `frontend/src/pages/ExamCountdown.js`
- [Progress analytics](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/Progress.js): `frontend/src/pages/Progress.js`
- [Leaderboard](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/Leaderboard.js): `frontend/src/pages/Leaderboard.js`
- [Pomodoro timer](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/pages/Pomodoro.js): `frontend/src/pages/Pomodoro.js`

### Backend services

- [Flask API](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/backend/app.py): `backend/app.py`
- [AI models](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/backend/ai_models.py): `backend/ai_models.py`
- [File processing](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/backend/file_processor.py): `backend/file_processor.py`
- [PDF extraction](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/backend/pdf_processor.py): `backend/pdf_processor.py`
- [Firebase services](https://github.com/asmetha0205/ai-assignment-tracker/blob/main/frontend/src/firebase/config.js): `frontend/src/firebase/config.js`

### Other components

- **Student**
- **Firestore**
- **Gemini and Groq**
- **Uploaded documents**

## Connections

- Student → App and routing: uses
- App and routing → Login and registration: routes
- App and routing → Study planner: routes
- App and routing → Notes summarizer: routes
- App and routing → Quiz generator: routes
- App and routing → Flashcards: routes
- App and routing → Academic assistant: routes
- App and routing → Exam countdown: routes
- App and routing → Progress analytics: routes
- App and routing → Leaderboard: routes
- App and routing → Pomodoro timer: routes
- App and routing → Firebase services: observes auth
- Login and registration → Firebase services: authenticates
- Quiz generator → API services: generates and submits
- Study planner → Flask API: requests plans
- API services → Flask API: calls REST API
- Flask API → AI models: requests generation and answers
- Flask API → File processing: extracts uploads
- Flask API → PDF extraction: extracts quiz PDFs
- File processing → PDF extraction: extracts PDF text
- Flask API → Firestore: reads and writes
- AI models → Gemini and Groq: uses AI APIs
- Student → Uploaded documents: uploads
- Uploaded documents → Flask API: sent with API requests
