# jambarrtech/jobsinc architecture

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

## Overview

JOBSINC is a recruitment platform connecting candidates, employers and administrators. Candidates create accounts, discover jobs and apply; employers publish jobs, review applications through a status pipeline, communicate and schedule interviews. Administrators oversee users, company approval, moderation and analytics. The web interface and Express API are visible in the tree; sampled code confirms pipeline updates, authentication, persistence and interview notifications. Other feature links reflect declared routes, not inspected controller internals; mobile implementation details were not sampled.

Main entry points: [`backend/src/app.js`](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/app.js) (HTTP application), [`backend/src/config/prisma.js`](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/config/prisma.js) (Platform database), [`backend/src/services/authService.js`](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/services/authService.js) (Authentication service), [`backend/src/routes/companyRoutes.js`](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/routes/companyRoutes.js) (Employer routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web experience"]
  node_webapp["Employer web app"]
  node_webdash["Dashboard features"]
  node_webadmin["Admin console"]
  node_webapi["Web API client<br/>[api.ts]"]
end

subgraph group_api["API and domain"]
  node_express["HTTP application<br/>[app.js]"]
  node_authroutes["Authentication routes<br/>[authRoutes.js]"]
  node_authservice["Authentication service<br/>[authService.js]"]
  node_companyroutes["Employer routes<br/>[companyRoutes.js]"]
  node_jobroutes["Job routes<br/>[jobRoutes.js]"]
  node_applicationroutes["Application routes"]
  node_interviewroutes["Interview routes<br/>[interviewRoutes.js]"]
  node_messaging["Messaging routes"]
  node_adminroutes["Admin routes<br/>[adminRoutes.js]"]
  node_matching["Job matching<br/>[matchingService.js]"]
  node_interviewlogic["Interview management"]
end

subgraph group_data["Persistence and files"]
  node_database[("Platform database<br/>[prisma.js]")]
  node_filehandling["Upload storage<br/>[storageService.js]"]
end

subgraph group_services["Realtime and integrations"]
  node_notifications["Notifications<br/>[pushService.js]"]
  node_realtime["Realtime messaging<br/>[socketService.js]"]
  node_email["Email delivery<br/>[emailService.js]"]
end

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

node_candidate -->|"uses"| node_webapp
node_employer -->|"uses"| node_webapp
node_administrator -->|"uses"| node_webadmin
node_webapp -->|"renders"| node_webdash
node_webdash -->|"requests"| node_webapi
node_webadmin -->|"requests"| node_webapi
node_webapi -->|"calls API"| node_express
node_express -->|"dispatches"| node_authroutes
node_express -->|"dispatches"| node_companyroutes
node_express -->|"dispatches"| node_jobroutes
node_express -->|"dispatches"| node_applicationroutes
node_express -->|"dispatches"| node_interviewroutes
node_express -->|"dispatches"| node_messaging
node_express -->|"dispatches"| node_adminroutes
node_authroutes -->|"calls"| node_authservice
node_authservice -->|"reads/writes"| node_database
node_authservice -->|"sends email"| node_email
node_companyroutes -->|"reads/writes"| node_database
node_jobroutes -->|"reads/writes"| node_database
node_jobroutes -->|"requests matches"| node_matching
node_applicationroutes -->|"reads/writes"| node_database
node_interviewroutes -->|"dispatches"| node_interviewlogic
node_interviewlogic -->|"reads/writes"| node_database
node_interviewlogic -->|"sends alerts"| node_notifications
node_messaging -->|"reads/writes"| node_database
node_messaging -.->|"uses"| node_realtime
node_adminroutes -->|"reads/writes"| node_database
node_companyroutes -->|"stores uploads"| node_filehandling

click node_webapp "https://github.com/jambarrtech/jobsinc/tree/main/entreprise/app"
click node_webdash "https://github.com/jambarrtech/jobsinc/tree/main/entreprise/components/dashboard"
click node_webadmin "https://github.com/jambarrtech/jobsinc/tree/main/entreprise/app/admin"
click node_webapi "https://github.com/jambarrtech/jobsinc/blob/main/entreprise/lib/api.ts"
click node_express "https://github.com/jambarrtech/jobsinc/blob/main/backend/src/app.js"
click node_authroutes "https://github.com/jambarrtech/jobsinc/blob/main/backend/src/routes/authRoutes.js"
click node_authservice "https://github.com/jambarrtech/jobsinc/blob/main/backend/src/services/authService.js"
click node_companyroutes "https://github.com/jambarrtech/jobsinc/blob/main/backend/src/routes/companyRoutes.js"
click node_jobroutes "https://github.com/jambarrtech/jobsinc/blob/main/backend/src/routes/jobRoutes.js"
click node_applicationroutes "https://github.com/jambarrtech/jobsinc/blob/main/backend/src/routes/applicationRoutes.js"
click node_interviewroutes "https://github.com/jambarrtech/jobsinc/blob/main/backend/src/routes/interviewRoutes.js"
click node_messaging "https://github.com/jambarrtech/jobsinc/blob/main/backend/src/routes/conversationRoutes.js"
click node_adminroutes "https://github.com/jambarrtech/jobsinc/blob/main/backend/src/routes/adminRoutes.js"
click node_matching "https://github.com/jambarrtech/jobsinc/blob/main/backend/src/services/matchingService.js"
click node_interviewlogic "https://github.com/jambarrtech/jobsinc/blob/main/backend/src/controllers/interviewController.js"
click node_database "https://github.com/jambarrtech/jobsinc/blob/main/backend/src/config/prisma.js"
click node_filehandling "https://github.com/jambarrtech/jobsinc/blob/main/backend/src/services/storageService.js"
click node_notifications "https://github.com/jambarrtech/jobsinc/blob/main/backend/src/services/pushService.js"
click node_realtime "https://github.com/jambarrtech/jobsinc/blob/main/backend/src/services/socketService.js"
click node_email "https://github.com/jambarrtech/jobsinc/blob/main/backend/src/services/emailService.js"

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_webapp,node_webdash,node_webadmin,node_webapi toneBlue
class node_express,node_authroutes,node_authservice,node_companyroutes,node_jobroutes,node_applicationroutes,node_interviewroutes,node_messaging,node_adminroutes,node_matching,node_interviewlogic toneAmber
class node_database,node_filehandling toneMint
class node_notifications,node_realtime,node_email toneRose
class node_candidate,node_employer,node_administrator toneIndigo
```

## Components

### Web experience

- [Employer web app](https://github.com/jambarrtech/jobsinc/tree/main/entreprise/app): `entreprise/app`
- [Dashboard features](https://github.com/jambarrtech/jobsinc/tree/main/entreprise/components/dashboard): `entreprise/components/dashboard`
- [Admin console](https://github.com/jambarrtech/jobsinc/tree/main/entreprise/app/admin): `entreprise/app/admin`
- [Web API client](https://github.com/jambarrtech/jobsinc/blob/main/entreprise/lib/api.ts): `entreprise/lib/api.ts`

### API and domain

- [HTTP application](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/app.js): `backend/src/app.js`
- [Authentication routes](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/routes/authRoutes.js): `backend/src/routes/authRoutes.js`
- [Authentication service](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/services/authService.js): `backend/src/services/authService.js`
- [Employer routes](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/routes/companyRoutes.js): `backend/src/routes/companyRoutes.js`
- [Job routes](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/routes/jobRoutes.js): `backend/src/routes/jobRoutes.js`
- [Application routes](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/routes/applicationRoutes.js): `backend/src/routes/applicationRoutes.js`
- [Interview routes](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/routes/interviewRoutes.js): `backend/src/routes/interviewRoutes.js`
- [Messaging routes](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/routes/conversationRoutes.js): `backend/src/routes/conversationRoutes.js`
- [Admin routes](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/routes/adminRoutes.js): `backend/src/routes/adminRoutes.js`
- [Job matching](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/services/matchingService.js): `backend/src/services/matchingService.js`
- [Interview management](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/controllers/interviewController.js): `backend/src/controllers/interviewController.js`

### Persistence and files

- [Platform database](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/config/prisma.js): `backend/src/config/prisma.js`
- [Upload storage](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/services/storageService.js): `backend/src/services/storageService.js`

### Realtime and integrations

- [Notifications](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/services/pushService.js): `backend/src/services/pushService.js`
- [Realtime messaging](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/services/socketService.js): `backend/src/services/socketService.js`
- [Email delivery](https://github.com/jambarrtech/jobsinc/blob/main/backend/src/services/emailService.js): `backend/src/services/emailService.js`

### Other components

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

## Connections

- Candidate → Employer web app: uses
- Employer → Employer web app: uses
- Administrator → Admin console: uses
- Employer web app → Dashboard features: renders
- Dashboard features → Web API client: requests
- Admin console → Web API client: requests
- Web API client → HTTP application: calls API
- HTTP application → Authentication routes: dispatches
- HTTP application → Employer routes: dispatches
- HTTP application → Job routes: dispatches
- HTTP application → Application routes: dispatches
- HTTP application → Interview routes: dispatches
- HTTP application → Messaging routes: dispatches
- HTTP application → Admin routes: dispatches
- Authentication routes → Authentication service: calls
- Authentication service → Platform database: reads/writes
- Authentication service → Email delivery: sends email
- Employer routes → Platform database: reads/writes
- Job routes → Platform database: reads/writes
- Job routes → Job matching: requests matches
- Application routes → Platform database: reads/writes
- Interview routes → Interview management: dispatches
- Interview management → Platform database: reads/writes
- Interview management → Notifications: sends alerts
- Messaging routes → Platform database: reads/writes
- Messaging routes → Realtime messaging: uses
- Admin routes → Platform database: reads/writes
- Employer routes → Upload storage: stores uploads
