Ho Ngoc Hai
00d2f26e25
feat(web): build agent dashboard with analytics charts and listing management
...
- Dashboard overview: stats cards (listings, views, inquiries, market avg price), Recharts bar chart for district pricing, recent listings feed with engagement metrics
- Analytics page: tabbed layout (overview/trends/districts), interactive bar chart for district comparison, line chart for price trend over quarters with dual Y-axis, clickable heatmap cards
- Listings management: grid/table view toggle, status filter, stats summary cards, table view with thumbnails and engagement data
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-08 05:20:28 +07:00
Ho Ngoc Hai
b6bb422d33
feat(web): add listing detail page and Mapbox GL JS map integration
...
- Create public listing detail page at /listings/[id] with image gallery,
property specs, contact card, and embedded map
- Rewrite ListingMap component to use Mapbox GL JS with interactive markers,
price labels, and listing popups
- Add selectedListingId prop to search page map views for marker highlighting
- Install mapbox-gl dependency
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-08 05:12:48 +07:00
Ho Ngoc Hai
0b29fac35e
feat(notifications): add multi-channel notification module with Email, FCM, templates, and event listeners
...
- Domain: NotificationLog/NotificationPreference entities, repositories, channel value object
- Infrastructure: EmailService (nodemailer/SMTP), FcmService (firebase-admin), TemplateService (Handlebars)
- Application: SendNotification CQRS command, UserRegistered + AgentVerified event listeners
- Presentation: NotificationsController with history, preferences, and templates endpoints
- Prisma: NotificationLog and NotificationPreference models with proper indexes
- Templates: Vietnamese notification templates for user.registered, agent.verified, listing.approved, inquiry.received, password.reset
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-04-08 01:42:17 +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