# dhriti143/careercatalyst architecture

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

## Overview

Career Catalyst is a job-application tracker with a React client and Django REST backend. Its main workflow is to enter a job and its application stage, submit it to the backend, and persist job records associated with the signed-in user. The documented product also includes authentication, a shared job-opportunities listing with reporting, and resume/skill matching. The sampled sources confirm job submission, backend data access, and parts of resume handling; unsampled page and URL wiring is therefore not inferred.

Main entry points: [`backend/myapp/views.py`](https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/views.py) (Request handlers), [`backend/myapp/models.py`](https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/models.py) (Data models), [`frontend/src/Routes.js`](https://github.com/dhriti143/careercatalyst/blob/main/frontend/src/Routes.js) (Page routes), [`frontend/src/index.js`](https://github.com/dhriti143/careercatalyst/blob/main/frontend/src/index.js) (React entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["React client"]
  node_entry["React entry<br/>[index.js]"]
  node_app["App router<br/>[App.js]"]
  node_routes["Page routes<br/>[Routes.js]"]
  node_authui["Login and signup"]
  node_jobform["Add job form<br/>[newJob.js]"]
  node_dashboard["Dashboard<br/>[Dashboard.js]"]
  node_joblist["Job views<br/>[Jobs.js]"]
end

subgraph group_backend["Django backend"]
  node_api["Request handlers<br/>[views.py]"]
  node_auth["Django auth<br/>[views.py]"]
  node_tracking["Job tracking<br/>[views.py]"]
  node_opportunities["Opportunity reports<br/>[views.py]"]
end

subgraph group_data["Application data"]
  node_models["Data models<br/>[models.py]"]
  node_records[("User and job records<br/>[models.py]")]
  node_rds[("AWS RDS")]
end

subgraph group_resume["Resume matching"]
  node_resume["Resume storage<br/>[views.py]"]
  node_matching["Skill matching<br/>[views.py]"]
end

node_user(("User"))

node_user -->|"opens"| node_entry
node_entry -->|"renders"| node_app
node_app -->|"loads"| node_routes
node_routes -->|"renders"| node_authui
node_routes -->|"renders"| node_jobform
node_routes -->|"renders"| node_dashboard
node_routes -->|"renders"| node_joblist
node_jobform -->|"POSTs job"| node_api
node_api -->|"handles auth"| node_auth
node_api -->|"dispatches job"| node_tracking
node_api -->|"dispatches reports"| node_opportunities
node_api -->|"handles uploads"| node_resume
node_api -->|"matches skills"| node_matching
node_auth -->|"uses users"| node_models
node_tracking -->|"uses jobs"| node_models
node_opportunities -->|"updates reports"| node_models
node_resume -->|"stores PDF metadata"| node_models
node_matching -->|"reads resume"| node_models
node_models -->|"reads and writes"| node_records
node_records -->|"persists"| node_rds

click node_entry "https://github.com/dhriti143/careercatalyst/blob/main/frontend/src/index.js"
click node_app "https://github.com/dhriti143/careercatalyst/blob/main/frontend/src/App.js"
click node_routes "https://github.com/dhriti143/careercatalyst/blob/main/frontend/src/Routes.js"
click node_authui "https://github.com/dhriti143/careercatalyst/tree/main/frontend/src/components"
click node_jobform "https://github.com/dhriti143/careercatalyst/blob/main/frontend/src/components/newJob.js"
click node_dashboard "https://github.com/dhriti143/careercatalyst/blob/main/frontend/src/components/Dashboard.js"
click node_joblist "https://github.com/dhriti143/careercatalyst/blob/main/frontend/src/components/Jobs.js"
click node_api "https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/views.py"
click node_auth "https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/views.py"
click node_tracking "https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/views.py"
click node_opportunities "https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/views.py"
click node_models "https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/models.py"
click node_records "https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/models.py"
click node_resume "https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/views.py"
click node_matching "https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/views.py"

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_entry,node_app,node_routes,node_authui,node_jobform,node_dashboard,node_joblist,node_user toneBlue
class node_api,node_auth,node_tracking,node_opportunities toneAmber
class node_models,node_records,node_rds toneMint
class node_resume,node_matching toneRose
```

## Components

### React client

- [React entry](https://github.com/dhriti143/careercatalyst/blob/main/frontend/src/index.js): `frontend/src/index.js`
- [App router](https://github.com/dhriti143/careercatalyst/blob/main/frontend/src/App.js): `frontend/src/App.js`
- [Page routes](https://github.com/dhriti143/careercatalyst/blob/main/frontend/src/Routes.js): `frontend/src/Routes.js`
- [Login and signup](https://github.com/dhriti143/careercatalyst/tree/main/frontend/src/components): `frontend/src/components`
- [Add job form](https://github.com/dhriti143/careercatalyst/blob/main/frontend/src/components/newJob.js): `frontend/src/components/newJob.js`
- [Dashboard](https://github.com/dhriti143/careercatalyst/blob/main/frontend/src/components/Dashboard.js): `frontend/src/components/Dashboard.js`
- [Job views](https://github.com/dhriti143/careercatalyst/blob/main/frontend/src/components/Jobs.js): `frontend/src/components/Jobs.js`

### Django backend

- [Request handlers](https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/views.py): `backend/myapp/views.py`
- [Django auth](https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/views.py): `backend/myapp/views.py`
- [Job tracking](https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/views.py): `backend/myapp/views.py`
- [Opportunity reports](https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/views.py): `backend/myapp/views.py`

### Application data

- [Data models](https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/models.py): `backend/myapp/models.py`
- [User and job records](https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/models.py): `backend/myapp/models.py`
- **AWS RDS**

### Resume matching

- [Resume storage](https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/views.py): `backend/myapp/views.py`
- [Skill matching](https://github.com/dhriti143/careercatalyst/blob/main/backend/myapp/views.py): `backend/myapp/views.py`

### Other components

- **User**

## Connections

- User → React entry: opens
- React entry → App router: renders
- App router → Page routes: loads
- Page routes → Login and signup: renders
- Page routes → Add job form: renders
- Page routes → Dashboard: renders
- Page routes → Job views: renders
- Add job form → Request handlers: POSTs job
- Request handlers → Django auth: handles auth
- Request handlers → Job tracking: dispatches job
- Request handlers → Opportunity reports: dispatches reports
- Request handlers → Resume storage: handles uploads
- Request handlers → Skill matching: matches skills
- Django auth → Data models: uses users
- Job tracking → Data models: uses jobs
- Opportunity reports → Data models: updates reports
- Resume storage → Data models: stores PDF metadata
- Skill matching → Data models: reads resume
- Data models → User and job records: reads and writes
- User and job records → AWS RDS: persists
