Hệ thống RealCRM để quản lý khách hàng, nhân viên và tổ chức một cách có hệ thống. Được thiết kế dựa trên TypeScript, Next.js 14 (App Router), Prisma, NextAuth và bao gồm RBAC (Kiểm soát truy cập dựa
🚀 Tổng quan dự án
RealCRM là hệ thống quản lý khách hàng chuyên biệt cho ngành môi giới bất động sản, cung cấp các giá trị cốt lõi sau:
🔐 Bảo mật: Kiểm soát truy cập dựa trên vai trò (RBAC) và nhật ký kiểm tra
📊 Hiệu quả: Phân bổ khách hàng hàng loạt dựa trên Excel, quản lý lịch thăm bằng lịch
🎯 Chính xác: Xác thực schema Zod, chuẩn hóa số điện thoại, phát hiện trùng lặp
🚀 Khả năng mở rộng: Next.js 14 App Router, triển khai Vercel Edge
📱 Facebook Integration: Tích hợp Facebook Messenger Conversions API để tracking và optimization ads
🧱 Tính năng chính
UI/UX
✅ Màn hình intro thương hiệu → Animation Framer Motion, tối ưu 1.8 giây → Chuỗi logo + typography, bỏ qua session storage → Hỗ trợ khả năng truy cập (prefers-reduced-motion)
✅ PWA (Progressive Web App) → Thêm vào màn hình chính, hỗ trợ offline, màn hình splash
Tích hợp Facebook
✅ Facebook Messenger Conversions API → Gửi sự kiện chuyển đổi (LeadSubmitted, QualifiedLead) về Meta → Tự động tạo/linking AdCallNumber khi có events từ Facebook Ads → Tracking khách hàng qua PSID (Page-Scoped User ID) từ Messenger → Xem chi tiết: Facebook Messenger Setup Guide
Xác thực & Quản lý quyền
✅ Xác thực dựa trên NextAuth v5 → Credentials Provider (ID/mật khẩu)
✅ 5 cấp độ vai trò → PENDING → EMPLOYEE → TEAM_LEADER → HEAD → ADMIN
✅ Luồng chờ phê duyệt → PENDING khi đăng ký, kích hoạt sau khi ADMIN phê duyệt
✅ Kiểm soát quyền chi tiết → Kết hợp resource/action dựa trên mô hình Permission
Quản lý khách hàng
✅ Thẻ quản lý khách hàng RealCRM → Giới tính, độ tuổi, khu vực cư trú, xu hướng đầu tư, ngân sách dự kiến và hơn 15 trường
✅ Chuẩn hóa số điện thoại → 010-1234-5678 → 01012345678 (chỉ lưu số)
✅ Phát hiện khách hàng trùng lặp → Kiểm tra trùng lặp theo số điện thoại, modal xem/ghép
✅ Quản lý cấp độ khách hàng → Cấp độ A/B/C, hiển thị thẻ quan tâm
Lịch & Thông báo
✅ Tích hợp FullCalendar → Lịch thăm theo tháng, toggle kiểm tra, tính tỷ lệ kiểm tra
✅ Hệ thống thông báo → Danh mục, tính năng ghim, hỗ trợ Markdown
Tích hợp Excel
✅ Import khách hàng hàng loạt → Tải lên Excel dựa trên SheetJS, kiểm tra trùng lặp rồi phân bổ
Tải lên Excel
↓
Chuẩn hóa số điện thoại (010-1234-5678 → 01012345678)
↓
Kiểm tra trùng lặp (Truy vấn DB)
↓
Phát hiện trùng lặp → Hiển thị modal
├─ Xem khách hàng hiện có (liên kết)
├─ Bỏ qua
└─ Ghép (Cập nhật dữ liệu hiện có)
↓
Xử lý transaction
├─ Tạo Customer
├─ Ghi CustomerAllocation
└─ Ghi AuditLog