# uday-vashist/springphoenix architecture

> Architecture diagram of the GitHub repository uday-vashist/springphoenix, 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/uday-vashist/springphoenix
- Repository: https://github.com/uday-vashist/springphoenix

## Overview

SpringPhoenix is a Spring Boot modernization assurance pipeline: it analyzes the legacy User and Product domains, records a coverage baseline and knowledge gaps, verifies modernization, checks test strength, and reports impact. Its Python orchestrator runs the three assurance stages sequentially per domain while dispatching domains concurrently. The Java application is the modernization target, not the main runtime workflow shown here. README capabilities such as coverage gates and mutation guardrails are included, but their underlying build configuration was not sampled; those links are therefore limited to documented behavior.

Main entry points: [`concurrent_orchestrator.py`](https://github.com/uday-vashist/springphoenix/blob/main/concurrent_orchestrator.py) (Concurrent dispatch), [`modernization_subagent.py`](https://github.com/uday-vashist/springphoenix/blob/main/modernization_subagent.py) (Modernize verify), [`impact_report_generator.py`](https://github.com/uday-vashist/springphoenix/blob/main/impact_report_generator.py) (Impact reporting), [`knowledge_gaps_scanner.py`](https://github.com/uday-vashist/springphoenix/blob/main/knowledge_gaps_scanner.py) (Knowledge scanner)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_target["Java target"]
  node_app["Spring Boot app"]
  node_models["User and Product"]
  node_repositories["Repositories"]
  node_services["Services"]
  node_controllers["Controllers"]
end

subgraph group_pipeline["Assurance pipeline"]
  node_baseline["Baseline stage"]
  node_modernize["Modernize verify"]
  node_orchestrator["Concurrent dispatch"]
end

subgraph group_analysis["Analysis and checks"]
  node_coverage["Coverage parser<br/>[parser.py]"]
  node_baseline_writer["Baseline writer<br/>[reporter.py]"]
  node_gap_scanner["Knowledge scanner"]
  node_coverage_gate["Coverage gate<br/>[pom.xml]"]
  node_mutation["Mutation guardrails<br/>[pom.xml]"]
end

subgraph group_outputs["Reports"]
  node_report_generator["Impact reporting"]
  node_baseline_data["Baseline snapshot<br/>[baseline.json]"]
  node_gaps_data["Knowledge gaps<br/>[knowledge_gaps.md]"]
  node_timeline["Pipeline timeline"]
  node_impact_data["Impact report<br/>[impact_report.md]"]
end

node_engineer(("Engineer"))

node_engineer -->|"starts pipeline"| node_orchestrator
node_engineer -->|"runs baseline"| node_baseline
node_engineer -->|"runs verification"| node_modernize
node_controllers -->|"delegates requests"| node_services
node_services -->|"accesses data"| node_repositories
node_repositories -->|"persists entities"| node_models
node_baseline -->|"parses JaCoCo"| node_coverage
node_coverage -->|"returns metrics"| node_baseline_writer
node_baseline_writer -->|"writes snapshot"| node_baseline_data
node_baseline -->|"scans source"| node_gap_scanner
node_gap_scanner -->|"appends findings"| node_gaps_data
node_modernize -->|"rescans source"| node_gap_scanner
node_modernize -->|"verifies build"| node_app
node_modernize -.->|"runs coverage checks"| node_coverage_gate
node_modernize -.->|"runs mutation checks"| node_mutation
node_orchestrator -->|"dispatches scans"| node_gap_scanner
node_orchestrator -->|"reads coverage"| node_coverage
node_orchestrator -->|"reads mutation results"| node_mutation
node_orchestrator -->|"writes timings"| node_timeline
node_orchestrator -->|"completes stages"| node_report_generator
node_report_generator -->|"reads snapshot"| node_baseline_data
node_report_generator -->|"reads findings"| node_gaps_data
node_report_generator -->|"reads timings"| node_timeline
node_report_generator -->|"writes report"| node_impact_data

click node_app "https://github.com/uday-vashist/springphoenix/blob/main/src/main/java/com/example/legacy/SpringPhoenixApplication.java"
click node_models "https://github.com/uday-vashist/springphoenix/tree/main/src/main/java/com/example/legacy/model"
click node_repositories "https://github.com/uday-vashist/springphoenix/tree/main/src/main/java/com/example/legacy/repository"
click node_services "https://github.com/uday-vashist/springphoenix/tree/main/src/main/java/com/example/legacy/Service"
click node_controllers "https://github.com/uday-vashist/springphoenix/tree/main/src/main/java/com/example/legacy/controller"
click node_baseline "https://github.com/uday-vashist/springphoenix/blob/main/baseline_subagent.py"
click node_modernize "https://github.com/uday-vashist/springphoenix/blob/main/modernization_subagent.py"
click node_orchestrator "https://github.com/uday-vashist/springphoenix/blob/main/concurrent_orchestrator.py"
click node_coverage "https://github.com/uday-vashist/springphoenix/blob/main/parser.py"
click node_baseline_writer "https://github.com/uday-vashist/springphoenix/blob/main/reporter.py"
click node_gap_scanner "https://github.com/uday-vashist/springphoenix/blob/main/knowledge_gaps_scanner.py"
click node_coverage_gate "https://github.com/uday-vashist/springphoenix/blob/main/pom.xml"
click node_mutation "https://github.com/uday-vashist/springphoenix/blob/main/pom.xml"
click node_report_generator "https://github.com/uday-vashist/springphoenix/blob/main/impact_report_generator.py"
click node_baseline_data "https://github.com/uday-vashist/springphoenix/blob/main/reports/baseline.json"
click node_gaps_data "https://github.com/uday-vashist/springphoenix/blob/main/reports/knowledge_gaps.md"
click node_timeline "https://github.com/uday-vashist/springphoenix/blob/main/reports/pipeline_timeline.json"
click node_impact_data "https://github.com/uday-vashist/springphoenix/blob/main/reports/impact_report.md"

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_app,node_models,node_repositories,node_services,node_controllers toneBlue
class node_baseline,node_modernize,node_orchestrator toneAmber
class node_coverage,node_baseline_writer,node_gap_scanner,node_coverage_gate,node_mutation toneMint
class node_report_generator,node_baseline_data,node_gaps_data,node_timeline,node_impact_data toneRose
class node_engineer toneIndigo
```

## Components

### Java target

- [Spring Boot app](https://github.com/uday-vashist/springphoenix/blob/main/src/main/java/com/example/legacy/SpringPhoenixApplication.java): `src/main/java/com/example/legacy/SpringPhoenixApplication.java`
- [User and Product](https://github.com/uday-vashist/springphoenix/tree/main/src/main/java/com/example/legacy/model): `src/main/java/com/example/legacy/model`
- [Repositories](https://github.com/uday-vashist/springphoenix/tree/main/src/main/java/com/example/legacy/repository): `src/main/java/com/example/legacy/repository`
- [Services](https://github.com/uday-vashist/springphoenix/tree/main/src/main/java/com/example/legacy/Service): `src/main/java/com/example/legacy/Service`
- [Controllers](https://github.com/uday-vashist/springphoenix/tree/main/src/main/java/com/example/legacy/controller): `src/main/java/com/example/legacy/controller`

### Assurance pipeline

- [Baseline stage](https://github.com/uday-vashist/springphoenix/blob/main/baseline_subagent.py): `baseline_subagent.py`
- [Modernize verify](https://github.com/uday-vashist/springphoenix/blob/main/modernization_subagent.py): `modernization_subagent.py`
- [Concurrent dispatch](https://github.com/uday-vashist/springphoenix/blob/main/concurrent_orchestrator.py): `concurrent_orchestrator.py`

### Analysis and checks

- [Coverage parser](https://github.com/uday-vashist/springphoenix/blob/main/parser.py): `parser.py`
- [Baseline writer](https://github.com/uday-vashist/springphoenix/blob/main/reporter.py): `reporter.py`
- [Knowledge scanner](https://github.com/uday-vashist/springphoenix/blob/main/knowledge_gaps_scanner.py): `knowledge_gaps_scanner.py`
- [Coverage gate](https://github.com/uday-vashist/springphoenix/blob/main/pom.xml): `pom.xml`
- [Mutation guardrails](https://github.com/uday-vashist/springphoenix/blob/main/pom.xml): `pom.xml`

### Reports

- [Impact reporting](https://github.com/uday-vashist/springphoenix/blob/main/impact_report_generator.py): `impact_report_generator.py`
- [Baseline snapshot](https://github.com/uday-vashist/springphoenix/blob/main/reports/baseline.json): `reports/baseline.json`
- [Knowledge gaps](https://github.com/uday-vashist/springphoenix/blob/main/reports/knowledge_gaps.md): `reports/knowledge_gaps.md`
- [Pipeline timeline](https://github.com/uday-vashist/springphoenix/blob/main/reports/pipeline_timeline.json): `reports/pipeline_timeline.json`
- [Impact report](https://github.com/uday-vashist/springphoenix/blob/main/reports/impact_report.md): `reports/impact_report.md`

### Other components

- **Engineer**

## Connections

- Engineer → Concurrent dispatch: starts pipeline
- Engineer → Baseline stage: runs baseline
- Engineer → Modernize verify: runs verification
- Controllers → Services: delegates requests
- Services → Repositories: accesses data
- Repositories → User and Product: persists entities
- Baseline stage → Coverage parser: parses JaCoCo
- Coverage parser → Baseline writer: returns metrics
- Baseline writer → Baseline snapshot: writes snapshot
- Baseline stage → Knowledge scanner: scans source
- Knowledge scanner → Knowledge gaps: appends findings
- Modernize verify → Knowledge scanner: rescans source
- Modernize verify → Spring Boot app: verifies build
- Modernize verify → Coverage gate: runs coverage checks
- Modernize verify → Mutation guardrails: runs mutation checks
- Concurrent dispatch → Knowledge scanner: dispatches scans
- Concurrent dispatch → Coverage parser: reads coverage
- Concurrent dispatch → Mutation guardrails: reads mutation results
- Concurrent dispatch → Pipeline timeline: writes timings
- Concurrent dispatch → Impact reporting: completes stages
- Impact reporting → Baseline snapshot: reads snapshot
- Impact reporting → Knowledge gaps: reads findings
- Impact reporting → Pipeline timeline: reads timings
- Impact reporting → Impact report: writes report
