1. PHÂN TÍCH TÀI LIỆU CHỨC NĂNG HIỆN TẠI

BÁO CÁO PHÂN TÍCH & ĐỀ XUẤT

DỰ ÁN HỆ THỐNG CRM

Dành cho: Ban Giám Đốc ICT Saigon

1. PHÂN TÍCH - 1

Thực hiện: Nguyễn Thành Trung

Ngày: Tháng 04/2026

Tài liệu mật – Chỉ dùng cho mục đích nội bộ

1. PHÂN TÍCH - 2

1. PHÂN TÍCH TÀI LIỆU CHỨC NĂNG HIỆN TẠI

1.1. Điểm tích cực

  • Mô tả nghiệp vụ rõ ràng, dễ hiểu cho người dùng không chuyên kỹ thuật.
  • Có sơ đồ Use Case, luồng End-to-End, và hình minh họa giao diện giúp hình dung sản phẩm.
  • Phân hệ đầy đủ cho CRM doanh nghiệp: Khách hàng 360, Bán hàng, Kho, Marketing, Nhân sự, Báo cáo.

1.2. Điểm cần bổ sung

1. PHÂN TÍCH - 3
  • Thiếu tài liệu kỹ thuật: Không có ERD (Entity-Relationship Diagram), API specification, không có mô tả Data Model.
  • Không có Non-functional Requirements: Chưa định nghĩa số lượng người dùng đồng thời, thời gian phản hồi mong muốn, chỉ tiêu uptime (SLA).
  • Phân hệ CSKH (Bảo hành, Ticket, Bảo trì) ghi “update sau” – đây là module quan trọng nhưng chưa có mô tả chi tiết, dễ gây tranh cãi phạm vi (scope) sau này.
  • Không có kế hoạch tích hợp cụ thể: Zalo ZNS, Email, Telegram được nhắc đến nhưng chưa có integration spec.
  • Không đề cập deployment, backup, disaster recovery – các yếu tố vận hành quan trọng.

2. ĐÁNH GIÁ KIẾN TRÚC CÔNG NGHỆ (TECHNOLOGY STACK)

Tài liệu hiện tại đề xuất sử dụng MERN Stack: Next.js + Node.js/Express + MongoDB. Sau khi phân tích nghiệp vụ CRM, em nhận thấy lựa chọn này có một số vấn đề cần xem xét lại.

2.1. Vấn đề với MongoDB cho CRM

1. PHÂN TÍCH - 4

⚠ Lý do MongoDB không phù hợp cho CRM

1. CRM là bài toán quan hệ dữ liệu phức tạp: Khách hàng → Đơn hàng → Sản phẩm (Serial) → Kho → Hợp đồng. Tất cả đều là quan hệ 1-N, N-N – đúng thế mạnh của SQL.

2. Báo cáo BI Dashboard cần JOIN nhiều bảng: Doanh thu theo nhóm khách, phễu bán hàng, KPI nhân viên. MongoDB Aggregation Pipeline phức tạp gấp 3-5 lần so với SQL JOIN + GROUP BY.

3. Transaction: Tạo đơn hàng cần đồng thời trừ kho, ghi công nợ, cập nhật serial. SQL transaction đơn giản và tin cậy hơn MongoDB multi-document transaction.

4. Data Integrity: SQL có Foreign Key, Unique Constraint enforce ở database level. MongoDB phải enforce ở code – thêm rủi ro lỗi dữ liệu.

5. Quy mô ICT Saigon (vài ngàn khách, vài chục ngàn đơn/năm) là small-medium data. Không cần Big Data capability của MongoDB.

2.2. Vấn đề với Express.js

  • Express 4 ra mắt từ 2014, phát triển rất chậm. Các dự án mới nên sử dụng framework hiện đại hơn.
  • Không có cấu trúc project chuẩn, dễ dẫn đến code lộn xộn khi dự án CRM phình to.
  • Tài liệu không đề cập TypeScript – với nghiệp vụ CRM phức tạp, thiếu type safety là rủi ro lớn.

3. ĐỀ XUẤT KIẾN TRÚC CÔNG NGHỆ

1. PHÂN TÍCH - 5

Dựa trên phân tích nghiệp vụ và quy mô dự án, em đề xuất 2 phương án:

Phương án 1 (Đề xuất chính): Laravel + ReactJS + MySQL

Thành phần

Công nghệ

Lý do lựa chọn

Backend / API

Laravel (PHP 8.x)

Ecosystem CRM sẵn có: Queue, Mail, Notification, Scheduler. ORM Eloquent mạnh cho quan hệ dữ liệu. Cộng đồng lớn tại Việt Nam, dễ tuyển dev.

Frontend (Web)

ReactJS + Vite

Hiệu năng tốt, component-based, tương thích React Native cho mobile. Không cần SSR/SEO (CRM nội bộ).

Database

MySQL 8.x

Relational database phù hợp CRM. Transaction mạnh, Foreign Key, indexing tối ưu. Hỗ trợ JSON column cho dynamic fields.

Cache / Queue

Redis

Session management, job queue, real-time notification pub/sub.

Real-time

Laravel Reverb / Soketi

WebSocket cho notification push, cập nhật trạng thái đơn hàng real-time.

Phương án 2 (Thay thế): NestJS + ReactJS + MySQL

1. PHÂN TÍCH - 6

Nếu anh muốn sử dụng thuần JavaScript/TypeScript fullstack:

Thành phần

Công nghệ

Ghi chú

Backend / API

NestJS + TypeScript

Kiến trúc Module rõ ràng, Dependency Injection. Type safety cao. Cần tự tích hợp nhiều package hơn Laravel.

Frontend (Web)

ReactJS + Vite

Giống Phương án 1.

Database

MySQL 8.x + Prisma ORM

Prisma type-safe, schema-first. Query builder tốt nhưng chưa bằng Eloquent.

Cache / Queue

Redis + BullMQ

Tương đương Laravel Queue nhưng setup phức tạp hơn.

1. PHÂN TÍCH - 7

✔ Khuyến nghị

Em đề xuất Phương án 1 (Laravel) vì: tốc độ phát triển nhanh hơn ~30%, ecosystem sẵn có phong phú (Queue, Mail, Notification, Admin Panel), và phù hợp bài toán CRM truyền thống.

Cả hai phương án đều sử dụng MySQL thay cho MongoDB – đây là thay đổi quan trọng nhất, đảm bảo data integrity và hiệu quả báo cáo cho hệ thống CRM.

4. PHẠM VI CÔNG VIỆC & TIMELINE

4.1. Backend CRM (2 tháng)

1. PHÂN TÍCH - 8

Phát triển API backend bao gồm các phân hệ:

STT

Phân hệ

Chức năng chính

Ghi chú

1

Khách hàng 360

CRUD, phân nhóm, nguồn KH, chống trùng lặp, đầu mối liên hệ B2B

2

Bán hàng (Sales)

Đơn hàng, chọn kho, cơ chế giá tự động, chiết khấu 2 tầng, approval workflow

3

Quản lý Kho

Nhập/Xuất/Chuyển kho, quản lý Serial/IMEI, kiểm kho

4

Báo giá & Hợp đồng

Tạo báo giá, chuyển đổi sang đơn hàng, quản lý vòng đời hợp đồng

5

Công việc (Task)

Dự án, giao việc, deadline, ưu tiên, thông báo

6

Marketing Automation

Kịch bản IF-THEN, email marketing, chiến dịch, đo lường ROI

Cơ bản

7

Nhân sự & Phân quyền

Cơ cấu tổ chức, RBAC 2 chiều (chức năng + data scope), KPI

8

Báo cáo (Dashboard)

Doanh thu, phễu bán hàng, tồn kho, hiệu suất nhân sự

9

CSKH

Quản lý bảo hành, ticket hỗ trợ, bảo trì

Spec cần bổ sung

4.2. App Mobile (Ước tính 100+ màn hình)

1. PHÂN TÍCH - 9

Phát triển ứng dụng di động cho cả Android và iOS bằng React Native, bao gồm:

  • Đăng nhập, phân quyền theo role di động.
  • Quản lý khách hàng, tra cứu nhanh, gọi điện/nhắn tin trực tiếp từ app.
  • Tạo/xem đơn hàng, duyệt đơn (cho quản lý), check tồn kho.
  • Quét mã vạch (barcode/QR) cho kiểm kho và quản lý Serial.
  • Nhận thông báo push (Firebase) khi có đơn mới, task mới, đơn cần duyệt.
  • Dashboard tóm tắt KPI cá nhân, doanh số.

4.3. BA + Tester

Một chuyên viên BA kiêm Tester sẽ tham gia xuyên suốt dự án với các nhiệm vụ:

1. PHÂN TÍCH - 10
  • Phân tích chi tiết nghiệp vụ, bổ sung spec cho các phân hệ còn thiếu (CSKH, tích hợp Zalo/Email).
  • Viết test case cho toàn bộ chức năng.
  • Thực hiện UAT (User Acceptance Testing) trước mỗi lần bàn giao.
  • Tạo báo cáo tiến độ, tài liệu hướng dẫn sử dụng.

5. BẢNG BÁO GIÁ CHI TIẾT

5.1. Chi phí phát triển (một lần)

STT

Hạng mục

Mô tả

Thời gian

Chi phí

1

Backend CRM (Laravel)

Phát triển toàn bộ API, database, phân quyền, báo cáo cho 9 phân hệ

2 tháng

15.000.000 đ

2

App Mobile (React Native)

Phát triển app cho Android + iOS, 100+ màn hình, push notification

Song song

8.000.000 đ

3

BA + Tester

Phân tích nghiệp vụ, viết test case, UAT, báo cáo, tài liệu HDSD

2 tháng

6.000.000 đ

TỔNG CHI PHÍ PHÁT TRIỂN

29.000.000 đ

1. PHÂN TÍCH - 11

5.2. Chi phí bảo trì hàng tháng (sau bàn giao)

Hạng mục

Phạm vi

Chi phí/tháng

Bảo trì cơ bản

Fix bug, sửa UI, điều chỉnh tính năng nhỏ, hỗ trợ vận hành

2.000.000 đ

Phát triển thêm module

Các module lớn ngoài phạm vi ban đầu

Thỏa thuận theo tính năng

5.3. Tổng hợp ngân sách

1. PHÂN TÍCH - 12

Giai đoạn

Thời gian

Chi phí

Phát triển ban đầu

2 tháng

29.000.000 đ

Bảo trì (tháng 3 trở đi)

Hàng tháng

2.000.000 đ/tháng

Tổng năm đầu tiên (ước tính)

12 tháng

49.000.000 đ

(*) Tổng năm đầu = 29 triệu (dev) + 10 x 2 triệu (bảo trì 10 tháng còn lại) = 49 triệu.

6. ĐIỀU KHOẢN & GHI CHÚ

6.1. Thanh toán

  • Đợt 1 (30%): Khi khởi động dự án – 8.700.000 đ.
  • Đợt 2 (40%): Khi hoàn thành Backend + bàn giao bản demo – 11.600.000 đ.
  • Đợt 3 (30%): Khi hoàn thành App Mobile + nghiệm thu – 8.700.000 đ.

6.2. Bàn giao

  • Toàn bộ source code (Backend + Frontend + Mobile).
  • Database script và migration.
  • Tài liệu hướng dẫn cài đặt, deploy, vận hành.
  • Hướng dẫn sử dụng cho người dùng cuối.

6.3. Phạm vi ngoài hợp đồng

  • Chi phí server/hosting (VPS, domain, SSL) do khách hàng chịu.
  • Tích hợp bên thứ ba có phí (Zalo ZNS, SMS Brandname, Email Service) – phí dịch vụ do khách hàng chịu.
  • Nếu phát sinh module lớn ngoài 9 phân hệ đã liệt kê, sẽ thỏa thuận báo giá riêng.
  • Thiết kế UI/UX chuyên sâu (nếu cần thuê designer riêng) không nằm trong phạm vi này.

6.4. Cam kết

  • Bảo hành bug miễn phí 1 tháng sau khi nghiệm thu hoàn tất.
  • Hỗ trợ kỹ thuật deploy lên server khách hàng.
  • Đảm bảo code sạch, có comment, dễ bảo trì và mở rộng.

7. KẾT LUẬN

Hệ thống CRM là đầu tư đúng đắn cho ICT Saigon trong giai đoạn phát triển hiện tại. Tuy nhiên, việc lựa chọn Technology Stack phù hợp sẽ quyết định chất lượng và khả năng mở rộng dài hạn của hệ thống.

Với đề xuất Laravel + ReactJS + MySQL, dự án sẽ được phát triển trên nền tảng đã được chứng minh phù hợp với bài toán CRM doanh nghiệp, đảm bảo tốc độ phát triển, tính ổn định, và khả năng bảo trì lâu dài.

Em rất sẵn lòng trao đổi thêm chi tiết về bất kỳ nội dung nào trong báo cáo này.

Trân trọng,

Nguyễn Thành Trung

Senior Developer

https://drive.google.com/drive/folders/1A-2szNDC62fpdBWxxNvqy9KqT83SMSqS

Zalo Nhắn tin Zalo
0965.210.869
Lấy báo giá sỉ