# karthiksamak-git/jit23_team49 architecture

> Architecture diagram of the GitHub repository karthiksamak-git/jit23_team49, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/karthiksamak-git/jit23_team49
- Repository: https://github.com/karthiksamak-git/jit23_team49

## Overview

CareerVerse is a gamified career-exploration platform: learners onboard, complete assessments, receive career guidance, and progress through learning worlds with portfolio and rewards features. The tree and README support the major product areas; sampled API controllers show their service calls, and the Neo4j service shows graph initialization. Web-page-to-API wiring and most service-to-storage calls were not sampled, so those connections are omitted. The README also describes roadmap capabilities beyond what the tree confirms as implemented.

Main entry points: [`apps/api/src/modules/onboarding/onboarding.controller.ts`](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/onboarding/onboarding.controller.ts) (Onboarding API), [`apps/api/src/modules/assessment/assessment.controller.ts`](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/assessment/assessment.controller.ts) (Assessment API), [`apps/api/src/modules/recommendation/recommendation.controller.ts`](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/recommendation/recommendation.controller.ts) (Recommendation API), [`apps/api/src/modules/worlds/worlds.controller.ts`](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/worlds/worlds.controller.ts) (Worlds API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Learner experience"]
  node_onboarding_page["Onboarding<br/>[page.tsx]"]
  node_discover_page["Discover<br/>[page.tsx]"]
  node_recommendations_page["Recommendations<br/>[page.tsx]"]
  node_world_map_page["World map<br/>[page.tsx]"]
  node_backend_world_page["Backend world<br/>[page.tsx]"]
  node_dashboard_page["Dashboard<br/>[page.tsx]"]
  node_portfolio_page["Portfolio<br/>[page.tsx]"]
  node_interview_page["AI interview<br/>[page.tsx]"]
  node_opportunities_page["Opportunities<br/>[page.tsx]"]
  node_skill_tree_page["Skill tree<br/>[page.tsx]"]
end

subgraph group_api["Career platform API"]
  node_onboarding_api["Onboarding API"]
  node_assessment_api["Assessment API"]
  node_recommendation_api["Recommendation API"]
  node_worlds_api["Worlds API"]
  node_gamification_api["Gamification API"]
  node_portfolio_api["Portfolio API"]
  node_ai_api["AI gateway API"]
  node_onboarding_service["Onboarding service"]
  node_assessment_service["Assessment engine"]
  node_recommendation_service["Recommendation service"]
  node_worlds_service["Worlds service<br/>[worlds.service.ts]"]
  node_gamification_service["Gamification service"]
  node_portfolio_service["Portfolio service"]
  node_ai_service["AI gateway service"]
  node_shared_scoring["Scoring rules<br/>[scoring.ts]"]
end

subgraph group_data["Platform data"]
  node_prisma["PostgreSQL access<br/>[prisma.service.ts]"]
  node_neo4j["Career graph access<br/>[neo4j.service.ts]"]
  node_redis["Redis access<br/>[redis.service.ts]"]
end

subgraph group_ai["AI guidance"]
  node_ai_client["Groq AI client<br/>[ai-client.ts]"]
end

node_learner(("Learner"))
node_groq{{"Groq service"}}

node_learner -->|"uses"| node_onboarding_page
node_learner -->|"uses"| node_discover_page
node_learner -->|"uses"| node_recommendations_page
node_learner -->|"uses"| node_world_map_page
node_learner -->|"uses"| node_backend_world_page
node_learner -->|"uses"| node_dashboard_page
node_learner -->|"uses"| node_portfolio_page
node_learner -->|"uses"| node_interview_page
node_learner -->|"uses"| node_opportunities_page
node_learner -->|"uses"| node_skill_tree_page
node_onboarding_api -->|"calls"| node_onboarding_service
node_assessment_api -->|"calls"| node_assessment_service
node_recommendation_api -->|"calls"| node_recommendation_service
node_worlds_api -->|"calls"| node_worlds_service
node_gamification_api -->|"calls"| node_gamification_service
node_portfolio_api -->|"calls"| node_portfolio_service
node_ai_api -->|"calls"| node_ai_service
node_ai_client -.->|"requests inference"| node_groq

click node_onboarding_page "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/onboarding/page.tsx"
click node_discover_page "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/discover/page.tsx"
click node_recommendations_page "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/recommendations/page.tsx"
click node_world_map_page "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/world-map/page.tsx"
click node_backend_world_page "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/worlds/backend/page.tsx"
click node_dashboard_page "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/dashboard/page.tsx"
click node_portfolio_page "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/portfolio/page.tsx"
click node_interview_page "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/interview/page.tsx"
click node_opportunities_page "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/opportunities/page.tsx"
click node_skill_tree_page "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/skill-tree/page.tsx"
click node_onboarding_api "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/onboarding/onboarding.controller.ts"
click node_assessment_api "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/assessment/assessment.controller.ts"
click node_recommendation_api "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/recommendation/recommendation.controller.ts"
click node_worlds_api "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/worlds/worlds.controller.ts"
click node_gamification_api "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/gamification/gamification.controller.ts"
click node_portfolio_api "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/portfolio/portfolio.controller.ts"
click node_ai_api "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/ai-gateway/ai-gateway.controller.ts"
click node_onboarding_service "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/onboarding/onboarding.service.ts"
click node_assessment_service "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/assessment/assessment.service.ts"
click node_recommendation_service "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/recommendation/recommendation.service.ts"
click node_worlds_service "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/worlds/worlds.service.ts"
click node_gamification_service "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/gamification/gamification.service.ts"
click node_portfolio_service "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/portfolio/portfolio.service.ts"
click node_ai_service "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/ai-gateway/ai-gateway.service.ts"
click node_prisma "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/prisma/prisma.service.ts"
click node_neo4j "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/neo4j/neo4j.service.ts"
click node_redis "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/redis/redis.service.ts"
click node_shared_scoring "https://github.com/karthiksamak-git/jit23_team49/blob/main/packages/shared/src/scoring.ts"
click node_ai_client "https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/lib/ai-client.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_onboarding_page,node_discover_page,node_recommendations_page,node_world_map_page,node_backend_world_page,node_dashboard_page,node_portfolio_page,node_interview_page,node_opportunities_page,node_skill_tree_page toneBlue
class node_onboarding_api,node_assessment_api,node_recommendation_api,node_worlds_api,node_gamification_api,node_portfolio_api,node_ai_api,node_onboarding_service,node_assessment_service,node_recommendation_service,node_worlds_service,node_gamification_service,node_portfolio_service,node_ai_service,node_shared_scoring toneAmber
class node_prisma,node_neo4j,node_redis toneMint
class node_ai_client toneRose
class node_learner,node_groq toneIndigo
```

## Components

### Learner experience

- [Onboarding](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/onboarding/page.tsx): `apps/web/app/(app)/onboarding/page.tsx`
- [Discover](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/discover/page.tsx): `apps/web/app/(app)/discover/page.tsx`
- [Recommendations](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/recommendations/page.tsx): `apps/web/app/(app)/recommendations/page.tsx`
- [World map](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/world-map/page.tsx): `apps/web/app/(app)/world-map/page.tsx`
- [Backend world](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/worlds/backend/page.tsx): `apps/web/app/(app)/worlds/backend/page.tsx`
- [Dashboard](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/dashboard/page.tsx): `apps/web/app/(app)/dashboard/page.tsx`
- [Portfolio](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/portfolio/page.tsx): `apps/web/app/(app)/portfolio/page.tsx`
- [AI interview](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/interview/page.tsx): `apps/web/app/(app)/interview/page.tsx`
- [Opportunities](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/opportunities/page.tsx): `apps/web/app/(app)/opportunities/page.tsx`
- [Skill tree](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/app/(app)/skill-tree/page.tsx): `apps/web/app/(app)/skill-tree/page.tsx`

### Career platform API

- [Onboarding API](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/onboarding/onboarding.controller.ts): `apps/api/src/modules/onboarding/onboarding.controller.ts`
- [Assessment API](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/assessment/assessment.controller.ts): `apps/api/src/modules/assessment/assessment.controller.ts`
- [Recommendation API](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/recommendation/recommendation.controller.ts): `apps/api/src/modules/recommendation/recommendation.controller.ts`
- [Worlds API](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/worlds/worlds.controller.ts): `apps/api/src/modules/worlds/worlds.controller.ts`
- [Gamification API](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/gamification/gamification.controller.ts): `apps/api/src/modules/gamification/gamification.controller.ts`
- [Portfolio API](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/portfolio/portfolio.controller.ts): `apps/api/src/modules/portfolio/portfolio.controller.ts`
- [AI gateway API](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/ai-gateway/ai-gateway.controller.ts): `apps/api/src/modules/ai-gateway/ai-gateway.controller.ts`
- [Onboarding service](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/onboarding/onboarding.service.ts): `apps/api/src/modules/onboarding/onboarding.service.ts`
- [Assessment engine](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/assessment/assessment.service.ts): `apps/api/src/modules/assessment/assessment.service.ts`
- [Recommendation service](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/recommendation/recommendation.service.ts): `apps/api/src/modules/recommendation/recommendation.service.ts`
- [Worlds service](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/worlds/worlds.service.ts): `apps/api/src/modules/worlds/worlds.service.ts`
- [Gamification service](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/gamification/gamification.service.ts): `apps/api/src/modules/gamification/gamification.service.ts`
- [Portfolio service](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/portfolio/portfolio.service.ts): `apps/api/src/modules/portfolio/portfolio.service.ts`
- [AI gateway service](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/modules/ai-gateway/ai-gateway.service.ts): `apps/api/src/modules/ai-gateway/ai-gateway.service.ts`
- [Scoring rules](https://github.com/karthiksamak-git/jit23_team49/blob/main/packages/shared/src/scoring.ts): `packages/shared/src/scoring.ts`

### Platform data

- [PostgreSQL access](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/prisma/prisma.service.ts): `apps/api/src/prisma/prisma.service.ts`
- [Career graph access](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/neo4j/neo4j.service.ts): `apps/api/src/neo4j/neo4j.service.ts`
- [Redis access](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/api/src/redis/redis.service.ts): `apps/api/src/redis/redis.service.ts`

### AI guidance

- [Groq AI client](https://github.com/karthiksamak-git/jit23_team49/blob/main/apps/web/lib/ai-client.ts): `apps/web/lib/ai-client.ts`

### Other components

- **Learner**
- **Groq service**

## Connections

- Learner → Onboarding: uses
- Learner → Discover: uses
- Learner → Recommendations: uses
- Learner → World map: uses
- Learner → Backend world: uses
- Learner → Dashboard: uses
- Learner → Portfolio: uses
- Learner → AI interview: uses
- Learner → Opportunities: uses
- Learner → Skill tree: uses
- Onboarding API → Onboarding service: calls
- Assessment API → Assessment engine: calls
- Recommendation API → Recommendation service: calls
- Worlds API → Worlds service: calls
- Gamification API → Gamification service: calls
- Portfolio API → Portfolio service: calls
- AI gateway API → AI gateway service: calls
- Groq AI client → Groq service: requests inference
