# rajavarshan006/placement-interview-performance-tracker architecture

> Architecture diagram of the GitHub repository rajavarshan006/placement-interview-performance-tracker, 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/rajavarshan006/placement-interview-performance-tracker
- Repository: https://github.com/rajavarshan006/placement-interview-performance-tracker

## Overview

This repository is a placement interview performance tracker with role-based access, placement-drive applications and results, and mentor-led student support. The principal workflow is that students apply to drives and view results, while mentors review mentees’ rounds and manage interventions and notes; coordinators manage access and drive data. The tree and excerpts show both a legacy `app.py` API and a separate FastAPI backend, plus two frontend entry points. Wiring for unsampled routers and several legacy screens is uncertain, so only documented or excerpt-supported connections are shown.

Main entry points: [`backend/app/database.py`](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/database.py) (ORM database), [`public/src/App.jsx`](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/public/src/App.jsx) (Role-based UI), [`backend/app/main.py`](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/main.py) (FastAPI entry point), [`backend/app/routers/failure_analysis.py`](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/routers/failure_analysis.py) (Failure analysis)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["User interfaces"]
  node_newui["Mentor and access UI<br/>[App.tsx]"]
  node_mentorview["Mentor dashboard"]
  node_mentorsvc["Mentor API client<br/>[mentorService.ts]"]
  node_legacyui["Role-based UI<br/>[App.jsx]"]
  node_login["Login screen<br/>[LoginForm.jsx]"]
  node_roleviews["Role dashboards<br/>[Dashboard.jsx]"]
end

subgraph group_api["API layers"]
  node_legacyapi["Placement API<br/>[app.py]"]
  node_fastapi["FastAPI entry point<br/>[main.py]"]
  node_routers["Domain routers"]
  node_analysisrouter["Failure analysis"]
end

subgraph group_support["Mentor support"]
  node_interventionrouter["Intervention API<br/>[intervention.py]"]
  node_mentorrouter["Mentor API<br/>[mentor.py]"]
  node_patterns["Pattern analyzer"]
  node_agent["AI agent<br/>[groq_agent.py]"]
  node_email["Email service<br/>[email_service.py]"]
end

subgraph group_state["Data and services"]
  node_legacydb["Legacy data access<br/>[db.py]"]
  node_orm[("ORM database<br/>[database.py]")]
  node_models["Domain models"]
end

node_user(("Student, mentor, coordinator"))
node_smtp["SMTP server"]

node_user -->|"uses"| node_newui
node_newui -->|"routes to"| node_mentorview
node_mentorview -->|"requests data"| node_mentorsvc
node_mentorsvc -->|"calls API"| node_mentorrouter
node_user -->|"uses"| node_legacyui
node_legacyui -->|"shows when signed out"| node_login
node_legacyui -->|"shows when signed in"| node_roleviews
node_roleviews -.->|"placement operations"| node_legacyapi
node_legacyapi -->|"reads and writes"| node_legacydb
node_fastapi -->|"registers"| node_routers
node_fastapi -->|"creates tables"| node_orm
node_mentorrouter -.->|"data access"| node_orm
node_interventionrouter -.->|"data access"| node_orm
node_analysisrouter -.->|"analysis"| node_patterns
node_analysisrouter -.->|"AI assistance"| node_agent
node_email -->|"sends mail"| node_smtp
node_models -->|"uses base"| node_orm

click node_newui "https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/frontend/src/App.tsx"
click node_mentorview "https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/frontend/src/pages/MentorDashboard.tsx"
click node_mentorsvc "https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/frontend/src/services/mentorService.ts"
click node_legacyui "https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/public/src/App.jsx"
click node_login "https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/public/src/components/LoginForm.jsx"
click node_roleviews "https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/public/src/components/Dashboard.jsx"
click node_legacyapi "https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/app.py"
click node_fastapi "https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/main.py"
click node_routers "https://github.com/rajavarshan006/placement-interview-performance-tracker/tree/main/backend/app/routers"
click node_analysisrouter "https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/routers/failure_analysis.py"
click node_interventionrouter "https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/routers/intervention.py"
click node_mentorrouter "https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/routers/mentor.py"
click node_patterns "https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/services/pattern_analyzer.py"
click node_agent "https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/services/groq_agent.py"
click node_email "https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/services/email_service.py"
click node_legacydb "https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/db.py"
click node_orm "https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/database.py"
click node_models "https://github.com/rajavarshan006/placement-interview-performance-tracker/tree/main/backend/app/models"

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_newui,node_mentorview,node_mentorsvc,node_legacyui,node_login,node_roleviews toneBlue
class node_legacyapi,node_fastapi,node_routers,node_analysisrouter toneAmber
class node_interventionrouter,node_mentorrouter,node_patterns,node_agent,node_email,node_smtp toneMint
class node_legacydb,node_orm,node_models toneRose
class node_user toneIndigo
```

## Components

### User interfaces

- [Mentor and access UI](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Mentor dashboard](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/frontend/src/pages/MentorDashboard.tsx): `frontend/src/pages/MentorDashboard.tsx`
- [Mentor API client](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/frontend/src/services/mentorService.ts): `frontend/src/services/mentorService.ts`
- [Role-based UI](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/public/src/App.jsx): `public/src/App.jsx`
- [Login screen](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/public/src/components/LoginForm.jsx): `public/src/components/LoginForm.jsx`
- [Role dashboards](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/public/src/components/Dashboard.jsx): `public/src/components/Dashboard.jsx`

### API layers

- [Placement API](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/app.py): `app.py`
- [FastAPI entry point](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/main.py): `backend/app/main.py`
- [Domain routers](https://github.com/rajavarshan006/placement-interview-performance-tracker/tree/main/backend/app/routers): `backend/app/routers`
- [Failure analysis](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/routers/failure_analysis.py): `backend/app/routers/failure_analysis.py`

### Mentor support

- [Intervention API](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/routers/intervention.py): `backend/app/routers/intervention.py`
- [Mentor API](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/routers/mentor.py): `backend/app/routers/mentor.py`
- [Pattern analyzer](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/services/pattern_analyzer.py): `backend/app/services/pattern_analyzer.py`
- [AI agent](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/services/groq_agent.py): `backend/app/services/groq_agent.py`
- [Email service](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/services/email_service.py): `backend/app/services/email_service.py`

### Data and services

- [Legacy data access](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/db.py): `db.py`
- [ORM database](https://github.com/rajavarshan006/placement-interview-performance-tracker/blob/main/backend/app/database.py): `backend/app/database.py`
- [Domain models](https://github.com/rajavarshan006/placement-interview-performance-tracker/tree/main/backend/app/models): `backend/app/models`

### Other components

- **Student, mentor, coordinator**
- **SMTP server**

## Connections

- Student, mentor, coordinator → Mentor and access UI: uses
- Mentor and access UI → Mentor dashboard: routes to
- Mentor dashboard → Mentor API client: requests data
- Mentor API client → Mentor API: calls API
- Student, mentor, coordinator → Role-based UI: uses
- Role-based UI → Login screen: shows when signed out
- Role-based UI → Role dashboards: shows when signed in
- Role dashboards → Placement API: placement operations
- Placement API → Legacy data access: reads and writes
- FastAPI entry point → Domain routers: registers
- FastAPI entry point → ORM database: creates tables
- Mentor API → ORM database: data access
- Intervention API → ORM database: data access
- Failure analysis → Pattern analyzer: analysis
- Failure analysis → AI agent: AI assistance
- Email service → SMTP server: sends mail
- Domain models → ORM database: uses base
