# dhananjaysable/careerin architecture

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

## Overview

Careerin is a PHP job marketplace connecting candidates with employers, with administrator oversight. The main candidate journey is browsing or filtering job listings, opening a posting, and applying; employers create postings and manage applications, while administrators review companies and postings. Candidate and company account management, resume discovery, and role-based mailboxes are additional product branches. The sampled source confirms database-backed listing and application-status operations; other subsystem links reflect the file tree and remain broad because their implementations were not sampled.

Main entry points: [`db.php`](https://github.com/dhananjaysable/careerin/blob/main/db.php) (Application database), [`index.php`](https://github.com/dhananjaysable/careerin/blob/main/index.php) (Job discovery), [`search.php`](https://github.com/dhananjaysable/careerin/blob/main/search.php) (Job search), [`jobs.php`](https://github.com/dhananjaysable/careerin/blob/main/jobs.php) (Job listings)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_market["Job marketplace"]
  node_home["Job discovery<br/>[index.php]"]
  node_search["Job search<br/>[search.php]"]
  node_jobs["Job listings<br/>[jobs.php]"]
  node_job_detail["Job details<br/>[view-job-post.php]"]
  node_apply["Apply to job<br/>[apply.php]"]
  node_location["Location filters<br/>[city.php]"]
end

subgraph group_accounts["Accounts and access"]
  node_auth["Candidate access"]
  node_registration["Candidate signup"]
  node_profile["Candidate profile<br/>[edit-profile.php]"]
  node_candidate_account["Candidate account<br/>[index.php]"]
  node_company_access["Company access<br/>[login-company.php]"]
  node_company_signup["Company signup"]
  node_candidate_mail["Candidate mailbox<br/>[mailbox.php]"]
end

subgraph group_employer["Employer workspace"]
  node_company_workspace["Company dashboard<br/>[index.php]"]
  node_job_management["Job management"]
  node_applications["Application management"]
  node_resume_search["Resume database"]
  node_company_mail["Company mailbox<br/>[mailbox.php]"]
end

subgraph group_admin["Administration"]
  node_admin_access["Admin access<br/>[index.php]"]
  node_admin_review["Company and job review<br/>[companies.php]"]
  node_admin_applications["Candidate oversight<br/>[applications.php]"]
end

subgraph group_data["Persistence"]
  node_database[("Application database<br/>[db.php]")]
end

node_candidate(("Candidate"))
node_employer_actor(("Employer"))
node_administrator(("Administrator"))

node_candidate -->|"browses"| node_home
node_candidate -->|"filters"| node_search
node_candidate -->|"lists"| node_jobs
node_candidate -->|"filters by place"| node_location
node_candidate -->|"signs in"| node_auth
node_candidate -->|"registers"| node_registration
node_candidate -->|"manages account"| node_candidate_account
node_candidate -->|"uses mailbox"| node_candidate_mail
node_home -->|"queries listings"| node_database
node_search -->|"queries listings"| node_database
node_jobs -->|"reads postings"| node_database
node_job_detail -->|"reads posting"| node_database
node_candidate -->|"opens posting"| node_job_detail
node_candidate -->|"submits application"| node_apply
node_apply -->|"records application"| node_database
node_candidate -->|"edits profile"| node_profile
node_profile -->|"reads profile"| node_database
node_employer_actor -->|"signs in"| node_company_access
node_employer_actor -->|"registers"| node_company_signup
node_employer_actor -->|"manages company"| node_company_workspace
node_company_workspace -->|"reads dashboard data"| node_database
node_employer_actor -->|"manages postings"| node_job_management
node_job_management -->|"stores postings"| node_database
node_employer_actor -->|"reviews applicants"| node_applications
node_applications -->|"updates status"| node_database
node_employer_actor -->|"searches candidates"| node_resume_search
node_resume_search -->|"reads candidate records"| node_database
node_employer_actor -->|"uses mailbox"| node_company_mail
node_company_mail -->|"uses messages"| node_database
node_candidate_mail -->|"uses messages"| node_database
node_administrator -->|"signs in"| node_admin_access
node_administrator -->|"reviews companies"| node_admin_review
node_administrator -->|"oversees candidates"| node_admin_applications
node_admin_review -->|"reviews records"| node_database
node_admin_applications -->|"reads candidates"| node_database

click node_home "https://github.com/dhananjaysable/careerin/blob/main/index.php"
click node_search "https://github.com/dhananjaysable/careerin/blob/main/search.php"
click node_jobs "https://github.com/dhananjaysable/careerin/blob/main/jobs.php"
click node_job_detail "https://github.com/dhananjaysable/careerin/blob/main/view-job-post.php"
click node_apply "https://github.com/dhananjaysable/careerin/blob/main/apply.php"
click node_location "https://github.com/dhananjaysable/careerin/blob/main/city.php"
click node_auth "https://github.com/dhananjaysable/careerin/blob/main/login-candidates.php"
click node_registration "https://github.com/dhananjaysable/careerin/blob/main/register-candidates.php"
click node_profile "https://github.com/dhananjaysable/careerin/blob/main/user/edit-profile.php"
click node_candidate_account "https://github.com/dhananjaysable/careerin/blob/main/user/index.php"
click node_company_access "https://github.com/dhananjaysable/careerin/blob/main/login-company.php"
click node_company_signup "https://github.com/dhananjaysable/careerin/blob/main/register-company.php"
click node_company_workspace "https://github.com/dhananjaysable/careerin/blob/main/company/index.php"
click node_job_management "https://github.com/dhananjaysable/careerin/blob/main/company/create-job-post.php"
click node_applications "https://github.com/dhananjaysable/careerin/blob/main/company/job-applications.php"
click node_resume_search "https://github.com/dhananjaysable/careerin/blob/main/company/resume-database.php"
click node_company_mail "https://github.com/dhananjaysable/careerin/blob/main/company/mailbox.php"
click node_candidate_mail "https://github.com/dhananjaysable/careerin/blob/main/user/mailbox.php"
click node_admin_access "https://github.com/dhananjaysable/careerin/blob/main/admin/index.php"
click node_admin_review "https://github.com/dhananjaysable/careerin/blob/main/admin/companies.php"
click node_admin_applications "https://github.com/dhananjaysable/careerin/blob/main/admin/applications.php"
click node_database "https://github.com/dhananjaysable/careerin/blob/main/db.php"

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_home,node_search,node_jobs,node_job_detail,node_apply,node_location toneBlue
class node_auth,node_registration,node_profile,node_candidate_account,node_company_access,node_company_signup,node_candidate_mail toneAmber
class node_company_workspace,node_job_management,node_applications,node_resume_search,node_company_mail toneMint
class node_admin_access,node_admin_review,node_admin_applications toneRose
class node_database,node_candidate,node_employer_actor,node_administrator toneIndigo
```

## Components

### Job marketplace

- [Job discovery](https://github.com/dhananjaysable/careerin/blob/main/index.php): `index.php`
- [Job search](https://github.com/dhananjaysable/careerin/blob/main/search.php): `search.php`
- [Job listings](https://github.com/dhananjaysable/careerin/blob/main/jobs.php): `jobs.php`
- [Job details](https://github.com/dhananjaysable/careerin/blob/main/view-job-post.php): `view-job-post.php`
- [Apply to job](https://github.com/dhananjaysable/careerin/blob/main/apply.php): `apply.php`
- [Location filters](https://github.com/dhananjaysable/careerin/blob/main/city.php): `city.php`

### Accounts and access

- [Candidate access](https://github.com/dhananjaysable/careerin/blob/main/login-candidates.php): `login-candidates.php`
- [Candidate signup](https://github.com/dhananjaysable/careerin/blob/main/register-candidates.php): `register-candidates.php`
- [Candidate profile](https://github.com/dhananjaysable/careerin/blob/main/user/edit-profile.php): `user/edit-profile.php`
- [Candidate account](https://github.com/dhananjaysable/careerin/blob/main/user/index.php): `user/index.php`
- [Company access](https://github.com/dhananjaysable/careerin/blob/main/login-company.php): `login-company.php`
- [Company signup](https://github.com/dhananjaysable/careerin/blob/main/register-company.php): `register-company.php`
- [Candidate mailbox](https://github.com/dhananjaysable/careerin/blob/main/user/mailbox.php): `user/mailbox.php`

### Employer workspace

- [Company dashboard](https://github.com/dhananjaysable/careerin/blob/main/company/index.php): `company/index.php`
- [Job management](https://github.com/dhananjaysable/careerin/blob/main/company/create-job-post.php): `company/create-job-post.php`
- [Application management](https://github.com/dhananjaysable/careerin/blob/main/company/job-applications.php): `company/job-applications.php`
- [Resume database](https://github.com/dhananjaysable/careerin/blob/main/company/resume-database.php): `company/resume-database.php`
- [Company mailbox](https://github.com/dhananjaysable/careerin/blob/main/company/mailbox.php): `company/mailbox.php`

### Administration

- [Admin access](https://github.com/dhananjaysable/careerin/blob/main/admin/index.php): `admin/index.php`
- [Company and job review](https://github.com/dhananjaysable/careerin/blob/main/admin/companies.php): `admin/companies.php`
- [Candidate oversight](https://github.com/dhananjaysable/careerin/blob/main/admin/applications.php): `admin/applications.php`

### Persistence

- [Application database](https://github.com/dhananjaysable/careerin/blob/main/db.php): `db.php`

### Other components

- **Candidate**
- **Employer**
- **Administrator**

## Connections

- Candidate → Job discovery: browses
- Candidate → Job search: filters
- Candidate → Job listings: lists
- Candidate → Location filters: filters by place
- Candidate → Candidate access: signs in
- Candidate → Candidate signup: registers
- Candidate → Candidate account: manages account
- Candidate → Candidate mailbox: uses mailbox
- Job discovery → Application database: queries listings
- Job search → Application database: queries listings
- Job listings → Application database: reads postings
- Job details → Application database: reads posting
- Candidate → Job details: opens posting
- Candidate → Apply to job: submits application
- Apply to job → Application database: records application
- Candidate → Candidate profile: edits profile
- Candidate profile → Application database: reads profile
- Employer → Company access: signs in
- Employer → Company signup: registers
- Employer → Company dashboard: manages company
- Company dashboard → Application database: reads dashboard data
- Employer → Job management: manages postings
- Job management → Application database: stores postings
- Employer → Application management: reviews applicants
- Application management → Application database: updates status
- Employer → Resume database: searches candidates
- Resume database → Application database: reads candidate records
- Employer → Company mailbox: uses mailbox
- Company mailbox → Application database: uses messages
- Candidate mailbox → Application database: uses messages
- Administrator → Admin access: signs in
- Administrator → Company and job review: reviews companies
- Administrator → Candidate oversight: oversees candidates
- Company and job review → Application database: reviews records
- Candidate oversight → Application database: reads candidates
