# pavan2coder/finathon architecture

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

## Overview

This is a React performance and talent-management dashboard, not a backend-connected service: its principal workflow is navigating from the dashboard or employee directory into employee performance evidence, skills and career readiness, with calibration and reporting as related review stages. The API service reads seeded mock data and keeps calibration edits in memory. The graph includes the documented-by-code page routes and major feature branches; relationships involving unsampled pages or components are based on the SOURCE INDEX, so implementation details beyond those references are not asserted.

Main entry points: [`src/App.tsx`](https://github.com/pavan2coder/finathon/blob/main/src/App.tsx) (Application routes), [`src/services/api.ts`](https://github.com/pavan2coder/finathon/blob/main/src/services/api.ts) (Mock API and state), [`src/pages/EmployeeProfilePage.tsx`](https://github.com/pavan2coder/finathon/blob/main/src/pages/EmployeeProfilePage.tsx) (Employee profile), [`src/pages/SkillsPage.tsx`](https://github.com/pavan2coder/finathon/blob/main/src/pages/SkillsPage.tsx) (Skills and development)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application shell"]
  node_app["Application routes<br/>[App.tsx]"]
  node_layout["Navigation layout<br/>[Layout.tsx]"]
  node_toast["Toast notifications<br/>[Toast.tsx]"]
  node_settings["Settings<br/>[SettingsPage.tsx]"]
end

subgraph group_reviews["Performance reviews"]
  node_dashboard["Dashboard<br/>[DashboardPage.tsx]"]
  node_employees["Employee directory<br/>[EmployeesPage.tsx]"]
  node_employee_table["Employee table<br/>[EmployeeTable.tsx]"]
  node_profile["Employee profile"]
  node_performance["Performance review"]
  node_evidence["Performance evidence"]
  node_evidence_summary["Evidence summary"]
end

subgraph group_talent["Talent development"]
  node_skills["Skills and development<br/>[SkillsPage.tsx]"]
  node_skill_gaps["Skill gap analysis<br/>[SkillGapTable.tsx]"]
  node_development["Development plans"]
  node_career["Career progression<br/>[CareerPage.tsx]"]
  node_career_readiness["Promotion readiness"]
end

subgraph group_calibration["Calibration and reporting"]
  node_calibration["Calibration review"]
  node_calibration_drawer["Calibration detail"]
  node_manager_distribution["Manager distributions"]
  node_reports["Reports<br/>[ReportsPage.tsx]"]
end

subgraph group_runtime["Data and runtime"]
  node_api["Mock API and state<br/>[api.ts]"]
  node_employees_data["Employee records<br/>[employees.ts]"]
  node_calibration_data["Calibration records<br/>[calibration.ts]"]
  node_performance_data["Performance aggregates<br/>[performance.ts]"]
  node_reports_data["Report definitions<br/>[reports.ts]"]
end

node_user(("Dashboard user"))

node_user -->|"opens"| node_app
node_app -->|"renders routes"| node_layout
node_app -->|"provides notifications"| node_toast
node_app -->|"routes to"| node_dashboard
node_app -->|"routes to"| node_employees
node_app -->|"routes to"| node_profile
node_app -->|"routes to"| node_performance
node_app -->|"routes to"| node_skills
node_app -->|"routes to"| node_career
node_app -->|"routes to"| node_calibration
node_app -->|"routes to"| node_reports
node_app -->|"routes to"| node_settings
node_employees -->|"renders"| node_employee_table
node_dashboard -->|"requests aggregates"| node_api
node_employees -->|"loads employees"| node_api
node_profile -->|"loads profile data"| node_api
node_performance -->|"loads performance"| node_api
node_skills -->|"loads skill data"| node_api
node_career -->|"loads career data"| node_api
node_calibration -->|"loads and updates"| node_api
node_reports -->|"loads reports"| node_api
node_profile -->|"renders"| node_evidence
node_profile -->|"renders"| node_evidence_summary
node_skills -->|"renders"| node_skill_gaps
node_skills -->|"renders"| node_development
node_career -->|"renders"| node_career_readiness
node_calibration -->|"opens details"| node_calibration_drawer
node_calibration -->|"renders"| node_manager_distribution
node_api -->|"reads and seeds"| node_employees_data
node_api -->|"reads and seeds"| node_calibration_data
node_api -->|"reads and seeds"| node_performance_data
node_api -->|"reads and seeds"| node_reports_data
node_manager_distribution -->|"reads patterns"| node_calibration_data

click node_app "https://github.com/pavan2coder/finathon/blob/main/src/App.tsx"
click node_layout "https://github.com/pavan2coder/finathon/blob/main/src/components/Layout/Layout.tsx"
click node_toast "https://github.com/pavan2coder/finathon/blob/main/src/components/Common/Toast.tsx"
click node_dashboard "https://github.com/pavan2coder/finathon/blob/main/src/pages/DashboardPage.tsx"
click node_employees "https://github.com/pavan2coder/finathon/blob/main/src/pages/EmployeesPage.tsx"
click node_employee_table "https://github.com/pavan2coder/finathon/blob/main/src/components/Employees/EmployeeTable.tsx"
click node_profile "https://github.com/pavan2coder/finathon/blob/main/src/pages/EmployeeProfilePage.tsx"
click node_performance "https://github.com/pavan2coder/finathon/blob/main/src/pages/PerformancePage.tsx"
click node_evidence "https://github.com/pavan2coder/finathon/blob/main/src/components/Performance/EvidenceSection.tsx"
click node_evidence_summary "https://github.com/pavan2coder/finathon/blob/main/src/components/Performance/PerformanceEvidenceSummary.tsx"
click node_skills "https://github.com/pavan2coder/finathon/blob/main/src/pages/SkillsPage.tsx"
click node_skill_gaps "https://github.com/pavan2coder/finathon/blob/main/src/components/Skills/SkillGapTable.tsx"
click node_development "https://github.com/pavan2coder/finathon/blob/main/src/components/Skills/DevelopmentPlanCards.tsx"
click node_career "https://github.com/pavan2coder/finathon/blob/main/src/pages/CareerPage.tsx"
click node_career_readiness "https://github.com/pavan2coder/finathon/blob/main/src/components/Career/PromotionReadinessWidget.tsx"
click node_calibration "https://github.com/pavan2coder/finathon/blob/main/src/pages/CalibrationPage.tsx"
click node_calibration_drawer "https://github.com/pavan2coder/finathon/blob/main/src/components/Calibration/CalibrationDrawer.tsx"
click node_manager_distribution "https://github.com/pavan2coder/finathon/blob/main/src/components/Calibration/ManagerDistributionChart.tsx"
click node_reports "https://github.com/pavan2coder/finathon/blob/main/src/pages/ReportsPage.tsx"
click node_settings "https://github.com/pavan2coder/finathon/blob/main/src/pages/SettingsPage.tsx"
click node_api "https://github.com/pavan2coder/finathon/blob/main/src/services/api.ts"
click node_employees_data "https://github.com/pavan2coder/finathon/blob/main/src/data/employees.ts"
click node_calibration_data "https://github.com/pavan2coder/finathon/blob/main/src/data/calibration.ts"
click node_performance_data "https://github.com/pavan2coder/finathon/blob/main/src/data/performance.ts"
click node_reports_data "https://github.com/pavan2coder/finathon/blob/main/src/data/reports.ts"

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,node_layout,node_toast,node_settings,node_user toneBlue
class node_dashboard,node_employees,node_employee_table,node_profile,node_performance,node_evidence,node_evidence_summary toneAmber
class node_skills,node_skill_gaps,node_development,node_career,node_career_readiness toneMint
class node_calibration,node_calibration_drawer,node_manager_distribution,node_reports toneRose
class node_api,node_employees_data,node_calibration_data,node_performance_data,node_reports_data toneIndigo
```

## Components

### Application shell

- [Application routes](https://github.com/pavan2coder/finathon/blob/main/src/App.tsx): `src/App.tsx`
- [Navigation layout](https://github.com/pavan2coder/finathon/blob/main/src/components/Layout/Layout.tsx): `src/components/Layout/Layout.tsx`
- [Toast notifications](https://github.com/pavan2coder/finathon/blob/main/src/components/Common/Toast.tsx): `src/components/Common/Toast.tsx`
- [Settings](https://github.com/pavan2coder/finathon/blob/main/src/pages/SettingsPage.tsx): `src/pages/SettingsPage.tsx`

### Performance reviews

- [Dashboard](https://github.com/pavan2coder/finathon/blob/main/src/pages/DashboardPage.tsx): `src/pages/DashboardPage.tsx`
- [Employee directory](https://github.com/pavan2coder/finathon/blob/main/src/pages/EmployeesPage.tsx): `src/pages/EmployeesPage.tsx`
- [Employee table](https://github.com/pavan2coder/finathon/blob/main/src/components/Employees/EmployeeTable.tsx): `src/components/Employees/EmployeeTable.tsx`
- [Employee profile](https://github.com/pavan2coder/finathon/blob/main/src/pages/EmployeeProfilePage.tsx): `src/pages/EmployeeProfilePage.tsx`
- [Performance review](https://github.com/pavan2coder/finathon/blob/main/src/pages/PerformancePage.tsx): `src/pages/PerformancePage.tsx`
- [Performance evidence](https://github.com/pavan2coder/finathon/blob/main/src/components/Performance/EvidenceSection.tsx): `src/components/Performance/EvidenceSection.tsx`
- [Evidence summary](https://github.com/pavan2coder/finathon/blob/main/src/components/Performance/PerformanceEvidenceSummary.tsx): `src/components/Performance/PerformanceEvidenceSummary.tsx`

### Talent development

- [Skills and development](https://github.com/pavan2coder/finathon/blob/main/src/pages/SkillsPage.tsx): `src/pages/SkillsPage.tsx`
- [Skill gap analysis](https://github.com/pavan2coder/finathon/blob/main/src/components/Skills/SkillGapTable.tsx): `src/components/Skills/SkillGapTable.tsx`
- [Development plans](https://github.com/pavan2coder/finathon/blob/main/src/components/Skills/DevelopmentPlanCards.tsx): `src/components/Skills/DevelopmentPlanCards.tsx`
- [Career progression](https://github.com/pavan2coder/finathon/blob/main/src/pages/CareerPage.tsx): `src/pages/CareerPage.tsx`
- [Promotion readiness](https://github.com/pavan2coder/finathon/blob/main/src/components/Career/PromotionReadinessWidget.tsx): `src/components/Career/PromotionReadinessWidget.tsx`

### Calibration and reporting

- [Calibration review](https://github.com/pavan2coder/finathon/blob/main/src/pages/CalibrationPage.tsx): `src/pages/CalibrationPage.tsx`
- [Calibration detail](https://github.com/pavan2coder/finathon/blob/main/src/components/Calibration/CalibrationDrawer.tsx): `src/components/Calibration/CalibrationDrawer.tsx`
- [Manager distributions](https://github.com/pavan2coder/finathon/blob/main/src/components/Calibration/ManagerDistributionChart.tsx): `src/components/Calibration/ManagerDistributionChart.tsx`
- [Reports](https://github.com/pavan2coder/finathon/blob/main/src/pages/ReportsPage.tsx): `src/pages/ReportsPage.tsx`

### Data and runtime

- [Mock API and state](https://github.com/pavan2coder/finathon/blob/main/src/services/api.ts): `src/services/api.ts`
- [Employee records](https://github.com/pavan2coder/finathon/blob/main/src/data/employees.ts): `src/data/employees.ts`
- [Calibration records](https://github.com/pavan2coder/finathon/blob/main/src/data/calibration.ts): `src/data/calibration.ts`
- [Performance aggregates](https://github.com/pavan2coder/finathon/blob/main/src/data/performance.ts): `src/data/performance.ts`
- [Report definitions](https://github.com/pavan2coder/finathon/blob/main/src/data/reports.ts): `src/data/reports.ts`

### Other components

- **Dashboard user**

## Connections

- Dashboard user → Application routes: opens
- Application routes → Navigation layout: renders routes (evidence: `src/App.tsx`)
- Application routes → Toast notifications: provides notifications (evidence: `src/App.tsx`)
- Application routes → Dashboard: routes to (evidence: `src/App.tsx`)
- Application routes → Employee directory: routes to (evidence: `src/App.tsx`)
- Application routes → Employee profile: routes to (evidence: `src/App.tsx`)
- Application routes → Performance review: routes to (evidence: `src/App.tsx`)
- Application routes → Skills and development: routes to (evidence: `src/App.tsx`)
- Application routes → Career progression: routes to (evidence: `src/App.tsx`)
- Application routes → Calibration review: routes to (evidence: `src/App.tsx`)
- Application routes → Reports: routes to (evidence: `src/App.tsx`)
- Application routes → Settings: routes to (evidence: `src/App.tsx`)
- Employee directory → Employee table: renders (evidence: `src/pages/EmployeesPage.tsx`)
- Dashboard → Mock API and state: requests aggregates (evidence: `src/pages/DashboardPage.tsx`)
- Employee directory → Mock API and state: loads employees (evidence: `src/pages/EmployeesPage.tsx`)
- Employee profile → Mock API and state: loads profile data (evidence: `src/pages/EmployeeProfilePage.tsx`)
- Performance review → Mock API and state: loads performance (evidence: `src/pages/PerformancePage.tsx`)
- Skills and development → Mock API and state: loads skill data (evidence: `src/pages/SkillsPage.tsx`)
- Career progression → Mock API and state: loads career data (evidence: `src/pages/CareerPage.tsx`)
- Calibration review → Mock API and state: loads and updates (evidence: `src/pages/CalibrationPage.tsx`)
- Reports → Mock API and state: loads reports (evidence: `src/pages/ReportsPage.tsx`)
- Employee profile → Performance evidence: renders (evidence: `src/pages/EmployeeProfilePage.tsx`)
- Employee profile → Evidence summary: renders (evidence: `src/pages/EmployeeProfilePage.tsx`)
- Skills and development → Skill gap analysis: renders (evidence: `src/pages/SkillsPage.tsx`)
- Skills and development → Development plans: renders (evidence: `src/pages/SkillsPage.tsx`)
- Career progression → Promotion readiness: renders (evidence: `src/pages/CareerPage.tsx`)
- Calibration review → Calibration detail: opens details (evidence: `src/pages/CalibrationPage.tsx`)
- Calibration review → Manager distributions: renders (evidence: `src/pages/CalibrationPage.tsx`)
- Mock API and state → Employee records: reads and seeds (evidence: `src/services/api.ts`)
- Mock API and state → Calibration records: reads and seeds (evidence: `src/services/api.ts`)
- Mock API and state → Performance aggregates: reads and seeds (evidence: `src/services/api.ts`)
- Mock API and state → Report definitions: reads and seeds (evidence: `src/services/api.ts`)
- Manager distributions → Calibration records: reads patterns (evidence: `src/components/Calibration/ManagerDistributionChart.tsx`)
