# sripathi13/standardx-off architecture

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

- Interactive diagram: https://gitdiagram.com/sripathi13/standardx-off
- Repository: https://github.com/sripathi13/standardx-off

## Overview

STANDARD X is a civil-material estimation and procurement application. Engineers or builders create a project directly or upload a tender/BOQ; tender text is extracted into project parameters, which feed material estimates and a standards-aligned BOQ. Users can select catalog materials, review project costs, and produce quotations. Procurement officers have a separate standards-recommendation workflow. The graph reflects README-described screens and capabilities; unsampled view implementations are represented by their exact tree paths, and uncertain internal wiring is omitted.

Main entry points: [`src/App.tsx`](https://github.com/sripathi13/standardx-off/blob/main/src/App.tsx) (Application shell), [`src/views/CreateProjectView.tsx`](https://github.com/sripathi13/standardx-off/blob/main/src/views/CreateProjectView.tsx) (Project creation), [`src/views/HouseOwnersView.tsx`](https://github.com/sripathi13/standardx-off/blob/main/src/views/HouseOwnersView.tsx) (Home estimation), [`src/views/MarketplaceView.tsx`](https://github.com/sripathi13/standardx-off/blob/main/src/views/MarketplaceView.tsx) (Materials marketplace)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_project["Project estimation"]
  node_create["Project creation"]
  node_house["Home estimation"]
  node_estimate["Material estimation"]
  node_projects["Saved projects<br/>[MyProjectsView.tsx]"]
end

subgraph group_catalog["Materials and standards"]
  node_market["Materials marketplace"]
  node_products[("Product catalog")]
  node_standards[("BIS standards catalog<br/>[bisStandards.ts]")]
  node_standardsview["Standards browser"]
  node_sanitize["Quality sanitizer"]
end

subgraph group_procurement["Tender procurement"]
  node_upload["Tender upload"]
  node_extract["Tender extraction"]
  node_text["Document text extraction"]
  node_requirements["Tender material requirements"]
  node_officerportal["Officer portal"]
  node_recommend["Standards recommendations"]
  node_server["Procurement API<br/>[server.ts]"]
  node_pdf["Tender PDF exporter"]
end

subgraph group_app["Application and outputs"]
  node_app["Application shell<br/>[App.tsx]"]
  node_cart["Project BOQ and cart<br/>[CartView.tsx]"]
  node_quotation["Quotation output<br/>[QuotationView.tsx]"]
end

node_engineer(("Engineer or builder"))
node_officer(("Procurement officer"))
node_gemini{{"Gemini AI service"}}

node_engineer -->|"uses"| node_app
node_officer -->|"uses"| node_app
node_app -->|"shows"| node_create
node_app -->|"shows"| node_house
node_app -->|"renders"| node_upload
node_upload -->|"parses file"| node_extract
node_extract -->|"extracts text"| node_text
node_create -->|"requests estimate"| node_estimate
node_house -->|"requests estimate"| node_estimate
node_create -->|"saves project"| node_projects
node_app -->|"manages state"| node_projects
node_app -->|"shows"| node_market
node_market -->|"reads catalog"| node_products
node_app -->|"recommends products"| node_products
node_app -->|"sanitizes items"| node_sanitize
node_app -->|"shows BOQ"| node_cart
node_app -->|"shows quotation"| node_quotation
node_app -->|"shows"| node_standardsview
node_standardsview -->|"reads standards"| node_standards
node_app -->|"shows"| node_officerportal
node_officerportal -->|"requests recommendations"| node_recommend
node_recommend -->|"POSTs query"| node_server
node_server -.->|"generates recommendation"| node_gemini
node_pdf -->|"gets tender materials"| node_requirements

click node_app "https://github.com/sripathi13/standardx-off/blob/main/src/App.tsx"
click node_create "https://github.com/sripathi13/standardx-off/blob/main/src/views/CreateProjectView.tsx"
click node_house "https://github.com/sripathi13/standardx-off/blob/main/src/views/HouseOwnersView.tsx"
click node_upload "https://github.com/sripathi13/standardx-off/blob/main/src/components/TenderDocumentUpload.tsx"
click node_extract "https://github.com/sripathi13/standardx-off/blob/main/src/services/tenderExtractionService.ts"
click node_text "https://github.com/sripathi13/standardx-off/blob/main/src/utils/documentTextExtractor.ts"
click node_estimate "https://github.com/sripathi13/standardx-off/blob/main/src/services/estimationEngine.ts"
click node_requirements "https://github.com/sripathi13/standardx-off/blob/main/src/services/tenderMaterialRequirementsService.ts"
click node_projects "https://github.com/sripathi13/standardx-off/blob/main/src/views/MyProjectsView.tsx"
click node_market "https://github.com/sripathi13/standardx-off/blob/main/src/views/MarketplaceView.tsx"
click node_products "https://github.com/sripathi13/standardx-off/blob/main/src/data/productsDatabase.ts"
click node_standards "https://github.com/sripathi13/standardx-off/blob/main/src/data/bisStandards.ts"
click node_standardsview "https://github.com/sripathi13/standardx-off/blob/main/src/views/BisStandardsView.tsx"
click node_cart "https://github.com/sripathi13/standardx-off/blob/main/src/views/CartView.tsx"
click node_sanitize "https://github.com/sripathi13/standardx-off/blob/main/src/utils/qualitySanitizer.ts"
click node_quotation "https://github.com/sripathi13/standardx-off/blob/main/src/views/QuotationView.tsx"
click node_officerportal "https://github.com/sripathi13/standardx-off/blob/main/src/views/ProcurementOfficerPortalView.tsx"
click node_recommend "https://github.com/sripathi13/standardx-off/blob/main/src/services/procurementStandardsEngine.ts"
click node_server "https://github.com/sripathi13/standardx-off/blob/main/server.ts"
click node_pdf "https://github.com/sripathi13/standardx-off/blob/main/src/utils/tenderPdfExporter.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_create,node_house,node_estimate,node_projects toneBlue
class node_market,node_products,node_standards,node_standardsview,node_sanitize toneAmber
class node_upload,node_extract,node_text,node_requirements,node_officerportal,node_recommend,node_server,node_pdf toneMint
class node_app,node_cart,node_quotation toneRose
class node_engineer,node_officer,node_gemini toneIndigo
```

## Components

### Project estimation

- [Project creation](https://github.com/sripathi13/standardx-off/blob/main/src/views/CreateProjectView.tsx): `src/views/CreateProjectView.tsx`
- [Home estimation](https://github.com/sripathi13/standardx-off/blob/main/src/views/HouseOwnersView.tsx): `src/views/HouseOwnersView.tsx`
- [Material estimation](https://github.com/sripathi13/standardx-off/blob/main/src/services/estimationEngine.ts): `src/services/estimationEngine.ts`
- [Saved projects](https://github.com/sripathi13/standardx-off/blob/main/src/views/MyProjectsView.tsx): `src/views/MyProjectsView.tsx`

### Materials and standards

- [Materials marketplace](https://github.com/sripathi13/standardx-off/blob/main/src/views/MarketplaceView.tsx): `src/views/MarketplaceView.tsx`
- [Product catalog](https://github.com/sripathi13/standardx-off/blob/main/src/data/productsDatabase.ts): `src/data/productsDatabase.ts`
- [BIS standards catalog](https://github.com/sripathi13/standardx-off/blob/main/src/data/bisStandards.ts): `src/data/bisStandards.ts`
- [Standards browser](https://github.com/sripathi13/standardx-off/blob/main/src/views/BisStandardsView.tsx): `src/views/BisStandardsView.tsx`
- [Quality sanitizer](https://github.com/sripathi13/standardx-off/blob/main/src/utils/qualitySanitizer.ts): `src/utils/qualitySanitizer.ts`

### Tender procurement

- [Tender upload](https://github.com/sripathi13/standardx-off/blob/main/src/components/TenderDocumentUpload.tsx): `src/components/TenderDocumentUpload.tsx`
- [Tender extraction](https://github.com/sripathi13/standardx-off/blob/main/src/services/tenderExtractionService.ts): `src/services/tenderExtractionService.ts`
- [Document text extraction](https://github.com/sripathi13/standardx-off/blob/main/src/utils/documentTextExtractor.ts): `src/utils/documentTextExtractor.ts`
- [Tender material requirements](https://github.com/sripathi13/standardx-off/blob/main/src/services/tenderMaterialRequirementsService.ts): `src/services/tenderMaterialRequirementsService.ts`
- [Officer portal](https://github.com/sripathi13/standardx-off/blob/main/src/views/ProcurementOfficerPortalView.tsx): `src/views/ProcurementOfficerPortalView.tsx`
- [Standards recommendations](https://github.com/sripathi13/standardx-off/blob/main/src/services/procurementStandardsEngine.ts): `src/services/procurementStandardsEngine.ts`
- [Procurement API](https://github.com/sripathi13/standardx-off/blob/main/server.ts): `server.ts`
- [Tender PDF exporter](https://github.com/sripathi13/standardx-off/blob/main/src/utils/tenderPdfExporter.ts): `src/utils/tenderPdfExporter.ts`

### Application and outputs

- [Application shell](https://github.com/sripathi13/standardx-off/blob/main/src/App.tsx): `src/App.tsx`
- [Project BOQ and cart](https://github.com/sripathi13/standardx-off/blob/main/src/views/CartView.tsx): `src/views/CartView.tsx`
- [Quotation output](https://github.com/sripathi13/standardx-off/blob/main/src/views/QuotationView.tsx): `src/views/QuotationView.tsx`

### Other components

- **Engineer or builder**
- **Procurement officer**
- **Gemini AI service**

## Connections

- Engineer or builder → Application shell: uses
- Procurement officer → Application shell: uses
- Application shell → Project creation: shows
- Application shell → Home estimation: shows
- Application shell → Tender upload: renders
- Tender upload → Tender extraction: parses file
- Tender extraction → Document text extraction: extracts text
- Project creation → Material estimation: requests estimate
- Home estimation → Material estimation: requests estimate
- Project creation → Saved projects: saves project
- Application shell → Saved projects: manages state
- Application shell → Materials marketplace: shows
- Materials marketplace → Product catalog: reads catalog
- Application shell → Product catalog: recommends products
- Application shell → Quality sanitizer: sanitizes items
- Application shell → Project BOQ and cart: shows BOQ
- Application shell → Quotation output: shows quotation
- Application shell → Standards browser: shows
- Standards browser → BIS standards catalog: reads standards
- Application shell → Officer portal: shows
- Officer portal → Standards recommendations: requests recommendations
- Standards recommendations → Procurement API: POSTs query
- Procurement API → Gemini AI service: generates recommendation
- Tender PDF exporter → Tender material requirements: gets tender materials
