9f8bdfd9d3b0ae97cd4feab65a57a859cf7b23dd
BFF InviteStaffWithAccount endpoint was constructing payload for merchant-service without employeeCode, phone, and address fields. This caused these fields to be null for all staff created via IAM account flow — the edit form then showed empty Mã NV. - Add employeeCode, phone, address to both create-active and invite payloads in BFF StaffController - Add optional EmployeeCode, Phone, Address params to InviteStaffWithAccountRequest DTO - Pass _newStaffCode, _newStaffPhone, _newStaffAddress from ShopStaff.razor when creating via IAM flow Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
GoodGo Platform
Monorepo platform with microservices architecture for the merchant/customer ecosystem — POS, F&B, retail, spa, karaoke, and more.
Domain: goodgo.vn | Staging: api.staging.goodgo.vn
Tech Stack
| Layer | Technologies |
|---|---|
| Backend | .NET 10.0 (C# 14), MediatR/CQRS, EF Core 10, FluentValidation, Serilog, Dapper, Polly |
| Web | Blazor WASM + MudBlazor 8.15 (Material Design) |
| Mobile | .NET MAUI (cross-platform), SwiftUI (iOS) |
| Database | PostgreSQL 16 (local) / Neon PostgreSQL (cloud), Redis 7 |
| Messaging | RabbitMQ 3 (AMQP) |
| Storage | MinIO (S3-compatible) |
| Gateway | Traefik v3 |
| Infra | Docker Compose (local), Kubernetes RKE2 (staging/prod) |
| CI/CD | GitHub Actions, Docker Hub |
| Observability | Prometheus + Grafana + Loki + Promtail |
| Auth | Duende IdentityServer, JWT Bearer, OAuth2 |
| Monorepo | pnpm 8 workspaces, Turborepo |
Project Structure
services/ # 26 .NET microservices (Clean Architecture + CQRS)
apps/ # Frontend applications
packages/ # Shared Node.js packages (@goodgo/*)
deployments/ # Environment configs (local, staging, production)
infra/ # Infrastructure (Traefik, databases, observability)
scripts/ # Automation scripts (dev, db, deploy, build)
Services
Core Platform
iam-service-net— Identity & Access Management (JWT, RBAC, MFA, Sessions)merchant-service-net— Merchant & Shop managementcatalog-service-net— Product catalogorder-service-net— Order processinginventory-service-net— Inventory managementwallet-service-net— Wallet & paymentsfnb-engine-net— F&B enginebooking-service-net— Booking & reservations
Engagement
promotion-service-net— Promotions & discountsmembership-service-net— Membership & loyaltychat-service-net— Chat & messaging (SignalR + Redis)social-service-net— Social featuresmission-service-net— Gamification missions
Advertising
ads-manager-service-net— Campaign managementads-serving-service-net— Ad deliveryads-billing-service-net— Ad billingads-tracking-service-net— Event trackingads-analytics-service-net— Analytics
Marketing Integrations
mkt-facebook-service-net— Facebookmkt-whatsapp-service-net— WhatsAppmkt-x-service-net— X (Twitter)mkt-zalo-service-net— Zalo
Utilities
storage-service-net— File storage (MinIO)mining-service-net— Data mining
Frontend Apps
| App | Stack | Description |
|---|---|---|
web-client-tpos-net |
Blazor WASM + MudBlazor | POS system (multi-vertical: karaoke, restaurant, cafe, spa, retail) |
web-client-base-net |
Blazor WASM + MudBlazor | Enterprise portal |
app-client-base-net |
.NET MAUI | Cross-platform mobile app |
app-client-base-swift |
SwiftUI | iOS app |
web-docs |
VitePress | Documentation site |
Quick Start
Prerequisites
- Docker & Docker Compose
- .NET 10.0 SDK
- Node.js 25+
- pnpm 8+
Run Locally
# Start infrastructure (PostgreSQL, Redis, RabbitMQ, MinIO, Traefik) + all services
cd deployments/local
docker compose up -d
# Run database migrations (per service)
./scripts/db/migrate.sh
# Start a specific service for development
./scripts/dev/start-service.sh iam-service-net
Architecture
Each .NET service follows Clean Architecture + CQRS:
ServiceName/
src/
ServiceName.API/ # Controllers + MediatR Commands/Queries
ServiceName.Domain/ # Entities, aggregates, domain events (no dependencies)
ServiceName.Infrastructure/ # EF Core, repositories, migrations
tests/
ServiceName.UnitTests/ # xUnit + FluentAssertions
ServiceName.FunctionalTests/ # WebApplicationFactory integration tests
Documentation
- ROADMAP.md — Development roadmap and phase tracking
- CLAUDE.md — Full architecture reference and agent configuration
Maintainer
Built by VelikHo (@hongochai10)
- Email: hongochai10@icloud.com
- GitHub: https://github.com/hongochai10
Description
Languages
C#
62.8%
HTML
22.7%
TypeScript
7.5%
CSS
3%
Swift
2%
Other
1.9%