# vcsreddy2004/ai-resume-builder architecture

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

- Interactive diagram: https://gitdiagram.com/vcsreddy2004/ai-resume-builder
- Repository: https://github.com/vcsreddy2004/ai-resume-builder

## Overview

AI Resume Builder is a React frontend backed by an Express API and MongoDB. Users register or log in, then enter resume details, request AI-assisted project-description suggestions, save resumes, browse or reopen saved resumes, and download a PDF. The frontend services call the API; authenticated resume routes validate the cookie-backed session before reading or writing resume data. User records and resume records are stored in MongoDB, while AI suggestions are requested from OpenRouter. The README documents these capabilities; some frontend component wiring is unsampled, so uncertain links are omitted.

Main entry points: [`src/App.js`](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/App.js) (App routes), [`router/router/resumeRouter.ts`](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/router/router/resumeRouter.ts) (Resume endpoints), [`router/server.ts`](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/router/server.ts) (Express server), [`src/servises/ResumeService.jsx`](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/servises/ResumeService.jsx) (Resume API client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["React application"]
  node_app["App routes<br/>[App.js]"]
  node_auth_ui["Login and registration<br/>[login.jsx]"]
  node_profile_ui["Profile view<br/>[profile.jsx]"]
end

subgraph group_identity["User identity"]
  node_user_service["User API client<br/>[UserService.jsx]"]
  node_api_server["Express server<br/>[server.ts]"]
  node_user_routes["User endpoints<br/>[userRouter.ts]"]
  node_auth_middleware["Session verification<br/>[auth.ts]"]
  node_user_model["User model<br/>[User.ts]"]
end

subgraph group_resume["Resume workflow"]
  node_resume_form["Resume editor<br/>[resume-form.jsx]"]
  node_resume_list["Resume list<br/>[resumeList.jsx]"]
  node_resume_view["Resume viewer<br/>[view-resume.jsx]"]
  node_pdf_document["PDF document<br/>[resume.jsx]"]
  node_resume_service["Resume API client<br/>[ResumeService.jsx]"]
  node_resume_routes["Resume endpoints<br/>[resumeRouter.ts]"]
end

subgraph group_integrations["External services"]
  node_mongo[("MongoDB")]
  node_openrouter["OpenRouter API"]
end

node_person(("User"))

node_person -->|"uses"| node_app
node_app -->|"routes to"| node_auth_ui
node_app -->|"routes to"| node_profile_ui
node_app -->|"routes to"| node_resume_form
node_app -->|"routes to"| node_resume_list
node_app -->|"routes to"| node_resume_view
node_user_service -->|"posts to"| node_api_server
node_api_server -->|"mounts at"| node_user_routes
node_user_routes -->|"checks session"| node_auth_middleware
node_auth_middleware -->|"loads user"| node_user_model
node_user_routes -->|"queries and saves"| node_user_model
node_user_model -->|"stores users"| node_mongo
node_resume_form -->|"submits data"| node_resume_service
node_resume_list -->|"requests list"| node_resume_service
node_resume_view -->|"requests resume"| node_resume_service
node_resume_service -->|"posts to"| node_api_server
node_api_server -->|"mounts at"| node_resume_routes
node_resume_routes -->|"checks session"| node_auth_middleware
node_resume_routes -->|"reads and writes"| node_mongo
node_resume_routes -.->|"requests suggestions"| node_openrouter
node_resume_view -->|"renders resume"| node_pdf_document
node_person -->|"downloads"| node_pdf_document

click node_app "https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/App.js"
click node_auth_ui "https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/components/login.jsx"
click node_profile_ui "https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/components/profile.jsx"
click node_resume_form "https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/components/resume-form.jsx"
click node_resume_list "https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/components/resumeList.jsx"
click node_resume_view "https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/components/view-resume.jsx"
click node_pdf_document "https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/components/resume.jsx"
click node_user_service "https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/servises/UserService.jsx"
click node_resume_service "https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/servises/ResumeService.jsx"
click node_api_server "https://github.com/vcsreddy2004/ai-resume-builder/blob/master/router/server.ts"
click node_user_routes "https://github.com/vcsreddy2004/ai-resume-builder/blob/master/router/router/userRouter.ts"
click node_auth_middleware "https://github.com/vcsreddy2004/ai-resume-builder/blob/master/router/middleWare/auth.ts"
click node_user_model "https://github.com/vcsreddy2004/ai-resume-builder/blob/master/router/models/users/User.ts"
click node_resume_routes "https://github.com/vcsreddy2004/ai-resume-builder/blob/master/router/router/resumeRouter.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_app,node_auth_ui,node_profile_ui,node_person toneBlue
class node_user_service,node_api_server,node_user_routes,node_auth_middleware,node_user_model toneAmber
class node_resume_form,node_resume_list,node_resume_view,node_pdf_document,node_resume_service,node_resume_routes toneMint
class node_mongo,node_openrouter toneRose
```

## Components

### React application

- [App routes](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/App.js): `src/App.js`
- [Login and registration](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/components/login.jsx): `src/components/login.jsx`
- [Profile view](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/components/profile.jsx): `src/components/profile.jsx`

### User identity

- [User API client](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/servises/UserService.jsx): `src/servises/UserService.jsx`
- [Express server](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/router/server.ts): `router/server.ts`
- [User endpoints](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/router/router/userRouter.ts): `router/router/userRouter.ts`
- [Session verification](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/router/middleWare/auth.ts): `router/middleWare/auth.ts`
- [User model](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/router/models/users/User.ts): `router/models/users/User.ts`

### Resume workflow

- [Resume editor](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/components/resume-form.jsx): `src/components/resume-form.jsx`
- [Resume list](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/components/resumeList.jsx): `src/components/resumeList.jsx`
- [Resume viewer](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/components/view-resume.jsx): `src/components/view-resume.jsx`
- [PDF document](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/components/resume.jsx): `src/components/resume.jsx`
- [Resume API client](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/src/servises/ResumeService.jsx): `src/servises/ResumeService.jsx`
- [Resume endpoints](https://github.com/vcsreddy2004/ai-resume-builder/blob/master/router/router/resumeRouter.ts): `router/router/resumeRouter.ts`

### External services

- **MongoDB**
- **OpenRouter API**

### Other components

- **User**

## Connections

- User → App routes: uses
- App routes → Login and registration: routes to
- App routes → Profile view: routes to
- App routes → Resume editor: routes to
- App routes → Resume list: routes to
- App routes → Resume viewer: routes to
- User API client → Express server: posts to
- Express server → User endpoints: mounts at
- User endpoints → Session verification: checks session
- Session verification → User model: loads user
- User endpoints → User model: queries and saves
- User model → MongoDB: stores users
- Resume editor → Resume API client: submits data
- Resume list → Resume API client: requests list
- Resume viewer → Resume API client: requests resume
- Resume API client → Express server: posts to
- Express server → Resume endpoints: mounts at
- Resume endpoints → Session verification: checks session
- Resume endpoints → MongoDB: reads and writes
- Resume endpoints → OpenRouter API: requests suggestions
- Resume viewer → PDF document: renders resume
- User → PDF document: downloads
