# miguel100116/supplier_management_system_bermejo-tolentino architecture

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

## Overview

The Supplier Management System is an internal platform for evaluating couriers, suppliers, and subcontractors, then monitoring their performance and compliance. Employees complete scoped surveys; submissions feed scoring, analytics, rankings, and reports. Admins also manage partner records, document requirements, access, and imports. The graph preserves the major documented capabilities; several page-level connections are documented in the README rather than verified from sampled page implementations.

Main entry points: [`src/utils/analytics.ts`](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/utils/analytics.ts) (Scoring & Analytics), [`src/hooks/useSurveyData.ts`](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/hooks/useSurveyData.ts) (Survey Data), [`src/pages/SurveyFillerPage.tsx`](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/pages/SurveyFillerPage.tsx) (Survey Completion), [`src/App.tsx`](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/App.tsx) (Application & Navigation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_evaluation["Evaluation"]
  node_survey_forms["Survey Forms"]
  node_survey_filler["Survey Completion"]
  node_survey_data["Survey Data<br/>[useSurveyData.ts]"]
  node_question_catalog["Questions &amp; Categories"]
  node_question_weights["Scoring Rubric<br/>[questionWeights.ts]"]
  node_response_import["Evaluation Imports"]
end

subgraph group_insights["Analytics &amp; Reports"]
  node_analytics_logic["Scoring &amp; Analytics<br/>[analytics.ts]"]
  node_analytics_page["Analytics &amp; Rankings<br/>[AnalyticsPage.tsx]"]
  node_archive["Survey Archives<br/>[ArchivePage.tsx]"]
  node_reports["Reports &amp; Exports<br/>[ReportsPage.tsx]"]
  node_feedback_hub["Partner Feedback Delivery"]
  node_presentation["Presentation Mode<br/>[SlideDeck.tsx]"]
end

subgraph group_partners["Partners &amp; Compliance"]
  node_partner_registry["Partner Registry &amp; Imports"]
  node_master_import["Master List Import"]
  node_compliance["Document Compliance"]
  node_document_rules["Document Requirements"]
end

subgraph group_access["Access &amp; Persistence"]
  node_app["Application &amp; Navigation<br/>[App.tsx]"]
  node_auth["Authentication &amp; Access<br/>[authBridge.ts]"]
  node_repository["Application Repository"]
  node_supabase_client["Supabase Client<br/>[supabaseClient.ts]"]
  node_supabase[("Supabase")]
end

subgraph group_delivery["External Delivery"]
  node_graph_mail["Microsoft Graph Mail"]
end

node_employee(("Employee"))

node_employee -->|"uses"| node_app
node_app -.->|"navigates to"| node_survey_forms
node_app -->|"opens"| node_survey_filler
node_survey_forms -->|"starts evaluation"| node_survey_filler
node_survey_filler -->|"submits responses"| node_survey_data
node_survey_filler -->|"uses questions"| node_question_catalog
node_question_catalog -->|"defines rubric categories"| node_question_weights
node_response_import -->|"imports responses"| node_survey_data
node_master_import -->|"imports partners"| node_partner_registry
node_survey_data -->|"persists records"| node_repository
node_repository -->|"uses client"| node_supabase_client
node_supabase_client -.->|"connects"| node_supabase
node_auth -.->|"provides session"| node_app
node_survey_data -.->|"provides responses"| node_analytics_logic
node_question_weights -->|"scores answers"| node_analytics_logic
node_analytics_logic -.->|"supplies metrics"| node_analytics_page
node_survey_data -.->|"archives periods"| node_archive
node_analytics_logic -.->|"supports reporting"| node_reports
node_analytics_logic -->|"builds report data"| node_feedback_hub
node_feedback_hub -.->|"emails reports"| node_graph_mail
node_analytics_logic -.->|"feeds analytics"| node_presentation
node_partner_registry -->|"manages documents"| node_compliance
node_document_rules -->|"defines requirements"| node_compliance
node_partner_registry -->|"supplies eligible partners"| node_survey_data

click node_app "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/App.tsx"
click node_survey_forms "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/pages/SurveyFormsPage.tsx"
click node_survey_filler "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/pages/SurveyFillerPage.tsx"
click node_survey_data "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/hooks/useSurveyData.ts"
click node_question_catalog "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/data/questionCategories.ts"
click node_question_weights "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/data/questionWeights.ts"
click node_response_import "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/utils/rawEvaluationImport.ts"
click node_analytics_logic "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/utils/analytics.ts"
click node_analytics_page "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/pages/AnalyticsPage.tsx"
click node_archive "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/pages/ArchivePage.tsx"
click node_reports "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/pages/ReportsPage.tsx"
click node_feedback_hub "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/components/feedback-hub/SendToPartnerWizard.tsx"
click node_presentation "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/components/SlideDeck.tsx"
click node_partner_registry "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/pages/PartnerCompaniesPage.tsx"
click node_master_import "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/utils/masterListImport.ts"
click node_compliance "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/pages/DocumentRegisterPage.tsx"
click node_document_rules "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/utils/documentRequirements.ts"
click node_auth "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/services/authBridge.ts"
click node_repository "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/services/applicationRepository.ts"
click node_supabase_client "https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/services/supabaseClient.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_survey_forms,node_survey_filler,node_survey_data,node_question_catalog,node_question_weights,node_response_import toneBlue
class node_analytics_logic,node_analytics_page,node_archive,node_reports,node_feedback_hub,node_presentation toneAmber
class node_partner_registry,node_master_import,node_compliance,node_document_rules toneMint
class node_app,node_auth,node_repository,node_supabase_client,node_supabase toneRose
class node_graph_mail,node_employee toneIndigo
```

## Components

### Evaluation

- [Survey Forms](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/pages/SurveyFormsPage.tsx): `src/pages/SurveyFormsPage.tsx`
- [Survey Completion](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/pages/SurveyFillerPage.tsx): `src/pages/SurveyFillerPage.tsx`
- [Survey Data](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/hooks/useSurveyData.ts): `src/hooks/useSurveyData.ts`
- [Questions & Categories](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/data/questionCategories.ts): `src/data/questionCategories.ts`
- [Scoring Rubric](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/data/questionWeights.ts): `src/data/questionWeights.ts`
- [Evaluation Imports](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/utils/rawEvaluationImport.ts): `src/utils/rawEvaluationImport.ts`

### Analytics & Reports

- [Scoring & Analytics](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/utils/analytics.ts): `src/utils/analytics.ts`
- [Analytics & Rankings](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/pages/AnalyticsPage.tsx): `src/pages/AnalyticsPage.tsx`
- [Survey Archives](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/pages/ArchivePage.tsx): `src/pages/ArchivePage.tsx`
- [Reports & Exports](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/pages/ReportsPage.tsx): `src/pages/ReportsPage.tsx`
- [Partner Feedback Delivery](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/components/feedback-hub/SendToPartnerWizard.tsx): `src/components/feedback-hub/SendToPartnerWizard.tsx`
- [Presentation Mode](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/components/SlideDeck.tsx): `src/components/SlideDeck.tsx`

### Partners & Compliance

- [Partner Registry & Imports](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/pages/PartnerCompaniesPage.tsx): `src/pages/PartnerCompaniesPage.tsx`
- [Master List Import](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/utils/masterListImport.ts): `src/utils/masterListImport.ts`
- [Document Compliance](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/pages/DocumentRegisterPage.tsx): `src/pages/DocumentRegisterPage.tsx`
- [Document Requirements](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/utils/documentRequirements.ts): `src/utils/documentRequirements.ts`

### Access & Persistence

- [Application & Navigation](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/App.tsx): `src/App.tsx`
- [Authentication & Access](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/services/authBridge.ts): `src/services/authBridge.ts`
- [Application Repository](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/services/applicationRepository.ts): `src/services/applicationRepository.ts`
- [Supabase Client](https://github.com/miguel100116/supplier_management_system_bermejo-tolentino/blob/main/src/services/supabaseClient.ts): `src/services/supabaseClient.ts`
- **Supabase**

### External Delivery

- **Microsoft Graph Mail**

### Other components

- **Employee**

## Connections

- Employee → Application & Navigation: uses (evidence: `README.md`)
- Application & Navigation → Survey Forms: navigates to (evidence: `src/App.tsx`)
- Application & Navigation → Survey Completion: opens (evidence: `src/App.tsx`)
- Survey Forms → Survey Completion: starts evaluation (evidence: `README.md`)
- Survey Completion → Survey Data: submits responses (evidence: `README.md`)
- Survey Completion → Questions & Categories: uses questions
- Questions & Categories → Scoring Rubric: defines rubric categories (evidence: `src/data/questionCategories.ts`)
- Evaluation Imports → Survey Data: imports responses (evidence: `src/hooks/useSurveyData.ts`)
- Master List Import → Partner Registry & Imports: imports partners (evidence: `src/pages/PartnerCompaniesPage.tsx`)
- Survey Data → Application Repository: persists records (evidence: `src/hooks/useSurveyData.ts`)
- Application Repository → Supabase Client: uses client (evidence: `src/services/applicationRepository.ts`)
- Supabase Client → Supabase: connects
- Authentication & Access → Application & Navigation: provides session (evidence: `src/App.tsx`)
- Survey Data → Scoring & Analytics: provides responses
- Scoring Rubric → Scoring & Analytics: scores answers (evidence: `src/utils/analytics.ts`)
- Scoring & Analytics → Analytics & Rankings: supplies metrics
- Survey Data → Survey Archives: archives periods
- Scoring & Analytics → Reports & Exports: supports reporting
- Scoring & Analytics → Partner Feedback Delivery: builds report data (evidence: `src/components/feedback-hub/SendToPartnerWizard.tsx`)
- Partner Feedback Delivery → Microsoft Graph Mail: emails reports (evidence: `README.md`)
- Scoring & Analytics → Presentation Mode: feeds analytics
- Partner Registry & Imports → Document Compliance: manages documents (evidence: `src/pages/DocumentRegisterPage.tsx`)
- Document Requirements → Document Compliance: defines requirements (evidence: `src/pages/DocumentRegisterPage.tsx`)
- Partner Registry & Imports → Survey Data: supplies eligible partners (evidence: `src/hooks/useSurveyData.ts`)
