# codeartist7071/arumind architecture

> Architecture diagram of the GitHub repository codeartist7071/arumind, 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/codeartist7071/arumind
- Repository: https://github.com/codeartist7071/arumind

## Overview

This repository combines an exam-preparation app with a document-to-question ingestion pipeline. In the app, learners select exams, take practice or mock tests, submit attempts, and review results and performance; study planning and calendar support form a parallel branch. Administrators manage users and curriculum content. The Python pipeline processes exam PDFs into structured questions and maps them to chapters, while the Odia pipeline translates question JSON. The README is empty and sampled source is partial, so links for unsampled modules and some integrations are intentionally omitted.

Main entry points: [`client/src/App.tsx`](https://github.com/codeartist7071/arumind/blob/main/client/src/App.tsx) (App router), [`doc_pipeline/main.py`](https://github.com/codeartist7071/arumind/blob/main/doc_pipeline/main.py) (PDF processing), [`client/src/hooks/usePracticeTestLogic.ts`](https://github.com/codeartist7071/arumind/blob/main/client/src/hooks/usePracticeTestLogic.ts) (Practice session), [`client/src/services/questionService.ts`](https://github.com/codeartist7071/arumind/blob/main/client/src/services/questionService.ts) (Question access)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Learning app"]
  node_app["App router<br/>[App.tsx]"]
  node_exam_select["Exam selection<br/>[ExamSelection.tsx]"]
  node_dashboard["User dashboard<br/>[UserDashboard.tsx]"]
end

subgraph group_assessment["Assessment and insights"]
  node_exam["Exam practice<br/>[Exam.tsx]"]
  node_practice_logic["Practice session"]
  node_mock_logic["Mock session"]
  node_questions["Question access<br/>[questionService.ts]"]
  node_results["Results<br/>[Results.tsx]"]
  node_analytics["Performance analytics"]
end

subgraph group_planning["Planning"]
  node_planner["Study planner<br/>[StudyPlanner.tsx]"]
  node_tracker["Habit tracking"]
  node_calendar_hook["Calendar integration"]
  node_calendar_service["Calendar service"]
end

subgraph group_admin["Administration"]
  node_admin_dashboard["Admin dashboard<br/>[AdminDashboard.tsx]"]
  node_curriculum["Curriculum management"]
  node_questions_admin["Question management"]
end

subgraph group_ingest["Question ingestion"]
  node_pdf_pipeline["PDF processing<br/>[main.py]"]
  node_ocr["OCR and diagrams<br/>[ocr_service.py]"]
  node_parser["Question parsing<br/>[qwen_parser.py]"]
  node_chapter_map["Chapter mapping<br/>[chapter_mapper.py]"]
  node_push["Question publishing<br/>[supabase_push.py]"]
  node_odia["Odia translation<br/>[odia_pipeline.py]"]
  node_translator["Translation service<br/>[odia_translator.py]"]
end

node_learner(("Learner"))
node_admin_actor(("Administrator"))
node_supabase[("Supabase")]
node_vision["Google Vision"]
node_google_calendar["Google Calendar"]

node_learner -->|"uses"| node_app
node_admin_actor -->|"uses"| node_app
node_app -->|"routes to"| node_exam_select
node_app -->|"routes to"| node_dashboard
node_app -->|"routes to"| node_exam
node_exam -->|"runs session"| node_practice_logic
node_practice_logic -->|"loads questions"| node_questions
node_practice_logic -->|"records attempt"| node_supabase
node_mock_logic -->|"loads questions"| node_questions
node_mock_logic -->|"records attempt"| node_supabase
node_practice_logic -->|"navigates to"| node_results
node_mock_logic -->|"navigates to"| node_results
node_questions -->|"reads questions"| node_supabase
node_questions -->|"updates ability"| node_supabase
node_results -->|"informs review"| node_analytics
node_dashboard -->|"opens planner"| node_planner
node_planner -->|"uses tracking"| node_tracker
node_tracker -->|"reads and writes"| node_supabase
node_tracker -.->|"offers calendar"| node_calendar_hook
node_calendar_hook -.->|"calls"| node_calendar_service
node_calendar_service -.->|"manages events"| node_google_calendar
node_app -->|"routes to"| node_admin_dashboard
node_admin_dashboard -->|"manages curriculum"| node_curriculum
node_admin_dashboard -->|"manages questions"| node_questions_admin
node_pdf_pipeline -->|"extracts page content"| node_ocr
node_ocr -->|"requests text detection"| node_vision
node_pdf_pipeline -->|"parses clusters"| node_parser
node_pdf_pipeline -->|"maps chapters"| node_chapter_map
node_pdf_pipeline -->|"publishes questions"| node_push
node_push -->|"writes questions"| node_supabase
node_odia -->|"translates questions"| node_translator

click node_app "https://github.com/codeartist7071/arumind/blob/main/client/src/App.tsx"
click node_exam_select "https://github.com/codeartist7071/arumind/blob/main/client/src/pages/ExamSelection.tsx"
click node_dashboard "https://github.com/codeartist7071/arumind/blob/main/client/src/pages/userPanel/UserDashboard.tsx"
click node_exam "https://github.com/codeartist7071/arumind/blob/main/client/src/components/Exam.tsx"
click node_practice_logic "https://github.com/codeartist7071/arumind/blob/main/client/src/hooks/usePracticeTestLogic.ts"
click node_mock_logic "https://github.com/codeartist7071/arumind/blob/main/client/src/hooks/useMockTestLogic.ts"
click node_questions "https://github.com/codeartist7071/arumind/blob/main/client/src/services/questionService.ts"
click node_results "https://github.com/codeartist7071/arumind/blob/main/client/src/pages/userPanel/Results.tsx"
click node_analytics "https://github.com/codeartist7071/arumind/blob/main/client/src/pages/userPanel/PerformanceAnalytics.tsx"
click node_planner "https://github.com/codeartist7071/arumind/blob/main/client/src/pages/userPanel/StudyPlanner.tsx"
click node_tracker "https://github.com/codeartist7071/arumind/blob/main/client/src/components/studyPlanner/hooks/useTrackerGridLogic.ts"
click node_calendar_hook "https://github.com/codeartist7071/arumind/blob/main/client/src/utils/useGoogleCalender.ts"
click node_calendar_service "https://github.com/codeartist7071/arumind/blob/main/client/src/services/googleCalenderService.ts"
click node_admin_dashboard "https://github.com/codeartist7071/arumind/blob/main/client/src/pages/adminPanel/AdminDashboard.tsx"
click node_curriculum "https://github.com/codeartist7071/arumind/blob/main/client/src/pages/adminPanel/CurriculumLattice.tsx"
click node_questions_admin "https://github.com/codeartist7071/arumind/blob/main/client/src/pages/adminPanel/QuestionsManagement.tsx"
click node_pdf_pipeline "https://github.com/codeartist7071/arumind/blob/main/doc_pipeline/main.py"
click node_ocr "https://github.com/codeartist7071/arumind/blob/main/doc_pipeline/services/ocr_service.py"
click node_parser "https://github.com/codeartist7071/arumind/blob/main/doc_pipeline/services/qwen_parser.py"
click node_chapter_map "https://github.com/codeartist7071/arumind/blob/main/doc_pipeline/services/chapter_mapper.py"
click node_push "https://github.com/codeartist7071/arumind/blob/main/doc_pipeline/services/supabase_push.py"
click node_odia "https://github.com/codeartist7071/arumind/blob/main/doc_pipeline/odia_pipeline.py"
click node_translator "https://github.com/codeartist7071/arumind/blob/main/doc_pipeline/services/odia_translator.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_app,node_exam_select,node_dashboard toneBlue
class node_exam,node_practice_logic,node_mock_logic,node_questions,node_results,node_analytics,node_supabase toneAmber
class node_planner,node_tracker,node_calendar_hook,node_calendar_service toneMint
class node_admin_dashboard,node_curriculum,node_questions_admin toneRose
class node_pdf_pipeline,node_ocr,node_parser,node_chapter_map,node_push,node_odia,node_translator,node_learner,node_admin_actor,node_vision,node_google_calendar toneIndigo
```

## Components

### Learning app

- [App router](https://github.com/codeartist7071/arumind/blob/main/client/src/App.tsx): `client/src/App.tsx`
- [Exam selection](https://github.com/codeartist7071/arumind/blob/main/client/src/pages/ExamSelection.tsx): `client/src/pages/ExamSelection.tsx`
- [User dashboard](https://github.com/codeartist7071/arumind/blob/main/client/src/pages/userPanel/UserDashboard.tsx): `client/src/pages/userPanel/UserDashboard.tsx`

### Assessment and insights

- [Exam practice](https://github.com/codeartist7071/arumind/blob/main/client/src/components/Exam.tsx): `client/src/components/Exam.tsx`
- [Practice session](https://github.com/codeartist7071/arumind/blob/main/client/src/hooks/usePracticeTestLogic.ts): `client/src/hooks/usePracticeTestLogic.ts`
- [Mock session](https://github.com/codeartist7071/arumind/blob/main/client/src/hooks/useMockTestLogic.ts): `client/src/hooks/useMockTestLogic.ts`
- [Question access](https://github.com/codeartist7071/arumind/blob/main/client/src/services/questionService.ts): `client/src/services/questionService.ts`
- [Results](https://github.com/codeartist7071/arumind/blob/main/client/src/pages/userPanel/Results.tsx): `client/src/pages/userPanel/Results.tsx`
- [Performance analytics](https://github.com/codeartist7071/arumind/blob/main/client/src/pages/userPanel/PerformanceAnalytics.tsx): `client/src/pages/userPanel/PerformanceAnalytics.tsx`

### Planning

- [Study planner](https://github.com/codeartist7071/arumind/blob/main/client/src/pages/userPanel/StudyPlanner.tsx): `client/src/pages/userPanel/StudyPlanner.tsx`
- [Habit tracking](https://github.com/codeartist7071/arumind/blob/main/client/src/components/studyPlanner/hooks/useTrackerGridLogic.ts): `client/src/components/studyPlanner/hooks/useTrackerGridLogic.ts`
- [Calendar integration](https://github.com/codeartist7071/arumind/blob/main/client/src/utils/useGoogleCalender.ts): `client/src/utils/useGoogleCalender.ts`
- [Calendar service](https://github.com/codeartist7071/arumind/blob/main/client/src/services/googleCalenderService.ts): `client/src/services/googleCalenderService.ts`

### Administration

- [Admin dashboard](https://github.com/codeartist7071/arumind/blob/main/client/src/pages/adminPanel/AdminDashboard.tsx): `client/src/pages/adminPanel/AdminDashboard.tsx`
- [Curriculum management](https://github.com/codeartist7071/arumind/blob/main/client/src/pages/adminPanel/CurriculumLattice.tsx): `client/src/pages/adminPanel/CurriculumLattice.tsx`
- [Question management](https://github.com/codeartist7071/arumind/blob/main/client/src/pages/adminPanel/QuestionsManagement.tsx): `client/src/pages/adminPanel/QuestionsManagement.tsx`

### Question ingestion

- [PDF processing](https://github.com/codeartist7071/arumind/blob/main/doc_pipeline/main.py): `doc_pipeline/main.py`
- [OCR and diagrams](https://github.com/codeartist7071/arumind/blob/main/doc_pipeline/services/ocr_service.py): `doc_pipeline/services/ocr_service.py`
- [Question parsing](https://github.com/codeartist7071/arumind/blob/main/doc_pipeline/services/qwen_parser.py): `doc_pipeline/services/qwen_parser.py`
- [Chapter mapping](https://github.com/codeartist7071/arumind/blob/main/doc_pipeline/services/chapter_mapper.py): `doc_pipeline/services/chapter_mapper.py`
- [Question publishing](https://github.com/codeartist7071/arumind/blob/main/doc_pipeline/services/supabase_push.py): `doc_pipeline/services/supabase_push.py`
- [Odia translation](https://github.com/codeartist7071/arumind/blob/main/doc_pipeline/odia_pipeline.py): `doc_pipeline/odia_pipeline.py`
- [Translation service](https://github.com/codeartist7071/arumind/blob/main/doc_pipeline/services/odia_translator.py): `doc_pipeline/services/odia_translator.py`

### Other components

- **Learner**
- **Administrator**
- **Supabase**
- **Google Vision**
- **Google Calendar**

## Connections

- Learner → App router: uses
- Administrator → App router: uses
- App router → Exam selection: routes to
- App router → User dashboard: routes to
- App router → Exam practice: routes to
- Exam practice → Practice session: runs session
- Practice session → Question access: loads questions
- Practice session → Supabase: records attempt
- Mock session → Question access: loads questions
- Mock session → Supabase: records attempt
- Practice session → Results: navigates to
- Mock session → Results: navigates to
- Question access → Supabase: reads questions
- Question access → Supabase: updates ability
- Results → Performance analytics: informs review
- User dashboard → Study planner: opens planner
- Study planner → Habit tracking: uses tracking
- Habit tracking → Supabase: reads and writes
- Habit tracking → Calendar integration: offers calendar
- Calendar integration → Calendar service: calls
- Calendar service → Google Calendar: manages events
- App router → Admin dashboard: routes to
- Admin dashboard → Curriculum management: manages curriculum
- Admin dashboard → Question management: manages questions
- PDF processing → OCR and diagrams: extracts page content
- OCR and diagrams → Google Vision: requests text detection
- PDF processing → Question parsing: parses clusters
- PDF processing → Chapter mapping: maps chapters
- PDF processing → Question publishing: publishes questions
- Question publishing → Supabase: writes questions
- Odia translation → Translation service: translates questions
