Ho Ngoc Hai
db7147a95d
feat: add pricing checkout flow, MFA type fixes, and Wave 13 audit docs
...
- Pricing page: enhanced with checkout modal integration, plan
comparison table, and subscription funnel
- Payment return page: new VNPay/MoMo callback handler
- Subscription components: new checkout-modal with payment method
selection (VNPay, MoMo, ZaloPay)
- API modules: type-safe PII encryption, improved error handling in
MFA/auth/payments/analytics/search/notifications modules
- Audit docs: comprehensive Wave 13 platform assessment, pricing
audit, production readiness checklist
- Updated PROJECT_TRACKER with Wave 13 status
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-12 20:17:11 +07:00
Ho Ngoc Hai
1fbe2f4e73
feat: add MFA/TOTP auth, PII encryption, agents/leads/inquiries modules, and comprehensive tests
...
- Add TOTP-based MFA with setup, verify, disable, backup codes, and challenge flow
- Add PII field encryption middleware with AES-256-GCM and deterministic search hashes
- Add agents, inquiries, and leads domain modules with entities, events, value objects
- Add web dashboard pages for inquiries and leads with detail dialogs
- Add 30+ component tests (valuation, charts, listings, search, providers, UI)
- Add Prisma migrations for encryption hash columns and MFA TOTP support
- Fix all ESLint errors (unused imports, duplicate imports, lint auto-fixes)
- Update dependencies and lock file
- Clean up obsolete exploration/QA docs, add audit documentation
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-11 23:43:20 +07:00
Ho Ngoc Hai
9914d02439
chore(web): update Next.js config, Tailwind config, and type definitions
...
Sync next-env.d.ts, update next.config.js and tailwind.config.ts with
latest settings, and refresh tsconfig build info.
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-11 01:40:30 +07:00
Ho Ngoc Hai
7195064f12
feat(web): add i18n locale routes and language switcher component
...
Add locale-prefixed routes for admin, auth, dashboard, and public pages.
Add error, loading, and not-found pages for locale context. Add language
switcher UI component for Vietnamese/English toggle.
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-09 09:44:18 +07:00
Ho Ngoc Hai
f3fe61bf83
chore(web): update tsconfig build info
...
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-08 23:07:54 +07:00
Ho Ngoc Hai
5114f5b87e
chore: update monitoring configs, CI workflow, and web build info
...
Update Grafana datasource and Prometheus configs for monitoring
integration. Improve E2E CI workflow with Prisma generate, browser
caching, and trace artifact collection.
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-08 23:07:21 +07:00
Ho Ngoc Hai
944d6262e7
feat(metrics): add MetricsService, HttpMetricsInterceptor, and metric constants
...
- Extract metric names into constants with goodgo_ prefix for business metrics
- Add MetricsService for type-safe metric recording
- Add HttpMetricsInterceptor for automatic request duration/count tracking
- Register interceptor globally via APP_INTERCEPTOR
- Include linter auto-fixes for test files
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-08 22:38:55 +07:00
Ho Ngoc Hai
74e95acee5
fix(lint): sort imports in test files to match eslint rules
...
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-08 13:34:06 +07:00
Ho Ngoc Hai
2502aa69b7
fix: production readiness — resolve build, lint, and code quality issues
...
- Fix Next.js build failure: remove duplicate route at (dashboard)/listings/[id]
that conflicted with (public)/listings/[id] (same URL path in two route groups)
- Fix 772 ESLint errors: auto-fix import ordering (import-x/order), remove unused
imports/variables, convert empty interfaces to type aliases, replace require()
with ESM imports, fix consistent-type-imports violations
- Add CLAUDE.md for developer onboarding documentation
- All checks pass: 0 lint errors, typecheck clean, 230 tests passing, build success
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-08 07:15:06 +07:00
Ho Ngoc Hai
4ef54027d6
fix(admin): replace silent error handling with visible error banners
...
Admin action handlers (ban/unban, approve/reject listings, KYC actions)
previously swallowed errors silently. Admins now see inline error messages
when API calls fail, with dismiss buttons.
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-08 02:32:14 +07:00
Ho Ngoc Hai
6123fc427d
feat(web): add Admin module frontend — dashboard, users, moderation, KYC
...
Build the complete admin panel UI at apps/web/app/(admin)/:
- Admin layout with sidebar navigation and ADMIN role guard
- Dashboard page with stats cards and revenue chart
- User management with search, filters, pagination, detail panel, ban/unban
- Listings moderation queue with approve/reject/bulk actions
- KYC review page with document viewer and approve/reject flow
- New reusable UI components: Dialog, Table
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-08 02:29:21 +07:00
Ho Ngoc Hai
e1e5fa6252
feat: scaffold monorepo with Turborepo + NestJS + Next.js
...
- Turborepo monorepo with pnpm workspaces
- apps/api: NestJS 11.x with CQRS module
- apps/web: Next.js 14 App Router + TailwindCSS
- src/modules/shared: base entities, Result pattern, value objects
- TypeScript 5.7+ strict mode, shared tsconfig base
- Build pipeline: dev, build, lint, test, typecheck
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-07 23:52:33 +07:00