# 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 | `DONE` | QA Engineer | Phase 1 / W3 | 29 functional tests, full order lifecycle | | 8 | Staging Deployment | `DONE` | DevOps | Phase 1 / W3-4 | 16 K8s manifests, CI/CD, deploy script | ### 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 | `DEFERRED` | wallet-service (VNPay sufficient for MVP) | | 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 | `DONE` | 29 tests, WebApplicationFactory | #### 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 | `DONE` | 16 manifests + CI/CD | | 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 | | Order Integration Tests (29 tests) | QA | Full order lifecycle (create/pay/complete/cancel), WebApplicationFactory + InMemory DB | | Staging K8s Deployment | DevOps | 16 manifests (8 services + Redis + POS), Ingress, HPA, CI/CD workflows, deploy script | | 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 | 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.*