# shihabxnoob/learn-kotlin-bangla architecture

> Architecture diagram of the GitHub repository shihabxnoob/learn-kotlin-bangla, 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/shihabxnoob/learn-kotlin-bangla
- Repository: https://github.com/shihabxnoob/learn-kotlin-bangla

## Overview

Kotlin বাংলা is a Bengali-language Kotlin learning platform. Learners enter through the roadmap, choose a module, and open lessons containing explanations, Kotlin examples, and illustrative output; the curriculum progresses from fundamentals and control flow through functions, null safety, collections, object-oriented and functional Kotlin, to advanced topics. A separate theme layer offers Kitty/Winter styling and persistent ambience settings. The README documents these capabilities, while sampled source confirms routing, theme persistence, and parts of the lesson and module views; unsampled page wiring is represented only where supported by the documented structure.

Main entry points: [`src/App.tsx`](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/App.tsx) (App Router), [`src/context/ThemeContext.tsx`](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/context/ThemeContext.tsx) (Theme State), [`src/pages/LessonPage.tsx`](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/pages/LessonPage.tsx) (Lesson Reader), [`src/components/ThemeIcons.tsx`](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/components/ThemeIcons.tsx) (Adaptive Icons)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_learning["Learning Journey"]
  node_app["App Router<br/>[App.tsx]"]
  node_home["Roadmap Home<br/>[HomePage.tsx]"]
  node_modulepage["Module Browser<br/>[ModulePage.tsx]"]
  node_lessonpage["Lesson Reader<br/>[LessonPage.tsx]"]
end

subgraph group_content["Curriculum Content"]
  node_moduledata["Module Metadata<br/>[modules.ts]"]
  node_lessons["Lesson Content<br/>[lessonContents.ts]"]
end

subgraph group_presentation["Learning UI"]
  node_roadmap["Roadmap Cards<br/>[Roadmap.tsx]"]
  node_codeblock["Code Presentation<br/>[CodeBlock.tsx]"]
  node_navbar["Global Navigation<br/>[Navbar.tsx]"]
end

subgraph group_theme["Theme System"]
  node_themecontext["Theme State<br/>[ThemeContext.tsx]"]
  node_themeswitcher["Theme Controls<br/>[ThemeSwitcher.tsx]"]
  node_themeicons["Adaptive Icons<br/>[ThemeIcons.tsx]"]
  node_kitty["Kitty Vectors<br/>[KittyIcons.tsx]"]
  node_winter["Winter Vectors<br/>[WinterIcons.tsx]"]
end

node_learner(("Learner"))
node_storage[("Browser Storage")]

node_learner -->|"opens"| node_app
node_app -->|"routes home"| node_home
node_app -->|"routes module"| node_modulepage
node_app -->|"routes lesson"| node_lessonpage
node_home -->|"renders cards"| node_roadmap
node_roadmap -->|"reads curriculum"| node_moduledata
node_modulepage -->|"looks up module"| node_moduledata
node_lessonpage -->|"reads lesson"| node_lessons
node_lessonpage -->|"presents examples"| node_codeblock
node_app -->|"renders navigation"| node_navbar
node_themeswitcher -->|"updates settings"| node_themecontext
node_themecontext -->|"persists settings"| node_storage
node_themecontext -->|"loads accents"| node_kitty
node_themecontext -->|"loads accents"| node_winter
node_themecontext -->|"provides theme"| node_themeicons
node_themeicons -->|"selects Kitty icons"| node_kitty
node_themeicons -->|"selects Winter icons"| node_winter

click node_app "https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/App.tsx"
click node_home "https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/pages/HomePage.tsx"
click node_modulepage "https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/pages/ModulePage.tsx"
click node_lessonpage "https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/pages/LessonPage.tsx"
click node_moduledata "https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/data/modules.ts"
click node_lessons "https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/data/lessonContents.ts"
click node_roadmap "https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/components/Roadmap.tsx"
click node_codeblock "https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/components/CodeBlock.tsx"
click node_navbar "https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/components/Navbar.tsx"
click node_themecontext "https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/context/ThemeContext.tsx"
click node_themeswitcher "https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/components/ThemeSwitcher.tsx"
click node_themeicons "https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/components/ThemeIcons.tsx"
click node_kitty "https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/components/KittyIcons.tsx"
click node_winter "https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/components/WinterIcons.tsx"

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_home,node_modulepage,node_lessonpage toneBlue
class node_moduledata,node_lessons,node_storage toneAmber
class node_roadmap,node_codeblock,node_navbar toneMint
class node_themecontext,node_themeswitcher,node_themeicons,node_kitty,node_winter toneRose
class node_learner toneIndigo
```

## Components

### Learning Journey

- [App Router](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/App.tsx): `src/App.tsx`
- [Roadmap Home](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/pages/HomePage.tsx): `src/pages/HomePage.tsx`
- [Module Browser](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/pages/ModulePage.tsx): `src/pages/ModulePage.tsx`
- [Lesson Reader](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/pages/LessonPage.tsx): `src/pages/LessonPage.tsx`

### Curriculum Content

- [Module Metadata](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/data/modules.ts): `src/data/modules.ts`
- [Lesson Content](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/data/lessonContents.ts): `src/data/lessonContents.ts`

### Learning UI

- [Roadmap Cards](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/components/Roadmap.tsx): `src/components/Roadmap.tsx`
- [Code Presentation](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/components/CodeBlock.tsx): `src/components/CodeBlock.tsx`
- [Global Navigation](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/components/Navbar.tsx): `src/components/Navbar.tsx`

### Theme System

- [Theme State](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/context/ThemeContext.tsx): `src/context/ThemeContext.tsx`
- [Theme Controls](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/components/ThemeSwitcher.tsx): `src/components/ThemeSwitcher.tsx`
- [Adaptive Icons](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/components/ThemeIcons.tsx): `src/components/ThemeIcons.tsx`
- [Kitty Vectors](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/components/KittyIcons.tsx): `src/components/KittyIcons.tsx`
- [Winter Vectors](https://github.com/shihabxnoob/learn-kotlin-bangla/blob/main/src/components/WinterIcons.tsx): `src/components/WinterIcons.tsx`

### Other components

- **Learner**
- **Browser Storage**

## Connections

- Learner → App Router: opens
- App Router → Roadmap Home: routes home
- App Router → Module Browser: routes module
- App Router → Lesson Reader: routes lesson
- Roadmap Home → Roadmap Cards: renders cards
- Roadmap Cards → Module Metadata: reads curriculum
- Module Browser → Module Metadata: looks up module
- Lesson Reader → Lesson Content: reads lesson
- Lesson Reader → Code Presentation: presents examples
- App Router → Global Navigation: renders navigation
- Theme Controls → Theme State: updates settings
- Theme State → Browser Storage: persists settings
- Theme State → Kitty Vectors: loads accents
- Theme State → Winter Vectors: loads accents
- Theme State → Adaptive Icons: provides theme
- Adaptive Icons → Kitty Vectors: selects Kitty icons
- Adaptive Icons → Winter Vectors: selects Winter icons
