# hrittikaaa/muktoain-sd architecture

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

- Interactive diagram: https://gitdiagram.com/hrittikaaa/muktoain-sd
- Repository: https://github.com/hrittikaaa/muktoain-sd

## Overview

MuktoAin is a bilingual Bangladesh legal-aid platform. Citizens submit a legal problem; the platform retrieves relevant statute sections, generates a cited explanation or document draft, and routes drafts through mandatory verified-lawyer review before PDF download. The map also includes search, payments, notifications, and administrative oversight. README documents the overall retrieval and product flows; sampled source confirms orchestration, vector and keyword retrieval, review behavior, PDF export, and selected web wiring, but not every controller-to-service call.

Main entry points: [`src/MuktoAin.Infrastructure/Data/AppDbContext.cs`](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/Data/AppDbContext.cs) (SQL Server), [`src/MuktoAin.Application/Services/AiOrchestrationService.cs`](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/AiOrchestrationService.cs) (AI orchestration), [`src/MuktoAin.Infrastructure/VectorStore/SimilaritySearchService.cs`](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/VectorStore/SimilaritySearchService.cs) (Vector retrieval), [`src/MuktoAin.Application/Services/CaseService.cs`](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/CaseService.cs) (Case management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_citizen["Citizen legal aid"]
  node_web_cases["Case endpoints<br/>[CaseController.cs]"]
  node_case_service["Case management<br/>[CaseService.cs]"]
  node_ai_orchestrator["AI orchestration"]
  node_prompt["Prompt assembly<br/>[PromptAssembler.cs]"]
end

subgraph group_retrieval["Legal retrieval"]
  node_rag_builder["RAG context"]
  node_vector_search["Vector retrieval"]
  node_keyword_search["Keyword retrieval"]
  node_embedding["Gemini embeddings"]
  node_qdrant[("Qdrant store")]
  node_search_web["Search endpoints"]
end

subgraph group_review["Lawyer workflow"]
  node_lawyer_web["Lawyer endpoints"]
  node_review_service["Draft review"]
  node_documents["Document service<br/>[DocumentService.cs]"]
  node_templates["Document templates"]
  node_pdf["PDF export"]
end

subgraph group_platform["Platform services"]
  node_sql[("SQL Server<br/>[AppDbContext.cs]")]
  node_gemini["Gemini generation<br/>[GeminiClient.cs]"]
  node_payment_web["Payment endpoints"]
  node_payment_service["Payment handling<br/>[PaymentService.cs]"]
  node_gateways["Payment gateways"]
  node_notifications["Notifications"]
end

subgraph group_admin["Administration"]
  node_admin_web["Admin endpoints<br/>[AdminController.cs]"]
  node_admin_analytics["Admin analytics"]
  node_acts["Acts management"]
end

node_citizens(("Citizens"))
node_lawyers(("Verified lawyers"))

node_citizens -->|"describe problem"| node_web_cases
node_web_cases -->|"submit case"| node_case_service
node_case_service -->|"request explanation"| node_ai_orchestrator
node_ai_orchestrator -->|"retrieve context"| node_rag_builder
node_rag_builder -->|"primary search"| node_vector_search
node_rag_builder -.->|"fallback search"| node_keyword_search
node_vector_search -->|"embed query"| node_embedding
node_vector_search -->|"search vectors"| node_qdrant
node_vector_search -->|"load sections"| node_sql
node_keyword_search -->|"full-text search"| node_sql
node_ai_orchestrator -->|"assemble prompt"| node_prompt
node_ai_orchestrator -->|"generate answer"| node_gemini
node_ai_orchestrator -->|"save references"| node_sql
node_search_web -->|"search Acts"| node_sql
node_citizens -->|"track case"| node_lawyer_web
node_lawyers -->|"review drafts"| node_lawyer_web
node_lawyer_web -->|"claim and decide"| node_review_service
node_review_service -->|"persist review"| node_sql
node_review_service -->|"transition status"| node_case_service
node_case_service -->|"manage drafts"| node_documents
node_documents -->|"generate draft"| node_templates
node_citizens -->|"download approved"| node_pdf
node_documents -->|"export finalized"| node_pdf
node_payment_web -->|"process payment"| node_payment_service
node_payment_service -->|"resolve gateway"| node_gateways
node_gateways -->|"record order"| node_sql
node_payment_service -->|"notify parties"| node_notifications
node_admin_web -->|"view analytics"| node_admin_analytics
node_admin_web -->|"manage corpus"| node_acts
node_admin_web -->|"admin data"| node_sql

click node_web_cases "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Web/Controllers/CaseController.cs"
click node_case_service "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/CaseService.cs"
click node_ai_orchestrator "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/AiOrchestrationService.cs"
click node_rag_builder "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/RagContextBuilder.cs"
click node_vector_search "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/VectorStore/SimilaritySearchService.cs"
click node_keyword_search "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/Search/KeywordSearchService.cs"
click node_embedding "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/Ai/GeminiEmbeddingService.cs"
click node_qdrant "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/VectorStore/QdrantVectorStore.cs"
click node_sql "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/Data/AppDbContext.cs"
click node_gemini "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/Ai/GeminiClient.cs"
click node_prompt "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/PromptAssembler.cs"
click node_lawyer_web "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Web/Controllers/LawyerController.cs"
click node_review_service "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/LawyerReviewService.cs"
click node_documents "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/DocumentService.cs"
click node_templates "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Documents/DocumentGenerator.cs"
click node_pdf "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/Documents/PdfExportService.cs"
click node_search_web "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Web/Controllers/SearchController.cs"
click node_payment_web "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Web/Controllers/PaymentController.cs"
click node_payment_service "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/PaymentService.cs"
click node_gateways "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/Payments/PaymentGatewayResolver.cs"
click node_notifications "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/NotificationService.cs"
click node_admin_web "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Web/Controllers/AdminController.cs"
click node_admin_analytics "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/AdminAnalyticsService.cs"
click node_acts "https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/ActsManagementService.cs"

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_web_cases,node_case_service,node_ai_orchestrator,node_prompt toneBlue
class node_rag_builder,node_vector_search,node_keyword_search,node_embedding,node_qdrant,node_search_web toneAmber
class node_lawyer_web,node_review_service,node_documents,node_templates,node_pdf toneMint
class node_sql,node_gemini,node_payment_web,node_payment_service,node_gateways,node_notifications toneRose
class node_admin_web,node_admin_analytics,node_acts,node_citizens,node_lawyers toneIndigo
```

## Components

### Citizen legal aid

- [Case endpoints](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Web/Controllers/CaseController.cs): `src/MuktoAin.Web/Controllers/CaseController.cs`
- [Case management](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/CaseService.cs): `src/MuktoAin.Application/Services/CaseService.cs`
- [AI orchestration](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/AiOrchestrationService.cs): `src/MuktoAin.Application/Services/AiOrchestrationService.cs`
- [Prompt assembly](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/PromptAssembler.cs): `src/MuktoAin.Application/Services/PromptAssembler.cs`

### Legal retrieval

- [RAG context](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/RagContextBuilder.cs): `src/MuktoAin.Application/Services/RagContextBuilder.cs`
- [Vector retrieval](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/VectorStore/SimilaritySearchService.cs): `src/MuktoAin.Infrastructure/VectorStore/SimilaritySearchService.cs`
- [Keyword retrieval](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/Search/KeywordSearchService.cs): `src/MuktoAin.Infrastructure/Search/KeywordSearchService.cs`
- [Gemini embeddings](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/Ai/GeminiEmbeddingService.cs): `src/MuktoAin.Infrastructure/Ai/GeminiEmbeddingService.cs`
- [Qdrant store](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/VectorStore/QdrantVectorStore.cs): `src/MuktoAin.Infrastructure/VectorStore/QdrantVectorStore.cs`
- [Search endpoints](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Web/Controllers/SearchController.cs): `src/MuktoAin.Web/Controllers/SearchController.cs`

### Lawyer workflow

- [Lawyer endpoints](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Web/Controllers/LawyerController.cs): `src/MuktoAin.Web/Controllers/LawyerController.cs`
- [Draft review](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/LawyerReviewService.cs): `src/MuktoAin.Application/Services/LawyerReviewService.cs`
- [Document service](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/DocumentService.cs): `src/MuktoAin.Application/Services/DocumentService.cs`
- [Document templates](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Documents/DocumentGenerator.cs): `src/MuktoAin.Application/Documents/DocumentGenerator.cs`
- [PDF export](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/Documents/PdfExportService.cs): `src/MuktoAin.Infrastructure/Documents/PdfExportService.cs`

### Platform services

- [SQL Server](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/Data/AppDbContext.cs): `src/MuktoAin.Infrastructure/Data/AppDbContext.cs`
- [Gemini generation](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/Ai/GeminiClient.cs): `src/MuktoAin.Infrastructure/Ai/GeminiClient.cs`
- [Payment endpoints](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Web/Controllers/PaymentController.cs): `src/MuktoAin.Web/Controllers/PaymentController.cs`
- [Payment handling](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/PaymentService.cs): `src/MuktoAin.Application/Services/PaymentService.cs`
- [Payment gateways](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Infrastructure/Payments/PaymentGatewayResolver.cs): `src/MuktoAin.Infrastructure/Payments/PaymentGatewayResolver.cs`
- [Notifications](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/NotificationService.cs): `src/MuktoAin.Application/Services/NotificationService.cs`

### Administration

- [Admin endpoints](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Web/Controllers/AdminController.cs): `src/MuktoAin.Web/Controllers/AdminController.cs`
- [Admin analytics](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/AdminAnalyticsService.cs): `src/MuktoAin.Application/Services/AdminAnalyticsService.cs`
- [Acts management](https://github.com/hrittikaaa/muktoain-sd/blob/main/src/MuktoAin.Application/Services/ActsManagementService.cs): `src/MuktoAin.Application/Services/ActsManagementService.cs`

### Other components

- **Citizens**
- **Verified lawyers**

## Connections

- Citizens → Case endpoints: describe problem
- Case endpoints → Case management: submit case
- Case management → AI orchestration: request explanation
- AI orchestration → RAG context: retrieve context
- RAG context → Vector retrieval: primary search
- RAG context → Keyword retrieval: fallback search
- Vector retrieval → Gemini embeddings: embed query
- Vector retrieval → Qdrant store: search vectors
- Vector retrieval → SQL Server: load sections
- Keyword retrieval → SQL Server: full-text search
- AI orchestration → Prompt assembly: assemble prompt
- AI orchestration → Gemini generation: generate answer
- AI orchestration → SQL Server: save references
- Search endpoints → SQL Server: search Acts
- Citizens → Lawyer endpoints: track case
- Verified lawyers → Lawyer endpoints: review drafts
- Lawyer endpoints → Draft review: claim and decide
- Draft review → SQL Server: persist review
- Draft review → Case management: transition status
- Case management → Document service: manage drafts
- Document service → Document templates: generate draft
- Citizens → PDF export: download approved
- Document service → PDF export: export finalized
- Payment endpoints → Payment handling: process payment
- Payment handling → Payment gateways: resolve gateway
- Payment gateways → SQL Server: record order
- Payment handling → Notifications: notify parties
- Admin endpoints → Admin analytics: view analytics
- Admin endpoints → Acts management: manage corpus
- Admin endpoints → SQL Server: admin data
