# praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style architecture

> Architecture diagram of the GitHub repository praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style
- Repository: https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style

## Overview

AIthera is a personalized educational-prompt platform: learners submit a topic and preferences, the backend coordinates a multi-model council, then returns a synthesized prompt and learning support. The graph includes the documented generation stages and the frontend’s major learning features. Some backend pipeline links follow the README’s architecture description; unsampled implementation details are not inferred beyond that documentation.

Main entry points: [`frontend/src/App.tsx`](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/App.tsx) (Web application), [`src/prompts/router.py`](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/prompts/router.py) (Prompt endpoints), [`frontend/src/services/api.ts`](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/services/api.ts) (API client), [`src/council/live_council.py`](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/council/live_council.py) (Council orchestration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Learner experience"]
  node_app["Web application<br/>[App.tsx]"]
  node_prompt_ui["Prompt workspace<br/>[PromptPage.tsx]"]
  node_result_ui["Generated result<br/>[ResultPage.tsx]"]
  node_learning_ui["Learning features"]
  node_chat_ui["Chat experience<br/>[ChatPage.tsx]"]
  node_voice_ui["Voice tools<br/>[VoicePage.tsx]"]
  node_upload_ui["Image upload<br/>[UploadPage.tsx]"]
  node_api_client["API client<br/>[api.ts]"]
end

subgraph group_api["API and identity"]
  node_api_app["FastAPI app<br/>[main.py]"]
  node_auth["Authentication<br/>[router.py]"]
  node_prompts["Prompt endpoints<br/>[router.py]"]
  node_prompt_store[("Prompt records<br/>[crud.py]")]
end

subgraph group_generation["Prompt generation"]
  node_ai_service["AI service<br/>[ai_service.py]"]
  node_style_engine["Learning styles<br/>[style_engine.py]"]
  node_council["Council orchestration<br/>[live_council.py]"]
  node_provider_registry["Provider registry"]
  node_provider_adapters["Model providers"]
  node_normalizer["Response normalization"]
  node_consensus["Consensus builder"]
  node_scoring["Prompt scoring<br/>[prompt_scorer.py]"]
  node_explanation["Pedagogical rationale"]
end

subgraph group_learning["Learning support"]
  node_recommendations["Recommendations API<br/>[router.py]"]
  node_recommendation_generator["Learning recommendations"]
  node_recommendation_engine["Prompt suggestions"]
end

node_learner(("Learner"))
node_external_models{{"AI model services"}}
node_database[("Application database<br/>[connection.py]")]

node_learner -->|"uses"| node_app
node_app -->|"routes to"| node_prompt_ui
node_app -->|"routes to"| node_result_ui
node_app -->|"routes to"| node_learning_ui
node_app -->|"routes to"| node_chat_ui
node_app -->|"routes to"| node_voice_ui
node_app -->|"routes to"| node_upload_ui
node_prompt_ui -->|"requests API"| node_api_client
node_result_ui -->|"requests API"| node_api_client
node_learning_ui -->|"requests API"| node_api_client
node_chat_ui -->|"requests API"| node_api_client
node_upload_ui -->|"requests API"| node_api_client
node_api_client -->|"sends HTTP"| node_api_app
node_api_app -->|"mounts router"| node_auth
node_api_app -->|"mounts router"| node_prompts
node_api_app -->|"mounts router"| node_recommendations
node_prompts -->|"reads and writes"| node_prompt_store
node_prompts -->|"generates prompt"| node_ai_service
node_ai_service -->|"executes council"| node_council
node_council -->|"applies style"| node_style_engine
node_council -->|"selects providers"| node_provider_registry
node_provider_registry -->|"dispatches requests"| node_provider_adapters
node_provider_adapters -->|"queries models"| node_external_models
node_council -->|"normalizes replies"| node_normalizer
node_council -->|"builds consensus"| node_consensus
node_prompts -->|"scores prompt"| node_scoring
node_prompts -->|"generates rationale"| node_explanation
node_prompts -->|"persists request"| node_database
node_recommendations -->|"loads history"| node_prompt_store
node_recommendations -->|"generates dashboard"| node_recommendation_generator
node_recommendation_generator -->|"queries Gemini"| node_external_models
node_ai_service -->|"generates suggestions"| node_recommendation_engine

click node_app "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/App.tsx"
click node_prompt_ui "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/pages/prompt/PromptPage.tsx"
click node_result_ui "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/pages/result/ResultPage.tsx"
click node_learning_ui "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/pages/recommendations/RecommendationPage.tsx"
click node_chat_ui "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/pages/chat/ChatPage.tsx"
click node_voice_ui "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/pages/voice/VoicePage.tsx"
click node_upload_ui "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/pages/upload/UploadPage.tsx"
click node_api_client "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/services/api.ts"
click node_api_app "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/main.py"
click node_auth "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/auth/router.py"
click node_prompts "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/prompts/router.py"
click node_prompt_store "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/prompts/crud.py"
click node_ai_service "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/services/ai_service.py"
click node_style_engine "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/learning/style_engine.py"
click node_council "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/council/live_council.py"
click node_provider_registry "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/providers/provider_registry.py"
click node_provider_adapters "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/tree/main/src/providers"
click node_normalizer "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/council/response_normalizer.py"
click node_consensus "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/consensus/consensus_builder.py"
click node_scoring "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/scoring/prompt_scorer.py"
click node_explanation "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/explanation/explanation_generator.py"
click node_recommendations "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/recommendations/router.py"
click node_recommendation_generator "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/services/recommendation_generator.py"
click node_recommendation_engine "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/optimizer/recommendation_engine.py"
click node_database "https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/database/connection.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_prompt_ui,node_result_ui,node_learning_ui,node_chat_ui,node_voice_ui,node_upload_ui,node_api_client toneBlue
class node_api_app,node_auth,node_prompts,node_prompt_store,node_database toneAmber
class node_ai_service,node_style_engine,node_council,node_provider_registry,node_provider_adapters,node_normalizer,node_consensus,node_scoring,node_explanation toneMint
class node_recommendations,node_recommendation_generator,node_recommendation_engine toneRose
class node_learner,node_external_models toneIndigo
```

## Components

### Learner experience

- [Web application](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Prompt workspace](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/pages/prompt/PromptPage.tsx): `frontend/src/pages/prompt/PromptPage.tsx`
- [Generated result](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/pages/result/ResultPage.tsx): `frontend/src/pages/result/ResultPage.tsx`
- [Learning features](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/pages/recommendations/RecommendationPage.tsx): `frontend/src/pages/recommendations/RecommendationPage.tsx`
- [Chat experience](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/pages/chat/ChatPage.tsx): `frontend/src/pages/chat/ChatPage.tsx`
- [Voice tools](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/pages/voice/VoicePage.tsx): `frontend/src/pages/voice/VoicePage.tsx`
- [Image upload](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/pages/upload/UploadPage.tsx): `frontend/src/pages/upload/UploadPage.tsx`
- [API client](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/frontend/src/services/api.ts): `frontend/src/services/api.ts`

### API and identity

- [FastAPI app](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/main.py): `src/main.py`
- [Authentication](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/auth/router.py): `src/auth/router.py`
- [Prompt endpoints](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/prompts/router.py): `src/prompts/router.py`
- [Prompt records](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/prompts/crud.py): `src/prompts/crud.py`

### Prompt generation

- [AI service](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/services/ai_service.py): `src/services/ai_service.py`
- [Learning styles](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/learning/style_engine.py): `src/learning/style_engine.py`
- [Council orchestration](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/council/live_council.py): `src/council/live_council.py`
- [Provider registry](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/providers/provider_registry.py): `src/providers/provider_registry.py`
- [Model providers](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/tree/main/src/providers): `src/providers`
- [Response normalization](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/council/response_normalizer.py): `src/council/response_normalizer.py`
- [Consensus builder](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/consensus/consensus_builder.py): `src/consensus/consensus_builder.py`
- [Prompt scoring](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/scoring/prompt_scorer.py): `src/scoring/prompt_scorer.py`
- [Pedagogical rationale](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/explanation/explanation_generator.py): `src/explanation/explanation_generator.py`

### Learning support

- [Recommendations API](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/recommendations/router.py): `src/recommendations/router.py`
- [Learning recommendations](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/services/recommendation_generator.py): `src/services/recommendation_generator.py`
- [Prompt suggestions](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/optimizer/recommendation_engine.py): `src/optimizer/recommendation_engine.py`

### Other components

- **Learner**
- **AI model services**
- [Application database](https://github.com/praveenamurugesan-tech/aithera--the-prompt-playground-for-every-learning-style/blob/main/src/database/connection.py): `src/database/connection.py`

## Connections

- Learner → Web application: uses
- Web application → Prompt workspace: routes to
- Web application → Generated result: routes to
- Web application → Learning features: routes to
- Web application → Chat experience: routes to
- Web application → Voice tools: routes to
- Web application → Image upload: routes to
- Prompt workspace → API client: requests API
- Generated result → API client: requests API
- Learning features → API client: requests API
- Chat experience → API client: requests API
- Image upload → API client: requests API
- API client → FastAPI app: sends HTTP
- FastAPI app → Authentication: mounts router
- FastAPI app → Prompt endpoints: mounts router
- FastAPI app → Recommendations API: mounts router
- Prompt endpoints → Prompt records: reads and writes
- Prompt endpoints → AI service: generates prompt
- AI service → Council orchestration: executes council
- Council orchestration → Learning styles: applies style
- Council orchestration → Provider registry: selects providers
- Provider registry → Model providers: dispatches requests
- Model providers → AI model services: queries models
- Council orchestration → Response normalization: normalizes replies
- Council orchestration → Consensus builder: builds consensus
- Prompt endpoints → Prompt scoring: scores prompt
- Prompt endpoints → Pedagogical rationale: generates rationale
- Prompt endpoints → Application database: persists request
- Recommendations API → Prompt records: loads history
- Recommendations API → Learning recommendations: generates dashboard
- Learning recommendations → AI model services: queries Gemini
- AI service → Prompt suggestions: generates suggestions
