# yashawasthiawasthicse25-droid/codex architecture

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

## Overview

ApprovalGuard helps Maharashtra pharmaceutical businesses organize approval evidence and assess readiness through deterministic, rule-based checks. The principal workflow is to enter a business profile and structured facts, upload approval documents, complete document checklists, and review readiness issues and recommendations. A separate Information Vault embeds Approval Tracking for user-managed approval statuses, dependencies, timelines, and notifications. The README documents backend APIs and MongoDB persistence, but their server implementation is absent from this tree; those connections are shown at the documented API boundary. Frontend and model paths are based on the supplied tree and excerpts.

Main entry points: [`frontend/html/JS/document-vault.js`](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/document-vault.js) (Vault Interface), [`frontend/html/JS/approval-tracking.js`](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/approval-tracking.js) (Approval Dashboard), [`frontend/html/JS/approvalStatusService.js`](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/approvalStatusService.js) (Status Service), [`frontend/html/JS/information-vault.js`](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/information-vault.js) (Information Vault)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_profile["Business Information"]
  node_frontend["Vault Interface<br/>[document-vault.js]"]
  node_profileui["Business Profile<br/>[profile.js]"]
  node_information["Information Vault"]
end

subgraph group_documents["Document Readiness"]
  node_docui["Document Vault<br/>[document-vault.js]"]
  node_templates["Document Templates"]
end

subgraph group_approvals["Approval Tracking"]
  node_approvalui["Approval Dashboard"]
  node_approvaldata["Approval Data<br/>[approvalData.js]"]
  node_status["Status Service"]
  node_dependency["Dependency Rules"]
  node_notifications["Notifications"]
  node_tracking[("Approval Tracking Data")]
  node_notificationstore[("Notification Data")]
  node_approvalcatalog["Approval Catalog<br/>[application.js]"]
end

subgraph group_persistence["Data Models"]
  node_document["Uploaded Documents<br/>[Document.js]"]
  node_evaluation["Readiness Evaluation"]
  node_business["Business Record<br/>[Business.js]"]
  node_informationrecord["Information Records"]
end

node_user(("Business User"))
node_api["Backend API"]
node_mongodb[("MongoDB")]

node_user -->|"uses"| node_frontend
node_frontend -->|"opens"| node_profileui
node_frontend -->|"opens"| node_information
node_frontend -->|"opens"| node_docui
node_profileui -.->|"fetches profile"| node_api
node_information -.->|"uses records API"| node_api
node_docui -.->|"uploads and checks"| node_api
node_api -.->|"loads templates"| node_templates
node_api -.->|"stores files"| node_document
node_api -.->|"stores results"| node_evaluation
node_api -.->|"stores profiles"| node_business
node_api -.->|"stores facts"| node_informationrecord
node_templates -.->|"persists"| node_mongodb
node_document -.->|"persists"| node_mongodb
node_evaluation -.->|"persists"| node_mongodb
node_business -.->|"persists"| node_mongodb
node_informationrecord -.->|"persists"| node_mongodb
node_information -->|"embeds"| node_approvalui
node_approvalui -->|"uses"| node_approvaldata
node_approvalui -->|"manages status"| node_status
node_status -->|"checks prerequisites"| node_dependency
node_status -->|"creates alerts"| node_notifications
node_status -->|"reads and writes"| node_tracking
node_notifications -->|"reads and writes"| node_notificationstore
node_approvalui -->|"renders approvals"| node_approvalcatalog

click node_frontend "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/document-vault.js"
click node_profileui "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/profile.js"
click node_information "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/information-vault.js"
click node_docui "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/document-vault.js"
click node_templates "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/models/DocumentTemplate.js"
click node_document "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/models/Document.js"
click node_evaluation "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/models/ReadinessEvaluation.js"
click node_business "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/models/Business.js"
click node_informationrecord "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/models/InformationRecord.js"
click node_approvalui "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/approval-tracking.js"
click node_approvaldata "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/approvalData.js"
click node_status "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/approvalStatusService.js"
click node_dependency "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/dependencyEngine.js"
click node_notifications "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/notificationService.js"
click node_tracking "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/approvalStatusService.js"
click node_notificationstore "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/notificationService.js"
click node_approvalcatalog "https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/application.js"

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_frontend,node_profileui,node_information,node_user toneBlue
class node_docui,node_templates,node_mongodb toneAmber
class node_approvalui,node_approvaldata,node_status,node_dependency,node_notifications,node_tracking,node_notificationstore,node_approvalcatalog,node_api toneMint
class node_document,node_evaluation,node_business,node_informationrecord toneRose
```

## Components

### Business Information

- [Vault Interface](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/document-vault.js): `frontend/html/JS/document-vault.js`
- [Business Profile](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/profile.js): `frontend/html/JS/profile.js`
- [Information Vault](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/information-vault.js): `frontend/html/JS/information-vault.js`

### Document Readiness

- [Document Vault](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/document-vault.js): `frontend/html/JS/document-vault.js`
- [Document Templates](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/models/DocumentTemplate.js): `models/DocumentTemplate.js`

### Approval Tracking

- [Approval Dashboard](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/approval-tracking.js): `frontend/html/JS/approval-tracking.js`
- [Approval Data](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/approvalData.js): `frontend/html/JS/approvalData.js`
- [Status Service](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/approvalStatusService.js): `frontend/html/JS/approvalStatusService.js`
- [Dependency Rules](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/dependencyEngine.js): `frontend/html/JS/dependencyEngine.js`
- [Notifications](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/notificationService.js): `frontend/html/JS/notificationService.js`
- [Approval Tracking Data](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/approvalStatusService.js): `frontend/html/JS/approvalStatusService.js`
- [Notification Data](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/notificationService.js): `frontend/html/JS/notificationService.js`
- [Approval Catalog](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/frontend/html/JS/application.js): `frontend/html/JS/application.js`

### Data Models

- [Uploaded Documents](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/models/Document.js): `models/Document.js`
- [Readiness Evaluation](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/models/ReadinessEvaluation.js): `models/ReadinessEvaluation.js`
- [Business Record](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/models/Business.js): `models/Business.js`
- [Information Records](https://github.com/yashawasthiawasthicse25-droid/codex/blob/main/models/InformationRecord.js): `models/InformationRecord.js`

### Other components

- **Business User**
- **Backend API**
- **MongoDB**

## Connections

- Business User → Vault Interface: uses
- Vault Interface → Business Profile: opens
- Vault Interface → Information Vault: opens
- Vault Interface → Document Vault: opens
- Business Profile → Backend API: fetches profile
- Information Vault → Backend API: uses records API
- Document Vault → Backend API: uploads and checks
- Backend API → Document Templates: loads templates
- Backend API → Uploaded Documents: stores files
- Backend API → Readiness Evaluation: stores results
- Backend API → Business Record: stores profiles
- Backend API → Information Records: stores facts
- Document Templates → MongoDB: persists
- Uploaded Documents → MongoDB: persists
- Readiness Evaluation → MongoDB: persists
- Business Record → MongoDB: persists
- Information Records → MongoDB: persists
- Information Vault → Approval Dashboard: embeds
- Approval Dashboard → Approval Data: uses
- Approval Dashboard → Status Service: manages status
- Status Service → Dependency Rules: checks prerequisites
- Status Service → Notifications: creates alerts
- Status Service → Approval Tracking Data: reads and writes
- Notifications → Notification Data: reads and writes
- Approval Dashboard → Approval Catalog: renders approvals
