# adityaaa89/manak architecture

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

## Overview

Manak Compliance is a BIS compliance guidance application: users explore standards and certification, assess factory readiness, find labs, verify products, and ask evidence-grounded questions. The clearest sampled end-to-end flow is the Evidence Assistant: a query enters the chat route, is augmented and language-processed, retrieved against document chunks and structured mappings, then answered and returned with citations and compliance metadata. Other product capabilities are represented by their route and page modules; their internal wiring was not sampled, so those links are limited to explicit application routing and API boundaries.

Main entry points: [`backend/app/main.py`](https://github.com/adityaaa89/manak/blob/main/backend/app/main.py) (FastAPI application), [`src/App.tsx`](https://github.com/adityaaa89/manak/blob/main/src/App.tsx) (Web router), [`backend/app/routes/rag.py`](https://github.com/adityaaa89/manak/blob/main/backend/app/routes/rag.py) (Chat query route), [`backend/app/services/retrieval_service.py`](https://github.com/adityaaa89/manak/blob/main/backend/app/services/retrieval_service.py) (Hybrid retrieval)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web experience"]
  node_app["Web router<br/>[App.tsx]"]
  node_api_client["API client<br/>[api.ts]"]
  node_standards_page["Standards discovery"]
  node_assistant_page["Evidence assistant"]
  node_journey_page["Certification journey"]
  node_blueprint_page["Compliance blueprint"]
  node_analysis_page["Compliance analysis"]
  node_readiness_page["Factory readiness"]
  node_labs_page["Laboratory finder"]
  node_verify_page["Snap verify<br/>[SnapVerify.tsx]"]
end

subgraph group_api["API routes"]
  node_main["FastAPI application<br/>[main.py]"]
  node_rag_route["Chat query route<br/>[rag.py]"]
  node_standards_route["Standards routes<br/>[standards.py]"]
  node_products_route["Product routes<br/>[products.py]"]
  node_qco_route["QCO routes<br/>[qco.py]"]
  node_testing_route["Testing routes<br/>[testing.py]"]
  node_readiness_route["Readiness routes<br/>[readiness.py]"]
  node_labs_route["Laboratory routes<br/>[labs.py]"]
  node_blueprint_route["Blueprint routes<br/>[blueprint.py]"]
  node_documents_route["Document routes<br/>[documents.py]"]
  node_verification_route["Verification routes<br/>[verification.py]"]
end

subgraph group_evidence["Evidence assistant"]
  node_retrieval["Hybrid retrieval"]
  node_intent["Query intent"]
  node_structured["Structured evidence"]
  node_embedding["Embedding service"]
  node_llm["Answer generation<br/>[llm_service.py]"]
  node_language["Language handling"]
  node_memory["Conversation memory"]
  node_explanation["Answer explanation"]
end

subgraph group_compliance["Compliance services"]
  node_readiness_engine["Readiness assessment"]
  node_testing_engine["Testing requirements<br/>[testing_engine.py]"]
  node_lab_ranker["Lab ranking<br/>[lab_ranker.py]"]
end

subgraph group_state["Data and documents"]
  node_database[("Application database<br/>[database.py]")]
end

node_user(("Compliance user"))

node_user -->|"uses"| node_app
node_app -->|"routes"| node_standards_page
node_app -->|"routes"| node_assistant_page
node_app -->|"routes"| node_journey_page
node_app -->|"routes"| node_blueprint_page
node_app -->|"routes"| node_analysis_page
node_app -->|"routes"| node_readiness_page
node_app -->|"routes"| node_labs_page
node_app -->|"routes"| node_verify_page
node_assistant_page -->|"requests"| node_api_client
node_api_client -->|"calls API"| node_main
node_main -->|"registers"| node_rag_route
node_main -->|"registers"| node_standards_route
node_main -->|"registers"| node_products_route
node_main -->|"registers"| node_qco_route
node_main -->|"registers"| node_testing_route
node_main -->|"registers"| node_readiness_route
node_main -->|"registers"| node_labs_route
node_main -->|"registers"| node_blueprint_route
node_main -->|"registers"| node_documents_route
node_main -->|"registers"| node_verification_route
node_rag_route -->|"detects and translates"| node_language
node_rag_route -->|"augments query"| node_memory
node_rag_route -->|"searches evidence"| node_retrieval
node_retrieval -->|"detects intent"| node_intent
node_retrieval -->|"gets mappings"| node_structured
node_retrieval -->|"embeds query"| node_embedding
node_retrieval -->|"queries chunks"| node_database
node_structured -->|"gets requirements"| node_testing_engine
node_structured -->|"ranks labs"| node_lab_ranker
node_rag_route -->|"generates answer"| node_llm
node_rag_route -->|"builds explanation"| node_explanation
node_readiness_route -->|"assesses readiness"| node_readiness_engine
node_readiness_engine -->|"reads and saves"| node_database

click node_app "https://github.com/adityaaa89/manak/blob/main/src/App.tsx"
click node_api_client "https://github.com/adityaaa89/manak/blob/main/src/services/api.ts"
click node_standards_page "https://github.com/adityaaa89/manak/blob/main/src/pages/StandardsDiscovery.tsx"
click node_assistant_page "https://github.com/adityaaa89/manak/blob/main/src/pages/EvidenceAssistant.tsx"
click node_journey_page "https://github.com/adityaaa89/manak/blob/main/src/pages/CertificationJourney.tsx"
click node_blueprint_page "https://github.com/adityaaa89/manak/blob/main/src/pages/ComplianceBlueprint.tsx"
click node_analysis_page "https://github.com/adityaaa89/manak/blob/main/src/pages/ComplianceAnalysis.tsx"
click node_readiness_page "https://github.com/adityaaa89/manak/blob/main/src/pages/FactoryReadiness.tsx"
click node_labs_page "https://github.com/adityaaa89/manak/blob/main/src/pages/LaboratoryFinder.tsx"
click node_verify_page "https://github.com/adityaaa89/manak/blob/main/src/pages/SnapVerify.tsx"
click node_main "https://github.com/adityaaa89/manak/blob/main/backend/app/main.py"
click node_rag_route "https://github.com/adityaaa89/manak/blob/main/backend/app/routes/rag.py"
click node_standards_route "https://github.com/adityaaa89/manak/blob/main/backend/app/routes/standards.py"
click node_products_route "https://github.com/adityaaa89/manak/blob/main/backend/app/routes/products.py"
click node_qco_route "https://github.com/adityaaa89/manak/blob/main/backend/app/routes/qco.py"
click node_testing_route "https://github.com/adityaaa89/manak/blob/main/backend/app/routes/testing.py"
click node_readiness_route "https://github.com/adityaaa89/manak/blob/main/backend/app/routes/readiness.py"
click node_labs_route "https://github.com/adityaaa89/manak/blob/main/backend/app/routes/labs.py"
click node_blueprint_route "https://github.com/adityaaa89/manak/blob/main/backend/app/routes/blueprint.py"
click node_documents_route "https://github.com/adityaaa89/manak/blob/main/backend/app/routes/documents.py"
click node_verification_route "https://github.com/adityaaa89/manak/blob/main/backend/app/routes/verification.py"
click node_retrieval "https://github.com/adityaaa89/manak/blob/main/backend/app/services/retrieval_service.py"
click node_intent "https://github.com/adityaaa89/manak/blob/main/backend/app/services/query_intent_service.py"
click node_structured "https://github.com/adityaaa89/manak/blob/main/backend/app/services/structured_retrieval_service.py"
click node_embedding "https://github.com/adityaaa89/manak/blob/main/backend/app/services/embedding_service.py"
click node_llm "https://github.com/adityaaa89/manak/blob/main/backend/app/services/llm_service.py"
click node_language "https://github.com/adityaaa89/manak/blob/main/backend/app/services/language_service.py"
click node_memory "https://github.com/adityaaa89/manak/blob/main/backend/app/services/conversation_memory.py"
click node_explanation "https://github.com/adityaaa89/manak/blob/main/backend/app/services/explanation_service.py"
click node_readiness_engine "https://github.com/adityaaa89/manak/blob/main/backend/app/services/readiness_engine.py"
click node_testing_engine "https://github.com/adityaaa89/manak/blob/main/backend/app/services/testing_engine.py"
click node_lab_ranker "https://github.com/adityaaa89/manak/blob/main/backend/app/services/lab_ranker.py"
click node_database "https://github.com/adityaaa89/manak/blob/main/backend/app/database/database.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_app,node_api_client,node_standards_page,node_assistant_page,node_journey_page,node_blueprint_page,node_analysis_page,node_readiness_page,node_labs_page,node_verify_page,node_user toneBlue
class node_main,node_rag_route,node_standards_route,node_products_route,node_qco_route,node_testing_route,node_readiness_route,node_labs_route,node_blueprint_route,node_documents_route,node_verification_route toneAmber
class node_retrieval,node_intent,node_structured,node_embedding,node_llm,node_language,node_memory,node_explanation toneMint
class node_readiness_engine,node_testing_engine,node_lab_ranker toneRose
class node_database toneIndigo
```

## Components

### Web experience

- [Web router](https://github.com/adityaaa89/manak/blob/main/src/App.tsx): `src/App.tsx`
- [API client](https://github.com/adityaaa89/manak/blob/main/src/services/api.ts): `src/services/api.ts`
- [Standards discovery](https://github.com/adityaaa89/manak/blob/main/src/pages/StandardsDiscovery.tsx): `src/pages/StandardsDiscovery.tsx`
- [Evidence assistant](https://github.com/adityaaa89/manak/blob/main/src/pages/EvidenceAssistant.tsx): `src/pages/EvidenceAssistant.tsx`
- [Certification journey](https://github.com/adityaaa89/manak/blob/main/src/pages/CertificationJourney.tsx): `src/pages/CertificationJourney.tsx`
- [Compliance blueprint](https://github.com/adityaaa89/manak/blob/main/src/pages/ComplianceBlueprint.tsx): `src/pages/ComplianceBlueprint.tsx`
- [Compliance analysis](https://github.com/adityaaa89/manak/blob/main/src/pages/ComplianceAnalysis.tsx): `src/pages/ComplianceAnalysis.tsx`
- [Factory readiness](https://github.com/adityaaa89/manak/blob/main/src/pages/FactoryReadiness.tsx): `src/pages/FactoryReadiness.tsx`
- [Laboratory finder](https://github.com/adityaaa89/manak/blob/main/src/pages/LaboratoryFinder.tsx): `src/pages/LaboratoryFinder.tsx`
- [Snap verify](https://github.com/adityaaa89/manak/blob/main/src/pages/SnapVerify.tsx): `src/pages/SnapVerify.tsx`

### API routes

- [FastAPI application](https://github.com/adityaaa89/manak/blob/main/backend/app/main.py): `backend/app/main.py`
- [Chat query route](https://github.com/adityaaa89/manak/blob/main/backend/app/routes/rag.py): `backend/app/routes/rag.py`
- [Standards routes](https://github.com/adityaaa89/manak/blob/main/backend/app/routes/standards.py): `backend/app/routes/standards.py`
- [Product routes](https://github.com/adityaaa89/manak/blob/main/backend/app/routes/products.py): `backend/app/routes/products.py`
- [QCO routes](https://github.com/adityaaa89/manak/blob/main/backend/app/routes/qco.py): `backend/app/routes/qco.py`
- [Testing routes](https://github.com/adityaaa89/manak/blob/main/backend/app/routes/testing.py): `backend/app/routes/testing.py`
- [Readiness routes](https://github.com/adityaaa89/manak/blob/main/backend/app/routes/readiness.py): `backend/app/routes/readiness.py`
- [Laboratory routes](https://github.com/adityaaa89/manak/blob/main/backend/app/routes/labs.py): `backend/app/routes/labs.py`
- [Blueprint routes](https://github.com/adityaaa89/manak/blob/main/backend/app/routes/blueprint.py): `backend/app/routes/blueprint.py`
- [Document routes](https://github.com/adityaaa89/manak/blob/main/backend/app/routes/documents.py): `backend/app/routes/documents.py`
- [Verification routes](https://github.com/adityaaa89/manak/blob/main/backend/app/routes/verification.py): `backend/app/routes/verification.py`

### Evidence assistant

- [Hybrid retrieval](https://github.com/adityaaa89/manak/blob/main/backend/app/services/retrieval_service.py): `backend/app/services/retrieval_service.py`
- [Query intent](https://github.com/adityaaa89/manak/blob/main/backend/app/services/query_intent_service.py): `backend/app/services/query_intent_service.py`
- [Structured evidence](https://github.com/adityaaa89/manak/blob/main/backend/app/services/structured_retrieval_service.py): `backend/app/services/structured_retrieval_service.py`
- [Embedding service](https://github.com/adityaaa89/manak/blob/main/backend/app/services/embedding_service.py): `backend/app/services/embedding_service.py`
- [Answer generation](https://github.com/adityaaa89/manak/blob/main/backend/app/services/llm_service.py): `backend/app/services/llm_service.py`
- [Language handling](https://github.com/adityaaa89/manak/blob/main/backend/app/services/language_service.py): `backend/app/services/language_service.py`
- [Conversation memory](https://github.com/adityaaa89/manak/blob/main/backend/app/services/conversation_memory.py): `backend/app/services/conversation_memory.py`
- [Answer explanation](https://github.com/adityaaa89/manak/blob/main/backend/app/services/explanation_service.py): `backend/app/services/explanation_service.py`

### Compliance services

- [Readiness assessment](https://github.com/adityaaa89/manak/blob/main/backend/app/services/readiness_engine.py): `backend/app/services/readiness_engine.py`
- [Testing requirements](https://github.com/adityaaa89/manak/blob/main/backend/app/services/testing_engine.py): `backend/app/services/testing_engine.py`
- [Lab ranking](https://github.com/adityaaa89/manak/blob/main/backend/app/services/lab_ranker.py): `backend/app/services/lab_ranker.py`

### Data and documents

- [Application database](https://github.com/adityaaa89/manak/blob/main/backend/app/database/database.py): `backend/app/database/database.py`

### Other components

- **Compliance user**

## Connections

- Compliance user → Web router: uses
- Web router → Standards discovery: routes
- Web router → Evidence assistant: routes
- Web router → Certification journey: routes
- Web router → Compliance blueprint: routes
- Web router → Compliance analysis: routes
- Web router → Factory readiness: routes
- Web router → Laboratory finder: routes
- Web router → Snap verify: routes
- Evidence assistant → API client: requests
- API client → FastAPI application: calls API
- FastAPI application → Chat query route: registers
- FastAPI application → Standards routes: registers
- FastAPI application → Product routes: registers
- FastAPI application → QCO routes: registers
- FastAPI application → Testing routes: registers
- FastAPI application → Readiness routes: registers
- FastAPI application → Laboratory routes: registers
- FastAPI application → Blueprint routes: registers
- FastAPI application → Document routes: registers
- FastAPI application → Verification routes: registers
- Chat query route → Language handling: detects and translates
- Chat query route → Conversation memory: augments query
- Chat query route → Hybrid retrieval: searches evidence
- Hybrid retrieval → Query intent: detects intent
- Hybrid retrieval → Structured evidence: gets mappings
- Hybrid retrieval → Embedding service: embeds query
- Hybrid retrieval → Application database: queries chunks
- Structured evidence → Testing requirements: gets requirements
- Structured evidence → Lab ranking: ranks labs
- Chat query route → Answer generation: generates answer
- Chat query route → Answer explanation: builds explanation
- Readiness routes → Readiness assessment: assesses readiness
- Readiness assessment → Application database: reads and saves
