-
Notifications
You must be signed in to change notification settings - Fork 11
Open
Labels
Description
Hi Team,
Pain
SSW.Rewards is currently hardcoded for SSW-specific branding, domains, and business logic. This prevents us from selling the platform as a white-label solution to other businesses who want their own branded rewards/gamification system.
Current blockers:
- 100+ hardcoded "SSW" references throughout the codebase
- Email domain checks tied to
ssw.com.au - Brand colors (#cc4141) hardcoded in 30+ locations
- Company-specific images and assets
- Identity Server and API URLs hardcoded
- Firebase configurations per tenant required
Suggested Solution
Implement a comprehensive tenant configuration system that allows SSW.Rewards to be deployed for multiple clients with different branding, business rules, and external service configurations.
Architecture:
- Create
TenantSettingsconfiguration class - Implement
ITenantServicefor runtime tenant access - Build-time asset selection per tenant
- Per-tenant deployments with isolated infrastructure
- Multi-tenant database with tenant isolation
Tasks
Phase 1: Foundation
- ✨ Create Tenant Configuration System #1485
- ✨ Implement ITenantService Interface #1487
- ✨ Create Development Tenant Configuration #1488
- ✨ Configuration Migration Plan & Backward Compatibility #1484
- ✨ Tenant Configuration Validation #1486
Phase 2: Branding & Identity
- ✨ Replace Application Name and Display Strings #1489
- ✨ Refactor Color Theme System #1490
- ✨ Refactor External Service URLs #1491
- ✨ Refactor Email Configuration #1492
- ✨ Abstract About Company Page #1493
- ✨ Replace Hardcoded Email Domain Logic #1494
Phase 3: Assets & Resources
- ✨ Create Tenant Asset Folder Structure #1496
- ✨ Implement Build-Time Asset Selection #1497
- ✨ Dynamic Logo Loading in Apps #1499
- ✨ Make Mascot Optional and Configurable #1495
- ✨ Asset Validation Script #1498
Phase 4: Infrastructure
- ✨ Parameterize Bicep Templates for Multi-Tenant #1501
- ✨ Create Tenant Parameter Files #1502
- ✨ Multi-Tenant CI/CD Pipeline #1504
- ✨ Firebase Multi-Tenant Setup Guide #1503
- ✨ Analytics & Monitoring Multi-Tenant Strategy #1500
Phase 5: Database & Multi-Tenancy
- ✨ Add Tenant Entity and Migrations #1505
- ✨ Add TenantId to Multi-Tenant Entities #1509
- ✨ Implement Global Query Filters #1506
- ✨ Tenant Context Middleware #1508
- ✨ Seed Default Tenant Data #1507
Phase 6: Testing & Documentation
- ✨ Create White-Label Onboarding Guide #1512
- ✨ Multi-Tenant Integration Tests #1514
- ✨ Build Sample TestCo Deployment #1511
- ✨ Developer Setup Documentation #1510
- ✨ White-Label Pricing & Packaging Documentation #1515
- ✨ Update Main Repository Documentation #1513
Acceptance Criteria
- Meets Definition of Done - https://github.com/SSWConsulting/SSW.Rewards.Mobile/blob/main/_docs/Definition-of-Done.md
- A new tenant can be onboarded easily
- All SSW-specific branding can be replaced via configuration
- Tenant data is completely isolated in database
- Deployments are automated per tenant
- Existing SSW deployment continues to work (backward compatible)
- Documentation supports self-service tenant setup
- Test tenant successfully deployed and verified
Thanks!
Reactions are currently unavailable