# vivekyadav796/doc-mind architecture

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

## Overview

DocMind appears to be a Spring backend for document ingestion and retrieval-augmented chat. The tree identifies API controllers, ingestion/parsing and metadata services, a RAG service, and a metadata repository. No README or source excerpts were provided, so internal call wiring and external AI or vector-store integrations cannot be verified; the graph shows only the API boundary and repository/store relationship implied by their names.

Main entry points: [`backend/src/main/java/com/example/docmind/backend/repository/DocumentMetadataRepo.java`](https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/repository/DocumentMetadataRepo.java) (Metadata Repository), [`backend/src/main/java/com/example/docmind/backend/controller/DocumentController.java`](https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/controller/DocumentController.java) (Document API), [`backend/src/main/java/com/example/docmind/backend/controller/ChatController.java`](https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/controller/ChatController.java) (Chat API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API"]
  node_document_api["Document API"]
  node_chat_api["Chat API"]
end

subgraph group_documents["Document Processing"]
  node_ingestion["Document Ingestion"]
  node_parser["Document Parser"]
  node_metadata_service["Metadata Service"]
end

subgraph group_rag["Retrieval and Chat"]
  node_rag_service["RAG Service<br/>[RagService.java]"]
end

subgraph group_persistence["Metadata Persistence"]
  node_metadata_repo["Metadata Repository"]
  node_metadata_store[("Metadata Store")]
end

node_user(("Client"))

node_user -->|"uploads documents"| node_document_api
node_user -->|"sends chat requests"| node_chat_api
node_metadata_repo -->|"reads and writes"| node_metadata_store

click node_document_api "https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/controller/DocumentController.java"
click node_chat_api "https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/controller/ChatController.java"
click node_ingestion "https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/service/DocumentIngestionService.java"
click node_parser "https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/service/DocumentParserService.java"
click node_metadata_service "https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/service/DocumentMetadataService.java"
click node_rag_service "https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/service/RagService.java"
click node_metadata_repo "https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/repository/DocumentMetadataRepo.java"

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_document_api,node_chat_api,node_user toneBlue
class node_ingestion,node_parser,node_metadata_service toneAmber
class node_rag_service toneMint
class node_metadata_repo,node_metadata_store toneRose
```

## Components

### API

- [Document API](https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/controller/DocumentController.java): `backend/src/main/java/com/example/docmind/backend/controller/DocumentController.java`
- [Chat API](https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/controller/ChatController.java): `backend/src/main/java/com/example/docmind/backend/controller/ChatController.java`

### Document Processing

- [Document Ingestion](https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/service/DocumentIngestionService.java): `backend/src/main/java/com/example/docmind/backend/service/DocumentIngestionService.java`
- [Document Parser](https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/service/DocumentParserService.java): `backend/src/main/java/com/example/docmind/backend/service/DocumentParserService.java`
- [Metadata Service](https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/service/DocumentMetadataService.java): `backend/src/main/java/com/example/docmind/backend/service/DocumentMetadataService.java`

### Retrieval and Chat

- [RAG Service](https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/service/RagService.java): `backend/src/main/java/com/example/docmind/backend/service/RagService.java`

### Metadata Persistence

- [Metadata Repository](https://github.com/vivekyadav796/doc-mind/blob/main/backend/src/main/java/com/example/docmind/backend/repository/DocumentMetadataRepo.java): `backend/src/main/java/com/example/docmind/backend/repository/DocumentMetadataRepo.java`
- **Metadata Store**

### Other components

- **Client**

## Connections

- Client → Document API: uploads documents
- Client → Chat API: sends chat requests
- Metadata Repository → Metadata Store: reads and writes
