# mtaha-23/scrumupdate architecture

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

- Interactive diagram: https://gitdiagram.com/mtaha-23/scrumupdate
- Repository: https://github.com/mtaha-23/scrumupdate

## Overview

ScrumUpdate combines a web workspace and Teams bot with services for Jira synchronization, worklog management, AI-assisted scrum reporting, and team analytics. A typical flow starts with a team member or manager using the Angular application or Teams; backend services use Jira and calendar data, persist synchronized data in PostgreSQL, and provide dashboards or generated summaries. The README documents the broad service relationships; source excerpts are partial, so links between individual unsampled modules are not asserted.

Main entry points: [`src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile`](https://github.com/mtaha-23/scrumupdate/tree/main/src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile) (Business API), [`src/Kgs/KhojiGenAIServer/Data/KGSDbContext.cs`](https://github.com/mtaha-23/scrumupdate/blob/main/src/Kgs/KhojiGenAIServer/Data/KGSDbContext.cs) (PostgreSQL), [`src/khoji-angular/angular/src/app`](https://github.com/mtaha-23/scrumupdate/tree/main/src/khoji-angular/angular/src/app) (Angular workspace), [`src/khoji-analytics/backend/app/main.py`](https://github.com/mtaha-23/scrumupdate/blob/main/src/khoji-analytics/backend/app/main.py) (Analytics API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User experience"]
  node_angular["Angular workspace"]
  node_teamsbot["Teams bot"]
  node_analyticsui["Analytics dashboards"]
end

subgraph group_business["Business services"]
  node_javaapi["Business API"]
  node_worklogs["Worklog services"]
  node_admin["Admin services<br/>[AdminService.java]"]
  node_integrations["Calendar integration"]
  node_syncservice["Sync coordinator<br/>[SyncService.java]"]
end

subgraph group_ai["AI and analytics"]
  node_kgs["AI server"]
  node_workflow["AI workflows<br/>[WorkflowEngine.cs]"]
  node_kia["Scrum AI features"]
  node_analyticsapi["Analytics API<br/>[main.py]"]
  node_analyticsengine["Analytics engine<br/>[engine.py]"]
end

subgraph group_sync["Integration and sync"]
  node_kss["Jira sync service"]
  node_tenantmanager["Tenant manager"]
end

subgraph group_data["Data platform"]
  node_postgres[("PostgreSQL<br/>[KGSDbContext.cs]")]
end

node_member(("Team member"))
node_leader(("Team leader"))
node_jira["Jira"]
node_outlook["Outlook calendar"]
node_msteams["Microsoft Teams"]
node_llm["LLM provider"]

node_member -->|"uses"| node_angular
node_leader -->|"uses"| node_angular
node_member -->|"uses"| node_msteams
node_angular -.->|"requests"| node_javaapi
node_javaapi -.->|"manages"| node_worklogs
node_javaapi -.->|"manages"| node_admin
node_javaapi -.->|"manages"| node_integrations
node_javaapi -.->|"coordinates"| node_syncservice
node_teamsbot -->|"interacts"| node_msteams
node_teamsbot -->|"supports submissions"| node_worklogs
node_teamsbot -.->|"serves summaries"| node_kia
node_syncservice -->|"submits sync requests"| node_kss
node_kss -->|"syncs data"| node_jira
node_integrations -->|"fetches calendar data"| node_outlook
node_tenantmanager -.->|"manages tenant schemas"| node_postgres
node_kss -->|"stores synchronized data"| node_postgres
node_javaapi -.->|"persists business data"| node_postgres
node_worklogs -.->|"provides worklog data"| node_analyticsapi
node_postgres -->|"supplies analytics data"| node_analyticsapi
node_analyticsapi -->|"dispatches analytics"| node_analyticsengine
node_analyticsengine -->|"queries datasets"| node_postgres
node_analyticsengine -->|"requests contextual insights"| node_llm
node_workflow -->|"requests completions"| node_llm
node_kia -.->|"uses workflows"| node_workflow
node_angular -->|"renders"| node_analyticsui
node_analyticsapi -->|"provides metrics"| node_analyticsui

click node_angular "https://github.com/mtaha-23/scrumupdate/tree/main/src/khoji-angular/angular/src/app"
click node_teamsbot "https://github.com/mtaha-23/scrumupdate/tree/main/src/Kgs/KhojiGenAIServer/Chat/Teams"
click node_javaapi "https://github.com/mtaha-23/scrumupdate/tree/main/src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile"
click node_worklogs "https://github.com/mtaha-23/scrumupdate/blob/main/src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/business/WorkLogService.java"
click node_admin "https://github.com/mtaha-23/scrumupdate/blob/main/src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/AdminService.java"
click node_integrations "https://github.com/mtaha-23/scrumupdate/blob/main/src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/business/integration/IntegrationsService.java"
click node_syncservice "https://github.com/mtaha-23/scrumupdate/blob/main/src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/business/instance/SyncService.java"
click node_kgs "https://github.com/mtaha-23/scrumupdate/tree/main/src/Kgs/KhojiGenAIServer"
click node_workflow "https://github.com/mtaha-23/scrumupdate/blob/main/src/Kgs/KhojiGenAIServer/Analytics/WorkflowEngine.cs"
click node_kia "https://github.com/mtaha-23/scrumupdate/tree/main/src/Kgs/KhojiGenAIServer/Features/Kia"
click node_analyticsapi "https://github.com/mtaha-23/scrumupdate/blob/main/src/khoji-analytics/backend/app/main.py"
click node_analyticsengine "https://github.com/mtaha-23/scrumupdate/blob/main/src/khoji-analytics/backend/app/core/engine.py"
click node_analyticsui "https://github.com/mtaha-23/scrumupdate/tree/main/src/khoji-angular/angular/src/app/analysis"
click node_kss "https://github.com/mtaha-23/scrumupdate/tree/main/src/kss"
click node_tenantmanager "https://github.com/mtaha-23/scrumupdate/blob/main/src/kss/multi_tenant_manager.py"
click node_postgres "https://github.com/mtaha-23/scrumupdate/blob/main/src/Kgs/KhojiGenAIServer/Data/KGSDbContext.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_angular,node_teamsbot,node_analyticsui toneBlue
class node_javaapi,node_worklogs,node_admin,node_integrations,node_syncservice toneAmber
class node_kgs,node_workflow,node_kia,node_analyticsapi,node_analyticsengine toneMint
class node_kss,node_tenantmanager toneRose
class node_postgres,node_member,node_leader,node_jira,node_outlook,node_msteams,node_llm toneIndigo
```

## Components

### User experience

- [Angular workspace](https://github.com/mtaha-23/scrumupdate/tree/main/src/khoji-angular/angular/src/app): `src/khoji-angular/angular/src/app`
- [Teams bot](https://github.com/mtaha-23/scrumupdate/tree/main/src/Kgs/KhojiGenAIServer/Chat/Teams): `src/Kgs/KhojiGenAIServer/Chat/Teams`
- [Analytics dashboards](https://github.com/mtaha-23/scrumupdate/tree/main/src/khoji-angular/angular/src/app/analysis): `src/khoji-angular/angular/src/app/analysis`

### Business services

- [Business API](https://github.com/mtaha-23/scrumupdate/tree/main/src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile): `src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile`
- [Worklog services](https://github.com/mtaha-23/scrumupdate/blob/main/src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/business/WorkLogService.java): `src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/business/WorkLogService.java`
- [Admin services](https://github.com/mtaha-23/scrumupdate/blob/main/src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/AdminService.java): `src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/AdminService.java`
- [Calendar integration](https://github.com/mtaha-23/scrumupdate/blob/main/src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/business/integration/IntegrationsService.java): `src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/business/integration/IntegrationsService.java`
- [Sync coordinator](https://github.com/mtaha-23/scrumupdate/blob/main/src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/business/instance/SyncService.java): `src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/business/instance/SyncService.java`

### AI and analytics

- [AI server](https://github.com/mtaha-23/scrumupdate/tree/main/src/Kgs/KhojiGenAIServer): `src/Kgs/KhojiGenAIServer`
- [AI workflows](https://github.com/mtaha-23/scrumupdate/blob/main/src/Kgs/KhojiGenAIServer/Analytics/WorkflowEngine.cs): `src/Kgs/KhojiGenAIServer/Analytics/WorkflowEngine.cs`
- [Scrum AI features](https://github.com/mtaha-23/scrumupdate/tree/main/src/Kgs/KhojiGenAIServer/Features/Kia): `src/Kgs/KhojiGenAIServer/Features/Kia`
- [Analytics API](https://github.com/mtaha-23/scrumupdate/blob/main/src/khoji-analytics/backend/app/main.py): `src/khoji-analytics/backend/app/main.py`
- [Analytics engine](https://github.com/mtaha-23/scrumupdate/blob/main/src/khoji-analytics/backend/app/core/engine.py): `src/khoji-analytics/backend/app/core/engine.py`

### Integration and sync

- [Jira sync service](https://github.com/mtaha-23/scrumupdate/tree/main/src/kss): `src/kss`
- [Tenant manager](https://github.com/mtaha-23/scrumupdate/blob/main/src/kss/multi_tenant_manager.py): `src/kss/multi_tenant_manager.py`

### Data platform

- [PostgreSQL](https://github.com/mtaha-23/scrumupdate/blob/main/src/Kgs/KhojiGenAIServer/Data/KGSDbContext.cs): `src/Kgs/KhojiGenAIServer/Data/KGSDbContext.cs`

### Other components

- **Team member**
- **Team leader**
- **Jira**
- **Outlook calendar**
- **Microsoft Teams**
- **LLM provider**

## Connections

- Team member → Angular workspace: uses
- Team leader → Angular workspace: uses
- Team member → Microsoft Teams: uses
- Angular workspace → Business API: requests
- Business API → Worklog services: manages (evidence: `src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/business/WorkLogService.java`)
- Business API → Admin services: manages (evidence: `src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/AdminService.java`)
- Business API → Calendar integration: manages (evidence: `src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/business/integration/IntegrationsService.java`)
- Business API → Sync coordinator: coordinates
- Teams bot → Microsoft Teams: interacts
- Teams bot → Worklog services: supports submissions
- Teams bot → Scrum AI features: serves summaries
- Sync coordinator → Jira sync service: submits sync requests (evidence: `src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/business/instance/SyncService.java`)
- Jira sync service → Jira: syncs data
- Calendar integration → Outlook calendar: fetches calendar data (evidence: `src/khoji-business-server/khoji_agile_server/src/main/java/uk/co/uworx/khoji/agile/service/business/integration/IntegrationsService.java`)
- Tenant manager → PostgreSQL: manages tenant schemas
- Jira sync service → PostgreSQL: stores synchronized data
- Business API → PostgreSQL: persists business data
- Worklog services → Analytics API: provides worklog data
- PostgreSQL → Analytics API: supplies analytics data
- Analytics API → Analytics engine: dispatches analytics (evidence: `src/khoji-analytics/backend/app/main.py`)
- Analytics engine → PostgreSQL: queries datasets
- Analytics engine → LLM provider: requests contextual insights
- AI workflows → LLM provider: requests completions (evidence: `src/Kgs/KhojiGenAIServer/Analytics/WorkflowEngine.cs`)
- Scrum AI features → AI workflows: uses workflows
- Angular workspace → Analytics dashboards: renders
- Analytics API → Analytics dashboards: provides metrics
