# thanh762404/tuyendungvieclam architecture

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

- Interactive diagram: https://gitdiagram.com/thanh762404/tuyendungvieclam
- Repository: https://github.com/thanh762404/tuyendungvieclam

## Overview

CTJob is a Django recruitment platform. Candidates register and maintain profiles, discover jobs, submit applications and communicate about interviews; recruiters publish jobs, manage applicants and purchase posting packages, while staff administer listings and transactions. The graph groups these domain workflows around their view handlers and shared models. The shown excerpts support key calls, but several modules are only indexed or unsampled, so uncertain internal links are omitted.

Main entry points: [`backend/jobs/views.py`](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/views.py) (Job Routing), [`backend/jobs/models.py`](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/models.py) (Jobs and Applications), [`backend/jobs/views_recruiter.py`](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/views_recruiter.py) (Recruiter Tools), [`backend/core/urls.py`](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/core/urls.py) (URL Configuration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Accounts"]
  node_accounts_views["Accounts<br/>[views.py]"]
  node_account_forms["Account Forms<br/>[forms.py]"]
  node_account_data[("User Profiles<br/>[models.py]")]
end

subgraph group_marketplace["Job Marketplace"]
  node_job_views["Job Routing<br/>[views.py]"]
  node_home_views["Job Discovery<br/>[views_home.py]"]
  node_candidate_views["Applications<br/>[views_candidate.py]"]
  node_job_forms["Job Forms<br/>[forms.py]"]
  node_job_data[("Jobs and Applications<br/>[models.py]")]
  node_chat_views["Job Chat<br/>[views_chat.py]"]
end

subgraph group_recruiter["Recruiter Operations"]
  node_recruiter_views["Recruiter Tools<br/>[views_recruiter.py]"]
  node_packages[("Packages and Transactions<br/>[models.py]")]
end

subgraph group_operations["Administration"]
  node_admin_views["Staff Administration<br/>[views_admin.py]"]
  node_reminders["Interview Reminders"]
end

subgraph group_platform["Shared Platform"]
  node_core_views["Public Pages and Contact<br/>[views.py]"]
  node_routes["URL Configuration<br/>[urls.py]"]
end

node_candidate(("Candidate"))
node_recruiter_actor(("Recruiter"))
node_staff(("Staff"))
node_email["Email Service"]
node_browser(("Web Browser"))

node_browser -->|"requests routes"| node_routes
node_routes -->|"routes accounts"| node_accounts_views
node_routes -->|"routes jobs"| node_job_views
node_routes -->|"routes pages"| node_core_views
node_accounts_views -->|"validates forms"| node_account_forms
node_accounts_views -->|"reads and writes"| node_account_data
node_account_forms -->|"creates profiles"| node_account_data
node_candidate -.->|"registers and signs in"| node_accounts_views
node_job_views -->|"dispatches to"| node_home_views
node_job_views -->|"dispatches to"| node_candidate_views
node_job_views -->|"dispatches to"| node_recruiter_views
node_job_views -->|"dispatches to"| node_chat_views
node_job_views -->|"dispatches to"| node_admin_views
node_home_views -.->|"queries listings"| node_job_data
node_candidate_views -->|"validates applications"| node_job_forms
node_candidate_views -->|"creates applications"| node_job_data
node_recruiter_views -->|"uses forms"| node_job_forms
node_recruiter_views -->|"manages jobs"| node_job_data
node_recruiter_views -->|"records purchases"| node_packages
node_recruiter_actor -.->|"publishes and manages"| node_recruiter_views
node_candidate -.->|"applies and tracks"| node_candidate_views
node_chat_views -.->|"stores chat messages"| node_job_data
node_admin_views -->|"moderates listings"| node_job_data
node_admin_views -.->|"reviews transactions"| node_packages
node_staff -.->|"administers platform"| node_admin_views
node_reminders -->|"checks interviews"| node_job_data
node_reminders -->|"sends reminders"| node_email
node_core_views -->|"queries jobs and saves contacts"| node_job_data
node_core_views -->|"emails support"| node_email

click node_accounts_views "https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/accounts/views.py"
click node_account_forms "https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/accounts/forms.py"
click node_account_data "https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/accounts/models.py"
click node_job_views "https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/views.py"
click node_home_views "https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/views_home.py"
click node_candidate_views "https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/views_candidate.py"
click node_job_forms "https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/forms.py"
click node_job_data "https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/models.py"
click node_chat_views "https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/views_chat.py"
click node_recruiter_views "https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/views_recruiter.py"
click node_packages "https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/models.py"
click node_admin_views "https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/views_admin.py"
click node_reminders "https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/management/commands/send_interview_reminders.py"
click node_core_views "https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/core/views.py"
click node_routes "https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/core/urls.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_accounts_views,node_account_forms,node_account_data,node_browser toneBlue
class node_job_views,node_home_views,node_candidate_views,node_job_forms,node_job_data,node_chat_views toneAmber
class node_recruiter_views,node_packages toneMint
class node_admin_views,node_reminders toneRose
class node_core_views,node_routes,node_candidate,node_recruiter_actor,node_staff,node_email toneIndigo
```

## Components

### Accounts

- [Accounts](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/accounts/views.py): `backend/accounts/views.py`
- [Account Forms](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/accounts/forms.py): `backend/accounts/forms.py`
- [User Profiles](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/accounts/models.py): `backend/accounts/models.py`

### Job Marketplace

- [Job Routing](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/views.py): `backend/jobs/views.py`
- [Job Discovery](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/views_home.py): `backend/jobs/views_home.py`
- [Applications](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/views_candidate.py): `backend/jobs/views_candidate.py`
- [Job Forms](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/forms.py): `backend/jobs/forms.py`
- [Jobs and Applications](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/models.py): `backend/jobs/models.py`
- [Job Chat](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/views_chat.py): `backend/jobs/views_chat.py`

### Recruiter Operations

- [Recruiter Tools](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/views_recruiter.py): `backend/jobs/views_recruiter.py`
- [Packages and Transactions](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/models.py): `backend/jobs/models.py`

### Administration

- [Staff Administration](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/views_admin.py): `backend/jobs/views_admin.py`
- [Interview Reminders](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/jobs/management/commands/send_interview_reminders.py): `backend/jobs/management/commands/send_interview_reminders.py`

### Shared Platform

- [Public Pages and Contact](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/core/views.py): `backend/core/views.py`
- [URL Configuration](https://github.com/thanh762404/tuyendungvieclam/blob/main/backend/core/urls.py): `backend/core/urls.py`

### Other components

- **Candidate**
- **Recruiter**
- **Staff**
- **Email Service**
- **Web Browser**

## Connections

- Web Browser → URL Configuration: requests routes (evidence: `backend/core/urls.py`)
- URL Configuration → Accounts: routes accounts (evidence: `backend/core/urls.py`)
- URL Configuration → Job Routing: routes jobs (evidence: `backend/core/urls.py`)
- URL Configuration → Public Pages and Contact: routes pages (evidence: `backend/core/urls.py`)
- Accounts → Account Forms: validates forms (evidence: `backend/accounts/views.py`)
- Accounts → User Profiles: reads and writes (evidence: `backend/accounts/views.py`)
- Account Forms → User Profiles: creates profiles (evidence: `backend/accounts/forms.py`)
- Candidate → Accounts: registers and signs in
- Job Routing → Job Discovery: dispatches to (evidence: `backend/jobs/views.py`)
- Job Routing → Applications: dispatches to (evidence: `backend/jobs/views.py`)
- Job Routing → Recruiter Tools: dispatches to (evidence: `backend/jobs/views.py`)
- Job Routing → Job Chat: dispatches to (evidence: `backend/jobs/views.py`)
- Job Routing → Staff Administration: dispatches to (evidence: `backend/jobs/views.py`)
- Job Discovery → Jobs and Applications: queries listings (evidence: `backend/jobs/views_home.py`)
- Applications → Job Forms: validates applications (evidence: `backend/jobs/views_candidate.py`)
- Applications → Jobs and Applications: creates applications (evidence: `backend/jobs/views_candidate.py`)
- Recruiter Tools → Job Forms: uses forms (evidence: `backend/jobs/views_recruiter.py`)
- Recruiter Tools → Jobs and Applications: manages jobs (evidence: `backend/jobs/views_recruiter.py`)
- Recruiter Tools → Packages and Transactions: records purchases (evidence: `backend/jobs/views_recruiter.py`)
- Recruiter → Recruiter Tools: publishes and manages
- Candidate → Applications: applies and tracks
- Job Chat → Jobs and Applications: stores chat messages (evidence: `backend/jobs/views_chat.py`)
- Staff Administration → Jobs and Applications: moderates listings (evidence: `backend/jobs/views_admin.py`)
- Staff Administration → Packages and Transactions: reviews transactions (evidence: `backend/jobs/views_admin.py`)
- Staff → Staff Administration: administers platform
- Interview Reminders → Jobs and Applications: checks interviews (evidence: `backend/jobs/management/commands/send_interview_reminders.py`)
- Interview Reminders → Email Service: sends reminders (evidence: `backend/jobs/management/commands/send_interview_reminders.py`)
- Public Pages and Contact → Jobs and Applications: queries jobs and saves contacts (evidence: `backend/core/views.py`)
- Public Pages and Contact → Email Service: emails support (evidence: `backend/core/views.py`)
