# swarup-2004/amdocs-genai-hackathon-backend architecture

> Architecture diagram of the GitHub repository swarup-2004/amdocs-genai-hackathon-backend, 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/swarup-2004/amdocs-genai-hackathon-backend
- Repository: https://github.com/swarup-2004/amdocs-genai-hackathon-backend

## Overview

This is a Django backend for a personalized learning product. A learner uses the API to manage goals and skills, get a generated roadmap and practice plan, take assessments, submit feedback, and receive updated learning content or course recommendations; a separate chat endpoint supports learning questions. The excerpts show key view-to-generator and view-to-vector-store calls, but not all routes or utility implementations, so uncertain wiring is omitted. The README documents Qdrant collections and environment-configured integrations; only Groq and Qdrant usage is visible in sampled source.

Main entry points: [`backend/api/views.py`](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/views.py) (Learning API views), [`backend/backend/urls.py`](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/backend/urls.py) (Django URL routing), [`backend/auth_blacklist/views.py`](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/auth_blacklist/views.py) (Token blacklist), [`backend/chatbot/urls.py`](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/chatbot/urls.py) (Chat URL routing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API and identity"]
  node_router["Django URL routing<br/>[urls.py]"]
  node_api_views["Learning API views<br/>[views.py]"]
  node_auth["Authentication endpoints<br/>[urls.py]"]
  node_blacklist["Token blacklist<br/>[views.py]"]
  node_chat_route["Chat URL routing<br/>[urls.py]"]
end

subgraph group_journey["Learning journey"]
  node_goals["Goals and skills<br/>[models.py]"]
  node_assessment["Tests and scoring<br/>[models.py]"]
  node_feedback["Learning feedback<br/>[models.py]"]
  node_modules["Learning modules<br/>[models.py]"]
end

subgraph group_ai["AI capabilities"]
  node_smart_goal["Goal validation<br/>[is_smart.py]"]
  node_quiz_gen["Assessment generation"]
  node_roadmap_gen["Roadmap generation"]
  node_module_update["Module adaptation"]
  node_course_recs["Course recommendations"]
  node_profile_skill["Profile skill assessment"]
  node_chat_view["Learning chatbot<br/>[views.py]"]
end

subgraph group_state["Persistence"]
  node_rel_db[("Relational database<br/>[settings.py]")]
  node_vector_store[("Qdrant vector store<br/>[qdrant_utils.py]")]
  node_course_store[("Course collection")]
end

node_learner(("Learner"))
node_groq{{"Groq language models"}}

node_learner -->|"sends requests"| node_router
node_router -->|"dispatches API"| node_api_views
node_router -->|"dispatches auth"| node_auth
node_router -->|"dispatches logout"| node_blacklist
node_router -->|"dispatches chat"| node_chat_route
node_chat_route -->|"routes to"| node_chat_view
node_api_views -->|"reads and writes"| node_rel_db
node_api_views -->|"validates goals"| node_smart_goal
node_api_views -->|"generates module"| node_roadmap_gen
node_api_views -->|"stores and retrieves"| node_vector_store
node_api_views -->|"updates module"| node_module_update
node_api_views -->|"generates assessment"| node_quiz_gen
node_api_views -->|"requests recommendations"| node_course_recs
node_api_views -.->|"assesses skills"| node_profile_skill
node_api_views -->|"manages"| node_goals
node_api_views -->|"manages"| node_assessment
node_api_views -->|"manages"| node_feedback
node_api_views -->|"manages"| node_modules
node_roadmap_gen -->|"generates content"| node_groq
node_module_update -->|"evaluates and revises"| node_groq
node_chat_view -->|"answers questions"| node_groq
node_course_recs -.->|"retrieves courses"| node_course_store
node_blacklist -->|"blacklists token"| node_rel_db

click node_router "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/backend/urls.py"
click node_api_views "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/views.py"
click node_auth "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/backend/urls.py"
click node_blacklist "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/auth_blacklist/views.py"
click node_goals "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/models.py"
click node_assessment "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/models.py"
click node_feedback "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/models.py"
click node_modules "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/models.py"
click node_smart_goal "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/utils/is_smart.py"
click node_quiz_gen "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/utils/preliminary_test_question_generation.py"
click node_roadmap_gen "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/utils/learning_cell_generation.py"
click node_module_update "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/utils/update_learning_cell.py"
click node_course_recs "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/utils/recommend_course.py"
click node_profile_skill "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/utils/profile_scraper_and_skill_assesment.py"
click node_chat_view "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/chatbot/views.py"
click node_rel_db "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/backend/settings.py"
click node_vector_store "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/utils/qdrant_utils.py"
click node_chat_route "https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/chatbot/urls.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_router,node_api_views,node_auth,node_blacklist,node_chat_route toneBlue
class node_goals,node_assessment,node_feedback,node_modules toneAmber
class node_smart_goal,node_quiz_gen,node_roadmap_gen,node_module_update,node_course_recs,node_profile_skill,node_chat_view toneMint
class node_rel_db,node_vector_store,node_course_store toneRose
class node_learner,node_groq toneIndigo
```

## Components

### API and identity

- [Django URL routing](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/backend/urls.py): `backend/backend/urls.py`
- [Learning API views](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/views.py): `backend/api/views.py`
- [Authentication endpoints](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/backend/urls.py): `backend/backend/urls.py`
- [Token blacklist](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/auth_blacklist/views.py): `backend/auth_blacklist/views.py`
- [Chat URL routing](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/chatbot/urls.py): `backend/chatbot/urls.py`

### Learning journey

- [Goals and skills](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/models.py): `backend/api/models.py`
- [Tests and scoring](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/models.py): `backend/api/models.py`
- [Learning feedback](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/models.py): `backend/api/models.py`
- [Learning modules](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/models.py): `backend/api/models.py`

### AI capabilities

- [Goal validation](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/utils/is_smart.py): `backend/api/utils/is_smart.py`
- [Assessment generation](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/utils/preliminary_test_question_generation.py): `backend/api/utils/preliminary_test_question_generation.py`
- [Roadmap generation](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/utils/learning_cell_generation.py): `backend/api/utils/learning_cell_generation.py`
- [Module adaptation](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/utils/update_learning_cell.py): `backend/api/utils/update_learning_cell.py`
- [Course recommendations](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/utils/recommend_course.py): `backend/api/utils/recommend_course.py`
- [Profile skill assessment](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/utils/profile_scraper_and_skill_assesment.py): `backend/api/utils/profile_scraper_and_skill_assesment.py`
- [Learning chatbot](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/chatbot/views.py): `backend/chatbot/views.py`

### Persistence

- [Relational database](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/backend/settings.py): `backend/backend/settings.py`
- [Qdrant vector store](https://github.com/swarup-2004/amdocs-genai-hackathon-backend/blob/main/backend/api/utils/qdrant_utils.py): `backend/api/utils/qdrant_utils.py`
- **Course collection**

### Other components

- **Learner**
- **Groq language models**

## Connections

- Learner → Django URL routing: sends requests
- Django URL routing → Learning API views: dispatches API
- Django URL routing → Authentication endpoints: dispatches auth
- Django URL routing → Token blacklist: dispatches logout
- Django URL routing → Chat URL routing: dispatches chat
- Chat URL routing → Learning chatbot: routes to
- Learning API views → Relational database: reads and writes
- Learning API views → Goal validation: validates goals
- Learning API views → Roadmap generation: generates module
- Learning API views → Qdrant vector store: stores and retrieves
- Learning API views → Module adaptation: updates module
- Learning API views → Assessment generation: generates assessment
- Learning API views → Course recommendations: requests recommendations
- Learning API views → Profile skill assessment: assesses skills
- Learning API views → Goals and skills: manages
- Learning API views → Tests and scoring: manages
- Learning API views → Learning feedback: manages
- Learning API views → Learning modules: manages
- Roadmap generation → Groq language models: generates content
- Module adaptation → Groq language models: evaluates and revises
- Learning chatbot → Groq language models: answers questions
- Course recommendations → Course collection: retrieves courses
- Token blacklist → Relational database: blacklists token
