# baderxx/resume-rocket architecture

> Architecture diagram of the GitHub repository baderxx/resume-rocket, 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/baderxx/resume-rocket
- Repository: https://github.com/baderxx/resume-rocket

## Overview

Resume Rocket is a Nuxt-based resume builder. The main user workflow is entering personal details and repeatable resume sections, then choosing a template and viewing a live preview. The repository also includes locale configuration and message files. README export and account/storage features are described as planned or optional, but the tree shows no corresponding runtime implementation. Edges reflect excerpted calls and SOURCE INDEX references; unsampled page wiring and capabilities are not inferred.

Main entry points: [`composables/useResumeInformation.ts`](https://github.com/baderxx/resume-rocket/blob/master/composables/useResumeInformation.ts) (Resume state), [`components/Resume/Preview.vue`](https://github.com/baderxx/resume-rocket/blob/master/components/Resume/Preview.vue) (Resume preview), [`types/resumeData.ts`](https://github.com/baderxx/resume-rocket/blob/master/types/resumeData.ts) (Resume data model), [`composables/useBuilderFormTemplates.ts`](https://github.com/baderxx/resume-rocket/blob/master/composables/useBuilderFormTemplates.ts) (Section form schemas)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_authoring["Resume authoring"]
  node_builder_page["Builder page<br/>[builder.vue]"]
  node_form_templates["Section form schemas"]
  node_section_editor["Section editor<br/>[Section.vue]"]
  node_section_form["Section form<br/>[SectionForm.vue]"]
  node_section_header["Section header<br/>[SectionHeader.vue]"]
  node_professional_summary["Professional summary"]
  node_personal_info["Personal information"]
  node_additional_info["Additional information"]
end

subgraph group_rendering["Preview and templates"]
  node_preview["Resume preview<br/>[Preview.vue]"]
  node_template_selector["Template selector"]
  node_classic_template["Classic template"]
  node_modern_template["Modern template<br/>[ModernTemplate.vue]"]
  node_spotlight_template["Spotlight template"]
end

subgraph group_domain["Resume domain"]
  node_resume_state["Resume state"]
  node_resume_model["Resume data model<br/>[resumeData.ts]"]
  node_builder_model["Builder schemas<br/>[builder.ts]"]
  node_section_types["Section types<br/>[enums.ts]"]
end

subgraph group_localization["Localization"]
  node_i18n_config["Locale configuration<br/>[i18n.ts]"]
  node_locale_messages["Locale messages"]
end

node_user(("Resume creator"))

node_user -.->|"opens builder"| node_builder_page
node_builder_page -->|"loads schemas"| node_form_templates
node_section_editor -->|"reads and updates"| node_resume_state
node_personal_info -->|"updates details"| node_resume_state
node_additional_info -->|"updates details"| node_resume_state
node_form_templates -->|"defines fields"| node_builder_model
node_form_templates -->|"uses section types"| node_section_types
node_resume_state -->|"types resume data"| node_resume_model
node_resume_state -->|"keys section data"| node_section_types
node_preview -->|"reads resume data"| node_resume_state
node_preview -->|"renders selector"| node_template_selector
node_preview -->|"renders template"| node_classic_template
node_preview -->|"renders template"| node_modern_template
node_preview -->|"renders template"| node_spotlight_template
node_template_selector -->|"uses resume schema"| node_resume_state
node_classic_template -->|"renders fields"| node_resume_model
node_modern_template -->|"renders fields"| node_resume_model
node_spotlight_template -->|"renders fields"| node_resume_model
node_i18n_config -->|"loads translations"| node_locale_messages
node_user -.->|"selects language"| node_i18n_config

click node_builder_page "https://github.com/baderxx/resume-rocket/blob/master/pages/builder.vue"
click node_form_templates "https://github.com/baderxx/resume-rocket/blob/master/composables/useBuilderFormTemplates.ts"
click node_section_editor "https://github.com/baderxx/resume-rocket/blob/master/components/Builder/Section.vue"
click node_section_form "https://github.com/baderxx/resume-rocket/blob/master/components/Builder/SectionForm.vue"
click node_section_header "https://github.com/baderxx/resume-rocket/blob/master/components/Builder/SectionHeader.vue"
click node_professional_summary "https://github.com/baderxx/resume-rocket/blob/master/components/Builder/ProfessionalSummary.vue"
click node_personal_info "https://github.com/baderxx/resume-rocket/blob/master/components/Personal/InformationForm.vue"
click node_additional_info "https://github.com/baderxx/resume-rocket/blob/master/components/Personal/AdditionalInformationForm.vue"
click node_resume_state "https://github.com/baderxx/resume-rocket/blob/master/composables/useResumeInformation.ts"
click node_resume_model "https://github.com/baderxx/resume-rocket/blob/master/types/resumeData.ts"
click node_builder_model "https://github.com/baderxx/resume-rocket/blob/master/types/builder.ts"
click node_section_types "https://github.com/baderxx/resume-rocket/blob/master/types/enums.ts"
click node_preview "https://github.com/baderxx/resume-rocket/blob/master/components/Resume/Preview.vue"
click node_template_selector "https://github.com/baderxx/resume-rocket/blob/master/components/Resume/TemplateSelector.vue"
click node_classic_template "https://github.com/baderxx/resume-rocket/blob/master/components/Resume/Templates/ClassicTemplate.vue"
click node_modern_template "https://github.com/baderxx/resume-rocket/blob/master/components/Resume/Templates/ModernTemplate.vue"
click node_spotlight_template "https://github.com/baderxx/resume-rocket/blob/master/components/Resume/Templates/SpotlightTemplate.vue"
click node_i18n_config "https://github.com/baderxx/resume-rocket/blob/master/config/i18n.ts"
click node_locale_messages "https://github.com/baderxx/resume-rocket/tree/master/locales"

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_builder_page,node_form_templates,node_section_editor,node_section_form,node_section_header,node_professional_summary,node_personal_info,node_additional_info toneBlue
class node_preview,node_template_selector,node_classic_template,node_modern_template,node_spotlight_template toneAmber
class node_resume_state,node_resume_model,node_builder_model,node_section_types toneMint
class node_i18n_config,node_locale_messages toneRose
class node_user toneIndigo
```

## Components

### Resume authoring

- [Builder page](https://github.com/baderxx/resume-rocket/blob/master/pages/builder.vue): `pages/builder.vue`
- [Section form schemas](https://github.com/baderxx/resume-rocket/blob/master/composables/useBuilderFormTemplates.ts): `composables/useBuilderFormTemplates.ts`
- [Section editor](https://github.com/baderxx/resume-rocket/blob/master/components/Builder/Section.vue): `components/Builder/Section.vue`
- [Section form](https://github.com/baderxx/resume-rocket/blob/master/components/Builder/SectionForm.vue): `components/Builder/SectionForm.vue`
- [Section header](https://github.com/baderxx/resume-rocket/blob/master/components/Builder/SectionHeader.vue): `components/Builder/SectionHeader.vue`
- [Professional summary](https://github.com/baderxx/resume-rocket/blob/master/components/Builder/ProfessionalSummary.vue): `components/Builder/ProfessionalSummary.vue`
- [Personal information](https://github.com/baderxx/resume-rocket/blob/master/components/Personal/InformationForm.vue): `components/Personal/InformationForm.vue`
- [Additional information](https://github.com/baderxx/resume-rocket/blob/master/components/Personal/AdditionalInformationForm.vue): `components/Personal/AdditionalInformationForm.vue`

### Preview and templates

- [Resume preview](https://github.com/baderxx/resume-rocket/blob/master/components/Resume/Preview.vue): `components/Resume/Preview.vue`
- [Template selector](https://github.com/baderxx/resume-rocket/blob/master/components/Resume/TemplateSelector.vue): `components/Resume/TemplateSelector.vue`
- [Classic template](https://github.com/baderxx/resume-rocket/blob/master/components/Resume/Templates/ClassicTemplate.vue): `components/Resume/Templates/ClassicTemplate.vue`
- [Modern template](https://github.com/baderxx/resume-rocket/blob/master/components/Resume/Templates/ModernTemplate.vue): `components/Resume/Templates/ModernTemplate.vue`
- [Spotlight template](https://github.com/baderxx/resume-rocket/blob/master/components/Resume/Templates/SpotlightTemplate.vue): `components/Resume/Templates/SpotlightTemplate.vue`

### Resume domain

- [Resume state](https://github.com/baderxx/resume-rocket/blob/master/composables/useResumeInformation.ts): `composables/useResumeInformation.ts`
- [Resume data model](https://github.com/baderxx/resume-rocket/blob/master/types/resumeData.ts): `types/resumeData.ts`
- [Builder schemas](https://github.com/baderxx/resume-rocket/blob/master/types/builder.ts): `types/builder.ts`
- [Section types](https://github.com/baderxx/resume-rocket/blob/master/types/enums.ts): `types/enums.ts`

### Localization

- [Locale configuration](https://github.com/baderxx/resume-rocket/blob/master/config/i18n.ts): `config/i18n.ts`
- [Locale messages](https://github.com/baderxx/resume-rocket/tree/master/locales): `locales`

### Other components

- **Resume creator**

## Connections

- Resume creator → Builder page: opens builder (evidence: `README.md`)
- Builder page → Section form schemas: loads schemas (evidence: `pages/builder.vue`)
- Section editor → Resume state: reads and updates (evidence: `components/Builder/Section.vue`)
- Personal information → Resume state: updates details (evidence: `components/Personal/InformationForm.vue`)
- Additional information → Resume state: updates details (evidence: `components/Personal/AdditionalInformationForm.vue`)
- Section form schemas → Builder schemas: defines fields (evidence: `composables/useBuilderFormTemplates.ts`)
- Section form schemas → Section types: uses section types (evidence: `composables/useBuilderFormTemplates.ts`)
- Resume state → Resume data model: types resume data (evidence: `composables/useResumeInformation.ts`)
- Resume state → Section types: keys section data (evidence: `composables/useResumeInformation.ts`)
- Resume preview → Resume state: reads resume data (evidence: `components/Resume/Preview.vue`)
- Resume preview → Template selector: renders selector (evidence: `components/Resume/Preview.vue`)
- Resume preview → Classic template: renders template (evidence: `components/Resume/Preview.vue`)
- Resume preview → Modern template: renders template (evidence: `components/Resume/Preview.vue`)
- Resume preview → Spotlight template: renders template (evidence: `components/Resume/Preview.vue`)
- Template selector → Resume state: uses resume schema (evidence: `components/Resume/TemplateSelector.vue`)
- Classic template → Resume data model: renders fields (evidence: `components/Resume/Templates/ClassicTemplate.vue`)
- Modern template → Resume data model: renders fields (evidence: `components/Resume/Templates/ModernTemplate.vue`)
- Spotlight template → Resume data model: renders fields (evidence: `components/Resume/Templates/SpotlightTemplate.vue`)
- Locale configuration → Locale messages: loads translations (evidence: `config/i18n.ts`)
- Resume creator → Locale configuration: selects language (evidence: `README.md`)
