# 20260528-skn-family-ai-33/skn33-final-2team architecture

> Architecture diagram of the GitHub repository 20260528-skn-family-ai-33/skn33-final-2team, 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/20260528-skn-family-ai-33/skn33-final-2team
- Repository: https://github.com/20260528-skn-family-ai-33/skn33-final-2team

## Overview

GrowPath is an AI-assisted workplace learning service. An employee turns a work goal into selected skills, completes a pre-assessment, compares Free/Crash/Challenge plans and learning materials, confirms a roadmap, records progress, and reviews a post-assessment report. Managers can view confirmed team plans and comment; administrators manage people and learning data. The map follows README-documented product stages and capabilities; finer wiring for unsampled routers and services is represented at subsystem level rather than inferred from filenames.

Main entry points: [`backend/app/main.py`](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/main.py) (FastAPI entry), [`backend/app/routers/preassessment.py`](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/routers/preassessment.py) (Pre/post assessment), [`frontend/src/app/routes.tsx`](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/frontend/src/app/routes.tsx) (React application), [`database/src/database/deployment.py`](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/database/src/database/deployment.py) (PostgreSQL and pgvector)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User experience"]
  node_frontend["React application<br/>[routes.tsx]"]
  node_api["FastAPI entry<br/>[main.py]"]
  node_account["Account and profile<br/>[account.py]"]
end

subgraph group_workflow["Learning workflow"]
  node_draft["Goal and skill draft<br/>[DraftScreen.tsx]"]
  node_assessment["Pre/post assessment<br/>[preassessment.py]"]
  node_roadmap["Plan generation<br/>[roadmap.py]"]
  node_catalog["Course catalog<br/>[catalog.py]"]
  node_recommendations["Resource recommendations"]
  node_plans["Confirmed plans<br/>[plans.py]"]
  node_execution["Learning activity<br/>[work.py]"]
  node_reports["Reports and tasks<br/>[report_tasks.py]"]
end

subgraph group_assistant["AI and search"]
  node_assistant["Workplace assistant<br/>[regstore.py]"]
  node_embedding["Embedding service"]
  node_llm["Generation models<br/>[llm.py]"]
end

subgraph group_operations["Team and administration"]
  node_team["Team views and feedback<br/>[team.py]"]
  node_admin["Admin data management<br/>[admin.py]"]
end

subgraph group_data["Data foundation"]
  node_database[("PostgreSQL and pgvector<br/>[deployment.py]")]
  node_ingestion["Catalog and data ingestion"]
end

node_employee(("Employee"))
node_manager(("Department manager"))
node_administrator(("System administrator"))

node_employee -->|"uses"| node_frontend
node_manager -->|"uses"| node_frontend
node_administrator -->|"uses"| node_frontend
node_frontend -->|"requests"| node_api
node_api -->|"routes"| node_account
node_api -->|"routes"| node_assessment
node_api -->|"routes"| node_team
node_api -->|"routes"| node_admin
node_employee -->|"sets goal"| node_draft
node_draft -->|"submits skills"| node_assessment
node_assessment -->|"informs plans"| node_roadmap
node_roadmap -->|"uses candidates"| node_catalog
node_recommendations -->|"searches resources"| node_catalog
node_roadmap -->|"recommends materials"| node_recommendations
node_employee -->|"confirms selection"| node_plans
node_plans -->|"starts learning"| node_execution
node_execution -->|"records progress"| node_reports
node_assessment -->|"supports review"| node_reports
node_employee -->|"asks questions"| node_assistant
node_assistant -->|"embeds queries"| node_embedding
node_assistant -->|"generates answers"| node_llm
node_manager -->|"views and comments"| node_team
node_administrator -->|"manages data"| node_admin
node_account -->|"reads and writes"| node_database
node_reports -->|"stores submissions"| node_database
node_recommendations -->|"searches vectors"| node_database
node_embedding -->|"requests embeddings"| node_llm
node_ingestion -->|"loads catalog data"| node_database

click node_frontend "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/frontend/src/app/routes.tsx"
click node_api "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/main.py"
click node_account "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/routers/account.py"
click node_draft "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/frontend/src/features/draft/DraftScreen.tsx"
click node_assessment "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/routers/preassessment.py"
click node_roadmap "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/agents/roadmap.py"
click node_catalog "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/catalog.py"
click node_recommendations "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/agents/resource_recommendations.py"
click node_plans "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/services/plans.py"
click node_execution "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/routers/work.py"
click node_reports "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/services/report_tasks.py"
click node_assistant "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/regstore.py"
click node_embedding "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/regulation_embeddings.py"
click node_llm "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/llm.py"
click node_team "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/routers/team.py"
click node_admin "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/routers/admin.py"
click node_database "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/database/src/database/deployment.py"
click node_ingestion "https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/database/src/database/ingestion/real_data_ingestor.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_frontend,node_api,node_account toneBlue
class node_draft,node_assessment,node_roadmap,node_catalog,node_recommendations,node_plans,node_execution,node_reports toneAmber
class node_assistant,node_embedding,node_llm toneMint
class node_team,node_admin toneRose
class node_database,node_ingestion,node_employee,node_manager,node_administrator toneIndigo
```

## Components

### User experience

- [React application](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/frontend/src/app/routes.tsx): `frontend/src/app/routes.tsx`
- [FastAPI entry](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/main.py): `backend/app/main.py`
- [Account and profile](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/routers/account.py): `backend/app/routers/account.py`

### Learning workflow

- [Goal and skill draft](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/frontend/src/features/draft/DraftScreen.tsx): `frontend/src/features/draft/DraftScreen.tsx`
- [Pre/post assessment](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/routers/preassessment.py): `backend/app/routers/preassessment.py`
- [Plan generation](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/agents/roadmap.py): `backend/app/agents/roadmap.py`
- [Course catalog](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/catalog.py): `backend/app/catalog.py`
- [Resource recommendations](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/agents/resource_recommendations.py): `backend/app/agents/resource_recommendations.py`
- [Confirmed plans](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/services/plans.py): `backend/app/services/plans.py`
- [Learning activity](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/routers/work.py): `backend/app/routers/work.py`
- [Reports and tasks](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/services/report_tasks.py): `backend/app/services/report_tasks.py`

### AI and search

- [Workplace assistant](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/regstore.py): `backend/app/regstore.py`
- [Embedding service](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/regulation_embeddings.py): `backend/app/regulation_embeddings.py`
- [Generation models](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/llm.py): `backend/app/llm.py`

### Team and administration

- [Team views and feedback](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/routers/team.py): `backend/app/routers/team.py`
- [Admin data management](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/backend/app/routers/admin.py): `backend/app/routers/admin.py`

### Data foundation

- [PostgreSQL and pgvector](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/database/src/database/deployment.py): `database/src/database/deployment.py`
- [Catalog and data ingestion](https://github.com/20260528-skn-family-ai-33/skn33-final-2team/blob/main/database/src/database/ingestion/real_data_ingestor.py): `database/src/database/ingestion/real_data_ingestor.py`

### Other components

- **Employee**
- **Department manager**
- **System administrator**

## Connections

- Employee → React application: uses (evidence: `README.md`)
- Department manager → React application: uses (evidence: `README.md`)
- System administrator → React application: uses (evidence: `README.md`)
- React application → FastAPI entry: requests (evidence: `README.md`)
- FastAPI entry → Account and profile: routes (evidence: `backend/app/main.py`)
- FastAPI entry → Pre/post assessment: routes (evidence: `backend/app/main.py`)
- FastAPI entry → Team views and feedback: routes (evidence: `backend/app/main.py`)
- FastAPI entry → Admin data management: routes (evidence: `backend/app/main.py`)
- Employee → Goal and skill draft: sets goal (evidence: `README.md`)
- Goal and skill draft → Pre/post assessment: submits skills (evidence: `README.md`)
- Pre/post assessment → Plan generation: informs plans (evidence: `README.md`)
- Plan generation → Course catalog: uses candidates (evidence: `README.md`)
- Resource recommendations → Course catalog: searches resources (evidence: `backend/app/agents/resource_recommendations.py`)
- Plan generation → Resource recommendations: recommends materials (evidence: `README.md`)
- Employee → Confirmed plans: confirms selection (evidence: `README.md`)
- Confirmed plans → Learning activity: starts learning (evidence: `README.md`)
- Learning activity → Reports and tasks: records progress (evidence: `README.md`)
- Pre/post assessment → Reports and tasks: supports review (evidence: `README.md`)
- Employee → Workplace assistant: asks questions (evidence: `README.md`)
- Workplace assistant → Embedding service: embeds queries (evidence: `backend/app/regulation_embeddings.py`)
- Workplace assistant → Generation models: generates answers (evidence: `README.md`)
- Department manager → Team views and feedback: views and comments (evidence: `README.md`)
- System administrator → Admin data management: manages data (evidence: `README.md`)
- Account and profile → PostgreSQL and pgvector: reads and writes (evidence: `backend/app/routers/account.py`)
- Reports and tasks → PostgreSQL and pgvector: stores submissions (evidence: `backend/app/services/report_tasks.py`)
- Resource recommendations → PostgreSQL and pgvector: searches vectors
- Embedding service → Generation models: requests embeddings (evidence: `backend/app/regulation_embeddings.py`)
- Catalog and data ingestion → PostgreSQL and pgvector: loads catalog data (evidence: `database/src/database/ingestion/real_data_ingestor.py`)
