15 KiB
15 KiB
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 | DONE |
Backend #1 | Phase 1 / W1-2 | wallet-service: IPaymentGateway + VnPayGateway |
| 2 | Payment Gateway — Momo | TODO |
Backend #2 | Phase 1 / W1-2 | wallet-service integration |
| 3 | Real-time SignalR Hub | DONE |
Backend #3 | Phase 1 / W1-2 | PosHub + Redis backplane + MessagePack |
| 4 | Kitchen → Inventory Deduction | DONE |
Backend #1 | Phase 1 / W2 | Domain events + HTTP + Polly + idempotency |
| 5 | Multi-tenant Row-Level Security | DONE |
Backend #2 | Phase 1 / W2-3 | EF Core filters + PostgreSQL RLS, 5 services |
| 6 | Payment UI Completion | DONE |
Frontend Blazor | Phase 1 / W1-2 | Cash/Card/QR wired 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 | DONE |
QA Engineer | Phase 1 / W3 | 96 tests (57 domain + 39 handler) |
| 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 | DONE |
wallet-service |
| Momo payment gateway integration | Senior Backend #2 | TODO |
wallet-service |
| SignalR hub for real-time updates | Senior Backend #3 | DONE |
— |
| KDS push notifications via SignalR | Senior Backend #3 | DONE |
SignalR hub |
| Payment UI — connect to real gateway | Senior Frontend | DONE |
Payment backends |
| Order status push to POS | Senior Backend #3 | DONE |
SignalR hub |
Week 2-3: Data Integrity & Security
| Task | Agent | Status | Depends On |
|---|---|---|---|
| Kitchen → Inventory auto-deduction | Senior Backend #1 | DONE |
fnb-engine, inventory |
| Row-level security (all services) | Senior Backend #2 | DONE |
— |
| Rate limiting audit | DevOps | TODO |
— |
| Input sanitization audit | QA | TODO |
— |
| FnB Engine unit tests | QA | DONE |
— |
| 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 (Phase 1 Sprint)
| Task | Agent | Details |
|---|---|---|
| VN Pay Payment Gateway | Backend #1 | IPaymentGateway abstraction + VnPayGateway (HMAC-SHA512, sandbox), Payment aggregate, PaymentsController (4 endpoints) |
| SignalR POS Hub | Backend #3 | PosHub (strongly-typed, 3 groups: shop/kds/pos), Redis backplane, MessagePack, 7 client methods, integrated into 4 order handlers |
| Kitchen → Inventory Deduction | Backend #1 | KitchenTicketServedDomainEvent → HTTP call to inventory-service, Polly retry + circuit breaker, idempotency, graceful degradation |
| Order Payment Flow | Backend #2 + Frontend | 3 payment flows (cash/card/online), PaymentPending status, WalletServiceClient, BFF proxy update, POS Cash/Card/QR components wired |
| Row-Level Security (5 services) | Backend #2 | ITenantProvider + EF global query filters + PostgreSQL RLS policies, defense-in-depth |
| FnB Engine Unit Tests (96 tests) | QA | 57 domain entity tests + 39 command handler tests, xUnit + Moq + FluentAssertions |
| 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 | IPaymentGateway in Domain, implementations in Infrastructure | Multiple gateways (VNPay, Momo) via same interface | ACTIVE |
| 2026-03-06 | PosHub in order-service (not separate service) | Order lifecycle owns real-time notifications | ACTIVE |
| 2026-03-06 | Kitchen→Inventory via HTTP + Polly (not message queue) | Simpler, sufficient for MVP, fire-and-forget pattern | ACTIVE |
| 2026-03-06 | 3 payment flows: cash (instant), card (instant), online (async) | Cash/card don't need gateway, only VNPay/Momo need redirect | ACTIVE |
| 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
| Password | Role | Subscription | |
|---|---|---|---|
| hongochai10@icloud.com | Test@12345 | Admin / Owner | Enterprise (unlimited) |
IX. How to Update This File
- When starting a task: Change status to
IN-PROGRESS - When completing: Change to
DONEand add to "Recently Completed" - When blocked: Change to
BLOCKEDand add note - Weekly: CTO reviews and reprioritizes
- 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.