# nyo95/studioflowrb architecture

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

- Interactive diagram: https://gitdiagram.com/nyo95/studioflowrb
- Repository: https://github.com/nyo95/studioflowrb

## Overview

StudioFlow Rebuild is a reusable business platform with implemented Master Data, BQ estimating, and StudioFlow project-workflow slices. The main workflow is managing a project through phases and checklists, schedule, and meeting records, with timeline, today, and history views. BQ supports project estimates, assemblies, templates, and calculations; Master Data manages shared catalog and pricing records. The graph reflects documented app boundaries and sampled service behavior; unsampled routes and runtime wiring are represented conservatively.

Main entry points: [`src/app/(platform)/studioflow`](https://github.com/nyo95/studioflowrb/tree/main/src/app/(platform)/studioflow) (Project workflow UI), [`src/platform/authenticated-shell`](https://github.com/nyo95/studioflowrb/tree/main/src/platform/authenticated-shell) (Authenticated shell), [`src/apps/studioflow/projects/service.ts`](https://github.com/nyo95/studioflowrb/blob/main/src/apps/studioflow/projects/service.ts) (Project management), [`src/apps/bq/service.ts`](https://github.com/nyo95/studioflowrb/blob/main/src/apps/bq/service.ts) (Estimate services)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_platform["Platform"]
  node_platform_shell["Authenticated shell"]
  node_login["Login routes"]
  node_auth["Auth and sessions"]
  node_rbac["Roles and permissions"]
  node_ui_engine["UI Engine"]
end

subgraph group_studioflow["StudioFlow"]
  node_studio_ui["Project workflow UI"]
  node_studio_projects["Project management<br/>[service.ts]"]
  node_studio_phases["Phases and blockers"]
  node_studio_tasks["Checklist tasks<br/>[service.ts]"]
  node_studio_schedule["Project schedule<br/>[service.ts]"]
  node_studio_mom["Meeting records<br/>[service.ts]"]
  node_studio_views["Timeline and today"]
  node_studio_domain["Workflow domain rules"]
end

subgraph group_bq["BQ Estimating"]
  node_bq_ui["Estimate workspace"]
  node_bq_service["Estimate services<br/>[service.ts]"]
  node_bq_calc["Estimate calculations"]
end

subgraph group_masterdata["Master Data"]
  node_masterdata_ui["Catalog workspace"]
  node_masterdata_service["Catalog services<br/>[service.ts]"]
  node_pricing_service["Pricing records<br/>[pricing.service.ts]"]
end

node_user(("Platform user"))
node_database[("Application database")]

node_user -->|"signs in"| node_login
node_login -->|"authenticates"| node_auth
node_auth -->|"reads and writes sessions"| node_database
node_user -->|"uses"| node_platform_shell
node_platform_shell -->|"opens workspace"| node_studio_ui
node_platform_shell -->|"opens workspace"| node_bq_ui
node_platform_shell -->|"opens workspace"| node_masterdata_ui
node_studio_ui -->|"manages projects"| node_studio_projects
node_studio_projects -->|"seeds checklist"| node_studio_tasks
node_studio_projects -->|"seeds schedule"| node_studio_schedule
node_studio_ui -->|"works with phases"| node_studio_phases
node_studio_ui -->|"manages checklist"| node_studio_tasks
node_studio_ui -->|"manages schedule"| node_studio_schedule
node_studio_ui -->|"edits meeting records"| node_studio_mom
node_studio_ui -->|"views progress"| node_studio_views
node_studio_phases -->|"uses rules"| node_studio_domain
node_studio_tasks -->|"reads and writes"| node_database
node_studio_schedule -->|"reads and writes"| node_database
node_studio_mom -->|"reads and writes"| node_database
node_studio_projects -->|"reads and writes"| node_database
node_bq_ui -->|"manages estimates"| node_bq_service
node_bq_service -->|"calculates totals"| node_bq_calc
node_bq_service -->|"reads and writes"| node_database
node_masterdata_ui -->|"manages catalog"| node_masterdata_service
node_masterdata_service -->|"creates pricing service"| node_pricing_service
node_pricing_service -->|"reads and writes"| node_database
node_platform_shell -->|"uses permissions"| node_rbac
node_platform_shell -->|"renders components"| node_ui_engine

click node_platform_shell "https://github.com/nyo95/studioflowrb/tree/main/src/platform/authenticated-shell"
click node_login "https://github.com/nyo95/studioflowrb/tree/main/src/app/login"
click node_auth "https://github.com/nyo95/studioflowrb/tree/main/src/platform/core/auth"
click node_rbac "https://github.com/nyo95/studioflowrb/tree/main/src/platform/core/rbac"
click node_ui_engine "https://github.com/nyo95/studioflowrb/tree/main/src/platform/ui_engine"
click node_studio_ui "https://github.com/nyo95/studioflowrb/tree/main/src/app/(platform)/studioflow"
click node_studio_projects "https://github.com/nyo95/studioflowrb/blob/main/src/apps/studioflow/projects/service.ts"
click node_studio_phases "https://github.com/nyo95/studioflowrb/tree/main/src/apps/studioflow/phases"
click node_studio_tasks "https://github.com/nyo95/studioflowrb/blob/main/src/apps/studioflow/tasks/service.ts"
click node_studio_schedule "https://github.com/nyo95/studioflowrb/blob/main/src/apps/studioflow/schedule/service.ts"
click node_studio_mom "https://github.com/nyo95/studioflowrb/blob/main/src/apps/studioflow/mom/service.ts"
click node_studio_domain "https://github.com/nyo95/studioflowrb/tree/main/src/apps/studioflow/domain"
click node_bq_ui "https://github.com/nyo95/studioflowrb/tree/main/src/app/(platform)/bq"
click node_bq_service "https://github.com/nyo95/studioflowrb/blob/main/src/apps/bq/service.ts"
click node_bq_calc "https://github.com/nyo95/studioflowrb/blob/main/src/apps/bq/lib/calculation-engine.ts"
click node_masterdata_ui "https://github.com/nyo95/studioflowrb/tree/main/src/app/(platform)/masterdata"
click node_masterdata_service "https://github.com/nyo95/studioflowrb/blob/main/src/apps/masterdata/service.ts"
click node_pricing_service "https://github.com/nyo95/studioflowrb/blob/main/src/apps/masterdata/services/pricing.service.ts"

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_platform_shell,node_login,node_auth,node_rbac,node_ui_engine,node_user toneBlue
class node_studio_ui,node_studio_projects,node_studio_phases,node_studio_tasks,node_studio_schedule,node_studio_mom,node_studio_views,node_studio_domain,node_database toneAmber
class node_bq_ui,node_bq_service,node_bq_calc toneMint
class node_masterdata_ui,node_masterdata_service,node_pricing_service toneRose
```

## Components

### Platform

- [Authenticated shell](https://github.com/nyo95/studioflowrb/tree/main/src/platform/authenticated-shell): `src/platform/authenticated-shell`
- [Login routes](https://github.com/nyo95/studioflowrb/tree/main/src/app/login): `src/app/login`
- [Auth and sessions](https://github.com/nyo95/studioflowrb/tree/main/src/platform/core/auth): `src/platform/core/auth`
- [Roles and permissions](https://github.com/nyo95/studioflowrb/tree/main/src/platform/core/rbac): `src/platform/core/rbac`
- [UI Engine](https://github.com/nyo95/studioflowrb/tree/main/src/platform/ui_engine): `src/platform/ui_engine`

### StudioFlow

- [Project workflow UI](https://github.com/nyo95/studioflowrb/tree/main/src/app/(platform)/studioflow): `src/app/(platform)/studioflow`
- [Project management](https://github.com/nyo95/studioflowrb/blob/main/src/apps/studioflow/projects/service.ts): `src/apps/studioflow/projects/service.ts`
- [Phases and blockers](https://github.com/nyo95/studioflowrb/tree/main/src/apps/studioflow/phases): `src/apps/studioflow/phases`
- [Checklist tasks](https://github.com/nyo95/studioflowrb/blob/main/src/apps/studioflow/tasks/service.ts): `src/apps/studioflow/tasks/service.ts`
- [Project schedule](https://github.com/nyo95/studioflowrb/blob/main/src/apps/studioflow/schedule/service.ts): `src/apps/studioflow/schedule/service.ts`
- [Meeting records](https://github.com/nyo95/studioflowrb/blob/main/src/apps/studioflow/mom/service.ts): `src/apps/studioflow/mom/service.ts`
- **Timeline and today**
- [Workflow domain rules](https://github.com/nyo95/studioflowrb/tree/main/src/apps/studioflow/domain): `src/apps/studioflow/domain`

### BQ Estimating

- [Estimate workspace](https://github.com/nyo95/studioflowrb/tree/main/src/app/(platform)/bq): `src/app/(platform)/bq`
- [Estimate services](https://github.com/nyo95/studioflowrb/blob/main/src/apps/bq/service.ts): `src/apps/bq/service.ts`
- [Estimate calculations](https://github.com/nyo95/studioflowrb/blob/main/src/apps/bq/lib/calculation-engine.ts): `src/apps/bq/lib/calculation-engine.ts`

### Master Data

- [Catalog workspace](https://github.com/nyo95/studioflowrb/tree/main/src/app/(platform)/masterdata): `src/app/(platform)/masterdata`
- [Catalog services](https://github.com/nyo95/studioflowrb/blob/main/src/apps/masterdata/service.ts): `src/apps/masterdata/service.ts`
- [Pricing records](https://github.com/nyo95/studioflowrb/blob/main/src/apps/masterdata/services/pricing.service.ts): `src/apps/masterdata/services/pricing.service.ts`

### Other components

- **Platform user**
- **Application database**

## Connections

- Platform user → Login routes: signs in
- Login routes → Auth and sessions: authenticates
- Auth and sessions → Application database: reads and writes sessions
- Platform user → Authenticated shell: uses
- Authenticated shell → Project workflow UI: opens workspace
- Authenticated shell → Estimate workspace: opens workspace
- Authenticated shell → Catalog workspace: opens workspace
- Project workflow UI → Project management: manages projects
- Project management → Checklist tasks: seeds checklist
- Project management → Project schedule: seeds schedule
- Project workflow UI → Phases and blockers: works with phases
- Project workflow UI → Checklist tasks: manages checklist
- Project workflow UI → Project schedule: manages schedule
- Project workflow UI → Meeting records: edits meeting records
- Project workflow UI → Timeline and today: views progress
- Phases and blockers → Workflow domain rules: uses rules
- Checklist tasks → Application database: reads and writes
- Project schedule → Application database: reads and writes
- Meeting records → Application database: reads and writes
- Project management → Application database: reads and writes
- Estimate workspace → Estimate services: manages estimates
- Estimate services → Estimate calculations: calculates totals
- Estimate services → Application database: reads and writes
- Catalog workspace → Catalog services: manages catalog
- Catalog services → Pricing records: creates pricing service
- Pricing records → Application database: reads and writes
- Authenticated shell → Roles and permissions: uses permissions
- Authenticated shell → UI Engine: renders components
