# sathwikprabhu-07/tara architecture

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

## Overview

TARA is a multilingual digital-skills learning app for women entrepreneurs. Learners enter through the landing page, choose a language, browse modules, study lessons, take quizzes, and review saved progress. Lesson content and quiz questions are bundled in the app; language and quiz progress use browser storage. Lesson pages also provide voice playback and an AI-explanation area, but the sampled code does not establish a connection from that area to the Gemini service. Several page implementations were not sampled, so their internal wiring is omitted.

Main entry points: [`src/App.jsx`](https://github.com/sathwikprabhu-07/tara/blob/main/src/App.jsx) (App router), [`src/pages/LessonPage.jsx`](https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/LessonPage.jsx) (Lesson experience), [`src/pages/QuizPage.jsx`](https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/QuizPage.jsx) (Quiz experience), [`src/pages/ModulesPage.jsx`](https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/ModulesPage.jsx) (Module catalog)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_navigation["App navigation"]
  node_app["App router<br/>[App.jsx]"]
  node_landing["Landing page<br/>[LandingPage.jsx]"]
  node_navbar["Navigation bar<br/>[Navbar.jsx]"]
  node_errorboundary["Error boundary<br/>[ErrorBoundary.jsx]"]
  node_particles["Particle backdrop<br/>[Particles.jsx]"]
  node_threads["Landing animation<br/>[Threads.jsx]"]
end

subgraph group_learning["Learning experience"]
  node_modules["Module catalog<br/>[ModulesPage.jsx]"]
  node_lesson["Lesson experience<br/>[LessonPage.jsx]"]
  node_quiz["Quiz experience<br/>[QuizPage.jsx]"]
end

subgraph group_content["Learning content"]
  node_lessondata["Lesson content<br/>[LessonPage.jsx]"]
  node_lessontranslations["Lesson translations"]
  node_uitranslations["UI and quiz data<br/>[uiTranslations.js]"]
end

subgraph group_support["Language and progress"]
  node_language["Language selection<br/>[LanguagePage.jsx]"]
  node_progress["Progress view<br/>[ProgressPage.jsx]"]
  node_browserstorage[("Browser storage")]
  node_speech["Speech synthesis"]
end

node_learner(("Learner"))

node_learner -->|"opens app"| node_app
node_app -->|"renders"| node_navbar
node_app -->|"routes to"| node_landing
node_app -->|"routes to"| node_language
node_app -->|"routes to"| node_modules
node_app -->|"routes to"| node_lesson
node_app -->|"routes to"| node_quiz
node_app -->|"routes to"| node_progress
node_app -->|"renders"| node_particles
node_landing -->|"renders"| node_threads
node_language -->|"writes language"| node_browserstorage
node_modules -->|"reads progress"| node_browserstorage
node_modules -->|"opens lesson"| node_lesson
node_lesson -->|"reads lessons"| node_lessondata
node_lesson -->|"reads translations"| node_lessontranslations
node_lesson -->|"reads labels"| node_uitranslations
node_lesson -->|"reads language"| node_browserstorage
node_lesson -->|"speaks lesson"| node_speech
node_lesson -->|"opens quiz"| node_quiz
node_quiz -->|"reads quiz data"| node_uitranslations
node_quiz -->|"saves progress"| node_browserstorage
node_progress -->|"reads progress"| node_browserstorage
node_app -->|"wraps app"| node_errorboundary

click node_app "https://github.com/sathwikprabhu-07/tara/blob/main/src/App.jsx"
click node_landing "https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/LandingPage.jsx"
click node_navbar "https://github.com/sathwikprabhu-07/tara/blob/main/src/components/Navbar.jsx"
click node_language "https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/LanguagePage.jsx"
click node_modules "https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/ModulesPage.jsx"
click node_lesson "https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/LessonPage.jsx"
click node_quiz "https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/QuizPage.jsx"
click node_progress "https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/ProgressPage.jsx"
click node_lessondata "https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/LessonPage.jsx"
click node_lessontranslations "https://github.com/sathwikprabhu-07/tara/blob/main/src/data/lessonTranslations.js"
click node_uitranslations "https://github.com/sathwikprabhu-07/tara/blob/main/src/data/uiTranslations.js"
click node_errorboundary "https://github.com/sathwikprabhu-07/tara/blob/main/src/components/ErrorBoundary.jsx"
click node_particles "https://github.com/sathwikprabhu-07/tara/blob/main/src/components/Particles.jsx"
click node_threads "https://github.com/sathwikprabhu-07/tara/blob/main/src/components/Threads.jsx"

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_landing,node_navbar,node_errorboundary,node_particles,node_threads toneBlue
class node_modules,node_lesson,node_quiz toneAmber
class node_lessondata,node_lessontranslations,node_uitranslations toneMint
class node_language,node_progress,node_browserstorage,node_speech toneRose
class node_learner toneIndigo
```

## Components

### App navigation

- [App router](https://github.com/sathwikprabhu-07/tara/blob/main/src/App.jsx): `src/App.jsx`
- [Landing page](https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/LandingPage.jsx): `src/pages/LandingPage.jsx`
- [Navigation bar](https://github.com/sathwikprabhu-07/tara/blob/main/src/components/Navbar.jsx): `src/components/Navbar.jsx`
- [Error boundary](https://github.com/sathwikprabhu-07/tara/blob/main/src/components/ErrorBoundary.jsx): `src/components/ErrorBoundary.jsx`
- [Particle backdrop](https://github.com/sathwikprabhu-07/tara/blob/main/src/components/Particles.jsx): `src/components/Particles.jsx`
- [Landing animation](https://github.com/sathwikprabhu-07/tara/blob/main/src/components/Threads.jsx): `src/components/Threads.jsx`

### Learning experience

- [Module catalog](https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/ModulesPage.jsx): `src/pages/ModulesPage.jsx`
- [Lesson experience](https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/LessonPage.jsx): `src/pages/LessonPage.jsx`
- [Quiz experience](https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/QuizPage.jsx): `src/pages/QuizPage.jsx`

### Learning content

- [Lesson content](https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/LessonPage.jsx): `src/pages/LessonPage.jsx`
- [Lesson translations](https://github.com/sathwikprabhu-07/tara/blob/main/src/data/lessonTranslations.js): `src/data/lessonTranslations.js`
- [UI and quiz data](https://github.com/sathwikprabhu-07/tara/blob/main/src/data/uiTranslations.js): `src/data/uiTranslations.js`

### Language and progress

- [Language selection](https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/LanguagePage.jsx): `src/pages/LanguagePage.jsx`
- [Progress view](https://github.com/sathwikprabhu-07/tara/blob/main/src/pages/ProgressPage.jsx): `src/pages/ProgressPage.jsx`
- **Browser storage**
- **Speech synthesis**

### Other components

- **Learner**

## Connections

- Learner → App router: opens app
- App router → Navigation bar: renders
- App router → Landing page: routes to
- App router → Language selection: routes to
- App router → Module catalog: routes to
- App router → Lesson experience: routes to
- App router → Quiz experience: routes to
- App router → Progress view: routes to
- App router → Particle backdrop: renders
- Landing page → Landing animation: renders
- Language selection → Browser storage: writes language
- Module catalog → Browser storage: reads progress
- Module catalog → Lesson experience: opens lesson
- Lesson experience → Lesson content: reads lessons
- Lesson experience → Lesson translations: reads translations
- Lesson experience → UI and quiz data: reads labels
- Lesson experience → Browser storage: reads language
- Lesson experience → Speech synthesis: speaks lesson
- Lesson experience → Quiz experience: opens quiz
- Quiz experience → UI and quiz data: reads quiz data
- Quiz experience → Browser storage: saves progress
- Progress view → Browser storage: reads progress
- App router → Error boundary: wraps app
