# sathwik1821/placement-readiness-system architecture

> Architecture diagram of the GitHub repository sathwik1821/placement-readiness-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sathwik1821/placement-readiness-system
- Repository: https://github.com/sathwik1821/placement-readiness-system

## Overview

This is a full-stack student placement-readiness and campus-recruitment system. Students take category-based assessments, receive readiness and skill-gap analysis, practice mock interviews, and explore jobs and placement drives; officers manage drives and application stages, while recruiters review candidates and administrators govern users and questions. React routes role-specific portals and sends requests through Axios to a Spring REST backend, whose controllers implement the domain workflows over JPA-backed data. The README documents several capabilities whose specific implementation paths were not sampled, so those subsystem links are shown as unverified rather than asserted calls.

Main entry points: [`backend/src/main/java/com/placement/system/PlacementSystemApplication.java`](https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/PlacementSystemApplication.java) (Spring REST API), [`frontend/src/App.jsx`](https://github.com/sathwik1821/placement-readiness-system/blob/master/frontend/src/App.jsx) (Role-based SPA), [`frontend/src/api/axios.js`](https://github.com/sathwik1821/placement-readiness-system/blob/master/frontend/src/api/axios.js) (HTTP client), [`backend/src/main/java/com/placement/system/controller/AnalysisController.java`](https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/AnalysisController.java) (Readiness analysis)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Web experience"]
  node_spa["Role-based SPA<br/>[App.jsx]"]
  node_authstate["Auth state<br/>[authStore.js]"]
  node_http["HTTP client<br/>[axios.js]"]
  node_studentui["Student portal"]
  node_officerui["Officer portal"]
  node_recruiterui["Recruiter portal"]
  node_adminui["Admin portal<br/>[AdminDashboard.jsx]"]
  node_recruitmentui["Jobs and placement"]
end

subgraph group_readiness["Student readiness"]
  node_assessments["Assessments"]
  node_analysis["Readiness analysis"]
  node_interviews["Mock interviews"]
  node_learning["Learning paths"]
  node_studentdata[("Student records<br/>[Student.java]")]
end

subgraph group_recruitment["Recruitment operations"]
  node_placement["Placement workflow"]
  node_drives["Drive management"]
  node_company["Recruiter operations"]
  node_admin["System governance"]
end

subgraph group_platform["Backend platform"]
  node_models[("Domain records")]
  node_repositories["JPA repositories"]
  node_authapi["Authentication API"]
  node_jwt["JWT service<br/>[JwtService.java]"]
  node_backend["Spring REST API"]
  node_database[("Persistent database")]
end

node_users(("Portal users"))

node_users -->|"use portals"| node_spa
node_spa -->|"checks roles"| node_authstate
node_spa -->|"routes students"| node_studentui
node_spa -->|"routes officers"| node_officerui
node_spa -->|"routes recruiters"| node_recruiterui
node_spa -->|"routes admins"| node_adminui
node_studentui -.->|"requests data"| node_http
node_officerui -->|"requests data"| node_http
node_recruiterui -->|"requests data"| node_http
node_adminui -->|"requests data"| node_http
node_http -->|"calls REST API"| node_backend
node_backend -.->|"serves assessments"| node_assessments
node_backend -.->|"serves analysis"| node_analysis
node_backend -.->|"serves interviews"| node_interviews
node_backend -.->|"serves placement"| node_placement
node_backend -.->|"serves drive operations"| node_drives
node_backend -.->|"serves recruiter portal"| node_company
node_backend -.->|"serves governance"| node_admin
node_backend -.->|"serves authentication"| node_authapi
node_authapi -.->|"issues tokens"| node_jwt
node_assessments -.->|"scores inform"| node_analysis
node_analysis -.->|"maps skill gaps"| node_learning
node_analysis -->|"reads academics"| node_studentdata
node_interviews -->|"stores session data"| node_models
node_placement -.->|"coordinates applications"| node_drives
node_company -->|"reads and updates"| node_models
node_models -.->|"persisted through"| node_repositories
node_repositories -.->|"read and write"| node_database
node_drives -.->|"publishes opportunities"| node_recruitmentui
node_users -->|"browse opportunities"| node_recruitmentui

click node_spa "https://github.com/sathwik1821/placement-readiness-system/blob/master/frontend/src/App.jsx"
click node_authstate "https://github.com/sathwik1821/placement-readiness-system/blob/master/frontend/src/store/authStore.js"
click node_http "https://github.com/sathwik1821/placement-readiness-system/blob/master/frontend/src/api/axios.js"
click node_studentui "https://github.com/sathwik1821/placement-readiness-system/tree/master/frontend/src/pages/student"
click node_officerui "https://github.com/sathwik1821/placement-readiness-system/tree/master/frontend/src/pages/officer"
click node_recruiterui "https://github.com/sathwik1821/placement-readiness-system/blob/master/frontend/src/pages/company/CompanyDashboard.jsx"
click node_adminui "https://github.com/sathwik1821/placement-readiness-system/blob/master/frontend/src/pages/admin/AdminDashboard.jsx"
click node_assessments "https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/AssessmentController.java"
click node_analysis "https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/AnalysisController.java"
click node_interviews "https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/InterviewController.java"
click node_learning "https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/model/LearningRecommendation.java"
click node_studentdata "https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/model/Student.java"
click node_recruitmentui "https://github.com/sathwik1821/placement-readiness-system/tree/master/frontend/src/pages/student"
click node_placement "https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/PlacementController.java"
click node_drives "https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/OfficerController.java"
click node_company "https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/CompanyController.java"
click node_admin "https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/AdminController.java"
click node_models "https://github.com/sathwik1821/placement-readiness-system/tree/master/backend/src/main/java/com/placement/system/model"
click node_repositories "https://github.com/sathwik1821/placement-readiness-system/tree/master/backend/src/main/java/com/placement/system/repository"
click node_authapi "https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/AuthController.java"
click node_jwt "https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/service/JwtService.java"
click node_backend "https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/PlacementSystemApplication.java"

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_spa,node_authstate,node_http,node_studentui,node_officerui,node_recruiterui,node_adminui,node_recruitmentui,node_users toneBlue
class node_assessments,node_analysis,node_interviews,node_learning,node_studentdata toneAmber
class node_placement,node_drives,node_company,node_admin toneMint
class node_models,node_repositories,node_authapi,node_jwt,node_backend,node_database toneRose
```

## Components

### Web experience

- [Role-based SPA](https://github.com/sathwik1821/placement-readiness-system/blob/master/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Auth state](https://github.com/sathwik1821/placement-readiness-system/blob/master/frontend/src/store/authStore.js): `frontend/src/store/authStore.js`
- [HTTP client](https://github.com/sathwik1821/placement-readiness-system/blob/master/frontend/src/api/axios.js): `frontend/src/api/axios.js`
- [Student portal](https://github.com/sathwik1821/placement-readiness-system/tree/master/frontend/src/pages/student): `frontend/src/pages/student`
- [Officer portal](https://github.com/sathwik1821/placement-readiness-system/tree/master/frontend/src/pages/officer): `frontend/src/pages/officer`
- [Recruiter portal](https://github.com/sathwik1821/placement-readiness-system/blob/master/frontend/src/pages/company/CompanyDashboard.jsx): `frontend/src/pages/company/CompanyDashboard.jsx`
- [Admin portal](https://github.com/sathwik1821/placement-readiness-system/blob/master/frontend/src/pages/admin/AdminDashboard.jsx): `frontend/src/pages/admin/AdminDashboard.jsx`
- [Jobs and placement](https://github.com/sathwik1821/placement-readiness-system/tree/master/frontend/src/pages/student): `frontend/src/pages/student`

### Student readiness

- [Assessments](https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/AssessmentController.java): `backend/src/main/java/com/placement/system/controller/AssessmentController.java`
- [Readiness analysis](https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/AnalysisController.java): `backend/src/main/java/com/placement/system/controller/AnalysisController.java`
- [Mock interviews](https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/InterviewController.java): `backend/src/main/java/com/placement/system/controller/InterviewController.java`
- [Learning paths](https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/model/LearningRecommendation.java): `backend/src/main/java/com/placement/system/model/LearningRecommendation.java`
- [Student records](https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/model/Student.java): `backend/src/main/java/com/placement/system/model/Student.java`

### Recruitment operations

- [Placement workflow](https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/PlacementController.java): `backend/src/main/java/com/placement/system/controller/PlacementController.java`
- [Drive management](https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/OfficerController.java): `backend/src/main/java/com/placement/system/controller/OfficerController.java`
- [Recruiter operations](https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/CompanyController.java): `backend/src/main/java/com/placement/system/controller/CompanyController.java`
- [System governance](https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/AdminController.java): `backend/src/main/java/com/placement/system/controller/AdminController.java`

### Backend platform

- [Domain records](https://github.com/sathwik1821/placement-readiness-system/tree/master/backend/src/main/java/com/placement/system/model): `backend/src/main/java/com/placement/system/model`
- [JPA repositories](https://github.com/sathwik1821/placement-readiness-system/tree/master/backend/src/main/java/com/placement/system/repository): `backend/src/main/java/com/placement/system/repository`
- [Authentication API](https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/controller/AuthController.java): `backend/src/main/java/com/placement/system/controller/AuthController.java`
- [JWT service](https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/service/JwtService.java): `backend/src/main/java/com/placement/system/service/JwtService.java`
- [Spring REST API](https://github.com/sathwik1821/placement-readiness-system/blob/master/backend/src/main/java/com/placement/system/PlacementSystemApplication.java): `backend/src/main/java/com/placement/system/PlacementSystemApplication.java`
- **Persistent database**

### Other components

- **Portal users**

## Connections

- Portal users → Role-based SPA: use portals (evidence: `README.md`)
- Role-based SPA → Auth state: checks roles (evidence: `frontend/src/App.jsx`)
- Role-based SPA → Student portal: routes students (evidence: `frontend/src/App.jsx`)
- Role-based SPA → Officer portal: routes officers (evidence: `frontend/src/App.jsx`)
- Role-based SPA → Recruiter portal: routes recruiters (evidence: `frontend/src/App.jsx`)
- Role-based SPA → Admin portal: routes admins (evidence: `frontend/src/App.jsx`)
- Student portal → HTTP client: requests data (evidence: `frontend/src/pages/student/MockInterview.jsx`)
- Officer portal → HTTP client: requests data (evidence: `frontend/src/pages/officer/Applications.jsx`)
- Recruiter portal → HTTP client: requests data (evidence: `frontend/src/pages/company/CompanyDashboard.jsx`)
- Admin portal → HTTP client: requests data (evidence: `frontend/src/pages/admin/AdminDashboard.jsx`)
- HTTP client → Spring REST API: calls REST API (evidence: `frontend/src/api/axios.js`)
- Spring REST API → Assessments: serves assessments
- Spring REST API → Readiness analysis: serves analysis
- Spring REST API → Mock interviews: serves interviews
- Spring REST API → Placement workflow: serves placement
- Spring REST API → Drive management: serves drive operations
- Spring REST API → Recruiter operations: serves recruiter portal
- Spring REST API → System governance: serves governance
- Spring REST API → Authentication API: serves authentication
- Authentication API → JWT service: issues tokens
- Assessments → Readiness analysis: scores inform
- Readiness analysis → Learning paths: maps skill gaps (evidence: `backend/src/main/java/com/placement/system/controller/AnalysisController.java`)
- Readiness analysis → Student records: reads academics (evidence: `backend/src/main/java/com/placement/system/controller/AnalysisController.java`)
- Mock interviews → Domain records: stores session data (evidence: `backend/src/main/java/com/placement/system/controller/InterviewController.java`)
- Placement workflow → Drive management: coordinates applications
- Recruiter operations → Domain records: reads and updates (evidence: `backend/src/main/java/com/placement/system/controller/CompanyController.java`)
- Domain records → JPA repositories: persisted through (evidence: `backend/src/main/java/com/placement/system/repository/MockInterviewSessionRepository.java`)
- JPA repositories → Persistent database: read and write
- Drive management → Jobs and placement: publishes opportunities
- Portal users → Jobs and placement: browse opportunities (evidence: `README.md`)
