diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..ca79a92 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +version: '3.8' +services: + web: + build: + context: . + dockerfile: Dockerfile + ports: + - "8080:8081" diff --git a/flows.md b/flows.md new file mode 100644 index 0000000..ca826cb --- /dev/null +++ b/flows.md @@ -0,0 +1,65 @@ +flowchart TD + %% Combined MVP + Future Features for Executive Slide + + %% MVP Section + subgraph MVP["MVP Go-Live (Critical Path)"] + A[Define MVP Requirements & Roles] --> B[DB Schema: Polls, Users, Responses] + B --> C[Azure AD/B2C: Tenant + User Groups] + C --> D[Tenant + Entitlements API w/ cache] + D --> E[Frontend: Blazor/MudBlazor Login & Poll UI] + E --> F[Backend API: Poll CRUD, Subscriptions, Responses] + F --> G[APIM Gateway: x-tenantid validation] + G --> H[Storage: SQL, Blob, Table] + H --> I[Testing: Multi-Tenant Validation] + I --> J[Invite-first Onboarding & Mapping] + J --> K[JWT Tokens with Claims & Roles] + K --> L[Poll Lifecycle: Activate / Deactivate / Response Submission] + L --> M[Go-Live & Monitoring] + end + + %% Future Features Section + subgraph Future["Future Enhancements (Optional / Roadmap)"] + R1[Advanced Reporting & Analytics] --> R2[Poll Scheduling / Recurring Polls] + R2 --> R3[Multi-language Support] + R3 --> R4[Deep-linking & Email Notifications] + R4 --> R5[Theme / Branding Per Tenant] + R5 --> R6[Custom Dashboard & Graphs] + R6 --> R7[Responsive / Mobile Enhancements] + R7 --> R8[Advanced RBAC & Entitlements Features] + R8 --> R9[Audit Logging & History] + R9 --> R10[Ban / Blacklist Improvements] + R10 --> R11[External API Hooks & Webhooks] + R11 --> R12[3rd Party Analytics Integration] + end + + %% Dependencies + M --> R1 + + %% Styling + style MVP fill:#b3d9ff,stroke:#333,stroke-width:2px + style Future fill:#e6e6e6,stroke:#999,stroke-dasharray: 5 5,stroke-width:2px + style A fill:#cce5ff + style B fill:#cce5ff + style C fill:#cce5ff + style D fill:#cce5ff + style E fill:#cce5ff + style F fill:#cce5ff + style G fill:#cce5ff + style H fill:#cce5ff + style I fill:#cce5ff + style J fill:#cce5ff + style K fill:#cce5ff + style L fill:#cce5ff + style M fill:#80b3ff + style R1 fill:#f2f2f2 + style R2 fill:#f2f2f2 + style R3 fill:#f2f2f2 + style R4 fill:#f2f2f2 + style R5 fill:#f2f2f2 + style R6 fill:#f2f2f2 + style R7 fill:#f2f2f2 + style R8 fill:#f2f2f2 + style R9 fill:#f2f2f2 + style R10 fill:#f2f2f2 + style R11 fill:#f2f2f2 + style R12 fill:#f2f2f2