Architecture
Project Galaxy is an enterprise project controls application built as a Blazor WebAssembly frontend with an Azure Functions backend and a Fabric SQL data layer, hosted on Azure Static Web Apps. Identity is propagated end-to-end: Entra ID authentication flows from the SWA gateway into SQL session context to drive row-level security (RLS).
Tech Stack
Section titled “Tech Stack”- Frontend: Blazor WebAssembly, .NET 9, Microsoft Fluent UI for Blazor
- Backend: Azure Functions (.NET 9), HTTP-triggered function classes in
Api/Functions/* - Shared Layer: common models, DTOs, and interfaces in
Shared/ - Database: Fabric SQL via
Microsoft.Data.SqlClientand Dapper - Hosting: Azure Static Web Apps, GitHub Actions CI/CD
- Observability: Application Insights worker service (Functions) + client-side App Insights (Blazor)
%% galaxy: zoom=0.75flowchart TD %% CECCo Branding & Thematic Styles classDef nucleus fill:#cc0000,stroke:#ffffff,stroke-width:3px,color:#ffffff,font-weight:bold; classDef perimeter fill:#1e1e1e,stroke:#555555,stroke-width:1px,color:#cccccc,stroke-dasharray:4 4; classDef precon fill:#2d2d2d,stroke:#0078d4,stroke-width:2px,color:#ffffff; classDef exec fill:#2d2d2d,stroke:#107c10,stroke-width:2px,color:#ffffff; classDef apiLayer fill:#111111,stroke:#cc0000,stroke-width:1px,color:#ffffff;
%% 1. The Perimeter (Onion Layer 6-8 + Roadmap Deployment) subgraph Shield [System Perimeter & Infrastructure] direction LR S1([Entra ID AuthN / SSO]):::perimeter S2([Blazor WASM / Fluent UI]):::perimeter S3([GitHub Actions CI/CD]):::perimeter end
%% 2. The Operational Hemispheres (Process Loop + Roadmap Modules) subgraph AppLayer [Business Operations & User Experience] direction LR
subgraph PreCon [Pre-Construction Hemisphere] direction TB P1(Historical Data / Estimating):::precon P2(Project Management / Contracts):::precon P3(Engineering / VDC):::precon end
subgraph Exec [Execution Hemisphere] direction TB E1(Purchasing / Prefab):::exec E2(Field Operations / Construction):::exec E3(Project Controls / Finance):::exec end end
%% 3. The APIs & Security Gate (Onion Layer 2-3) subgraph Logic [Standardized Logic & Integration] direction LR L1{{Pipe & Wire APIs}}:::apiLayer L2{{Fabric Row-Level Security}}:::apiLayer end
%% 4. The Nucleus (Process Core + Onion Layer 1) subgraph Engine [Unified Data Engine] direction TB D1[(Organizational Dimension Tables)]:::nucleus D2[(Transactional Fact Tables)]:::nucleus end
%% The Unified Dataflow Shield --> AppLayer PreCon ==>|RFP & Precon Data| Logic Logic ==> Engine Engine ==>|Approved Metrics| Exec Exec ==>|Closeout & Telemetry| Logic%% galaxy: zoom=0.5flowchart TD %% CECCo Branding & Theme classDef layerNode fill:#2d2d2d,stroke:#555,stroke-width:1px,color:#fff; classDef nucleus fill:#cc0000,stroke:#fff,stroke-width:3px,color:#fff,font-weight:bold; classDef perimeter fill:transparent,stroke:#777,stroke-width:2px,stroke-dasharray:5 5,color:#ccc;
subgraph Perimeter [Perimeter & Integration Layers] direction TB L8([8. System Security<br/>AuthN / Fabric RLS]):::layerNode L7([7. System Monitoring & Health]):::layerNode L6([6. System Integrations & APIs<br/>3rd Party Providers]):::layerNode end
subgraph Operations [Business & Organizational Layers] direction TB L5([5. Departments<br/>Estimating, PM, Engineering, VDC, Field, etc.]):::layerNode L4([4. Organizational Data<br/>Dimension Tables]):::layerNode end
subgraph Engine [Core Data Nucleus] direction TB L3([3. Transactional Data<br/>Fact Tables / CRUD]):::layerNode L2([2. Standardized Logic]):::layerNode L1(((1. Unified Data Engine<br/>SQL Database Nucleus))):::nucleus end
%% Penetration Path (Outer to Inner) L8 --> L7 L7 --> L6 L6 --> L5 L5 --> L4 L4 --> L3 L3 --> L2 L2 --> L1
class Perimeter,Operations,Engine perimeter;Confidential & Proprietary © 2026 CECCo — Project Galaxy by Dan Marr. All rights reserved.