# farheenaiml/bid-factory architecture

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

## Overview

BidFactory turns uploaded RFPs into evidence-backed compliance assessments and draft answers, then routes uncertain items through engineer approval before export. The map follows the documented pipeline and the visible API orchestration, with separate knowledge-base and workspace branches. Several pipeline and storage modules are indexed but unsampled; their internal links are included only where the README or source index supports them, so internal detail and external integrations may be incomplete.

Main entry points: [`backend/api/routes.py`](https://github.com/farheenaiml/bid-factory/blob/main/backend/api/routes.py) (Bid and review API), [`backend/services/orchestration.py`](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/orchestration.py) (Analysis orchestrator), [`backend/services/knowledge_base.py`](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/knowledge_base.py) (Knowledge-base service), [`frontend/src/App.tsx`](https://github.com/farheenaiml/bid-factory/blob/main/frontend/src/App.tsx) (Workspace shell)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workspace["Bid workspace"]
  node_api_routes["Bid and review API<br/>[routes.py]"]
  node_bid_store[("Bid repository<br/>[repository.py]")]
  node_bid_data["Bid records<br/>[entities.py]"]
end

subgraph group_pipeline["Analysis pipeline"]
  node_analysis_orchestrator["Analysis orchestrator<br/>[orchestration.py]"]
  node_pipeline_service["RocketRide pipeline"]
  node_doc_ingestion["Document ingestion"]
  node_requirement_extraction["Requirement extraction"]
  node_compliance["Compliance analysis"]
  node_response_generation["Response generation"]
end

subgraph group_evidence["Evidence knowledge base"]
  node_kb_api["Knowledge-base API<br/>[knowledge_base.py]"]
  node_kb_service["Knowledge-base service<br/>[knowledge_base.py]"]
  node_chunking["Document chunking<br/>[chunking.py]"]
  node_embeddings["Vector embeddings<br/>[embeddings.py]"]
  node_retrieval["Hybrid retrieval<br/>[retrieval.py]"]
  node_vector_store[("Vector store<br/>[vector_store.py]")]
  node_graph_service["Graph service<br/>[graph_service.py]"]
end

subgraph group_review["Review and output"]
  node_review_service["Human review service<br/>[review.py]"]
  node_export_service["Bid export<br/>[export_service.py]"]
end

subgraph group_frontend["User interface"]
  node_frontend_app["Workspace shell<br/>[App.tsx]"]
  node_bid_pages["Bid workspace pages<br/>[BidDetail.tsx]"]
  node_rfp_page["RFP upload page<br/>[NewRfp.tsx]"]
  node_review_page["Review dashboard<br/>[Reviews.tsx]"]
  node_dashboard["Bid dashboard<br/>[Dashboard.tsx]"]
  node_api_client["API client<br/>[index.ts]"]
end

node_engineer(("Sales engineer"))
node_groq["Groq LLM"]
node_rocketride_cloud["RocketRide Cloud"]
node_crm_email["CRM and email"]

node_engineer -->|"uses"| node_frontend_app
node_frontend_app -->|"routes to"| node_bid_pages
node_frontend_app -->|"routes to"| node_rfp_page
node_frontend_app -->|"routes to"| node_review_page
node_frontend_app -->|"routes to"| node_dashboard
node_rfp_page -->|"calls"| node_api_client
node_bid_pages -->|"calls"| node_api_client
node_review_page -->|"calls"| node_api_client
node_dashboard -->|"calls"| node_api_client
node_api_client -->|"HTTP requests"| node_api_routes
node_engineer -->|"uploads RFP"| node_api_routes
node_api_routes -->|"stores bid"| node_bid_store
node_bid_store -->|"holds records"| node_bid_data
node_api_routes -->|"analyzes bid"| node_analysis_orchestrator
node_analysis_orchestrator -->|"executes pipeline"| node_pipeline_service
node_api_routes -->|"generates bid"| node_pipeline_service
node_pipeline_service -->|"runs pipeline"| node_rocketride_cloud
node_pipeline_service -->|"falls back to"| node_doc_ingestion
node_doc_ingestion -.->|"provides text for"| node_requirement_extraction
node_pipeline_service -->|"extracts requirements"| node_groq
node_analysis_orchestrator -->|"extracts requirements"| node_requirement_extraction
node_analysis_orchestrator -->|"assesses compliance"| node_compliance
node_compliance -->|"searches evidence"| node_kb_service
node_kb_api -->|"delegates to"| node_kb_service
node_kb_service -->|"extracts source docs"| node_doc_ingestion
node_kb_service -->|"chunks documents"| node_chunking
node_kb_service -->|"embeds chunks"| node_embeddings
node_kb_service -->|"searches with"| node_retrieval
node_kb_service -->|"stores vectors"| node_vector_store
node_analysis_orchestrator -->|"drafts responses"| node_response_generation
node_api_routes -->|"generates responses"| node_response_generation
node_api_routes -->|"creates review items"| node_review_service
node_analysis_orchestrator -->|"creates review items"| node_review_service
node_engineer -->|"reviews drafts"| node_review_page
node_api_routes -->|"updates decisions"| node_review_service
node_api_routes -->|"exports bid"| node_export_service
node_export_service -->|"reads bid data"| node_bid_store
node_export_service -.->|"syncs or drafts"| node_crm_email
node_analysis_orchestrator -.->|"uses graph analysis"| node_graph_service

click node_frontend_app "https://github.com/farheenaiml/bid-factory/blob/main/frontend/src/App.tsx"
click node_bid_pages "https://github.com/farheenaiml/bid-factory/blob/main/frontend/src/pages/BidDetail.tsx"
click node_rfp_page "https://github.com/farheenaiml/bid-factory/blob/main/frontend/src/pages/NewRfp.tsx"
click node_review_page "https://github.com/farheenaiml/bid-factory/blob/main/frontend/src/pages/Reviews.tsx"
click node_dashboard "https://github.com/farheenaiml/bid-factory/blob/main/frontend/src/pages/Dashboard.tsx"
click node_api_client "https://github.com/farheenaiml/bid-factory/blob/main/frontend/src/api/index.ts"
click node_api_routes "https://github.com/farheenaiml/bid-factory/blob/main/backend/api/routes.py"
click node_bid_store "https://github.com/farheenaiml/bid-factory/blob/main/backend/services/repository.py"
click node_bid_data "https://github.com/farheenaiml/bid-factory/blob/main/backend/models/entities.py"
click node_analysis_orchestrator "https://github.com/farheenaiml/bid-factory/blob/main/backend/services/orchestration.py"
click node_pipeline_service "https://github.com/farheenaiml/bid-factory/blob/main/backend/services/rocketride_service.py"
click node_doc_ingestion "https://github.com/farheenaiml/bid-factory/blob/main/backend/services/document_ingestion.py"
click node_requirement_extraction "https://github.com/farheenaiml/bid-factory/blob/main/backend/services/requirement_extraction.py"
click node_compliance "https://github.com/farheenaiml/bid-factory/blob/main/backend/services/compliance_analysis.py"
click node_response_generation "https://github.com/farheenaiml/bid-factory/blob/main/backend/services/response_generation.py"
click node_kb_api "https://github.com/farheenaiml/bid-factory/blob/main/backend/api/knowledge_base.py"
click node_kb_service "https://github.com/farheenaiml/bid-factory/blob/main/backend/services/knowledge_base.py"
click node_chunking "https://github.com/farheenaiml/bid-factory/blob/main/backend/services/chunking.py"
click node_embeddings "https://github.com/farheenaiml/bid-factory/blob/main/backend/services/embeddings.py"
click node_retrieval "https://github.com/farheenaiml/bid-factory/blob/main/backend/services/retrieval.py"
click node_vector_store "https://github.com/farheenaiml/bid-factory/blob/main/backend/services/vector_store.py"
click node_review_service "https://github.com/farheenaiml/bid-factory/blob/main/backend/services/review.py"
click node_export_service "https://github.com/farheenaiml/bid-factory/blob/main/backend/services/export_service.py"
click node_graph_service "https://github.com/farheenaiml/bid-factory/blob/main/backend/services/graph_service.py"

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_api_routes,node_bid_store,node_bid_data toneBlue
class node_analysis_orchestrator,node_pipeline_service,node_doc_ingestion,node_requirement_extraction,node_compliance,node_response_generation toneAmber
class node_kb_api,node_kb_service,node_chunking,node_embeddings,node_retrieval,node_vector_store,node_graph_service toneMint
class node_review_service,node_export_service toneRose
class node_frontend_app,node_bid_pages,node_rfp_page,node_review_page,node_dashboard,node_api_client,node_engineer,node_groq,node_rocketride_cloud,node_crm_email toneIndigo
```

## Components

### Bid workspace

- [Bid and review API](https://github.com/farheenaiml/bid-factory/blob/main/backend/api/routes.py): `backend/api/routes.py`
- [Bid repository](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/repository.py): `backend/services/repository.py`
- [Bid records](https://github.com/farheenaiml/bid-factory/blob/main/backend/models/entities.py): `backend/models/entities.py`

### Analysis pipeline

- [Analysis orchestrator](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/orchestration.py): `backend/services/orchestration.py`
- [RocketRide pipeline](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/rocketride_service.py): `backend/services/rocketride_service.py`
- [Document ingestion](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/document_ingestion.py): `backend/services/document_ingestion.py`
- [Requirement extraction](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/requirement_extraction.py): `backend/services/requirement_extraction.py`
- [Compliance analysis](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/compliance_analysis.py): `backend/services/compliance_analysis.py`
- [Response generation](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/response_generation.py): `backend/services/response_generation.py`

### Evidence knowledge base

- [Knowledge-base API](https://github.com/farheenaiml/bid-factory/blob/main/backend/api/knowledge_base.py): `backend/api/knowledge_base.py`
- [Knowledge-base service](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/knowledge_base.py): `backend/services/knowledge_base.py`
- [Document chunking](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/chunking.py): `backend/services/chunking.py`
- [Vector embeddings](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/embeddings.py): `backend/services/embeddings.py`
- [Hybrid retrieval](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/retrieval.py): `backend/services/retrieval.py`
- [Vector store](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/vector_store.py): `backend/services/vector_store.py`
- [Graph service](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/graph_service.py): `backend/services/graph_service.py`

### Review and output

- [Human review service](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/review.py): `backend/services/review.py`
- [Bid export](https://github.com/farheenaiml/bid-factory/blob/main/backend/services/export_service.py): `backend/services/export_service.py`

### User interface

- [Workspace shell](https://github.com/farheenaiml/bid-factory/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Bid workspace pages](https://github.com/farheenaiml/bid-factory/blob/main/frontend/src/pages/BidDetail.tsx): `frontend/src/pages/BidDetail.tsx`
- [RFP upload page](https://github.com/farheenaiml/bid-factory/blob/main/frontend/src/pages/NewRfp.tsx): `frontend/src/pages/NewRfp.tsx`
- [Review dashboard](https://github.com/farheenaiml/bid-factory/blob/main/frontend/src/pages/Reviews.tsx): `frontend/src/pages/Reviews.tsx`
- [Bid dashboard](https://github.com/farheenaiml/bid-factory/blob/main/frontend/src/pages/Dashboard.tsx): `frontend/src/pages/Dashboard.tsx`
- [API client](https://github.com/farheenaiml/bid-factory/blob/main/frontend/src/api/index.ts): `frontend/src/api/index.ts`

### Other components

- **Sales engineer**
- **Groq LLM**
- **RocketRide Cloud**
- **CRM and email**

## Connections

- Sales engineer → Workspace shell: uses (evidence: `frontend/src/App.tsx`)
- Workspace shell → Bid workspace pages: routes to (evidence: `frontend/src/App.tsx`)
- Workspace shell → RFP upload page: routes to (evidence: `frontend/src/App.tsx`)
- Workspace shell → Review dashboard: routes to (evidence: `frontend/src/App.tsx`)
- Workspace shell → Bid dashboard: routes to (evidence: `frontend/src/App.tsx`)
- RFP upload page → API client: calls (evidence: `frontend/src/pages/NewRfp.tsx`)
- Bid workspace pages → API client: calls (evidence: `frontend/src/pages/BidDetail.tsx`)
- Review dashboard → API client: calls (evidence: `frontend/src/pages/Reviews.tsx`)
- Bid dashboard → API client: calls (evidence: `frontend/src/pages/Dashboard.tsx`)
- API client → Bid and review API: HTTP requests (evidence: `frontend/src/api/index.ts`)
- Sales engineer → Bid and review API: uploads RFP (evidence: `README.md`)
- Bid and review API → Bid repository: stores bid (evidence: `backend/api/routes.py`)
- Bid repository → Bid records: holds records (evidence: `backend/services/repository.py`)
- Bid and review API → Analysis orchestrator: analyzes bid (evidence: `backend/api/routes.py`)
- Analysis orchestrator → RocketRide pipeline: executes pipeline (evidence: `backend/services/orchestration.py`)
- Bid and review API → RocketRide pipeline: generates bid (evidence: `backend/api/routes.py`)
- RocketRide pipeline → RocketRide Cloud: runs pipeline (evidence: `README.md`)
- RocketRide pipeline → Document ingestion: falls back to (evidence: `backend/services/rocketride_service.py`)
- Document ingestion → Requirement extraction: provides text for
- RocketRide pipeline → Groq LLM: extracts requirements (evidence: `README.md`)
- Analysis orchestrator → Requirement extraction: extracts requirements (evidence: `backend/services/orchestration.py`)
- Analysis orchestrator → Compliance analysis: assesses compliance (evidence: `backend/services/orchestration.py`)
- Compliance analysis → Knowledge-base service: searches evidence (evidence: `README.md`)
- Knowledge-base API → Knowledge-base service: delegates to (evidence: `backend/api/knowledge_base.py`)
- Knowledge-base service → Document ingestion: extracts source docs (evidence: `backend/services/knowledge_base.py`)
- Knowledge-base service → Document chunking: chunks documents (evidence: `backend/services/knowledge_base.py`)
- Knowledge-base service → Vector embeddings: embeds chunks (evidence: `backend/services/knowledge_base.py`)
- Knowledge-base service → Hybrid retrieval: searches with (evidence: `backend/services/knowledge_base.py`)
- Knowledge-base service → Vector store: stores vectors (evidence: `backend/services/knowledge_base.py`)
- Analysis orchestrator → Response generation: drafts responses (evidence: `backend/services/orchestration.py`)
- Bid and review API → Response generation: generates responses (evidence: `backend/api/routes.py`)
- Bid and review API → Human review service: creates review items (evidence: `backend/api/routes.py`)
- Analysis orchestrator → Human review service: creates review items (evidence: `backend/services/orchestration.py`)
- Sales engineer → Review dashboard: reviews drafts (evidence: `README.md`)
- Bid and review API → Human review service: updates decisions (evidence: `backend/api/routes.py`)
- Bid and review API → Bid export: exports bid (evidence: `backend/api/routes.py`)
- Bid export → Bid repository: reads bid data (evidence: `backend/services/export_service.py`)
- Bid export → CRM and email: syncs or drafts (evidence: `README.md`)
- Analysis orchestrator → Graph service: uses graph analysis
