# mujeebmohammed-gits/enterprise-pm-agent architecture

> Architecture diagram of the GitHub repository mujeebmohammed-gits/enterprise-pm-agent, 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/mujeebmohammed-gits/enterprise-pm-agent
- Repository: https://github.com/mujeebmohammed-gits/enterprise-pm-agent

## Overview

This repository is an early-stage Enterprise PM Agent: its implemented user-to-result path is a client calling the FastAPI service to start or transition a workflow and receive instance or transition data. The workflow engine currently keeps definitions and instances in memory; the storage abstraction exists separately, and the API initializes an unused task store. The dashboard source is a starter screen, not the documented management UI. AI, external-system adapters, mobile, widgets, and the broader security and reporting capabilities are described in the README but are not evidenced by the sampled implementation, so their wiring is omitted.

Main entry points: [`src/api/main.py`](https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/src/api/main.py) (FastAPI endpoints), [`src/core/workflow/engine.py`](https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/src/core/workflow/engine.py) (Workflow engine), [`persistence/storage.py`](https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/persistence/storage.py) (Storage adapters), [`config/settings.py`](https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/config/settings.py) (Runtime settings)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API service"]
  node_api["FastAPI endpoints<br/>[main.py]"]
  node_taskstore[("Task storage instance<br/>[main.py]")]
end

subgraph group_workflow["Workflow runtime"]
  node_engine["Workflow engine<br/>[engine.py]"]
  node_instances[("In-memory workflow state<br/>[engine.py]")]
end

subgraph group_state["State and configuration"]
  node_storage["Storage adapters<br/>[storage.py]"]
  node_settings["Runtime settings<br/>[settings.py]"]
end

subgraph group_client["Client"]
  node_dashboard["Starter dashboard<br/>[App.js]"]
end

node_caller(("API user"))

node_caller -->|"calls REST endpoints"| node_api
node_api -->|"starts or transitions"| node_engine
node_api -->|"reads instance state"| node_engine
node_engine -->|"updates workflow state"| node_instances
node_api -->|"creates task adapter"| node_storage
node_storage -->|"instantiates memory store"| node_taskstore
node_api -->|"reads configuration"| node_settings

click node_api "https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/src/api/main.py"
click node_engine "https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/src/core/workflow/engine.py"
click node_instances "https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/src/core/workflow/engine.py"
click node_storage "https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/persistence/storage.py"
click node_taskstore "https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/src/api/main.py"
click node_settings "https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/config/settings.py"
click node_dashboard "https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/admin-dashboard/src/App.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_api,node_taskstore,node_caller toneBlue
class node_engine,node_instances toneAmber
class node_storage,node_settings toneMint
class node_dashboard toneRose
```

## Components

### API service

- [FastAPI endpoints](https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/src/api/main.py): `src/api/main.py`
- [Task storage instance](https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/src/api/main.py): `src/api/main.py`

### Workflow runtime

- [Workflow engine](https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/src/core/workflow/engine.py): `src/core/workflow/engine.py`
- [In-memory workflow state](https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/src/core/workflow/engine.py): `src/core/workflow/engine.py`

### State and configuration

- [Storage adapters](https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/persistence/storage.py): `persistence/storage.py`
- [Runtime settings](https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/config/settings.py): `config/settings.py`

### Client

- [Starter dashboard](https://github.com/mujeebmohammed-gits/enterprise-pm-agent/blob/main/admin-dashboard/src/App.js): `admin-dashboard/src/App.js`

### Other components

- **API user**

## Connections

- API user → FastAPI endpoints: calls REST endpoints
- FastAPI endpoints → Workflow engine: starts or transitions
- FastAPI endpoints → Workflow engine: reads instance state
- Workflow engine → In-memory workflow state: updates workflow state
- FastAPI endpoints → Storage adapters: creates task adapter
- Storage adapters → Task storage instance: instantiates memory store
- FastAPI endpoints → Runtime settings: reads configuration
