# shaan-codes-art/iks-web-development architecture

> Architecture diagram of the GitHub repository shaan-codes-art/iks-web-development, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/shaan-codes-art/iks-web-development
- Repository: https://github.com/shaan-codes-art/iks-web-development

## Overview

The Panini Parser is an educational and research-oriented Sanskrit and Pāṇinian grammar platform. Learners enter through the home page, explore grammar lessons, sutras, word formation or Sanskrit analysis, and can practise with quizzes and review progress; researchers can consult the research hub and references. A server-side API connects the learning assistant to configured AI services. The graph preserves the README’s major capabilities, while source-level links are limited to imports named in the SOURCE INDEX; several feature descriptions are documented but their internal implementation was not sampled.

Main entry points: [`src/app/page.tsx`](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/page.tsx) (Home), [`src/components/GlobalSearch.tsx`](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/components/GlobalSearch.tsx) (Global search), [`src/app/practice/page.tsx`](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/practice/page.tsx) (Practice and quizzes), [`src/data/researchPapers.ts`](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/data/researchPapers.ts) (Research proposals)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Platform and navigation"]
  node_home["Home<br/>[page.tsx]"]
  node_search["Global search<br/>[GlobalSearch.tsx]"]
end

subgraph group_grammar["Grammar exploration"]
  node_analysis["Sanskrit analysis lab<br/>[page.tsx]"]
  node_analysisdata["Analysis content<br/>[analysisData.ts]"]
  node_formation["Word formation<br/>[page.tsx]"]
  node_prakriya["Prakriya explorer<br/>[page.tsx]"]
  node_sanskritdata["Sanskrit paradigms<br/>[sanskritData.ts]"]
  node_sutras["Sutra library<br/>[page.tsx]"]
  node_sutradata["Sutra collection<br/>[sutraData.ts]"]
end

subgraph group_learning["Learning and assessment"]
  node_lessons["Grammar lessons<br/>[page.tsx]"]
  node_learningdata["Lesson content<br/>[learningData.ts]"]
  node_practice["Practice and quizzes<br/>[page.tsx]"]
  node_quizdata["Quiz bank<br/>[quizData.ts]"]
  node_quizsession["Quiz session logic<br/>[quizSession.ts]"]
  node_results["Quiz results<br/>[page.tsx]"]
  node_resultstore[("Saved quiz results<br/>[quizResults.ts]")]
  node_progress[("Learning progress")]
  node_progresspage["Progress review<br/>[page.tsx]"]
end

subgraph group_research["Research resources"]
  node_researchhub["Research hub<br/>[page.tsx]"]
  node_xnlp["Explainable NLP<br/>[page.tsx]"]
  node_call["CALL research<br/>[page.tsx]"]
  node_papers["Research proposals<br/>[researchPapers.ts]"]
  node_references["References<br/>[page.tsx]"]
  node_referencebank["Reference collection<br/>[references.tsx]"]
end

subgraph group_assistant["AI assistant"]
  node_assistantpage["Assistant interface<br/>[page.tsx]"]
  node_assistantui["Learning assistant"]
  node_api["Assistant API route<br/>[route.ts]"]
  node_knowledge["Assistant knowledge"]
end

node_learner(("Learner or researcher"))
node_ai{{"Configured AI provider"}}

node_learner -->|"opens platform"| node_home
node_home -->|"explores analysis"| node_analysis
node_home -->|"explores formation"| node_formation
node_home -->|"starts learning"| node_lessons
node_home -->|"starts practice"| node_practice
node_home -->|"opens library"| node_sutras
node_learner -->|"searches content"| node_search
node_search -->|"searches lessons"| node_learningdata
node_search -->|"searches sutras"| node_sutradata
node_search -->|"searches formations"| node_sanskritdata
node_search -->|"searches research"| node_papers
node_search -->|"searches references"| node_referencebank
node_analysis -->|"reads content"| node_analysisdata
node_formation -->|"reads paradigms"| node_sanskritdata
node_prakriya -->|"reads derivations"| node_sanskritdata
node_sutras -->|"reads rules"| node_sutradata
node_lessons -->|"reads lessons"| node_learningdata
node_lessons -->|"saves progress"| node_progress
node_practice -->|"creates session"| node_quizsession
node_quizsession -->|"selects questions"| node_quizdata
node_practice -->|"uses quiz bank"| node_quizdata
node_practice -->|"saves results"| node_resultstore
node_practice -->|"records attempts"| node_progress
node_results -->|"reads questions"| node_quizdata
node_results -->|"loads results"| node_resultstore
node_progresspage -->|"loads progress"| node_progress
node_researchhub -->|"presents proposals"| node_papers
node_xnlp -->|"presents proposal"| node_papers
node_call -->|"presents proposal"| node_papers
node_references -->|"reads references"| node_referencebank
node_learner -->|"asks question"| node_assistantpage
node_assistantpage -->|"renders interface"| node_assistantui
node_assistantui -->|"sends question"| node_api
node_api -->|"retrieves context"| node_knowledge
node_api -.->|"requests response"| node_ai

click node_home "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/page.tsx"
click node_search "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/components/GlobalSearch.tsx"
click node_analysis "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/analysis-lab/page.tsx"
click node_analysisdata "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/data/analysisData.ts"
click node_formation "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/word-formation/page.tsx"
click node_prakriya "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/prakriya/page.tsx"
click node_sanskritdata "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/data/sanskritData.ts"
click node_sutras "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/sutras/page.tsx"
click node_sutradata "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/data/sutraData.ts"
click node_lessons "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/learn/page.tsx"
click node_learningdata "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/data/learningData.ts"
click node_practice "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/practice/page.tsx"
click node_quizdata "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/data/quizData.ts"
click node_quizsession "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/lib/quizSession.ts"
click node_results "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/quiz-results/page.tsx"
click node_resultstore "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/lib/quizResults.ts"
click node_progress "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/lib/learningProgress.ts"
click node_progresspage "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/progress/page.tsx"
click node_researchhub "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/about/page.tsx"
click node_xnlp "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/explainable-nlp/page.tsx"
click node_call "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/pedagogy-call/page.tsx"
click node_papers "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/data/researchPapers.ts"
click node_references "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/references/page.tsx"
click node_referencebank "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/data/references.tsx"
click node_assistantpage "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/assistant/page.tsx"
click node_assistantui "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/components/LearningAssistant.tsx"
click node_api "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/api/learning-assistant/route.ts"
click node_knowledge "https://github.com/shaan-codes-art/iks-web-development/blob/main/src/lib/assistantKnowledge.ts"

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_home,node_search toneBlue
class node_analysis,node_analysisdata,node_formation,node_prakriya,node_sanskritdata,node_sutras,node_sutradata toneAmber
class node_lessons,node_learningdata,node_practice,node_quizdata,node_quizsession,node_results,node_resultstore,node_progress,node_progresspage toneMint
class node_researchhub,node_xnlp,node_call,node_papers,node_references,node_referencebank toneRose
class node_assistantpage,node_assistantui,node_api,node_knowledge,node_learner,node_ai toneIndigo
```

## Components

### Platform and navigation

- [Home](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/page.tsx): `src/app/page.tsx`
- [Global search](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/components/GlobalSearch.tsx): `src/components/GlobalSearch.tsx`

### Grammar exploration

- [Sanskrit analysis lab](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/analysis-lab/page.tsx): `src/app/analysis-lab/page.tsx`
- [Analysis content](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/data/analysisData.ts): `src/data/analysisData.ts`
- [Word formation](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/word-formation/page.tsx): `src/app/word-formation/page.tsx`
- [Prakriya explorer](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/prakriya/page.tsx): `src/app/prakriya/page.tsx`
- [Sanskrit paradigms](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/data/sanskritData.ts): `src/data/sanskritData.ts`
- [Sutra library](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/sutras/page.tsx): `src/app/sutras/page.tsx`
- [Sutra collection](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/data/sutraData.ts): `src/data/sutraData.ts`

### Learning and assessment

- [Grammar lessons](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/learn/page.tsx): `src/app/learn/page.tsx`
- [Lesson content](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/data/learningData.ts): `src/data/learningData.ts`
- [Practice and quizzes](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/practice/page.tsx): `src/app/practice/page.tsx`
- [Quiz bank](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/data/quizData.ts): `src/data/quizData.ts`
- [Quiz session logic](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/lib/quizSession.ts): `src/lib/quizSession.ts`
- [Quiz results](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/quiz-results/page.tsx): `src/app/quiz-results/page.tsx`
- [Saved quiz results](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/lib/quizResults.ts): `src/lib/quizResults.ts`
- [Learning progress](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/lib/learningProgress.ts): `src/lib/learningProgress.ts`
- [Progress review](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/progress/page.tsx): `src/app/progress/page.tsx`

### Research resources

- [Research hub](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/about/page.tsx): `src/app/about/page.tsx`
- [Explainable NLP](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/explainable-nlp/page.tsx): `src/app/explainable-nlp/page.tsx`
- [CALL research](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/pedagogy-call/page.tsx): `src/app/pedagogy-call/page.tsx`
- [Research proposals](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/data/researchPapers.ts): `src/data/researchPapers.ts`
- [References](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/references/page.tsx): `src/app/references/page.tsx`
- [Reference collection](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/data/references.tsx): `src/data/references.tsx`

### AI assistant

- [Assistant interface](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/assistant/page.tsx): `src/app/assistant/page.tsx`
- [Learning assistant](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/components/LearningAssistant.tsx): `src/components/LearningAssistant.tsx`
- [Assistant API route](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/app/api/learning-assistant/route.ts): `src/app/api/learning-assistant/route.ts`
- [Assistant knowledge](https://github.com/shaan-codes-art/iks-web-development/blob/main/src/lib/assistantKnowledge.ts): `src/lib/assistantKnowledge.ts`

### Other components

- **Learner or researcher**
- **Configured AI provider**

## Connections

- Learner or researcher → Home: opens platform
- Home → Sanskrit analysis lab: explores analysis
- Home → Word formation: explores formation
- Home → Grammar lessons: starts learning
- Home → Practice and quizzes: starts practice
- Home → Sutra library: opens library
- Learner or researcher → Global search: searches content
- Global search → Lesson content: searches lessons (evidence: `src/components/GlobalSearch.tsx`)
- Global search → Sutra collection: searches sutras (evidence: `src/components/GlobalSearch.tsx`)
- Global search → Sanskrit paradigms: searches formations (evidence: `src/components/GlobalSearch.tsx`)
- Global search → Research proposals: searches research (evidence: `src/components/GlobalSearch.tsx`)
- Global search → Reference collection: searches references (evidence: `src/components/GlobalSearch.tsx`)
- Sanskrit analysis lab → Analysis content: reads content (evidence: `src/app/analysis-lab/page.tsx`)
- Word formation → Sanskrit paradigms: reads paradigms (evidence: `src/app/word-formation/page.tsx`)
- Prakriya explorer → Sanskrit paradigms: reads derivations (evidence: `src/app/prakriya/page.tsx`)
- Sutra library → Sutra collection: reads rules (evidence: `src/app/sutras/page.tsx`)
- Grammar lessons → Lesson content: reads lessons (evidence: `src/app/learn/page.tsx`)
- Grammar lessons → Learning progress: saves progress (evidence: `src/app/learn/page.tsx`)
- Practice and quizzes → Quiz session logic: creates session (evidence: `src/app/practice/page.tsx`)
- Quiz session logic → Quiz bank: selects questions (evidence: `src/lib/quizSession.ts`)
- Practice and quizzes → Quiz bank: uses quiz bank (evidence: `src/app/practice/page.tsx`)
- Practice and quizzes → Saved quiz results: saves results (evidence: `src/app/practice/page.tsx`)
- Practice and quizzes → Learning progress: records attempts (evidence: `src/app/practice/page.tsx`)
- Quiz results → Quiz bank: reads questions (evidence: `src/app/quiz-results/page.tsx`)
- Quiz results → Saved quiz results: loads results (evidence: `src/app/quiz-results/page.tsx`)
- Progress review → Learning progress: loads progress (evidence: `src/app/progress/page.tsx`)
- Research hub → Research proposals: presents proposals (evidence: `src/app/about/page.tsx`)
- Explainable NLP → Research proposals: presents proposal (evidence: `src/app/explainable-nlp/page.tsx`)
- CALL research → Research proposals: presents proposal (evidence: `src/app/pedagogy-call/page.tsx`)
- References → Reference collection: reads references (evidence: `src/app/references/page.tsx`)
- Learner or researcher → Assistant interface: asks question
- Assistant interface → Learning assistant: renders interface (evidence: `src/app/assistant/page.tsx`)
- Learning assistant → Assistant API route: sends question
- Assistant API route → Assistant knowledge: retrieves context (evidence: `src/app/api/learning-assistant/route.ts`)
- Assistant API route → Configured AI provider: requests response
