# nithin-dt/mentiq architecture

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

- Interactive diagram: https://gitdiagram.com/nithin-dt/mentiq
- Repository: https://github.com/nithin-dt/mentiq

## Overview

MENTIQ is a coding-practice and learning application. Users enter through authentication, browse algorithm problems, choose a language, and work through practice and test-case views; code-analysis feedback and progress features appear in the product’s intelligence panels. The graph also preserves the profile and learning-extension capabilities visible in the tree. The route and selected component relationships are evidenced by excerpts; connections involving unsampled practice, authentication, and persistence internals are left unasserted where their callers were not shown.

Main entry points: [`mentiqai-main/src/App.tsx`](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/App.tsx) (App Router), [`mentiqai-main/src/components/mentiq/ExtensionPanel.tsx`](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/components/mentiq/ExtensionPanel.tsx) (Learning Extension), [`mentiqai-main/src/pages/Practice.tsx`](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/pages/Practice.tsx) (Practice Workspace), [`mentiqai-main/src/lib/problems.ts`](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/lib/problems.ts) (Problem Definitions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application Entry"]
  node_app["App Router<br/>[App.tsx]"]
  node_notfound["Not Found<br/>[NotFound.tsx]"]
end

subgraph group_practice["Problem Practice"]
  node_home["Problem Catalog<br/>[Home.tsx]"]
  node_problems["Problem Definitions<br/>[problems.ts]"]
  node_language["Language Selection"]
  node_practicepage["Practice Workspace<br/>[Practice.tsx]"]
  node_tests["Test Cases<br/>[TestCases.tsx]"]
end

subgraph group_learning["Learning Insights"]
  node_analyzer["Code Analyzer<br/>[analyzer.ts]"]
  node_extension["Learning Extension<br/>[ExtensionPanel.tsx]"]
  node_intelligence["Intelligence Panel"]
  node_feedback["Feedback Panel<br/>[FeedbackPanel.tsx]"]
  node_gamified["Gamified Progress<br/>[GamifiedPanel.tsx]"]
  node_analytics["Progress Analytics<br/>[AnalyticsPanel.tsx]"]
  node_progress["Progress State<br/>[useMentiqState.ts]"]
  node_lms["LMS Panel<br/>[LMSPanel.tsx]"]
end

subgraph group_identity["Identity and Profile"]
  node_login["Login<br/>[Login.tsx]"]
  node_auth["Authentication Context<br/>[AuthContext.tsx]"]
  node_profile["Profile<br/>[Profile.tsx]"]
end

node_learner(("Learner"))

node_learner -->|"opens app"| node_app
node_app -->|"routes to"| node_login
node_app -->|"routes to"| node_home
node_app -->|"routes to"| node_profile
node_app -->|"routes to"| node_practicepage
node_app -->|"routes to"| node_tests
node_app -->|"routes to"| node_language
node_app -->|"routes to"| node_notfound
node_app -->|"provides context"| node_auth
node_home -->|"reads problems"| node_problems
node_language -->|"reads problem"| node_problems
node_tests -->|"reads problem"| node_problems
node_practicepage -.->|"analyzes code"| node_analyzer
node_practicepage -.->|"shows insights"| node_extension
node_extension -->|"renders"| node_intelligence
node_extension -->|"renders"| node_feedback
node_extension -->|"renders"| node_gamified
node_extension -->|"renders"| node_analytics
node_extension -->|"receives progress"| node_progress
node_lms -.->|"supports learning"| node_learner

click node_app "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/App.tsx"
click node_login "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/pages/Login.tsx"
click node_auth "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/contexts/AuthContext.tsx"
click node_home "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/pages/Home.tsx"
click node_problems "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/lib/problems.ts"
click node_language "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/pages/LanguageSelection.tsx"
click node_practicepage "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/pages/Practice.tsx"
click node_tests "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/pages/TestCases.tsx"
click node_analyzer "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/lib/analyzer.ts"
click node_extension "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/components/mentiq/ExtensionPanel.tsx"
click node_intelligence "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/components/mentiq/IntelligencePanel.tsx"
click node_feedback "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/components/mentiq/FeedbackPanel.tsx"
click node_gamified "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/components/mentiq/GamifiedPanel.tsx"
click node_analytics "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/components/mentiq/AnalyticsPanel.tsx"
click node_progress "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/hooks/useMentiqState.ts"
click node_profile "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/pages/Profile.tsx"
click node_lms "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/components/mentiq/LMSPanel.tsx"
click node_notfound "https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/pages/NotFound.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_notfound toneBlue
class node_home,node_problems,node_language,node_practicepage,node_tests toneAmber
class node_analyzer,node_extension,node_intelligence,node_feedback,node_gamified,node_analytics,node_progress,node_lms toneMint
class node_login,node_auth,node_profile toneRose
class node_learner toneIndigo
```

## Components

### Application Entry

- [App Router](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/App.tsx): `mentiqai-main/src/App.tsx`
- [Not Found](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/pages/NotFound.tsx): `mentiqai-main/src/pages/NotFound.tsx`

### Problem Practice

- [Problem Catalog](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/pages/Home.tsx): `mentiqai-main/src/pages/Home.tsx`
- [Problem Definitions](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/lib/problems.ts): `mentiqai-main/src/lib/problems.ts`
- [Language Selection](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/pages/LanguageSelection.tsx): `mentiqai-main/src/pages/LanguageSelection.tsx`
- [Practice Workspace](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/pages/Practice.tsx): `mentiqai-main/src/pages/Practice.tsx`
- [Test Cases](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/pages/TestCases.tsx): `mentiqai-main/src/pages/TestCases.tsx`

### Learning Insights

- [Code Analyzer](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/lib/analyzer.ts): `mentiqai-main/src/lib/analyzer.ts`
- [Learning Extension](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/components/mentiq/ExtensionPanel.tsx): `mentiqai-main/src/components/mentiq/ExtensionPanel.tsx`
- [Intelligence Panel](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/components/mentiq/IntelligencePanel.tsx): `mentiqai-main/src/components/mentiq/IntelligencePanel.tsx`
- [Feedback Panel](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/components/mentiq/FeedbackPanel.tsx): `mentiqai-main/src/components/mentiq/FeedbackPanel.tsx`
- [Gamified Progress](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/components/mentiq/GamifiedPanel.tsx): `mentiqai-main/src/components/mentiq/GamifiedPanel.tsx`
- [Progress Analytics](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/components/mentiq/AnalyticsPanel.tsx): `mentiqai-main/src/components/mentiq/AnalyticsPanel.tsx`
- [Progress State](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/hooks/useMentiqState.ts): `mentiqai-main/src/hooks/useMentiqState.ts`
- [LMS Panel](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/components/mentiq/LMSPanel.tsx): `mentiqai-main/src/components/mentiq/LMSPanel.tsx`

### Identity and Profile

- [Login](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/pages/Login.tsx): `mentiqai-main/src/pages/Login.tsx`
- [Authentication Context](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/contexts/AuthContext.tsx): `mentiqai-main/src/contexts/AuthContext.tsx`
- [Profile](https://github.com/nithin-dt/mentiq/blob/main/mentiqai-main/src/pages/Profile.tsx): `mentiqai-main/src/pages/Profile.tsx`

### Other components

- **Learner**

## Connections

- Learner → App Router: opens app
- App Router → Login: routes to (evidence: `mentiqai-main/src/App.tsx`)
- App Router → Problem Catalog: routes to (evidence: `mentiqai-main/src/App.tsx`)
- App Router → Profile: routes to (evidence: `mentiqai-main/src/App.tsx`)
- App Router → Practice Workspace: routes to (evidence: `mentiqai-main/src/App.tsx`)
- App Router → Test Cases: routes to (evidence: `mentiqai-main/src/App.tsx`)
- App Router → Language Selection: routes to (evidence: `mentiqai-main/src/App.tsx`)
- App Router → Not Found: routes to (evidence: `mentiqai-main/src/App.tsx`)
- App Router → Authentication Context: provides context (evidence: `mentiqai-main/src/App.tsx`)
- Problem Catalog → Problem Definitions: reads problems (evidence: `mentiqai-main/src/pages/Home.tsx`)
- Language Selection → Problem Definitions: reads problem (evidence: `mentiqai-main/src/pages/LanguageSelection.tsx`)
- Test Cases → Problem Definitions: reads problem (evidence: `mentiqai-main/src/pages/TestCases.tsx`)
- Practice Workspace → Code Analyzer: analyzes code
- Practice Workspace → Learning Extension: shows insights
- Learning Extension → Intelligence Panel: renders (evidence: `mentiqai-main/src/components/mentiq/ExtensionPanel.tsx`)
- Learning Extension → Feedback Panel: renders (evidence: `mentiqai-main/src/components/mentiq/ExtensionPanel.tsx`)
- Learning Extension → Gamified Progress: renders (evidence: `mentiqai-main/src/components/mentiq/ExtensionPanel.tsx`)
- Learning Extension → Progress Analytics: renders (evidence: `mentiqai-main/src/components/mentiq/ExtensionPanel.tsx`)
- Learning Extension → Progress State: receives progress (evidence: `mentiqai-main/src/components/mentiq/ExtensionPanel.tsx`)
- LMS Panel → Learner: supports learning
