# akib25889/tender-tracker-v2 architecture

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

- Interactive diagram: https://gitdiagram.com/akib25889/tender-tracker-v2
- Repository: https://github.com/akib25889/tender-tracker-v2

## Overview

TenderTracker is a procurement lifecycle workspace for bid teams. Users review discovered tenders, screen and evaluate opportunities, prepare compliant proposals, track tasks and documents, record submission evidence, and debrief outcomes. The interface also supports partner collaboration, permissions, reporting, and client visits. The README documents broad product capabilities; sampled source confirms application routing, database-backed client-visit operations, and file hashing/storage, but not every feature’s internal wiring, so unsampled subsystems are represented at their existing directory paths.

Main entry points: [`frontend/src/pages/TenderDetailPage.tsx`](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/TenderDetailPage.tsx) (Tender Workspace), [`frontend/src/router.tsx`](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/router.tsx) (Screen Routing), [`backend/app/routers`](https://github.com/akib25889/tender-tracker-v2/tree/main/backend/app/routers) (Product API Routes), [`frontend/src/App.tsx`](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/App.tsx) (Web Application)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User Experience"]
  node_app["Web Application<br/>[App.tsx]"]
  node_routing["Screen Routing<br/>[router.tsx]"]
  node_dashboard["Command Dashboard<br/>[DashboardPage.tsx]"]
end

subgraph group_lifecycle["Tender Lifecycle"]
  node_discovery["Tender Registry"]
  node_tenderwork["Tender Workspace"]
  node_screening["Screening &amp; Analysis"]
  node_requirements["Compliance Matrix"]
  node_tasks["Proposal Task Board<br/>[TenderTasksTab.tsx]"]
  node_documents["Document Vault"]
  node_submission["Submission Ledger"]
  node_outcome["Outcome Debrief"]
end

subgraph group_collaboration["Team Operations"]
  node_collab["Team &amp; Partner Collaboration"]
  node_clientvisits["Client Visits"]
  node_analytics["Reports &amp; Alerts<br/>[ReportsPage.tsx]"]
end

subgraph group_platform["Backend Services"]
  node_api["FastAPI Application<br/>[main.py]"]
  node_api_routes["Product API Routes"]
  node_authorization["Authorization<br/>[authorization.py]"]
  node_file_storage["Document Storage<br/>[storage.py]"]
end

subgraph group_data["Persistence"]
  node_db[("Application Database<br/>[database.py]")]
  node_models["Domain Models"]
end

node_bidteam(("Bid Team"))
node_partner(("JV Partner"))

node_bidteam -->|"uses"| node_app
node_app -->|"renders"| node_routing
node_routing -->|"routes to"| node_dashboard
node_routing -->|"routes to"| node_discovery
node_routing -->|"routes to"| node_tenderwork
node_discovery -->|"opens tender"| node_tenderwork
node_tenderwork -->|"supports review"| node_screening
node_tenderwork -->|"supports compliance"| node_requirements
node_tenderwork -->|"tracks work"| node_tasks
node_tenderwork -->|"manages files"| node_documents
node_tenderwork -->|"records submission"| node_submission
node_tenderwork -->|"records result"| node_outcome
node_bidteam -->|"coordinates"| node_collab
node_partner -->|"collaborates"| node_collab
node_bidteam -->|"records meetings"| node_clientvisits
node_bidteam -->|"reviews"| node_analytics
node_clientvisits -->|"requests visit data"| node_api
node_api -->|"dispatches"| node_api_routes
node_api_routes -->|"queries and updates"| node_models
node_models -->|"persists records"| node_db
node_api_routes -->|"checks access"| node_authorization
node_api_routes -->|"stores uploads"| node_file_storage

click node_app "https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/App.tsx"
click node_routing "https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/router.tsx"
click node_dashboard "https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/DashboardPage.tsx"
click node_discovery "https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/TenderRegistryPage.tsx"
click node_tenderwork "https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/TenderDetailPage.tsx"
click node_screening "https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/TenderDetailPage.tsx"
click node_requirements "https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/tender-tabs/TenderRequirementsTab.tsx"
click node_tasks "https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/tender-tabs/TenderTasksTab.tsx"
click node_documents "https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/tender-tabs/TenderDocumentsTab.tsx"
click node_submission "https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/tender-tabs/TenderSubmissionTab.tsx"
click node_outcome "https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/tender-tabs/TenderResultTab.tsx"
click node_collab "https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/PartnerPortalPage.tsx"
click node_clientvisits "https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/ClientVisitsPage.tsx"
click node_analytics "https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/ReportsPage.tsx"
click node_api "https://github.com/akib25889/tender-tracker-v2/blob/main/backend/app/main.py"
click node_api_routes "https://github.com/akib25889/tender-tracker-v2/tree/main/backend/app/routers"
click node_authorization "https://github.com/akib25889/tender-tracker-v2/blob/main/backend/app/services/authorization.py"
click node_file_storage "https://github.com/akib25889/tender-tracker-v2/blob/main/backend/app/services/storage.py"
click node_db "https://github.com/akib25889/tender-tracker-v2/blob/main/backend/app/core/database.py"
click node_models "https://github.com/akib25889/tender-tracker-v2/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_app,node_routing,node_dashboard toneBlue
class node_discovery,node_tenderwork,node_screening,node_requirements,node_tasks,node_documents,node_submission,node_outcome toneAmber
class node_collab,node_clientvisits,node_analytics toneMint
class node_api,node_api_routes,node_authorization,node_file_storage toneRose
class node_db,node_models,node_bidteam,node_partner toneIndigo
```

## Components

### User Experience

- [Web Application](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Screen Routing](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/router.tsx): `frontend/src/router.tsx`
- [Command Dashboard](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/DashboardPage.tsx): `frontend/src/pages/DashboardPage.tsx`

### Tender Lifecycle

- [Tender Registry](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/TenderRegistryPage.tsx): `frontend/src/pages/TenderRegistryPage.tsx`
- [Tender Workspace](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/TenderDetailPage.tsx): `frontend/src/pages/TenderDetailPage.tsx`
- [Screening & Analysis](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/TenderDetailPage.tsx): `frontend/src/pages/TenderDetailPage.tsx`
- [Compliance Matrix](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/tender-tabs/TenderRequirementsTab.tsx): `frontend/src/pages/tender-tabs/TenderRequirementsTab.tsx`
- [Proposal Task Board](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/tender-tabs/TenderTasksTab.tsx): `frontend/src/pages/tender-tabs/TenderTasksTab.tsx`
- [Document Vault](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/tender-tabs/TenderDocumentsTab.tsx): `frontend/src/pages/tender-tabs/TenderDocumentsTab.tsx`
- [Submission Ledger](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/tender-tabs/TenderSubmissionTab.tsx): `frontend/src/pages/tender-tabs/TenderSubmissionTab.tsx`
- [Outcome Debrief](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/tender-tabs/TenderResultTab.tsx): `frontend/src/pages/tender-tabs/TenderResultTab.tsx`

### Team Operations

- [Team & Partner Collaboration](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/PartnerPortalPage.tsx): `frontend/src/pages/PartnerPortalPage.tsx`
- [Client Visits](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/ClientVisitsPage.tsx): `frontend/src/pages/ClientVisitsPage.tsx`
- [Reports & Alerts](https://github.com/akib25889/tender-tracker-v2/blob/main/frontend/src/pages/ReportsPage.tsx): `frontend/src/pages/ReportsPage.tsx`

### Backend Services

- [FastAPI Application](https://github.com/akib25889/tender-tracker-v2/blob/main/backend/app/main.py): `backend/app/main.py`
- [Product API Routes](https://github.com/akib25889/tender-tracker-v2/tree/main/backend/app/routers): `backend/app/routers`
- [Authorization](https://github.com/akib25889/tender-tracker-v2/blob/main/backend/app/services/authorization.py): `backend/app/services/authorization.py`
- [Document Storage](https://github.com/akib25889/tender-tracker-v2/blob/main/backend/app/services/storage.py): `backend/app/services/storage.py`

### Persistence

- [Application Database](https://github.com/akib25889/tender-tracker-v2/blob/main/backend/app/core/database.py): `backend/app/core/database.py`
- [Domain Models](https://github.com/akib25889/tender-tracker-v2/tree/main/backend/app/models): `backend/app/models`

### Other components

- **Bid Team**
- **JV Partner**

## Connections

- Bid Team → Web Application: uses
- Web Application → Screen Routing: renders
- Screen Routing → Command Dashboard: routes to
- Screen Routing → Tender Registry: routes to
- Screen Routing → Tender Workspace: routes to
- Tender Registry → Tender Workspace: opens tender
- Tender Workspace → Screening & Analysis: supports review
- Tender Workspace → Compliance Matrix: supports compliance
- Tender Workspace → Proposal Task Board: tracks work
- Tender Workspace → Document Vault: manages files
- Tender Workspace → Submission Ledger: records submission
- Tender Workspace → Outcome Debrief: records result
- Bid Team → Team & Partner Collaboration: coordinates
- JV Partner → Team & Partner Collaboration: collaborates
- Bid Team → Client Visits: records meetings
- Bid Team → Reports & Alerts: reviews
- Client Visits → FastAPI Application: requests visit data
- FastAPI Application → Product API Routes: dispatches
- Product API Routes → Domain Models: queries and updates
- Domain Models → Application Database: persists records
- Product API Routes → Authorization: checks access
- Product API Routes → Document Storage: stores uploads
