# it-althusser/onelaunch architecture

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

- Interactive diagram: https://gitdiagram.com/it-althusser/onelaunch
- Repository: https://github.com/it-althusser/onelaunch

## Overview

OneLaunch is a cross-border seller’s AI product-image studio. Sellers enter product facts and reference images in the React workbench; the web client submits a five-image task, while the server pipeline builds a product profile and platform-aware prompts, generates images, checks quality and compliance, and streams progress and results back. Separate workbench actions support single-image repair, three-aspect localization, compliance checks, and detail-page drafts. The README documents these capabilities; sampled source confirms key pipeline, client, and UI links, but not every endpoint implementation detail.

Main entry points: [`apps/server/src/main/java/com/onelaunch/ImagePipelineService.java`](https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/ImagePipelineService.java) (Image pipeline), [`apps/web/src/App.tsx`](https://github.com/it-althusser/onelaunch/blob/main/apps/web/src/App.tsx) (Studio app), [`apps/web/src/api/client.ts`](https://github.com/it-althusser/onelaunch/blob/main/apps/web/src/api/client.ts) (API client), [`apps/server/src/main/java/com/onelaunch/ModelRouterVisionClient.java`](https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/ModelRouterVisionClient.java) (Visual review)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Seller workbench"]
  node_app["Studio app<br/>[App.tsx]"]
  node_create["Create panel<br/>[CreatePanel.tsx]"]
  node_studio["Generation studio<br/>[StudioView.tsx]"]
  node_tools["Tool workbench<br/>[ToolWorkbench.tsx]"]
  node_details["Detail pages<br/>[DetailPages.tsx]"]
  node_webclient["API client<br/>[client.ts]"]
end

subgraph group_api["Application API"]
  node_controller["REST controller<br/>[ApiController.java]"]
end

subgraph group_image["Image production"]
  node_pipeline["Image pipeline"]
  node_profileprompt["Profile and prompts"]
  node_imageclient["Image generation and editing"]
  node_dimension["Dimension rendering"]
  node_sanitizer["White background cleanup"]
end

subgraph group_review["Review and rules"]
  node_vision["Visual review"]
  node_rules["Compliance rules"]
end

subgraph group_external["Model services"]
  node_router{{"Model Router"}}
end

node_seller(("Seller"))

node_seller -->|"uses"| node_app
node_app -->|"collects input"| node_create
node_app -->|"opens studio"| node_studio
node_app -->|"opens tools"| node_tools
node_studio -->|"submits task"| node_webclient
node_tools -->|"requests actions"| node_webclient
node_webclient -->|"sends REST/SSE"| node_controller
node_controller -->|"dispatches tasks"| node_pipeline
node_pipeline -->|"builds profile/prompts"| node_profileprompt
node_pipeline -->|"generates or edits"| node_imageclient
node_pipeline -->|"checks images"| node_vision
node_pipeline -->|"cleans backgrounds"| node_sanitizer
node_pipeline -->|"renders dimensions"| node_dimension
node_vision -->|"loads rule guidance"| node_rules
node_imageclient -->|"requests image models"| node_router
node_vision -->|"requests visual review"| node_router
node_controller -->|"dispatches compliance checks"| node_vision
node_webclient -->|"returns detail drafts"| node_details

click node_app "https://github.com/it-althusser/onelaunch/blob/main/apps/web/src/App.tsx"
click node_create "https://github.com/it-althusser/onelaunch/blob/main/apps/web/src/components/CreatePanel.tsx"
click node_studio "https://github.com/it-althusser/onelaunch/blob/main/apps/web/src/components/StudioView.tsx"
click node_tools "https://github.com/it-althusser/onelaunch/blob/main/apps/web/src/components/ToolWorkbench.tsx"
click node_details "https://github.com/it-althusser/onelaunch/blob/main/apps/web/src/components/DetailPages.tsx"
click node_webclient "https://github.com/it-althusser/onelaunch/blob/main/apps/web/src/api/client.ts"
click node_controller "https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/ApiController.java"
click node_pipeline "https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/ImagePipelineService.java"
click node_profileprompt "https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/ImagePipelineService.java"
click node_imageclient "https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/ModelRouterImageClient.java"
click node_dimension "https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/DimensionGuideRenderer.java"
click node_sanitizer "https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/WhiteBackgroundSanitizer.java"
click node_vision "https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/ModelRouterVisionClient.java"
click node_rules "https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/ComplianceRuleLibrary.java"

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_create,node_studio,node_tools,node_details,node_webclient toneBlue
class node_controller toneAmber
class node_pipeline,node_profileprompt,node_imageclient,node_dimension,node_sanitizer toneMint
class node_vision,node_rules toneRose
class node_router,node_seller toneIndigo
```

## Components

### Seller workbench

- [Studio app](https://github.com/it-althusser/onelaunch/blob/main/apps/web/src/App.tsx): `apps/web/src/App.tsx`
- [Create panel](https://github.com/it-althusser/onelaunch/blob/main/apps/web/src/components/CreatePanel.tsx): `apps/web/src/components/CreatePanel.tsx`
- [Generation studio](https://github.com/it-althusser/onelaunch/blob/main/apps/web/src/components/StudioView.tsx): `apps/web/src/components/StudioView.tsx`
- [Tool workbench](https://github.com/it-althusser/onelaunch/blob/main/apps/web/src/components/ToolWorkbench.tsx): `apps/web/src/components/ToolWorkbench.tsx`
- [Detail pages](https://github.com/it-althusser/onelaunch/blob/main/apps/web/src/components/DetailPages.tsx): `apps/web/src/components/DetailPages.tsx`
- [API client](https://github.com/it-althusser/onelaunch/blob/main/apps/web/src/api/client.ts): `apps/web/src/api/client.ts`

### Application API

- [REST controller](https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/ApiController.java): `apps/server/src/main/java/com/onelaunch/ApiController.java`

### Image production

- [Image pipeline](https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/ImagePipelineService.java): `apps/server/src/main/java/com/onelaunch/ImagePipelineService.java`
- [Profile and prompts](https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/ImagePipelineService.java): `apps/server/src/main/java/com/onelaunch/ImagePipelineService.java`
- [Image generation and editing](https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/ModelRouterImageClient.java): `apps/server/src/main/java/com/onelaunch/ModelRouterImageClient.java`
- [Dimension rendering](https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/DimensionGuideRenderer.java): `apps/server/src/main/java/com/onelaunch/DimensionGuideRenderer.java`
- [White background cleanup](https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/WhiteBackgroundSanitizer.java): `apps/server/src/main/java/com/onelaunch/WhiteBackgroundSanitizer.java`

### Review and rules

- [Visual review](https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/ModelRouterVisionClient.java): `apps/server/src/main/java/com/onelaunch/ModelRouterVisionClient.java`
- [Compliance rules](https://github.com/it-althusser/onelaunch/blob/main/apps/server/src/main/java/com/onelaunch/ComplianceRuleLibrary.java): `apps/server/src/main/java/com/onelaunch/ComplianceRuleLibrary.java`

### Model services

- **Model Router**

### Other components

- **Seller**

## Connections

- Seller → Studio app: uses
- Studio app → Create panel: collects input
- Studio app → Generation studio: opens studio
- Studio app → Tool workbench: opens tools
- Generation studio → API client: submits task
- Tool workbench → API client: requests actions
- API client → REST controller: sends REST/SSE
- REST controller → Image pipeline: dispatches tasks
- Image pipeline → Profile and prompts: builds profile/prompts
- Image pipeline → Image generation and editing: generates or edits
- Image pipeline → Visual review: checks images
- Image pipeline → White background cleanup: cleans backgrounds
- Image pipeline → Dimension rendering: renders dimensions
- Visual review → Compliance rules: loads rule guidance
- Image generation and editing → Model Router: requests image models
- Visual review → Model Router: requests visual review
- REST controller → Visual review: dispatches compliance checks
- API client → Detail pages: returns detail drafts
