# mjunhaochen/devops architecture

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

- Interactive diagram: https://gitdiagram.com/mjunhaochen/devops
- Repository: https://github.com/mjunhaochen/devops

## Overview

This is a Scrum/DevOps project-management domain prototype. Its main user-facing lifecycle is backlog work moving through task and test states within a sprint, with a separate pipeline model for source, package, build, test, analysis, and deployment actions. Other documented branches cover discussion, team and project domain concepts, reporting, and notifications. The tree and README support these capabilities, but sampled source is limited; links are shown only where documented or directly evidenced, not as a presumed end-to-end application flow.

Main entry points: [`DevOps/Adapters/IMediaAdapter.cs`](https://github.com/mjunhaochen/devops/blob/main/DevOps/Adapters/IMediaAdapter.cs) (Media adapters), [`DevOps/Domain/Sprint.cs`](https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/Sprint.cs) (Sprint lifecycle), [`DevOps/Domain/Project.cs`](https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/Project.cs) (Project), [`DevOps/Domain/BackLogItem.cs`](https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/BackLogItem.cs) (Backlog items)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_planning["Scrum planning"]
  node_project["Project<br/>[Project.cs]"]
  node_sprint["Sprint lifecycle<br/>[Sprint.cs]"]
  node_sprint_states["Sprint states"]
  node_backlog["Backlog items<br/>[BackLogItem.cs]"]
  node_backlog_states["Backlog states"]
  node_team["Team and roles<br/>[TeamComposition.cs]"]
  node_strategies["Role behaviours"]
end

subgraph group_delivery["Pipeline actions"]
  node_pipeline["Pipeline model<br/>[Pipeline.cs]"]
  node_factory["Action factory<br/>[ActionFactory.cs]"]
  node_actions["Pipeline actions"]
  node_visitor["Action visitor<br/>[ActionVisitor.cs]"]
end

subgraph group_collaboration["Collaboration"]
  node_discussion["Discussion forum"]
  node_activity["Activity messages<br/>[Activity.cs]"]
end

subgraph group_reporting["Reports"]
  node_report_data["Sprint metrics<br/>[BurndownChart.cs]"]
  node_report["Report composition"]
end

subgraph group_integration["Notifications"]
  node_observer["Notification observers"]
  node_media_adapter["Media adapters<br/>[IMediaAdapter.cs]"]
end

node_user(("User"))
node_email(("Email service"))
node_slack(("Slack service"))
node_sms(("SMS service"))

node_user -->|"manages"| node_project
node_project -->|"organizes"| node_sprint
node_user -->|"updates"| node_backlog
node_backlog -->|"delegates state"| node_backlog_states
node_user -->|"advances"| node_sprint
node_sprint -->|"delegates state"| node_sprint_states
node_team -->|"uses behaviours"| node_strategies
node_user -->|"configures actions"| node_pipeline
node_pipeline -->|"creates actions"| node_factory
node_factory -->|"creates"| node_actions
node_actions -->|"accepts visits"| node_visitor
node_user -->|"collaborates"| node_discussion
node_user -->|"requests"| node_report
node_report -->|"formats metrics"| node_report_data
node_observer -.->|"uses adapters"| node_media_adapter
node_media_adapter -.->|"sends notification"| node_email
node_media_adapter -.->|"sends notification"| node_slack
node_media_adapter -.->|"sends notification"| node_sms

click node_project "https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/Project.cs"
click node_sprint "https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/Sprint.cs"
click node_sprint_states "https://github.com/mjunhaochen/devops/tree/main/DevOps/States/SprintState"
click node_backlog "https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/BackLogItem.cs"
click node_backlog_states "https://github.com/mjunhaochen/devops/tree/main/DevOps/States/BacklogState"
click node_team "https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/TeamComposition.cs"
click node_strategies "https://github.com/mjunhaochen/devops/tree/main/DevOps/Strategies"
click node_pipeline "https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/Pipeline.cs"
click node_factory "https://github.com/mjunhaochen/devops/blob/main/DevOps/Factories/ActionFactory.cs"
click node_actions "https://github.com/mjunhaochen/devops/tree/main/DevOps/Factories"
click node_visitor "https://github.com/mjunhaochen/devops/blob/main/DevOps/Visitors/ActionVisitor.cs"
click node_discussion "https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/DiscussionThread.cs"
click node_activity "https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/Activity.cs"
click node_report_data "https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/BurndownChart.cs"
click node_report "https://github.com/mjunhaochen/devops/tree/main/DevOps/Decorators"
click node_observer "https://github.com/mjunhaochen/devops/tree/main/DevOps/Observers"
click node_media_adapter "https://github.com/mjunhaochen/devops/blob/main/DevOps/Adapters/IMediaAdapter.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_project,node_sprint,node_sprint_states,node_backlog,node_backlog_states,node_team,node_strategies,node_user toneBlue
class node_pipeline,node_factory,node_actions,node_visitor toneAmber
class node_discussion,node_activity toneMint
class node_report_data,node_report toneRose
class node_observer,node_media_adapter,node_email,node_slack,node_sms toneIndigo
```

## Components

### Scrum planning

- [Project](https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/Project.cs): `DevOps/Domain/Project.cs`
- [Sprint lifecycle](https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/Sprint.cs): `DevOps/Domain/Sprint.cs`
- [Sprint states](https://github.com/mjunhaochen/devops/tree/main/DevOps/States/SprintState): `DevOps/States/SprintState`
- [Backlog items](https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/BackLogItem.cs): `DevOps/Domain/BackLogItem.cs`
- [Backlog states](https://github.com/mjunhaochen/devops/tree/main/DevOps/States/BacklogState): `DevOps/States/BacklogState`
- [Team and roles](https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/TeamComposition.cs): `DevOps/Domain/TeamComposition.cs`
- [Role behaviours](https://github.com/mjunhaochen/devops/tree/main/DevOps/Strategies): `DevOps/Strategies`

### Pipeline actions

- [Pipeline model](https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/Pipeline.cs): `DevOps/Domain/Pipeline.cs`
- [Action factory](https://github.com/mjunhaochen/devops/blob/main/DevOps/Factories/ActionFactory.cs): `DevOps/Factories/ActionFactory.cs`
- [Pipeline actions](https://github.com/mjunhaochen/devops/tree/main/DevOps/Factories): `DevOps/Factories`
- [Action visitor](https://github.com/mjunhaochen/devops/blob/main/DevOps/Visitors/ActionVisitor.cs): `DevOps/Visitors/ActionVisitor.cs`

### Collaboration

- [Discussion forum](https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/DiscussionThread.cs): `DevOps/Domain/DiscussionThread.cs`
- [Activity messages](https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/Activity.cs): `DevOps/Domain/Activity.cs`

### Reports

- [Sprint metrics](https://github.com/mjunhaochen/devops/blob/main/DevOps/Domain/BurndownChart.cs): `DevOps/Domain/BurndownChart.cs`
- [Report composition](https://github.com/mjunhaochen/devops/tree/main/DevOps/Decorators): `DevOps/Decorators`

### Notifications

- [Notification observers](https://github.com/mjunhaochen/devops/tree/main/DevOps/Observers): `DevOps/Observers`
- [Media adapters](https://github.com/mjunhaochen/devops/blob/main/DevOps/Adapters/IMediaAdapter.cs): `DevOps/Adapters/IMediaAdapter.cs`

### Other components

- **User**
- **Email service**
- **Slack service**
- **SMS service**

## Connections

- User → Project: manages
- Project → Sprint lifecycle: organizes
- User → Backlog items: updates
- Backlog items → Backlog states: delegates state
- User → Sprint lifecycle: advances
- Sprint lifecycle → Sprint states: delegates state
- Team and roles → Role behaviours: uses behaviours
- User → Pipeline model: configures actions
- Pipeline model → Action factory: creates actions
- Action factory → Pipeline actions: creates
- Pipeline actions → Action visitor: accepts visits
- User → Discussion forum: collaborates
- User → Report composition: requests
- Report composition → Sprint metrics: formats metrics
- Notification observers → Media adapters: uses adapters
- Media adapters → Email service: sends notification
- Media adapters → Slack service: sends notification
- Media adapters → SMS service: sends notification
