# nitya0009/ai-resume-builder architecture

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

## Overview

ResumePilot is a web-based resume builder. The visible workflow is account access, resume management, editing resume sections and styling, then viewing a rendered preview. The backend provides authenticated user and resume endpoints backed by models and a database connection. The tree also shows an AI service module, but its behavior and integration are not established by the sampled source. The graph omits the deprecated backend; frontend page-to-service wiring beyond the sampled app bootstrap is not asserted.

Main entry points: [`Backend/src/routes/user.routes.js`](https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/routes/user.routes.js) (User routes), [`Backend/src/routes/resume.routes.js`](https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/routes/resume.routes.js) (Resume routes), [`Backend/src/app.js`](https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/app.js) (Express app), [`Frontend/src/App.jsx`](https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/App.jsx) (App bootstrap)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["ResumePilot frontend"]
  node_app["App bootstrap<br/>[App.jsx]"]
  node_routing["Route setup<br/>[main.jsx]"]
  node_authpage["Sign-in<br/>[AuthPage.jsx]"]
  node_dashboard["Resume dashboard<br/>[Dashboard.jsx]"]
  node_editor["Resume editor<br/>[EditResume.jsx]"]
  node_resumeforms["Resume sections<br/>[ResumeForm.jsx]"]
  node_preview["Resume preview<br/>[PreviewPage.jsx]"]
  node_viewer["Resume viewer<br/>[ViewResume.jsx]"]
  node_resumeapi["Resume API client<br/>[resumeAPI.js]"]
  node_authclient["Auth client<br/>[login.js]"]
  node_aimodel["AI service<br/>[AiModel.js]"]
end

subgraph group_backend["Backend API"]
  node_api["Express app<br/>[app.js]"]
  node_useroutes["User routes<br/>[user.routes.js]"]
  node_resumeroutes["Resume routes<br/>[resume.routes.js]"]
  node_auth["Auth middleware<br/>[auth.js]"]
  node_usercontroller["User controller<br/>[user.controller.js]"]
  node_resumecontroller["Resume controller"]
  node_dbconnect["Database connection<br/>[index.js]"]
end

subgraph group_data["Data models"]
  node_users["User model<br/>[user.model.js]"]
  node_resumes["Resume model<br/>[resume.model.js]"]
  node_education["Education model<br/>[education.model.js]"]
  node_experience["Experience model"]
  node_projects["Project model<br/>[project.model.js]"]
  node_skills["Skill model<br/>[skill.model.js]"]
end

node_visitor(("User"))

node_visitor -->|"opens app"| node_routing
node_routing -->|"renders"| node_app
node_app -->|"checks session"| node_authclient
node_visitor -->|"signs in"| node_authpage
node_api -->|"mounts"| node_useroutes
node_api -->|"mounts"| node_resumeroutes
node_useroutes -->|"guards session"| node_auth
node_useroutes -->|"dispatches"| node_usercontroller
node_resumeroutes -->|"guards session"| node_auth
node_resumeroutes -->|"dispatches"| node_resumecontroller
node_usercontroller -->|"queries"| node_users
node_resumecontroller -->|"reads and writes"| node_resumes
node_dbconnect -->|"connects before serving"| node_api

click node_app "https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/App.jsx"
click node_routing "https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/main.jsx"
click node_authpage "https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/pages/auth/customAuth/AuthPage.jsx"
click node_dashboard "https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/pages/dashboard/Dashboard.jsx"
click node_editor "https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/pages/dashboard/edit-resume/%5Bresume_id%5D/EditResume.jsx"
click node_resumeforms "https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/pages/dashboard/edit-resume/components/ResumeForm.jsx"
click node_preview "https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/pages/dashboard/edit-resume/components/PreviewPage.jsx"
click node_viewer "https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/pages/dashboard/view-resume/%5Bresume_id%5D/ViewResume.jsx"
click node_resumeapi "https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/Services/resumeAPI.js"
click node_authclient "https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/Services/login.js"
click node_aimodel "https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/Services/AiModel.js"
click node_api "https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/app.js"
click node_useroutes "https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/routes/user.routes.js"
click node_resumeroutes "https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/routes/resume.routes.js"
click node_auth "https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/middleware/auth.js"
click node_usercontroller "https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/controller/user.controller.js"
click node_resumecontroller "https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/controller/resume.controller.js"
click node_dbconnect "https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/db/index.js"
click node_users "https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/models/user.model.js"
click node_resumes "https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/models/resume.model.js"
click node_education "https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/models/education.model.js"
click node_experience "https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/models/experience.model.js"
click node_projects "https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/models/project.model.js"
click node_skills "https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/models/skill.model.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_app,node_routing,node_authpage,node_dashboard,node_editor,node_resumeforms,node_preview,node_viewer,node_resumeapi,node_authclient,node_aimodel,node_visitor toneBlue
class node_api,node_useroutes,node_resumeroutes,node_auth,node_usercontroller,node_resumecontroller,node_dbconnect toneAmber
class node_users,node_resumes,node_education,node_experience,node_projects,node_skills toneMint
```

## Components

### ResumePilot frontend

- [App bootstrap](https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/App.jsx): `Frontend/src/App.jsx`
- [Route setup](https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/main.jsx): `Frontend/src/main.jsx`
- [Sign-in](https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/pages/auth/customAuth/AuthPage.jsx): `Frontend/src/pages/auth/customAuth/AuthPage.jsx`
- [Resume dashboard](https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/pages/dashboard/Dashboard.jsx): `Frontend/src/pages/dashboard/Dashboard.jsx`
- [Resume editor](https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/pages/dashboard/edit-resume/%5Bresume_id%5D/EditResume.jsx): `Frontend/src/pages/dashboard/edit-resume/[resume_id]/EditResume.jsx`
- [Resume sections](https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/pages/dashboard/edit-resume/components/ResumeForm.jsx): `Frontend/src/pages/dashboard/edit-resume/components/ResumeForm.jsx`
- [Resume preview](https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/pages/dashboard/edit-resume/components/PreviewPage.jsx): `Frontend/src/pages/dashboard/edit-resume/components/PreviewPage.jsx`
- [Resume viewer](https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/pages/dashboard/view-resume/%5Bresume_id%5D/ViewResume.jsx): `Frontend/src/pages/dashboard/view-resume/[resume_id]/ViewResume.jsx`
- [Resume API client](https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/Services/resumeAPI.js): `Frontend/src/Services/resumeAPI.js`
- [Auth client](https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/Services/login.js): `Frontend/src/Services/login.js`
- [AI service](https://github.com/nitya0009/ai-resume-builder/blob/main/Frontend/src/Services/AiModel.js): `Frontend/src/Services/AiModel.js`

### Backend API

- [Express app](https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/app.js): `Backend/src/app.js`
- [User routes](https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/routes/user.routes.js): `Backend/src/routes/user.routes.js`
- [Resume routes](https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/routes/resume.routes.js): `Backend/src/routes/resume.routes.js`
- [Auth middleware](https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/middleware/auth.js): `Backend/src/middleware/auth.js`
- [User controller](https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/controller/user.controller.js): `Backend/src/controller/user.controller.js`
- [Resume controller](https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/controller/resume.controller.js): `Backend/src/controller/resume.controller.js`
- [Database connection](https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/db/index.js): `Backend/src/db/index.js`

### Data models

- [User model](https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/models/user.model.js): `Backend/src/models/user.model.js`
- [Resume model](https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/models/resume.model.js): `Backend/src/models/resume.model.js`
- [Education model](https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/models/education.model.js): `Backend/src/models/education.model.js`
- [Experience model](https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/models/experience.model.js): `Backend/src/models/experience.model.js`
- [Project model](https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/models/project.model.js): `Backend/src/models/project.model.js`
- [Skill model](https://github.com/nitya0009/ai-resume-builder/blob/main/Backend/src/models/skill.model.js): `Backend/src/models/skill.model.js`

### Other components

- **User**

## Connections

- User → Route setup: opens app
- Route setup → App bootstrap: renders
- App bootstrap → Auth client: checks session
- User → Sign-in: signs in
- Express app → User routes: mounts
- Express app → Resume routes: mounts
- User routes → Auth middleware: guards session
- User routes → User controller: dispatches
- Resume routes → Auth middleware: guards session
- Resume routes → Resume controller: dispatches
- User controller → User model: queries
- Resume controller → Resume model: reads and writes
- Database connection → Express app: connects before serving
