# vijaykumar-devcode/workconnect architecture

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

## Overview

WorkConnect is a role-based recruitment platform spanning candidate, employer, recruiter, and admin experiences. Its documented hiring workflow runs from account registration and company verification through job posting, candidate applications, ATS screening, interviews, and offers. The graph also preserves major supporting capabilities such as onboarding review, analytics, audit, notifications, support, and uploads. Some subsystem links are documented in the README; other implementation wiring is not shown in the excerpts, so those links are omitted rather than inferred.

Main entry points: [`server/src/modules/applications/application.service.js`](https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/applications/application.service.js) (ATS applications), [`client/src/app/routes.jsx`](https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/app/routes.jsx) (Role routes), [`client/src/features/jobs/Landing.jsx`](https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/features/jobs/Landing.jsx) (Job board), [`server/src/modules/companies/company.service.js`](https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/companies/company.service.js) (Company profiles)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Role-based client"]
  node_client_routes["Role routes<br/>[routes.jsx]"]
  node_job_board["Job board<br/>[Landing.jsx]"]
  node_employer_views["Employer workspace"]
  node_candidate_views["Candidate workspace"]
  node_recruiter_views["Recruiter workspace"]
  node_admin_views["Admin portal<br/>[AdminDashboard.jsx]"]
end

subgraph group_hiring["Hiring lifecycle"]
  node_auth["Identity and access<br/>[auth.service.js]"]
  node_companies["Company profiles<br/>[company.service.js]"]
  node_jobs["Job postings<br/>[job.service.js]"]
  node_applications["ATS applications"]
  node_onboarding_review["Onboarding review"]
  node_interviews["Interview coordination"]
  node_interview_realtime["Live interview room"]
  node_offers["Offer management<br/>[offer.service.js]"]
end

subgraph group_operations["Platform capabilities"]
  node_analytics["Analytics"]
  node_audit["Audit trail<br/>[audit.service.js]"]
  node_notifications["Notifications"]
  node_support["Candidate support<br/>[support.service.js]"]
  node_uploads["Upload handling"]
end

subgraph group_services["Shared services"]
  node_api_client["API client<br/>[api.js]"]
  node_mongo[("MongoDB")]
  node_email["Email dispatch<br/>[emailService.js]"]
  node_storage["Storage providers<br/>[storageProvider.js]"]
end

node_employer(("Employer"))
node_candidate(("Candidate"))
node_admin(("Admin"))
node_recruiter(("Recruiter"))

node_employer -->|"registers"| node_auth
node_employer -->|"completes profile"| node_companies
node_admin -->|"verifies profile"| node_companies
node_employer -->|"posts job"| node_jobs
node_candidate -->|"searches openings"| node_job_board
node_candidate -->|"applies"| node_applications
node_employer -->|"advances ATS stages"| node_applications
node_recruiter -.->|"manages pipeline"| node_applications
node_employer -->|"coordinates panels"| node_interviews
node_interviews -.->|"supports live room"| node_interview_realtime
node_employer -->|"creates offer"| node_offers
node_candidate -->|"accepts offer"| node_offers
node_admin -->|"views reporting"| node_analytics
node_employer -->|"reviews documents"| node_onboarding_review
node_onboarding_review -->|"verifies documents"| node_applications
node_client_routes -->|"routes to"| node_job_board
node_client_routes -->|"routes to"| node_employer_views
node_client_routes -->|"routes to"| node_recruiter_views
node_client_routes -->|"routes to"| node_admin_views
node_client_routes -->|"routes to"| node_candidate_views
node_job_board -->|"uses"| node_api_client
node_candidate_views -->|"uses"| node_api_client
node_applications -->|"sends application email"| node_email
node_companies -->|"records changes"| node_audit
node_jobs -->|"records changes"| node_audit
node_uploads -->|"stores files"| node_storage
node_storage -.->|"uses database"| node_mongo
node_auth -->|"reads and writes users"| node_mongo
node_applications -->|"persists applications"| node_mongo

click node_client_routes "https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/app/routes.jsx"
click node_job_board "https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/features/jobs/Landing.jsx"
click node_employer_views "https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/features/companies/EmployerDashboard.jsx"
click node_candidate_views "https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/features/candidates/CandidateDashboard.jsx"
click node_recruiter_views "https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/features/recruiters/RecruiterDashboard.jsx"
click node_admin_views "https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/features/analytics/AdminDashboard.jsx"
click node_auth "https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/auth/auth.service.js"
click node_companies "https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/companies/company.service.js"
click node_jobs "https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/jobs/job.service.js"
click node_applications "https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/applications/application.service.js"
click node_onboarding_review "https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/features/applications/OnboardingReviewModal.jsx"
click node_interviews "https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/interviews/interview.service.js"
click node_interview_realtime "https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/interviews/interview.socket.js"
click node_offers "https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/offers/offer.service.js"
click node_analytics "https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/analytics/analytics.service.js"
click node_audit "https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/audit/audit.service.js"
click node_notifications "https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/notifications/notification.service.js"
click node_support "https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/support/support.service.js"
click node_uploads "https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/upload/upload.controller.js"
click node_api_client "https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/services/api.js"
click node_email "https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/services/emailService.js"
click node_storage "https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/services/storageProvider.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_client_routes,node_job_board,node_employer_views,node_candidate_views,node_recruiter_views,node_admin_views toneBlue
class node_auth,node_companies,node_jobs,node_applications,node_onboarding_review,node_interviews,node_interview_realtime,node_offers toneAmber
class node_analytics,node_audit,node_notifications,node_support,node_uploads toneMint
class node_api_client,node_mongo,node_email,node_storage toneRose
class node_employer,node_candidate,node_admin,node_recruiter toneIndigo
```

## Components

### Role-based client

- [Role routes](https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/app/routes.jsx): `client/src/app/routes.jsx`
- [Job board](https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/features/jobs/Landing.jsx): `client/src/features/jobs/Landing.jsx`
- [Employer workspace](https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/features/companies/EmployerDashboard.jsx): `client/src/features/companies/EmployerDashboard.jsx`
- [Candidate workspace](https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/features/candidates/CandidateDashboard.jsx): `client/src/features/candidates/CandidateDashboard.jsx`
- [Recruiter workspace](https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/features/recruiters/RecruiterDashboard.jsx): `client/src/features/recruiters/RecruiterDashboard.jsx`
- [Admin portal](https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/features/analytics/AdminDashboard.jsx): `client/src/features/analytics/AdminDashboard.jsx`

### Hiring lifecycle

- [Identity and access](https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/auth/auth.service.js): `server/src/modules/auth/auth.service.js`
- [Company profiles](https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/companies/company.service.js): `server/src/modules/companies/company.service.js`
- [Job postings](https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/jobs/job.service.js): `server/src/modules/jobs/job.service.js`
- [ATS applications](https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/applications/application.service.js): `server/src/modules/applications/application.service.js`
- [Onboarding review](https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/features/applications/OnboardingReviewModal.jsx): `client/src/features/applications/OnboardingReviewModal.jsx`
- [Interview coordination](https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/interviews/interview.service.js): `server/src/modules/interviews/interview.service.js`
- [Live interview room](https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/interviews/interview.socket.js): `server/src/modules/interviews/interview.socket.js`
- [Offer management](https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/offers/offer.service.js): `server/src/modules/offers/offer.service.js`

### Platform capabilities

- [Analytics](https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/analytics/analytics.service.js): `server/src/modules/analytics/analytics.service.js`
- [Audit trail](https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/audit/audit.service.js): `server/src/modules/audit/audit.service.js`
- [Notifications](https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/notifications/notification.service.js): `server/src/modules/notifications/notification.service.js`
- [Candidate support](https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/support/support.service.js): `server/src/modules/support/support.service.js`
- [Upload handling](https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/modules/upload/upload.controller.js): `server/src/modules/upload/upload.controller.js`

### Shared services

- [API client](https://github.com/vijaykumar-devcode/workconnect/blob/main/client/src/services/api.js): `client/src/services/api.js`
- **MongoDB**
- [Email dispatch](https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/services/emailService.js): `server/src/services/emailService.js`
- [Storage providers](https://github.com/vijaykumar-devcode/workconnect/blob/main/server/src/services/storageProvider.js): `server/src/services/storageProvider.js`

### Other components

- **Employer**
- **Candidate**
- **Admin**
- **Recruiter**

## Connections

- Employer → Identity and access: registers
- Employer → Company profiles: completes profile
- Admin → Company profiles: verifies profile
- Employer → Job postings: posts job
- Candidate → Job board: searches openings
- Candidate → ATS applications: applies
- Employer → ATS applications: advances ATS stages
- Recruiter → ATS applications: manages pipeline
- Employer → Interview coordination: coordinates panels
- Interview coordination → Live interview room: supports live room
- Employer → Offer management: creates offer
- Candidate → Offer management: accepts offer
- Admin → Analytics: views reporting
- Employer → Onboarding review: reviews documents (evidence: `client/src/features/applications/OnboardingReviewModal.jsx`)
- Onboarding review → ATS applications: verifies documents (evidence: `client/src/features/applications/OnboardingReviewModal.jsx`)
- Role routes → Job board: routes to (evidence: `client/src/app/routes.jsx`)
- Role routes → Employer workspace: routes to (evidence: `client/src/app/routes.jsx`)
- Role routes → Recruiter workspace: routes to (evidence: `client/src/app/routes.jsx`)
- Role routes → Admin portal: routes to (evidence: `client/src/app/routes.jsx`)
- Role routes → Candidate workspace: routes to (evidence: `client/src/app/routes.jsx`)
- Job board → API client: uses (evidence: `client/src/features/jobs/Landing.jsx`)
- Candidate workspace → API client: uses (evidence: `client/src/features/candidates/CandidateDashboard.jsx`)
- ATS applications → Email dispatch: sends application email (evidence: `server/src/modules/applications/application.service.js`)
- Company profiles → Audit trail: records changes
- Job postings → Audit trail: records changes
- Upload handling → Storage providers: stores files
- Storage providers → MongoDB: uses database
- Identity and access → MongoDB: reads and writes users (evidence: `server/src/modules/auth/auth.service.js`)
- ATS applications → MongoDB: persists applications (evidence: `server/src/modules/applications/application.service.js`)
