# palak-rajput/hirix-job_portal architecture

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

- Interactive diagram: https://gitdiagram.com/palak-rajput/hirix-job_portal
- Repository: https://github.com/palak-rajput/hirix-job_portal

## Overview

Hirix is a role-based recruitment portal for job discovery and applications, recruiter job and applicant management, and administrator oversight. The frontend routes users to search, detail, application, profile, recruiter, and admin screens; its job service sends REST requests to the backend. The backend tree separates API, service, and Mongo repository layers. The sampled excerpts do not show the backend API-to-service wiring or the implementation of matching, notifications, and profile flows, so those links are not asserted.

Main entry points: [`Frontend/src/App.tsx`](https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/App.tsx) (Application router), [`Frontend/src/Services/JobService.tsx`](https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/Services/JobService.tsx) (Job REST client), [`Job Portal/Job-Portal/src/main/java/com/jobportal/controller/AdminController.java`](https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/controller/AdminController.java) (Admin endpoints), [`Job Portal/Job-Portal/src/main/java/com/jobportal/controller/AuthController.java`](https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/controller/AuthController.java) (Authentication)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Frontend experience"]
  node_app["Application router<br/>[App.tsx]"]
  node_job_search["Job discovery<br/>[FindJobsPage.tsx]"]
  node_job_detail["Job detail<br/>[JobDetailPage.tsx]"]
  node_job_apply["Job application<br/>[ApplyJobPage.tsx]"]
  node_recruiter_jobs["Recruiter jobs<br/>[PostedJobPage.tsx]"]
  node_talent_search["Talent discovery<br/>[FindTalentPage.tsx]"]
  node_admin_dashboard["Admin oversight<br/>[AdminDashboard.tsx]"]
  node_job_client["Job REST client<br/>[JobService.tsx]"]
end

subgraph group_backend_api["Backend endpoints"]
  node_job_api["Job endpoints<br/>[JobAPI.java]"]
  node_profile_api["Profile endpoints<br/>[ProfileAPI.java]"]
  node_user_api["User endpoints<br/>[UserAPI.java]"]
  node_admin_api["Admin endpoints"]
  node_auth_api["Authentication"]
end

subgraph group_services["Domain services"]
  node_job_service["Job workflows<br/>[JobService.java]"]
  node_profile_service["Profile workflows"]
  node_user_service["Account workflows<br/>[UserService.java]"]
  node_admin_service["Admin workflows<br/>[AdminService.java]"]
end

subgraph group_storage["Persistence"]
  node_repositories["Mongo repositories"]
end

node_candidate(("Candidate"))
node_recruiter(("Recruiter"))
node_administrator(("Administrator"))
node_mongo[("MongoDB")]

node_candidate -->|"uses"| node_app
node_recruiter -->|"uses"| node_app
node_administrator -->|"uses"| node_app
node_app -->|"routes"| node_job_search
node_app -->|"routes"| node_job_detail
node_app -->|"routes"| node_job_apply
node_app -->|"routes"| node_recruiter_jobs
node_app -->|"routes"| node_talent_search
node_app -->|"routes"| node_admin_dashboard
node_job_client -->|"HTTP requests"| node_job_api
node_admin_api -->|"invokes"| node_admin_service
node_auth_api -->|"queries users"| node_repositories

click node_app "https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/App.tsx"
click node_job_search "https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/Pages/FindJobsPage.tsx"
click node_job_detail "https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/Pages/JobDetailPage.tsx"
click node_job_apply "https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/Pages/ApplyJobPage.tsx"
click node_recruiter_jobs "https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/Pages/PostedJobPage.tsx"
click node_talent_search "https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/Pages/FindTalentPage.tsx"
click node_admin_dashboard "https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/Pages/admin/AdminDashboard.tsx"
click node_job_client "https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/Services/JobService.tsx"
click node_job_api "https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/api/JobAPI.java"
click node_profile_api "https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/api/ProfileAPI.java"
click node_user_api "https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/api/UserAPI.java"
click node_admin_api "https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/controller/AdminController.java"
click node_auth_api "https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/controller/AuthController.java"
click node_job_service "https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/service/JobService.java"
click node_profile_service "https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/service/ProfileService.java"
click node_user_service "https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/service/UserService.java"
click node_admin_service "https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/service/AdminService.java"
click node_repositories "https://github.com/palak-rajput/hirix-job_portal/tree/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/repository"

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_job_search,node_job_detail,node_job_apply,node_recruiter_jobs,node_talent_search,node_admin_dashboard,node_job_client toneBlue
class node_job_api,node_profile_api,node_user_api,node_admin_api,node_auth_api,node_mongo toneAmber
class node_job_service,node_profile_service,node_user_service,node_admin_service toneMint
class node_repositories toneRose
class node_candidate,node_recruiter,node_administrator toneIndigo
```

## Components

### Frontend experience

- [Application router](https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/App.tsx): `Frontend/src/App.tsx`
- [Job discovery](https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/Pages/FindJobsPage.tsx): `Frontend/src/Pages/FindJobsPage.tsx`
- [Job detail](https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/Pages/JobDetailPage.tsx): `Frontend/src/Pages/JobDetailPage.tsx`
- [Job application](https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/Pages/ApplyJobPage.tsx): `Frontend/src/Pages/ApplyJobPage.tsx`
- [Recruiter jobs](https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/Pages/PostedJobPage.tsx): `Frontend/src/Pages/PostedJobPage.tsx`
- [Talent discovery](https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/Pages/FindTalentPage.tsx): `Frontend/src/Pages/FindTalentPage.tsx`
- [Admin oversight](https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/Pages/admin/AdminDashboard.tsx): `Frontend/src/Pages/admin/AdminDashboard.tsx`
- [Job REST client](https://github.com/palak-rajput/hirix-job_portal/blob/main/Frontend/src/Services/JobService.tsx): `Frontend/src/Services/JobService.tsx`

### Backend endpoints

- [Job endpoints](https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/api/JobAPI.java): `Job Portal/Job-Portal/src/main/java/com/jobportal/api/JobAPI.java`
- [Profile endpoints](https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/api/ProfileAPI.java): `Job Portal/Job-Portal/src/main/java/com/jobportal/api/ProfileAPI.java`
- [User endpoints](https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/api/UserAPI.java): `Job Portal/Job-Portal/src/main/java/com/jobportal/api/UserAPI.java`
- [Admin endpoints](https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/controller/AdminController.java): `Job Portal/Job-Portal/src/main/java/com/jobportal/controller/AdminController.java`
- [Authentication](https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/controller/AuthController.java): `Job Portal/Job-Portal/src/main/java/com/jobportal/controller/AuthController.java`

### Domain services

- [Job workflows](https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/service/JobService.java): `Job Portal/Job-Portal/src/main/java/com/jobportal/service/JobService.java`
- [Profile workflows](https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/service/ProfileService.java): `Job Portal/Job-Portal/src/main/java/com/jobportal/service/ProfileService.java`
- [Account workflows](https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/service/UserService.java): `Job Portal/Job-Portal/src/main/java/com/jobportal/service/UserService.java`
- [Admin workflows](https://github.com/palak-rajput/hirix-job_portal/blob/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/service/AdminService.java): `Job Portal/Job-Portal/src/main/java/com/jobportal/service/AdminService.java`

### Persistence

- [Mongo repositories](https://github.com/palak-rajput/hirix-job_portal/tree/main/Job%20Portal/Job-Portal/src/main/java/com/jobportal/repository): `Job Portal/Job-Portal/src/main/java/com/jobportal/repository`

### Other components

- **Candidate**
- **Recruiter**
- **Administrator**
- **MongoDB**

## Connections

- Candidate → Application router: uses
- Recruiter → Application router: uses
- Administrator → Application router: uses
- Application router → Job discovery: routes
- Application router → Job detail: routes
- Application router → Job application: routes
- Application router → Recruiter jobs: routes
- Application router → Talent discovery: routes
- Application router → Admin oversight: routes
- Job REST client → Job endpoints: HTTP requests
- Admin endpoints → Admin workflows: invokes
- Authentication → Mongo repositories: queries users
