# razwantanvir/forktree-repo-platform architecture

> Architecture diagram of the GitHub repository razwantanvir/forktree-repo-platform, 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/razwantanvir/forktree-repo-platform
- Repository: https://github.com/razwantanvir/forktree-repo-platform

## Overview

BlockchainForkTree is a multi-chain fork registry and healthcare-data platform with a web dashboard. Users inspect chains and records, search the fork tree with BFS or DFS, manage governance and consent, and create new forks. The server routes dashboard requests to the fork-tree service, which uses a JSON-RPC contract client against the simulated multi-chain engine. Deployment and seeding establish the repository and data-chain contracts and initial topology. Governance, patient records, and consent are documented capabilities; some implementation details are unsampled, so their internal links are not expanded.

Main entry points: [`services/forkTreeService.js`](https://github.com/razwantanvir/forktree-repo-platform/blob/main/services/forkTreeService.js) (Fork tree service), [`services/contractClient.js`](https://github.com/razwantanvir/forktree-repo-platform/blob/main/services/contractClient.js) (Contract client), [`engine/chainEngine.js`](https://github.com/razwantanvir/forktree-repo-platform/blob/main/engine/chainEngine.js) (JSON-RPC engine), [`server.js`](https://github.com/razwantanvir/forktree-repo-platform/blob/main/server.js) (API server)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Dashboard and API"]
  node_dashboard["Web dashboard<br/>[app.js]"]
  node_api["API server<br/>[server.js]"]
end

subgraph group_domain["Fork Tree Services"]
  node_service["Fork tree service<br/>[forkTreeService.js]"]
  node_traversal["BFS / DFS search<br/>[forkTreeService.js]"]
  node_governance["Governance and consent<br/>[forkTreeService.js]"]
  node_records["Patient records<br/>[forkTreeService.js]"]
  node_deploy["Contract deployment<br/>[deployContracts.js]"]
  node_seed["Topology and data seeding<br/>[seedForkTree.js]"]
  node_cli["Search CLI<br/>[searchData.js]"]
end

subgraph group_chain["Multi-Chain Runtime"]
  node_rpcclient["Contract client<br/>[contractClient.js]"]
  node_engine["JSON-RPC engine<br/>[chainEngine.js]"]
end

subgraph group_contracts["Contracts and State"]
  node_artifacts["Contract artifacts"]
  node_registry["Fork registry contract<br/>[StoreForkEvent.sol]"]
  node_data_contract["Chain data contract<br/>[BlockData.sol]"]
  node_governance_contract["Consortium governance"]
  node_topology["Network configuration"]
  node_stakeholders["Stakeholder configuration"]
  node_deployment_state["Deployment addresses<br/>[deployments.json]"]
  node_chain_state[("Persisted chain state<br/>[chainEngine.js]")]
end

node_user(("Dashboard user"))
node_rpc_network{{"JSON-RPC endpoints"}}

node_user -->|"uses"| node_dashboard
node_dashboard -->|"requests API"| node_api
node_api -->|"routes requests"| node_service
node_api -->|"starts nodes"| node_engine
node_api -->|"invokes deployment"| node_deploy
node_api -->|"invokes seeding"| node_seed
node_service -->|"calls contracts"| node_rpcclient
node_service -->|"performs traversal"| node_traversal
node_service -->|"manages proposals"| node_governance
node_service -->|"reads and writes"| node_records
node_cli -->|"runs search"| node_service
node_deploy -->|"deploys through"| node_rpcclient
node_seed -->|"writes through"| node_rpcclient
node_deploy -->|"uses ABI"| node_artifacts
node_seed -->|"uses ABI"| node_artifacts
node_seed -->|"loads network"| node_topology
node_deploy -->|"loads network"| node_topology
node_rpcclient -->|"sends JSON-RPC"| node_rpc_network
node_engine -->|"serves endpoints"| node_rpc_network
node_engine -->|"uses interfaces"| node_artifacts
node_engine -->|"loads topology"| node_topology
node_engine -->|"loads roles"| node_stakeholders
node_engine -->|"persists state"| node_chain_state
node_rpcclient -.->|"accesses registry"| node_registry
node_rpcclient -.->|"accesses chain data"| node_data_contract
node_rpcclient -.->|"accesses governance"| node_governance_contract
node_seed -->|"reads addresses"| node_deployment_state
node_service -->|"reads addresses"| node_deployment_state

click node_dashboard "https://github.com/razwantanvir/forktree-repo-platform/blob/main/public/app.js"
click node_api "https://github.com/razwantanvir/forktree-repo-platform/blob/main/server.js"
click node_service "https://github.com/razwantanvir/forktree-repo-platform/blob/main/services/forkTreeService.js"
click node_traversal "https://github.com/razwantanvir/forktree-repo-platform/blob/main/services/forkTreeService.js"
click node_governance "https://github.com/razwantanvir/forktree-repo-platform/blob/main/services/forkTreeService.js"
click node_records "https://github.com/razwantanvir/forktree-repo-platform/blob/main/services/forkTreeService.js"
click node_deploy "https://github.com/razwantanvir/forktree-repo-platform/blob/main/scripts/deployContracts.js"
click node_seed "https://github.com/razwantanvir/forktree-repo-platform/blob/main/scripts/seedForkTree.js"
click node_cli "https://github.com/razwantanvir/forktree-repo-platform/blob/main/scripts/searchData.js"
click node_rpcclient "https://github.com/razwantanvir/forktree-repo-platform/blob/main/services/contractClient.js"
click node_engine "https://github.com/razwantanvir/forktree-repo-platform/blob/main/engine/chainEngine.js"
click node_artifacts "https://github.com/razwantanvir/forktree-repo-platform/blob/main/contracts/compiledArtifacts.js"
click node_registry "https://github.com/razwantanvir/forktree-repo-platform/blob/main/contracts/StoreForkEvent.sol"
click node_data_contract "https://github.com/razwantanvir/forktree-repo-platform/blob/main/contracts/BlockData.sol"
click node_governance_contract "https://github.com/razwantanvir/forktree-repo-platform/blob/main/contracts/ConsortiumGovernance.sol"
click node_topology "https://github.com/razwantanvir/forktree-repo-platform/blob/main/config/networkTopology.json"
click node_stakeholders "https://github.com/razwantanvir/forktree-repo-platform/blob/main/config/consortiumStakeholders.json"
click node_deployment_state "https://github.com/razwantanvir/forktree-repo-platform/blob/main/config/deployments.json"
click node_chain_state "https://github.com/razwantanvir/forktree-repo-platform/blob/main/engine/chainEngine.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_dashboard,node_api,node_user toneBlue
class node_service,node_traversal,node_governance,node_records,node_deploy,node_seed,node_cli toneAmber
class node_rpcclient,node_engine toneMint
class node_artifacts,node_registry,node_data_contract,node_governance_contract,node_topology,node_stakeholders,node_deployment_state,node_chain_state toneRose
class node_rpc_network toneIndigo
```

## Components

### Dashboard and API

- [Web dashboard](https://github.com/razwantanvir/forktree-repo-platform/blob/main/public/app.js): `public/app.js`
- [API server](https://github.com/razwantanvir/forktree-repo-platform/blob/main/server.js): `server.js`

### Fork Tree Services

- [Fork tree service](https://github.com/razwantanvir/forktree-repo-platform/blob/main/services/forkTreeService.js): `services/forkTreeService.js`
- [BFS / DFS search](https://github.com/razwantanvir/forktree-repo-platform/blob/main/services/forkTreeService.js): `services/forkTreeService.js`
- [Governance and consent](https://github.com/razwantanvir/forktree-repo-platform/blob/main/services/forkTreeService.js): `services/forkTreeService.js`
- [Patient records](https://github.com/razwantanvir/forktree-repo-platform/blob/main/services/forkTreeService.js): `services/forkTreeService.js`
- [Contract deployment](https://github.com/razwantanvir/forktree-repo-platform/blob/main/scripts/deployContracts.js): `scripts/deployContracts.js`
- [Topology and data seeding](https://github.com/razwantanvir/forktree-repo-platform/blob/main/scripts/seedForkTree.js): `scripts/seedForkTree.js`
- [Search CLI](https://github.com/razwantanvir/forktree-repo-platform/blob/main/scripts/searchData.js): `scripts/searchData.js`

### Multi-Chain Runtime

- [Contract client](https://github.com/razwantanvir/forktree-repo-platform/blob/main/services/contractClient.js): `services/contractClient.js`
- [JSON-RPC engine](https://github.com/razwantanvir/forktree-repo-platform/blob/main/engine/chainEngine.js): `engine/chainEngine.js`

### Contracts and State

- [Contract artifacts](https://github.com/razwantanvir/forktree-repo-platform/blob/main/contracts/compiledArtifacts.js): `contracts/compiledArtifacts.js`
- [Fork registry contract](https://github.com/razwantanvir/forktree-repo-platform/blob/main/contracts/StoreForkEvent.sol): `contracts/StoreForkEvent.sol`
- [Chain data contract](https://github.com/razwantanvir/forktree-repo-platform/blob/main/contracts/BlockData.sol): `contracts/BlockData.sol`
- [Consortium governance](https://github.com/razwantanvir/forktree-repo-platform/blob/main/contracts/ConsortiumGovernance.sol): `contracts/ConsortiumGovernance.sol`
- [Network configuration](https://github.com/razwantanvir/forktree-repo-platform/blob/main/config/networkTopology.json): `config/networkTopology.json`
- [Stakeholder configuration](https://github.com/razwantanvir/forktree-repo-platform/blob/main/config/consortiumStakeholders.json): `config/consortiumStakeholders.json`
- [Deployment addresses](https://github.com/razwantanvir/forktree-repo-platform/blob/main/config/deployments.json): `config/deployments.json`
- [Persisted chain state](https://github.com/razwantanvir/forktree-repo-platform/blob/main/engine/chainEngine.js): `engine/chainEngine.js`

### Other components

- **Dashboard user**
- **JSON-RPC endpoints**

## Connections

- Dashboard user → Web dashboard: uses (evidence: `README.md`)
- Web dashboard → API server: requests API (evidence: `public/app.js`)
- API server → Fork tree service: routes requests (evidence: `server.js`)
- API server → JSON-RPC engine: starts nodes (evidence: `server.js`)
- API server → Contract deployment: invokes deployment (evidence: `server.js`)
- API server → Topology and data seeding: invokes seeding (evidence: `server.js`)
- Fork tree service → Contract client: calls contracts (evidence: `services/forkTreeService.js`)
- Fork tree service → BFS / DFS search: performs traversal (evidence: `README.md`)
- Fork tree service → Governance and consent: manages proposals (evidence: `server.js`)
- Fork tree service → Patient records: reads and writes (evidence: `server.js`)
- Search CLI → Fork tree service: runs search (evidence: `scripts/searchData.js`)
- Contract deployment → Contract client: deploys through (evidence: `scripts/deployContracts.js`)
- Topology and data seeding → Contract client: writes through (evidence: `scripts/seedForkTree.js`)
- Contract deployment → Contract artifacts: uses ABI (evidence: `scripts/deployContracts.js`)
- Topology and data seeding → Contract artifacts: uses ABI (evidence: `scripts/seedForkTree.js`)
- Topology and data seeding → Network configuration: loads network (evidence: `scripts/seedForkTree.js`)
- Contract deployment → Network configuration: loads network (evidence: `scripts/deployContracts.js`)
- Contract client → JSON-RPC endpoints: sends JSON-RPC (evidence: `services/contractClient.js`)
- JSON-RPC engine → JSON-RPC endpoints: serves endpoints (evidence: `README.md`)
- JSON-RPC engine → Contract artifacts: uses interfaces (evidence: `engine/chainEngine.js`)
- JSON-RPC engine → Network configuration: loads topology (evidence: `engine/chainEngine.js`)
- JSON-RPC engine → Stakeholder configuration: loads roles (evidence: `engine/chainEngine.js`)
- JSON-RPC engine → Persisted chain state: persists state (evidence: `README.md`)
- Contract client → Fork registry contract: accesses registry
- Contract client → Chain data contract: accesses chain data
- Contract client → Consortium governance: accesses governance
- Topology and data seeding → Deployment addresses: reads addresses (evidence: `scripts/seedForkTree.js`)
- Fork tree service → Deployment addresses: reads addresses (evidence: `services/forkTreeService.js`)
