# sethumathavan-sp/placement-interview-performance-tracker architecture

> Architecture diagram of the GitHub repository sethumathavan-sp/placement-interview-performance-tracker, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-09). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sethumathavan-sp/placement-interview-performance-tracker
- Repository: https://github.com/sethumathavan-sp/placement-interview-performance-tracker

## Overview

Placement Interview Performance Tracker supports account approval, placement-drive setup and candidate progression, student profiles/applications, roster and result imports, intervention tracking, and exports. The main server path is route registration → controller → service or database operations; SQLAlchemy-backed SQLite holds application state. The tree also contains role-specific dashboards and a substantial bulk-upload application. Frontend components are shown as product surfaces, but their wiring is not established by the available excerpts; edges are limited to documented routes and indexed or excerpted references.

Main entry points: [`app.py`](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/app.py) (API application), [`bulk_upload_module/app.py`](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/bulk_upload_module/app.py) (Bulk upload application), [`backend/controllers/drive_controller.py`](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/controllers/drive_controller.py) (Drive workflow), [`backend/controllers/application_controller.py`](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/controllers/application_controller.py) (Student and intervention workflow)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["User experience"]
  node_app_ui["Application shell<br/>[App.jsx]"]
  node_login["Login<br/>[LoginForm.jsx]"]
  node_coord["Coordinator dashboard"]
  node_dept["Department dashboard"]
  node_mentor["Mentor dashboard"]
  node_student["Student dashboard"]
  node_tracking["Student tracking"]
  node_roster["Intervention roster"]
  node_drive_modal["Drive creation"]
  node_upload_results_ui["Results upload"]
  node_upload_roster_ui["Roster upload"]
  node_upload_access_ui["Access upload"]
  node_view_results["Results viewing"]
end

subgraph group_api["API and workflows"]
  node_api_entry["API application<br/>[app.py]"]
  node_auth_routes["Authentication routes<br/>[auth_routes.py]"]
  node_auth_controller["Account workflow<br/>[auth_controller.py]"]
  node_auth_service["Authentication service<br/>[auth_service.py]"]
  node_drive_routes["Drive routes<br/>[drive_routes.py]"]
  node_drive_controller["Drive workflow"]
  node_drive_service["Drive service<br/>[drive_service.py]"]
  node_application_routes["Student and intervention routes"]
  node_application_controller["Student and intervention workflow"]
  node_intervention_service["Intervention analysis"]
  node_upload_routes["Upload routes<br/>[upload_routes.py]"]
  node_upload_controller["Upload workflow"]
  node_upload_service["Upload parsing service<br/>[upload_service.py]"]
  node_schemas["Request schemas<br/>[schemas.py]"]
end

subgraph group_bulk["Bulk data tools"]
  node_bulk_app["Bulk upload application<br/>[app.py]"]
  node_bulk_config["Upload configuration<br/>[config.py]"]
  node_bulk_parser["File parser<br/>[parser.py]"]
  node_bulk_exporter["Report exporter<br/>[exporter.py]"]
  node_bulk_database["Bulk data access<br/>[database.py]"]
  node_templates["Template generation"]
end

subgraph group_data["Persistence"]
end

node_user(("Placement users"))

node_user -.->|"uses"| node_app_ui
node_api_entry -->|"registers"| node_auth_routes
node_api_entry -->|"registers"| node_drive_routes
node_api_entry -->|"registers"| node_upload_routes
node_api_entry -->|"registers"| node_application_routes
node_auth_routes -->|"routes to"| node_auth_controller
node_auth_controller -->|"calls"| node_auth_service
node_auth_service -.->|"reads and writes"| node_api_entry
node_drive_routes -->|"routes to"| node_drive_controller
node_drive_controller -->|"calls"| node_drive_service
node_drive_controller -->|"exports through"| node_bulk_exporter
node_application_routes -->|"routes to"| node_application_controller
node_application_controller -->|"analyzes with"| node_intervention_service
node_application_controller -->|"exports through"| node_bulk_exporter
node_upload_routes -.->|"routes to"| node_upload_controller
node_upload_controller -->|"parses with"| node_upload_service
node_upload_service -->|"parses through"| node_bulk_parser
node_bulk_app -->|"configures from"| node_bulk_config
node_bulk_app -->|"parses through"| node_bulk_parser
node_bulk_app -->|"exports through"| node_bulk_exporter
node_bulk_app -->|"accesses"| node_bulk_database
node_templates -->|"uses settings"| node_bulk_config
node_api_entry -.->|"uses database"| node_api_entry

click node_app_ui "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/App.jsx"
click node_login "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/LoginForm.jsx"
click node_coord "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/CoordinatorDashboard.jsx"
click node_dept "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/DepartmentDashboard.jsx"
click node_mentor "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/MentorDashboard.jsx"
click node_student "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/StudentDashboard.jsx"
click node_tracking "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/StudentTrackingView.jsx"
click node_roster "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/InterventionRoster.jsx"
click node_drive_modal "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/CreateDriveModal.jsx"
click node_upload_results_ui "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/UploadResultsModal.jsx"
click node_upload_roster_ui "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/UploadStudentRosterModal.jsx"
click node_upload_access_ui "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/UploadUserAccessModal.jsx"
click node_view_results "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/ViewResultsModal.jsx"
click node_api_entry "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/app.py"
click node_auth_routes "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/routes/auth_routes.py"
click node_auth_controller "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/controllers/auth_controller.py"
click node_auth_service "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/services/auth_service.py"
click node_drive_routes "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/routes/drive_routes.py"
click node_drive_controller "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/controllers/drive_controller.py"
click node_drive_service "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/services/drive_service.py"
click node_application_routes "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/routes/application_routes.py"
click node_application_controller "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/controllers/application_controller.py"
click node_intervention_service "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/intervention_service.py"
click node_upload_routes "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/routes/upload_routes.py"
click node_upload_controller "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/controllers/upload_controller.py"
click node_upload_service "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/services/upload_service.py"
click node_schemas "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/schemas.py"
click node_bulk_app "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/bulk_upload_module/app.py"
click node_bulk_config "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/bulk_upload_module/config.py"
click node_bulk_parser "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/bulk_upload_module/parser.py"
click node_bulk_exporter "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/bulk_upload_module/exporter.py"
click node_bulk_database "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/bulk_upload_module/database.py"
click node_templates "https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/bulk_upload_module/templates_generator.py"

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_ui,node_login,node_coord,node_dept,node_mentor,node_student,node_tracking,node_roster,node_drive_modal,node_upload_results_ui,node_upload_roster_ui,node_upload_access_ui,node_view_results,node_user toneBlue
class node_api_entry,node_auth_routes,node_auth_controller,node_auth_service,node_drive_routes,node_drive_controller,node_drive_service,node_application_routes,node_application_controller,node_intervention_service,node_upload_routes,node_upload_controller,node_upload_service,node_schemas toneAmber
class node_bulk_app,node_bulk_config,node_bulk_parser,node_bulk_exporter,node_bulk_database,node_templates toneMint
```

## Components

### User experience

- [Application shell](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/App.jsx): `public/src/App.jsx`
- [Login](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/LoginForm.jsx): `public/src/components/LoginForm.jsx`
- [Coordinator dashboard](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/CoordinatorDashboard.jsx): `public/src/components/CoordinatorDashboard.jsx`
- [Department dashboard](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/DepartmentDashboard.jsx): `public/src/components/DepartmentDashboard.jsx`
- [Mentor dashboard](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/MentorDashboard.jsx): `public/src/components/MentorDashboard.jsx`
- [Student dashboard](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/StudentDashboard.jsx): `public/src/components/StudentDashboard.jsx`
- [Student tracking](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/StudentTrackingView.jsx): `public/src/components/StudentTrackingView.jsx`
- [Intervention roster](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/InterventionRoster.jsx): `public/src/components/InterventionRoster.jsx`
- [Drive creation](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/CreateDriveModal.jsx): `public/src/components/CreateDriveModal.jsx`
- [Results upload](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/UploadResultsModal.jsx): `public/src/components/UploadResultsModal.jsx`
- [Roster upload](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/UploadStudentRosterModal.jsx): `public/src/components/UploadStudentRosterModal.jsx`
- [Access upload](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/UploadUserAccessModal.jsx): `public/src/components/UploadUserAccessModal.jsx`
- [Results viewing](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/public/src/components/ViewResultsModal.jsx): `public/src/components/ViewResultsModal.jsx`

### API and workflows

- [API application](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/app.py): `app.py`
- [Authentication routes](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/routes/auth_routes.py): `backend/routes/auth_routes.py`
- [Account workflow](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/controllers/auth_controller.py): `backend/controllers/auth_controller.py`
- [Authentication service](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/services/auth_service.py): `backend/services/auth_service.py`
- [Drive routes](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/routes/drive_routes.py): `backend/routes/drive_routes.py`
- [Drive workflow](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/controllers/drive_controller.py): `backend/controllers/drive_controller.py`
- [Drive service](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/services/drive_service.py): `backend/services/drive_service.py`
- [Student and intervention routes](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/routes/application_routes.py): `backend/routes/application_routes.py`
- [Student and intervention workflow](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/controllers/application_controller.py): `backend/controllers/application_controller.py`
- [Intervention analysis](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/intervention_service.py): `intervention_service.py`
- [Upload routes](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/routes/upload_routes.py): `backend/routes/upload_routes.py`
- [Upload workflow](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/controllers/upload_controller.py): `backend/controllers/upload_controller.py`
- [Upload parsing service](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/services/upload_service.py): `backend/services/upload_service.py`
- [Request schemas](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/backend/schemas.py): `backend/schemas.py`

### Bulk data tools

- [Bulk upload application](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/bulk_upload_module/app.py): `bulk_upload_module/app.py`
- [Upload configuration](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/bulk_upload_module/config.py): `bulk_upload_module/config.py`
- [File parser](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/bulk_upload_module/parser.py): `bulk_upload_module/parser.py`
- [Report exporter](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/bulk_upload_module/exporter.py): `bulk_upload_module/exporter.py`
- [Bulk data access](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/bulk_upload_module/database.py): `bulk_upload_module/database.py`
- [Template generation](https://github.com/sethumathavan-sp/placement-interview-performance-tracker/blob/main/bulk_upload_module/templates_generator.py): `bulk_upload_module/templates_generator.py`

### Other components

- **Placement users**

## Connections

- Placement users → Application shell: uses
- API application → Authentication routes: registers (evidence: `app.py`)
- API application → Drive routes: registers (evidence: `app.py`)
- API application → Upload routes: registers (evidence: `app.py`)
- API application → Student and intervention routes: registers (evidence: `app.py`)
- Authentication routes → Account workflow: routes to (evidence: `backend/routes/auth_routes.py`)
- Account workflow → Authentication service: calls (evidence: `backend/controllers/auth_controller.py`)
- Authentication service → API application: reads and writes
- Drive routes → Drive workflow: routes to (evidence: `backend/routes/drive_routes.py`)
- Drive workflow → Drive service: calls (evidence: `backend/controllers/drive_controller.py`)
- Drive workflow → Report exporter: exports through (evidence: `backend/controllers/drive_controller.py`)
- Student and intervention routes → Student and intervention workflow: routes to (evidence: `backend/routes/application_routes.py`)
- Student and intervention workflow → Intervention analysis: analyzes with (evidence: `backend/controllers/application_controller.py`)
- Student and intervention workflow → Report exporter: exports through (evidence: `backend/controllers/application_controller.py`)
- Upload routes → Upload workflow: routes to (evidence: `backend/routes/upload_routes.py`)
- Upload workflow → Upload parsing service: parses with (evidence: `backend/controllers/upload_controller.py`)
- Upload parsing service → File parser: parses through (evidence: `backend/services/upload_service.py`)
- Bulk upload application → Upload configuration: configures from (evidence: `bulk_upload_module/app.py`)
- Bulk upload application → File parser: parses through (evidence: `bulk_upload_module/app.py`)
- Bulk upload application → Report exporter: exports through (evidence: `bulk_upload_module/app.py`)
- Bulk upload application → Bulk data access: accesses (evidence: `bulk_upload_module/app.py`)
- Template generation → Upload configuration: uses settings (evidence: `bulk_upload_module/templates_generator.py`)
- API application → API application: uses database (evidence: `app.py`)
