feat(docs): add comprehensive platform roadmap and development tracker

This commit is contained in:
Ho Ngoc Hai
2026-03-06 12:55:25 +07:00
parent 2e1bb65bd3
commit 5d9a41fde9

295
ROADMAP.md Normal file
View File

@@ -0,0 +1,295 @@
# GoodGo Platform — Roadmap & Development Tracker
> Last updated: 2026-03-06
> Maintained by: CTO & Agents Team
> Status convention: `DONE` | `IN-PROGRESS` | `TODO` | `BLOCKED` | `SKIPPED`
---
## I. Platform Overview
| Metric | Current | Phase 1 Target | Phase 2 Target | Phase 3 Target |
|--------|:-------:|:--------------:|:--------------:|:--------------:|
| Services production-ready | 8/24 | 12/24 | 16/24 | 20/24 |
| Test coverage (estimated) | ~40% | 70% | 80% | 85% |
| POS verticals fully working | 2/5 | 2/5 (stable) | 4/5 | 5/5 |
| Payment methods live | 0 | 2 | 3 | 4+ |
| Real-time features | 0 | KDS + Orders | Full POS | Full |
| Mobile apps | Template | Template | iOS v1 | iOS + Android |
| Environment | Dev only | Staging | Staging + Prod | Prod (SLA 99.9%) |
---
## II. Microservices Status
### Production-Ready (8)
| Service | Controllers | Tests | Notes | Last Updated |
|---------|:-----------:|:-----:|-------|:------------:|
| iam-service | 12 | 30 | OAuth2, RBAC, MFA, Sessions, Access Reviews | 2026-03-06 |
| storage-service | 11 | 10 | Multipart uploads, versioning, signed URLs | 2026-03-06 |
| merchant-service | 10 | 2 | Shop lifecycle, subscription plans (NEW) | 2026-03-06 |
| wallet-service | 5 | 5 | Balance, loyalty points, holds | 2026-03-06 |
| order-service | 3 | 2 | Full order lifecycle, POS dashboard | 2026-03-06 |
| membership-service | 2 | 12 | Tier management, loyalty | 2026-03-06 |
| promotion-service | 5 | 5 | Vouchers, campaigns, discounts | 2026-03-06 |
| chat-service | 3 | 6 | SignalR + Redis backplane | 2026-03-06 |
### In-Progress (11)
| Service | Status | What's Done | What's Missing | Priority |
|---------|--------|-------------|----------------|:--------:|
| fnb-engine | Controllers OK | Kitchen/Reservation/Session/Table controllers | Handler logic, 0 tests | P0 |
| catalog-service | Basic CRUD | Products, Categories controllers | Variants, advanced queries | P1 |
| inventory-service | Basic CRUD | Create/Update/Delete items | Auto-deduction, alerts, tests | P0 |
| booking-service | 7 controllers | API structure, entities defined | Handler completion | P1 |
| social-service | Core domain | Relationships, Blocks, Follows | API integration | P2 |
| mining-service | Skeleton | Controllers + entities defined | Business logic | P3 |
| mission-service | Controllers exist | Missions, CheckIns | Workflow handlers | P2 |
| ads-manager | 7 controllers | Campaign/Ad/AdSet/Audience structure | Campaign logic | P3 |
| ads-analytics | Read-heavy | Metrics/Insights structure | Aggregation logic | P3 |
| ads-billing | Core entities | BillingAccount/Invoice/Charge | Invoice flow | P3 |
| ads-serving | Skeleton | API structure | Real-time serving | P3 |
### Scaffold / Not Started (5)
| Service | Status | Note |
|---------|--------|------|
| ads-tracking | Scaffold | Template only, not in docker-compose |
| mkt-facebook | Scaffold | Facebook API not connected |
| mkt-whatsapp | Scaffold | WhatsApp API not connected |
| mkt-x | Scaffold | X/Twitter API not connected |
| mkt-zalo | Scaffold | Zalo API not connected |
---
## III. Frontend Apps Status
| App | Status | Components | Notes |
|-----|--------|:----------:|-------|
| web-client-tpos-net (POS) | PRODUCTION-READY | 181 | Multi-layout, multi-vertical, real API integration |
| web-client-base-net (Portal) | IN-PROGRESS | 16 | Basic page structure |
| app-client-base-swift (iOS) | IN-PROGRESS | 34 files | MVVM + Combine, auth + home |
| app-client-base-net (MAUI) | SCAFFOLD | 2 VMs | Template phase |
| web-docs (VitePress) | MINIMAL | — | Placeholder docs |
### POS Vertical Status
| Vertical | Backend | Frontend | Order Flow | Payment | Status |
|----------|:-------:|:--------:|:----------:|:-------:|:------:|
| Karaoke | DONE | DONE | DONE | UI-ONLY | WORKING |
| Restaurant | DONE | DONE | DONE | UI-ONLY | WORKING |
| Cafe | DONE | DONE | PARTIAL | UI-ONLY | PARTIAL |
| Spa/Beauty | PARTIAL | DONE | PARTIAL | UI-ONLY | PARTIAL |
| Retail | TODO | UI-ONLY | TODO | UI-ONLY | TODO |
---
## IV. Critical Gaps Tracker
### P0 — Must Fix Before Launch
| # | Gap | Status | Owner | Sprint | Notes |
|:-:|-----|:------:|-------|:------:|-------|
| 1 | Payment Gateway — VN Pay | `TODO` | Backend #1 | Phase 1 / W1-2 | wallet-service integration |
| 2 | Payment Gateway — Momo | `TODO` | Backend #2 | Phase 1 / W1-2 | wallet-service integration |
| 3 | Real-time SignalR Hub | `TODO` | Backend #3 | Phase 1 / W1-2 | KDS + order push updates |
| 4 | Kitchen → Inventory Deduction | `TODO` | Backend #1 | Phase 1 / W2 | fnb-engine → inventory-service |
| 5 | Multi-tenant Row-Level Security | `TODO` | Backend #2 | Phase 1 / W2-3 | All services, DB level |
| 6 | Payment UI Completion | `TODO` | Frontend Blazor | Phase 1 / W1-2 | Connect to real gateway |
| 7 | Integration Test Suite | `TODO` | QA Engineer | Phase 1 / W3 | Order lifecycle e2e |
| 8 | Staging Deployment | `TODO` | DevOps | Phase 1 / W3-4 | K8s + monitoring |
### P1 — Required for Full Feature Set
| # | Gap | Status | Owner | Sprint | Notes |
|:-:|-----|:------:|-------|:------:|-------|
| 9 | Retail POS Workflow | `TODO` | Backend + Frontend | Phase 2 / W5-6 | Scan, stock, return/exchange |
| 10 | Spa Backend Domain Logic | `TODO` | Backend | Phase 2 / W5-6 | Appointments, therapist scheduling |
| 11 | EOD Reports + Daily Close | `TODO` | Frontend Blazor | Phase 1 / W4 | order-service queries |
| 12 | FnB Engine Test Coverage | `TODO` | QA Engineer | Phase 1 / W3 | 0 tests currently |
| 13 | Cafe Workflow Completion | `TODO` | Backend + Frontend | Phase 2 / W5-6 | Loyalty stamps, barista queue |
### P2 — Enhancement
| # | Gap | Status | Sprint | Notes |
|:-:|-----|:------:|:------:|-------|
| 14 | Marketing — Zalo OA | `TODO` | Phase 3 | mkt-zalo-service |
| 15 | Marketing — Facebook | `TODO` | Phase 3 | mkt-facebook-service |
| 16 | Ads Platform | `TODO` | Phase 3 | 5 ads services |
| 17 | Mobile iOS v1 | `TODO` | Phase 3 | app-client-base-swift |
| 18 | Mobile MAUI v1 | `TODO` | Phase 3 | app-client-base-net |
| 19 | Observability Stack | `TODO` | Phase 2 | Prometheus + Grafana + Loki |
---
## V. Phase Roadmap
### Phase 1: Production MVP (Week 1-4)
> Goal: Karaoke + Restaurant verticals ready for real customers
#### Week 1-2: Payment & Real-time
| Task | Agent | Status | Depends On |
|------|-------|:------:|:----------:|
| VN Pay payment gateway integration | Senior Backend #1 | `TODO` | wallet-service |
| Momo payment gateway integration | Senior Backend #2 | `TODO` | wallet-service |
| SignalR hub for real-time updates | Senior Backend #3 | `TODO` | — |
| KDS push notifications via SignalR | Senior Backend #3 | `TODO` | SignalR hub |
| Payment UI — connect to real gateway | Senior Frontend | `TODO` | Payment backends |
| Order status push to POS | Senior Backend #3 | `TODO` | SignalR hub |
#### Week 2-3: Data Integrity & Security
| Task | Agent | Status | Depends On |
|------|-------|:------:|:----------:|
| Kitchen → Inventory auto-deduction | Senior Backend #1 | `TODO` | fnb-engine, inventory |
| Row-level security (all services) | Senior Backend #2 | `TODO` | — |
| Rate limiting audit | DevOps | `TODO` | — |
| Input sanitization audit | QA | `TODO` | — |
| FnB Engine unit tests | QA | `TODO` | — |
| Order lifecycle integration tests | QA | `TODO` | Payment done |
#### Week 3-4: Polish & Deploy
| Task | Agent | Status | Depends On |
|------|-------|:------:|:----------:|
| EOD reports + daily close workflow | Senior Frontend | `TODO` | order-service |
| Full regression testing | QA | `TODO` | All P0 done |
| Staging K8s deployment | DevOps | `TODO` | — |
| Grafana monitoring dashboards | DevOps | `TODO` | Observability stack |
| Production deploy checklist | DevOps + CTO | `TODO` | Staging verified |
| Load testing (100 concurrent users) | QA + DevOps | `TODO` | Staging live |
### Phase 2: Multi-Vertical Expansion (Week 5-8)
> Goal: Cafe + Spa + Retail verticals fully operational
#### Week 5-6: Vertical Completion
| Task | Agent | Status | Depends On |
|------|-------|:------:|:----------:|
| Spa domain logic (appointments, therapists) | Senior Backend | `TODO` | booking-service |
| Retail POS workflow (scan, stock, returns) | Senior Backend | `TODO` | catalog, inventory |
| Cafe-specific (loyalty stamps, barista queue) | Senior Backend | `TODO` | membership |
| Vertical-specific UI refinement | Senior Frontend | `TODO` | Backend done |
| Multi-branch management features | Senior Backend | `TODO` | merchant-service |
#### Week 7-8: Advanced Features
| Task | Agent | Status | Depends On |
|------|-------|:------:|:----------:|
| Advanced reports (revenue, staff perf) | Backend + Frontend | `TODO` | order-service |
| Customer-facing menu (QR code) | Frontend | `TODO` | catalog-service |
| Mobile-responsive POS layout | Frontend | `TODO` | — |
| E2E tests per vertical (Playwright) | QA | `TODO` | Verticals done |
| Observability stack activation | DevOps | `TODO` | — |
| Production deployment (Karaoke + Restaurant) | DevOps + CTO | `TODO` | Phase 1 stable |
### Phase 3: Growth Features (Week 9-12)
> Goal: Marketing, Ads, Mobile apps
#### Week 9-10: Marketing & CRM
| Task | Agent | Status | Depends On |
|------|-------|:------:|:----------:|
| Zalo OA integration | Backend | `TODO` | mkt-zalo-service |
| Facebook Messenger integration | Backend | `TODO` | mkt-facebook-service |
| CRM dashboard (segments, campaigns) | Frontend | `TODO` | membership + social |
| Marketing automation UI | Frontend | `TODO` | mkt backends |
| WhatsApp integration | Backend | `TODO` | mkt-whatsapp-service |
#### Week 11-12: Mobile & Ads
| Task | Agent | Status | Depends On |
|------|-------|:------:|:----------:|
| iOS app v1 (customer-facing) | Senior Mobile (Swift) | `TODO` | API stable |
| MAUI cross-platform app v1 | Senior MAUI Dev | `TODO` | API stable |
| Ads serving + billing completion | Backend | `TODO` | ads-* services |
| CDN + edge caching setup | DevOps | `TODO` | — |
| Full platform production launch | CTO + All | `TODO` | All phases done |
---
## VI. Recently Completed
### 2026-03-06
| Task | Agent | Details |
|------|-------|---------|
| Account Management (Admin Settings) | Backend + Frontend | Full profile/merchant CRUD via BFF |
| Subscription System | Backend + Frontend | Merchant entity + EF + API + dynamic UI |
| User → Enterprise Plan | Backend + DB | hongochai10@icloud.com set to Enterprise (unlimited) |
| Subscription Controller | Backend | GET /me, /plans, /usage + POST /subscribe |
| ChangePassword Validator | Backend | FluentValidation for IAM auth |
| Traefik Route (subscriptions) | DevOps | /api/v1/subscriptions → merchant-service |
| Admin Settings 5-Tab UI | Frontend | Tai khoan, Bao mat, Goi dich vu, Thong bao, He thong |
### 2026-03-05
| Task | Agent | Details |
|------|-------|---------|
| IAM Service — EF Config for ApplicationUser | Backend | Private field mapping (first_name, last_name, etc.) |
| Merchant Profile — NullRef Fix | Backend | Enumeration.FromValue pattern for EF-ignored nav properties |
| BFF Proxy — Account endpoints | Backend | 15 endpoints proxying to IAM + Merchant services |
| AdminSettings.razor — Full implementation | Frontend | 846-line Blazor component with 5 tabs |
---
## VII. Architecture Decisions Log
| Date | Decision | Rationale | Status |
|------|----------|-----------|:------:|
| 2026-03-06 | Subscription stored in Merchant aggregate | Simple, no separate service needed for MVP | ACTIVE |
| 2026-03-06 | Static plan definitions in frontend + backend | 4 fixed tiers sufficient for MVP launch | ACTIVE |
| 2026-03-05 | BFF pattern for frontend-backend proxy | Single entry point, auth forwarding, response normalization | ACTIVE |
| 2026-03-05 | Neon PostgreSQL for staging/prod | Serverless, auto-scaling, branching for dev | ACTIVE |
| — | Clean Architecture + CQRS | Separation of concerns, testability | ACTIVE |
| — | MediatR pipeline (Log → Validate → Transaction → Handle) | Cross-cutting concerns | ACTIVE |
| — | Bilingual docs (EN + VI) | Team accessibility | ACTIVE |
---
## VIII. Environment & Access
| Environment | URL | Database | Status |
|-------------|-----|----------|:------:|
| Local (Docker) | localhost:3001 (POS), :5001 (IAM), :5005 (Merchant) | PostgreSQL local container | ACTIVE |
| Local (dotnet run) | localhost:5092 (POS), :5001 (IAM), :5005 (Merchant) | Neon PostgreSQL | ACTIVE |
| Staging | api.staging.goodgo.vn | Neon PostgreSQL | TODO |
| Production | goodgo.vn / admin.goodgo.vn | Neon PostgreSQL | TODO |
### Test Accounts
| Email | Password | Role | Subscription |
|-------|----------|------|:------------:|
| hongochai10@icloud.com | Test@12345 | Admin / Owner | Enterprise (unlimited) |
---
## IX. How to Update This File
1. When starting a task: Change status to `IN-PROGRESS`
2. When completing: Change to `DONE` and add to "Recently Completed"
3. When blocked: Change to `BLOCKED` and add note
4. Weekly: CTO reviews and reprioritizes
5. After each sprint: Update metrics in Section I
### Agent Workflow
```
CTO → Analyze requirement → Update ROADMAP.md with new tasks
Tech Lead → Breakdown tasks → Assign to agents
Backend Dev → Implement → Update status to DONE
Frontend Dev → Implement → Update status to DONE
QA → Test → Report issues or confirm DONE
DevOps → Deploy → Update environment status
CTO → Review → Move to "Recently Completed"
```
---
*This file is the single source of truth for GoodGo Platform development progress.*
*All agents should consult this file before starting work and update it after completing tasks.*