# yomnakhaled867-collab/career-start architecture

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

- Interactive diagram: https://gitdiagram.com/yomnakhaled867-collab/career-start
- Repository: https://github.com/yomnakhaled867-collab/career-start

## Overview

Career Start is a graduate-support website combining career exploration, learning plans, CV tools, and interview practice. A principal user journey is taking a career-interest quiz, receiving a suggested field, and opening a related roadmap; the README describes this link, while source excerpts show the quiz and roadmap implementations separately. CV analysis has a browser-to-serverless flow, and CV creation includes a local browser-based builder. Several feature modules are represented from the README and file tree; their internal wiring was not sampled, so those relationships are omitted.

Main entry points: [`pages/roadmaps.html`](https://github.com/yomnakhaled867-collab/career-start/blob/main/pages/roadmaps.html) (Roadmap page), [`js/cv-builder.js`](https://github.com/yomnakhaled867-collab/career-start/blob/main/js/cv-builder.js) (CV builder), [`pages/quiz.html`](https://github.com/yomnakhaled867-collab/career-start/blob/main/pages/quiz.html) (Interest quiz page), [`js/quiz.js`](https://github.com/yomnakhaled867-collab/career-start/blob/main/js/quiz.js) (Interest quiz)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_explore["Career exploration"]
  node_interest_page["Interest quiz page<br/>[quiz.html]"]
  node_interest_quiz["Interest quiz<br/>[quiz.js]"]
  node_field_quiz_page["Field quiz page<br/>[quiz1.html]"]
  node_field_quiz["Field quiz<br/>[quiz1.js]"]
  node_roadmap_page["Roadmap page<br/>[roadmaps.html]"]
  node_roadmap_ui["Roadmap browser<br/>[roadmaps.js]"]
  node_roadmap_data["Roadmap content<br/>[roadmaps.json]"]
end

subgraph group_cv["CV tools"]
  node_cv_builder_page["CV builder page<br/>[cv-builder.html]"]
  node_cv_builder["CV builder<br/>[cv-builder.js]"]
  node_cv_analyzer_page["CV analyzer page<br/>[cv-analyzer.html]"]
  node_cv_analyzer["CV analyzer<br/>[cv-analyzer.js]"]
  node_analyze_api["CV analysis endpoint<br/>[analyze-cv.js]"]
  node_improve_api["CV improvement endpoint<br/>[improve-cv.js]"]
  node_cv_guide_page["CV guide page<br/>[cv-guide.html]"]
  node_cv_guide["CV guide behavior<br/>[cv-guide.js]"]
end

subgraph group_prepare["Interview preparation"]
  node_interview_page["Interview page<br/>[interview.html]"]
  node_interview_ui["Interview practice<br/>[interview.js]"]
end

subgraph group_shared["Shared experience"]
  node_landing["Landing page<br/>[index.html]"]
  node_layout["Shared layout<br/>[layout.js]"]
  node_floating_menu["Floating menu<br/>[floating-menu.js]"]
  node_theme["Theme switcher<br/>[theme-switcher.js]"]
  node_auth["Auth placeholder<br/>[auth.js]"]
end

node_graduate(("Graduate"))
node_gemini{{"Gemini"}}

node_graduate -->|"takes quiz"| node_interest_page
node_interest_page -->|"runs"| node_interest_quiz
node_graduate -->|"explores paths"| node_roadmap_page
node_roadmap_page -->|"runs"| node_roadmap_ui
node_roadmap_ui -->|"loads"| node_roadmap_data
node_interest_quiz -->|"links to"| node_roadmap_page
node_graduate -.->|"takes quiz"| node_field_quiz_page
node_field_quiz_page -.->|"runs"| node_field_quiz
node_graduate -->|"creates CV"| node_cv_builder_page
node_cv_builder_page -.->|"runs"| node_cv_builder
node_cv_builder -->|"stores drafts"| node_cv_builder
node_graduate -->|"submits CV"| node_cv_analyzer_page
node_cv_analyzer_page -.->|"runs"| node_cv_analyzer
node_cv_analyzer -->|"posts CV"| node_analyze_api
node_analyze_api -->|"requests analysis"| node_gemini
node_graduate -.->|"requests edits"| node_improve_api
node_improve_api -->|"requests edits"| node_gemini
node_graduate -->|"reads guide"| node_cv_guide_page
node_cv_guide_page -.->|"runs"| node_cv_guide
node_graduate -->|"practices"| node_interview_page
node_interview_page -.->|"runs"| node_interview_ui
node_graduate -->|"visits"| node_landing
node_landing -->|"uses layout"| node_layout
node_graduate -.->|"uses controls"| node_floating_menu
node_graduate -.->|"changes theme"| node_theme

click node_interest_page "https://github.com/yomnakhaled867-collab/career-start/blob/main/pages/quiz.html"
click node_interest_quiz "https://github.com/yomnakhaled867-collab/career-start/blob/main/js/quiz.js"
click node_field_quiz_page "https://github.com/yomnakhaled867-collab/career-start/blob/main/pages/quiz1.html"
click node_field_quiz "https://github.com/yomnakhaled867-collab/career-start/blob/main/js/quiz1.js"
click node_roadmap_page "https://github.com/yomnakhaled867-collab/career-start/blob/main/pages/roadmaps.html"
click node_roadmap_ui "https://github.com/yomnakhaled867-collab/career-start/blob/main/js/roadmaps.js"
click node_roadmap_data "https://github.com/yomnakhaled867-collab/career-start/blob/main/data/roadmaps.json"
click node_cv_builder_page "https://github.com/yomnakhaled867-collab/career-start/blob/main/pages/cv-builder.html"
click node_cv_builder "https://github.com/yomnakhaled867-collab/career-start/blob/main/js/cv-builder.js"
click node_cv_analyzer_page "https://github.com/yomnakhaled867-collab/career-start/blob/main/pages/cv-analyzer.html"
click node_cv_analyzer "https://github.com/yomnakhaled867-collab/career-start/blob/main/js/cv-analyzer.js"
click node_analyze_api "https://github.com/yomnakhaled867-collab/career-start/blob/main/api/analyze-cv.js"
click node_improve_api "https://github.com/yomnakhaled867-collab/career-start/blob/main/api/improve-cv.js"
click node_cv_guide_page "https://github.com/yomnakhaled867-collab/career-start/blob/main/pages/cv-guide.html"
click node_cv_guide "https://github.com/yomnakhaled867-collab/career-start/blob/main/js/cv-guide.js"
click node_interview_page "https://github.com/yomnakhaled867-collab/career-start/blob/main/pages/interview.html"
click node_interview_ui "https://github.com/yomnakhaled867-collab/career-start/blob/main/js/interview.js"
click node_landing "https://github.com/yomnakhaled867-collab/career-start/blob/main/index.html"
click node_layout "https://github.com/yomnakhaled867-collab/career-start/blob/main/js/layout.js"
click node_floating_menu "https://github.com/yomnakhaled867-collab/career-start/blob/main/js/floating-menu.js"
click node_theme "https://github.com/yomnakhaled867-collab/career-start/blob/main/js/theme-switcher.js"
click node_auth "https://github.com/yomnakhaled867-collab/career-start/blob/main/js/auth.js"

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_interest_page,node_interest_quiz,node_field_quiz_page,node_field_quiz,node_roadmap_page,node_roadmap_ui,node_roadmap_data toneBlue
class node_cv_builder_page,node_cv_builder,node_cv_analyzer_page,node_cv_analyzer,node_analyze_api,node_improve_api,node_cv_guide_page,node_cv_guide toneAmber
class node_interview_page,node_interview_ui toneMint
class node_landing,node_layout,node_floating_menu,node_theme,node_auth toneRose
class node_graduate,node_gemini toneIndigo
```

## Components

### Career exploration

- [Interest quiz page](https://github.com/yomnakhaled867-collab/career-start/blob/main/pages/quiz.html): `pages/quiz.html`
- [Interest quiz](https://github.com/yomnakhaled867-collab/career-start/blob/main/js/quiz.js): `js/quiz.js`
- [Field quiz page](https://github.com/yomnakhaled867-collab/career-start/blob/main/pages/quiz1.html): `pages/quiz1.html`
- [Field quiz](https://github.com/yomnakhaled867-collab/career-start/blob/main/js/quiz1.js): `js/quiz1.js`
- [Roadmap page](https://github.com/yomnakhaled867-collab/career-start/blob/main/pages/roadmaps.html): `pages/roadmaps.html`
- [Roadmap browser](https://github.com/yomnakhaled867-collab/career-start/blob/main/js/roadmaps.js): `js/roadmaps.js`
- [Roadmap content](https://github.com/yomnakhaled867-collab/career-start/blob/main/data/roadmaps.json): `data/roadmaps.json`

### CV tools

- [CV builder page](https://github.com/yomnakhaled867-collab/career-start/blob/main/pages/cv-builder.html): `pages/cv-builder.html`
- [CV builder](https://github.com/yomnakhaled867-collab/career-start/blob/main/js/cv-builder.js): `js/cv-builder.js`
- [CV analyzer page](https://github.com/yomnakhaled867-collab/career-start/blob/main/pages/cv-analyzer.html): `pages/cv-analyzer.html`
- [CV analyzer](https://github.com/yomnakhaled867-collab/career-start/blob/main/js/cv-analyzer.js): `js/cv-analyzer.js`
- [CV analysis endpoint](https://github.com/yomnakhaled867-collab/career-start/blob/main/api/analyze-cv.js): `api/analyze-cv.js`
- [CV improvement endpoint](https://github.com/yomnakhaled867-collab/career-start/blob/main/api/improve-cv.js): `api/improve-cv.js`
- [CV guide page](https://github.com/yomnakhaled867-collab/career-start/blob/main/pages/cv-guide.html): `pages/cv-guide.html`
- [CV guide behavior](https://github.com/yomnakhaled867-collab/career-start/blob/main/js/cv-guide.js): `js/cv-guide.js`

### Interview preparation

- [Interview page](https://github.com/yomnakhaled867-collab/career-start/blob/main/pages/interview.html): `pages/interview.html`
- [Interview practice](https://github.com/yomnakhaled867-collab/career-start/blob/main/js/interview.js): `js/interview.js`

### Shared experience

- [Landing page](https://github.com/yomnakhaled867-collab/career-start/blob/main/index.html): `index.html`
- [Shared layout](https://github.com/yomnakhaled867-collab/career-start/blob/main/js/layout.js): `js/layout.js`
- [Floating menu](https://github.com/yomnakhaled867-collab/career-start/blob/main/js/floating-menu.js): `js/floating-menu.js`
- [Theme switcher](https://github.com/yomnakhaled867-collab/career-start/blob/main/js/theme-switcher.js): `js/theme-switcher.js`
- [Auth placeholder](https://github.com/yomnakhaled867-collab/career-start/blob/main/js/auth.js): `js/auth.js`

### Other components

- **Graduate**
- **Gemini**

## Connections

- Graduate → Interest quiz page: takes quiz (evidence: `README.md`)
- Interest quiz page → Interest quiz: runs (evidence: `README.md`)
- Graduate → Roadmap page: explores paths (evidence: `README.md`)
- Roadmap page → Roadmap browser: runs (evidence: `README.md`)
- Roadmap browser → Roadmap content: loads (evidence: `js/roadmaps.js`)
- Interest quiz → Roadmap page: links to (evidence: `README.md`)
- Graduate → Field quiz page: takes quiz
- Field quiz page → Field quiz: runs
- Graduate → CV builder page: creates CV (evidence: `README.md`)
- CV builder page → CV builder: runs
- CV builder → CV builder: stores drafts (evidence: `js/cv-builder.js`)
- Graduate → CV analyzer page: submits CV (evidence: `README.md`)
- CV analyzer page → CV analyzer: runs
- CV analyzer → CV analysis endpoint: posts CV (evidence: `js/cv-analyzer.js`)
- CV analysis endpoint → Gemini: requests analysis (evidence: `api/analyze-cv.js`)
- Graduate → CV improvement endpoint: requests edits
- CV improvement endpoint → Gemini: requests edits (evidence: `api/improve-cv.js`)
- Graduate → CV guide page: reads guide (evidence: `README.md`)
- CV guide page → CV guide behavior: runs
- Graduate → Interview page: practices (evidence: `README.md`)
- Interview page → Interview practice: runs
- Graduate → Landing page: visits (evidence: `README.md`)
- Landing page → Shared layout: uses layout (evidence: `README.md`)
- Graduate → Floating menu: uses controls
- Graduate → Theme switcher: changes theme
