# vasundhara-331/kochi_metro_document_automation architecture

> Architecture diagram of the GitHub repository vasundhara-331/kochi_metro_document_automation, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vasundhara-331/kochi_metro_document_automation
- Repository: https://github.com/vasundhara-331/kochi_metro_document_automation

## Overview

Kochi Metro Document Automation is a role-aware document management web app. Staff sign in, then use the dashboard to reach upload, inbox, search, and document review; upload and search operations use shared document state, and selecting a result opens the viewer. The README also describes analytics and administration capabilities, represented here from the component tree. Sampled document and notification contexts use React state; although the README describes Supabase integration and real-time updates, the excerpts do not show those connections or establish their implementation.

Main entry points: [`src/App.tsx`](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/App.tsx) (Application router), [`src/contexts/DocumentContext.tsx`](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/contexts/DocumentContext.tsx) (Document context), [`src/components/dashboard/MainDashboard.tsx`](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/dashboard/MainDashboard.tsx) (Operations dashboard), [`src/components/auth/LoginPage.tsx`](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/auth/LoginPage.tsx) (Sign in)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and Shell"]
  node_app["Application router<br/>[App.tsx]"]
  node_login["Sign in<br/>[LoginPage.tsx]"]
  node_header["Header<br/>[Header.tsx]"]
  node_sidebar["Navigation sidebar<br/>[Sidebar.tsx]"]
end

subgraph group_documents["Document Workflow"]
  node_upload["Document upload<br/>[UploadPortal.tsx]"]
  node_inbox["Document inbox<br/>[DocumentInbox.tsx]"]
  node_search["Document search<br/>[SearchPage.tsx]"]
  node_viewer["Document viewer<br/>[DocumentViewer.tsx]"]
end

subgraph group_insights["Insights and Administration"]
  node_dashboard["Operations dashboard<br/>[MainDashboard.tsx]"]
  node_analytics["Analytics dashboard"]
  node_admin["Admin portal<br/>[AdminPortal.tsx]"]
end

subgraph group_state["Application State"]
  node_auth["Authentication context<br/>[AuthContext.tsx]"]
  node_documents_state["Document context"]
  node_notifications["Notification context"]
end

node_staff(("Metro staff"))

node_staff -->|"opens app"| node_app
node_app -->|"shows when signed out"| node_login
node_login -->|"checks credentials"| node_auth
node_app -->|"reads session"| node_auth
node_app -->|"renders shell"| node_header
node_app -->|"renders navigation"| node_sidebar
node_app -->|"dispatches view"| node_dashboard
node_app -->|"dispatches view"| node_upload
node_app -->|"dispatches view"| node_inbox
node_app -->|"dispatches view"| node_search
node_app -->|"dispatches selected document"| node_viewer
node_app -->|"dispatches view"| node_analytics
node_app -->|"dispatches view"| node_admin
node_upload -->|"uploads document"| node_documents_state
node_search -->|"searches and indexes"| node_documents_state
node_inbox -->|"reads documents"| node_documents_state
node_viewer -->|"reads and updates"| node_documents_state
node_dashboard -->|"reads statistics"| node_documents_state
node_dashboard -->|"reads notifications"| node_notifications

click node_app "https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/App.tsx"
click node_login "https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/auth/LoginPage.tsx"
click node_auth "https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/contexts/AuthContext.tsx"
click node_header "https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/layout/Header.tsx"
click node_sidebar "https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/layout/Sidebar.tsx"
click node_dashboard "https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/dashboard/MainDashboard.tsx"
click node_upload "https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/upload/UploadPortal.tsx"
click node_inbox "https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/documents/DocumentInbox.tsx"
click node_search "https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/search/SearchPage.tsx"
click node_viewer "https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/documents/DocumentViewer.tsx"
click node_analytics "https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/analytics/AnalyticsDashboard.tsx"
click node_admin "https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/admin/AdminPortal.tsx"
click node_documents_state "https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/contexts/DocumentContext.tsx"
click node_notifications "https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/contexts/NotificationContext.tsx"

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_login,node_header,node_sidebar toneBlue
class node_upload,node_inbox,node_search,node_viewer toneAmber
class node_dashboard,node_analytics,node_admin toneMint
class node_auth,node_documents_state,node_notifications toneRose
class node_staff toneIndigo
```

## Components

### Access and Shell

- [Application router](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/App.tsx): `src/App.tsx`
- [Sign in](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/auth/LoginPage.tsx): `src/components/auth/LoginPage.tsx`
- [Header](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/layout/Header.tsx): `src/components/layout/Header.tsx`
- [Navigation sidebar](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/layout/Sidebar.tsx): `src/components/layout/Sidebar.tsx`

### Document Workflow

- [Document upload](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/upload/UploadPortal.tsx): `src/components/upload/UploadPortal.tsx`
- [Document inbox](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/documents/DocumentInbox.tsx): `src/components/documents/DocumentInbox.tsx`
- [Document search](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/search/SearchPage.tsx): `src/components/search/SearchPage.tsx`
- [Document viewer](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/documents/DocumentViewer.tsx): `src/components/documents/DocumentViewer.tsx`

### Insights and Administration

- [Operations dashboard](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/dashboard/MainDashboard.tsx): `src/components/dashboard/MainDashboard.tsx`
- [Analytics dashboard](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/analytics/AnalyticsDashboard.tsx): `src/components/analytics/AnalyticsDashboard.tsx`
- [Admin portal](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/components/admin/AdminPortal.tsx): `src/components/admin/AdminPortal.tsx`

### Application State

- [Authentication context](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/contexts/AuthContext.tsx): `src/contexts/AuthContext.tsx`
- [Document context](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/contexts/DocumentContext.tsx): `src/contexts/DocumentContext.tsx`
- [Notification context](https://github.com/vasundhara-331/kochi_metro_document_automation/blob/main/src/contexts/NotificationContext.tsx): `src/contexts/NotificationContext.tsx`

### Other components

- **Metro staff**

## Connections

- Metro staff → Application router: opens app
- Application router → Sign in: shows when signed out
- Sign in → Authentication context: checks credentials
- Application router → Authentication context: reads session
- Application router → Header: renders shell
- Application router → Navigation sidebar: renders navigation
- Application router → Operations dashboard: dispatches view
- Application router → Document upload: dispatches view
- Application router → Document inbox: dispatches view
- Application router → Document search: dispatches view
- Application router → Document viewer: dispatches selected document
- Application router → Analytics dashboard: dispatches view
- Application router → Admin portal: dispatches view
- Document upload → Document context: uploads document
- Document search → Document context: searches and indexes
- Document inbox → Document context: reads documents
- Document viewer → Document context: reads and updates
- Operations dashboard → Document context: reads statistics
- Operations dashboard → Notification context: reads notifications
