Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh toàn cầu hóa nền kinh tế, sự tồn tại và phát triển của doanh nghiệp không chỉ phụ thuộc vào các nguồn lực nội tại mà còn chịu tác động mạnh mẽ từ môi trường bên ngoài như chính sách kinh tế vĩ mô, đối thủ cạnh tranh và đặc biệt là thái độ, hành vi của khách hàng đối với sản phẩm, dịch vụ. Việc nắm bắt và theo dõi liên tục nhu cầu của khách hàng giúp doanh nghiệp kịp thời điều chỉnh quy trình cung cấp dịch vụ, bổ sung các tiện ích cần thiết nhằm gia tăng mức độ hài lòng và giảm thiểu sự phiền hà. Ứng dụng giải pháp quản trị quan hệ khách hàng (CRM) cho phép doanh nghiệp phân tích thói quen, nhu cầu dựa trên cơ sở dữ liệu sẵn có, quản lý chiến dịch tiếp thị và tiết kiệm chi phí vận hành. Xuất phát từ nhu cầu thực tiễn đó, tác giả Võ Văn Thảo đã thực hiện khóa luận tốt nghiệp: "Nghiên cứu Node.js kết hợp PostgreSQL xây dựng phần mềm quản lý khách hàng và khai thác khách hàng tiềm năng cho doanh nghiệp" tại Khoa Công nghệ Thông tin, Trường Đại học Quảng Nam (tháng 4 năm 2019) dưới sự hướng dẫn của ThS. Trần Thị Diệu Hiền.
Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể như sau:
- Khảo sát đặc điểm và thực trạng quản lý khách hàng tại Công ty Fixcom, từ đó đề xuất giải pháp hoàn thiện công tác quản trị quan hệ khách hàng.
- Xây dựng cơ sở dữ liệu khách hàng tập trung, hỗ trợ phân loại đối tượng, xác định nhu cầu và xây dựng chiến lược quan hệ phù hợp cho từng nhóm khách hàng.
- Thiết lập các hoạt động CRM nhằm tạo giá trị, duy trì và gia tăng lòng trung thành của khách hàng, tiết kiệm chi phí tiếp thị và tạo lợi thế cạnh tranh bền vững.
- Nghiên cứu nền tảng công nghệ Node.js và hệ quản trị cơ sở dữ liệu PostgreSQL để thiết kế, cài đặt phần mềm quản lý khách hàng và gửi thư tiếp thị (Mail Marketing).
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Nền tảng Node.js, hệ quản trị cơ sở dữ liệu PostgreSQL, các công cụ giao diện Bootstrap, thư viện jQuery; phương pháp phân tích và thiết kế hệ thống thông tin theo hướng đối tượng (UML).
- Phạm vi nghiên cứu: Khách hàng và hoạt động quản trị quan hệ khách hàng trong doanh nghiệp, gắn liền với khảo sát thực tế tại Công ty Fixcom.
Cơ sở lý thuyết và phương pháp
Khóa luận xây dựng trên nền tảng lý thuyết quản trị quan hệ khách hàng kết hợp với các công nghệ phần mềm mã nguồn mở:
- Lý thuyết Quản trị Quan hệ Khách hàng (CRM): Khái niệm CRM là chiến lược phát triển quan hệ gắn bó thông qua việc tìm hiểu thấu đáo nhu cầu và thói quen của khách hàng. Khóa luận dẫn chứng các nghiên cứu thực nghiệm của Paul Gray và Jongbok Byun (Trường Claremont Graduate School) khẳng định chi phí tiếp cận một khách hàng mới cao gấp 5 đến 10 lần chi phí duy trì khách hàng sẵn có; việc gia tăng 5% lượng khách hàng trung thành có thể nâng mức lợi nhuận từ 25% lên hơn 100% tùy ngành nghề. Đề tài cũng so sánh chi tiết giữa hai hệ thống CRM và ERP (Hoạch định nguồn lực doanh nghiệp) để làm rõ lý do ưu tiên triển khai CRM độc lập cho quản lý tương tác bên ngoài.
- Nền tảng công nghệ Node.js: Môi trường thực thi JavaScript phía máy chủ xây dựng trên V8 JavaScript Engine của Google, thư viện libUV, hoạt động theo cơ chế hướng sự kiện, mô hình non-blocking I/O (không chặn) và đơn luồng (single thread with event loop). Các module cốt lõi được nghiên cứu gồm:
EventEmitter, Streams (Readable, Writable), File System (fs), và http server.
- Hệ quản trị cơ sở dữ liệu quan hệ PostgreSQL: Hệ thống mã nguồn mở phát triển từ dự án Postgres tại Đại học California ở Berkeley, tuân thủ chuẩn SQL:2008, hỗ trợ kiểm soát truy cập đồng thời nhiều phiên bản (MVCC), khôi phục dữ liệu theo thời điểm (Point-in-time recovery), quản lý dung lượng bảng (tablespaces) và lưu trữ dữ liệu nhị phân lớn (BLOB).
Phương pháp nghiên cứu được áp dụng trong khóa luận gồm:
- Phương pháp nghiên cứu tài liệu: Thu thập, tổng hợp các tài liệu chuyên ngành về CRM, giáo trình công nghệ thông tin, tài liệu hướng dẫn kỹ thuật của Node.js, PostgreSQL, Bootstrap và jQuery.
- Phương pháp tổng kết kinh nghiệm: Phân tích quy trình quản lý thực tế và các bài học triển khai phần mềm để xây dựng kiến trúc hệ thống phù hợp.
- Phương pháp lấy ý kiến chuyên gia: Trao đổi, tiếp thu ý kiến hướng dẫn trực tiếp từ giảng viên chuyên môn trong suốt quá trình hoàn thiện nội dung và giải pháp kỹ thuật.
- Phương pháp thử nghiệm định lượng: Thực hiện kiểm nghiệm hiệu năng (benchmark) so sánh tốc độ xử lý giữa Node.js và PHP thông qua giao diện dòng lệnh (console command), lặp lại thử nghiệm 10 lần để lấy giá trị trung bình.
| Tiêu chí so sánh |
Hệ thống ERP |
Hệ thống CRM |
| Mục đích |
Hoạch định các nguồn lực hiện có, làm tăng hiệu quả kinh doanh |
Duy trì và tìm kiếm mới các nguồn lực và khách hàng |
| Đối tượng |
Tài chính, vật tư, hàng hóa, tài sản, nhân công nội bộ |
Khách hàng chưa mua, đã mua, đang mua và sẽ mua sản phẩm |
| Định hướng |
Các mối quan hệ giữa các nguồn lực bên trong doanh nghiệp |
Mối quan hệ giữa nguồn lực nội bộ và khách hàng bên ngoài |
| Công cụ thực hiện |
Công nghệ thông tin |
Công nghệ thông tin |
| Quy trình thủ tục |
Nhà quản lý xây dựng, tự động hóa bằng phần mềm |
Nhà quản lý xây dựng, tự động hóa bằng phần mềm |
| Đánh giá kết quả |
Hiệu quả kinh doanh bằng định lượng |
Lợi ích doanh nghiệp bằng cả định lượng và định tính |
Thiết kế và triển khai hệ thống
Khóa luận tiếp cận theo phương pháp phân tích và thiết kế hướng đối tượng, mô hình hóa các yêu cầu chức năng thành các biểu đồ ca sử dụng (Use Case), biểu đồ tuần tự (Sequence Diagram), biểu đồ cộng tác (Collaboration Diagram) và biểu đồ lớp (Class Diagram).
Hệ thống phân định rõ hai tác nhân chính (Actors):
- Người quản trị (Admin / Quản lý): Toàn quyền cấu hình hệ thống, quản lý tài khoản người dùng, phân quyền chi tiết cho từng chức năng/nhóm người dùng, quản lý nhóm khách hàng, quản lý danh sách khách hàng và thực hiện các chiến dịch Mail Marketing.
- Nhân viên kinh doanh: Đăng nhập, tra cứu và cập nhật danh sách khách hàng, gửi email giao dịch hoặc chăm sóc khách hàng theo các phân hệ được cấp quyền.
Sáu nhóm chức năng chính được phân tích chi tiết:
- Chức năng Đăng nhập: Xác thực tên người dùng và mật khẩu từ cơ sở dữ liệu; hiển thị thông báo lỗi hoặc chuyển tiếp vào giao diện làm việc.
- Chức năng Quản lý thành viên: Xem danh sách người dùng, thêm mới, sửa đổi thông tin và khóa/xóa tài khoản thành viên.
- Chức năng Quản lý nhóm khách hàng: Tạo mới phân loại khách hàng, cập nhật tiêu chí nhóm và xóa nhóm.
- Chức năng Quản lý khách hàng: Xem thông tin chi tiết khách hàng, thêm mới thủ công, chỉnh sửa thông tin, xóa khách hàng và hỗ trợ tải tệp mẫu Excel để nhập dữ liệu hàng loạt lên hệ thống.
- Chức năng Gửi mail cho khách hàng (Mail Marketing): Chọn đối tượng nhận thư theo nhóm hoặc cá nhân, nhập tiêu đề, soạn thảo nội dung, đính kèm tệp tin và lưu trữ lịch sử gửi thư.
- Chức năng Phân quyền: Gán quyền truy cập các module chức năng cụ thể cho từng người dùng hoặc nhóm người dùng.
Cơ sở dữ liệu PostgreSQL được thiết kế gồm các thực thể: Người dùng (User), Nhóm khách hàng, Khách hàng, Phòng ban, Mối quan hệ, Chức năng, Phân quyền người dùng, Phân quyền nhóm người dùng, Mail đã gửi và Mail nhận.
| STT |
Tên trường |
Diễn giải |
Kiểu dữ liệu |
Khóa |
| 1 |
id_user |
Mã người dùng |
serial |
Khóa chính (PK) |
| 2 |
username |
Tên tài khoản |
varchar |
|
| 3 |
password |
Mật khẩu |
varchar |
|
| 4 |
name |
Tên người dùng |
varchar |
|
| 5 |
birth_date |
Ngày sinh |
date |
|
| 6 |
address |
Địa chỉ |
varchar |
|
| 7 |
email |
Địa chỉ email |
varchar |
|
| 8 |
phone |
Số điện thoại |
varchar |
|
| 9 |
gender |
Giới tính |
bit |
|
| 10 |
image |
Hình ảnh đại diện |
varchar |
|
| 11 |
is_custom |
Tùy chỉnh |
boolean |
|
| 12 |
active |
Trạng thái kích hoạt |
boolean |
|
| 13 |
id_department |
Mã phòng ban |
integer |
Khóa ngoại (FK) |
| 14 |
id_rights |
Mã quyền |
integer |
Khóa ngoại (FK) |
| 15 |
create_uid |
Mã người tạo |
integer |
|
| 16 |
create_date |
Ngày tạo bản ghi |
CURRENT_TIMESTAMP |
|
| 17 |
write_date |
Ngày sửa bản ghi |
CURRENT_TIMESTAMP |
|
Nội dung chính theo từng chương
Chương 1: Cơ sở lý thuyết về Node.JS và CSDL PostgreSQL
Chương 1 hệ thống hóa các kiến thức nền tảng về công nghệ máy chủ và cơ sở dữ liệu quan hệ:
- Tổng quan Node.js: Trình bày lịch sử hình thành do Ryan Dahl khởi xướng năm 2009 dưới sự bảo trợ của Joyent; giải thích kiến trúc mô-đun hóa, cơ chế gọi thư viện qua lệnh
require() và phạm vi biến toàn cục (global). Khóa luận trình bày chi tiết các đối tượng process, console, Buffer, cơ chế xử lý sự kiện qua EventEmitter (on, emit, removeListener), xử lý dữ liệu luồng (Readable, Writable với các hàm pipe, pause, destroy, write, end), quản lý tệp tin qua module fs (mkdir, writeFile, readFile, watchfile) và module http (createServer, listen với tham số backlog mặc định 511).
- Thử nghiệm so sánh hiệu năng: Tác giả tiến hành đo đạc thời gian thực thi giữa PHP và Node.js thông qua câu lệnh console với các vòng lặp xử lý. Kết quả cho thấy PHP chỉ có ưu thế ở số lượng vòng lặp rất nhỏ; khi số lượng vòng lặp và khối lượng tính toán tăng lên, PHP xử lý chậm hơn rất nhiều so với Node.js, cụ thể PHP chậm hơn 93% so với Node.js ở các tác vụ nặng.
- Mã nguồn mở và CSDL PostgreSQL: Trình bày các khái niệm pháp lý về giấy phép mã nguồn mở (đặc biệt là giấy phép GNU GPL và hiệu ứng virus - virus effect). Phân tích lịch sử PostgreSQL từ Đại học Berkeley, các tính năng nổi bật như hỗ trợ bộ ký tự Unicode, truy vấn phức tạp, tạo chỉ mục mở rộng (compound, unique, partial, functional indexes), tính năng an toàn dữ liệu MVCC và khả năng mở rộng quản lý thực tế vượt quá 4 terabyte. Đồng thời chỉ rõ ưu điểm (tin cậy, chuẩn hóa SQL) và nhược điểm (cộng đồng người dùng nhỏ hơn MySQL, tốc độ ở một số truy vấn đơn giản chậm hơn MySQL, thiếu tham số mặc định trong PL/pgSQL).
Chương 2: Khảo sát thực trạng, phân tích và thiết kế hệ thống quản lý
Chương 2 tập trung giải quyết bài toán nghiệp vụ quản trị quan hệ khách hàng và phân tích thiết kế phần mềm:
- Lý luận thực trạng và quản lý CRM: Phân tích vai trò của CRM đối với bốn nhóm đối tượng: khách hàng (được chăm sóc chu đáo, cá nhân hóa), doanh nghiệp (quản lý tập trung, tiết kiệm chi phí quảng bá), nhà quản lý (cung cấp công cụ thống kê, đánh giá hiệu suất nhân viên) và nhân viên kinh doanh (quản lý thời gian, theo dõi thông tin giao dịch). Khẳng định việc triển khai độc lập hệ thống CRM là giải pháp khả thi hơn việc tích hợp phức tạp với ERP do nguy cơ xung đột dữ liệu và chi phí tốn kém.
- Mục tiêu hệ thống mới: Đặt ra các yêu cầu lưu trữ và thống kê thông tin khách hàng đa chiều, giám sát khối lượng công việc của nhân viên kinh doanh, quản lý thông tin và thị hiếu hàng hóa.
- Đặc tả và mô hình hóa: Xây dựng bảng phân rã chi tiết cho 6 ca sử dụng chính. Lập biểu đồ Use Case tổng quát và sơ đồ quan hệ giữa các Actor với Use Case. Xây dựng các biểu đồ tuần tự và biểu đồ cộng tác cho toàn bộ các quy trình nghiệp vụ: Đăng nhập, Quản lý người dùng, Quản lý nhóm khách hàng, Quản lý khách hàng và Quản lý Mail Marketing. Thiết kế cấu trúc bảng dữ liệu quan hệ cho các thực thể người dùng, phân quyền và dữ liệu khách hàng.
Chương 3: Xây dựng hệ thống
Chương 3 trình bày các bước hướng dẫn cài đặt môi trường và triển khai ứng dụng:
- Hướng dẫn cấu hình môi trường thực thi Node.js trên các hệ điều hành (Windows, Linux qua hệ thống quản lý gói
apt-get hoặc aptitude).
- Hướng dẫn sử dụng công cụ Node Package Manager (NPM) để quản trị và cài đặt các module phụ thuộc (
npm install).
- Trình bày thiết kế giao diện người dùng hoàn chỉnh cho các chức năng: giao diện đăng nhập, trang quản lý người dùng, trang quản lý nhóm khách hàng, trang quản lý khách hàng, giao diện soạn thảo và gửi form Mail Marketing.
Kết quả và đóng góp
Khóa luận đã đạt được các kết quả cụ thể theo đúng mục tiêu đặt ra:
- Kết quả kỹ thuật và hệ thống:
- Hoàn thành thiết kế và xây dựng phần mềm quản lý quan hệ khách hàng ứng dụng kiến trúc non-blocking I/O của Node.js kết hợp cơ sở dữ liệu quan hệ PostgreSQL.
- Cung cấp kết quả đo lường thực nghiệm giữa hai môi trường máy chủ, chứng minh Node.js vượt trội về tốc độ xử lý khi khối lượng vòng lặp tăng cao (PHP chậm hơn 93% trong thử nghiệm xử lý khối lượng lớn của tác giả).
- Tích hợp đầy đủ các chức năng quản lý khách hàng tập trung, phân nhóm khách hàng mục tiêu, hỗ trợ nhập liệu tự động từ tệp Excel và phân hệ gửi thư tiếp thị (Mail Marketing).
- Xây dựng mô hình phân quyền chặt chẽ giữa vai trò Quản lý và Nhân viên kinh doanh, đảm bảo tính bảo mật và phân định trách nhiệm trong doanh nghiệp.
- Giải pháp và kiến nghị ứng dụng: Đề xuất quy trình chuyển đổi phương thức quản lý khách hàng thủ công sang hệ thống CRM tự động hóa nhằm giảm thiểu chi phí tiếp cận khách hàng mới (vốn tốn kém gấp 5-10 lần chi phí duy trì khách hàng cũ) và tối ưu hóa năng suất làm việc của đội ngũ kinh doanh.
- Đóng góp học thuật và thực tiễn: Khóa luận làm phong phú thêm kho phần mềm quản lý ứng dụng mã nguồn mở; đóng vai trò là tài liệu tham khảo có cấu trúc hoàn chỉnh về phân tích thiết kế hệ thống thông tin theo chuẩn UML dành cho sinh viên chuyên ngành Công nghệ thông tin.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên phạm vi và nội dung trình bày trong văn bản, đề tài tồn tại một số hạn chế và định hướng phát triển:
- Hạn chế: Hệ quản trị cơ sở dữ liệu PostgreSQL có cộng đồng người dùng tại thời điểm nghiên cứu chưa thực sự lớn mạnh bằng MySQL; tốc độ xử lý ở một số tác vụ đơn giản có phần chậm hơn MySQL và ngôn ngữ thủ tục PL/pgSQL còn hạn chế khi không hỗ trợ tham số mặc định. Hệ thống mới tập trung vào các chức năng CRM cơ bản (quản lý thông tin, phân nhóm, gửi mail) và khảo sát thực tế trong phạm vi doanh nghiệp quy mô như Công ty Fixcom.
- Hướng nghiên cứu tiếp: Mở rộng nghiên cứu các cơ chế đồng bộ và tích hợp hai chiều giữa hệ thống CRM với các phân hệ ERP khác; bổ sung các công cụ phân tích dữ liệu chuyên sâu hơn về thị hiếu tiêu dùng và phát triển thêm các kênh tương tác khách hàng đa nền tảng ngoài giao thức thư điện tử.
Giá trị tham khảo
Khóa luận là tài liệu tham khảo hữu ích cho:
- Sinh viên chuyên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Cung cấp tài liệu mẫu mực về quy trình phân tích và thiết kế hệ thống hướng đối tượng thông qua hệ thống biểu đồ UML hoàn chỉnh (biểu đồ Use Case, biểu đồ tuần tự, biểu đồ cộng tác, biểu đồ lớp).
- Lập trình viên và người nghiên cứu công nghệ web: Tham khảo kiến trúc kết hợp giữa nền tảng JavaScript máy chủ (Node.js) và hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở (PostgreSQL), cùng các phương thức làm việc với tệp tin, luồng dữ liệu (Stream) và module HTTP.
- Nhà phát triển ứng dụng quản trị doanh nghiệp: Tham khảo cách thức mô hình hóa quy trình CRM thực tế, xây dựng bảng cơ sở dữ liệu phân quyền và triển khai tính năng gửi thư tiếp thị tự động cho doanh nghiệp.
Câu hỏi thường gặp
1. Vì sao tác giả lựa chọn nền tảng Node.js thay vì môi trường máy chủ truyền thống như PHP?
Trong thử nghiệm kiểm tra hiệu năng (benchmark) bằng lệnh console lặp lại 10 lần, dù PHP xử lý nhanh hơn ở các vòng lặp số lượng nhỏ, nhưng khi số lượng vòng lặp và tải xử lý tăng cao thì Node.js thể hiện tốc độ vượt trội nhờ kiến trúc hướng sự kiện không đồng bộ và V8 Engine, trong khi PHP chậm hơn tới 93%.
2. Khóa luận dẫn chứng số liệu nào về hiệu quả kinh tế của việc ứng dụng CRM trong doanh nghiệp?
Khóa luận dẫn nghiên cứu của Paul Gray và Jongbok Byun (Claremont Graduate School) chứng minh chi phí tiếp cận một khách hàng mới thường cao gấp 5 đến 10 lần chi phí duy trì khách hàng sẵn có; đồng thời khi doanh nghiệp tăng thêm 5% lượng khách hàng trung thành thì lợi nhuận có thể tăng từ 25% đến hơn 100%.
3. Vì sao tác giả đề xuất xây dựng hệ thống CRM độc lập thay vì tích hợp trực tiếp vào hệ thống ERP sẵn có?
Văn bản chỉ ra rằng việc triển khai đồng thời hoặc mở rộng tính năng CRM trên nền hệ thống ERP đã có gặp nhiều khó khăn: dễ gây xung đột dữ liệu giữa hai hệ thống, quy trình thao tác của nhân viên trở nên phức tạp thiếu thống nhất, và chi phí thực hiện tích hợp là rất tốn kém so với việc xây dựng một hệ thống CRM chuyên biệt.
4. Chức năng Quản lý khách hàng trong phần mềm hỗ trợ phương thức nhập liệu nào?
Bên cạnh việc thêm mới từng khách hàng bằng giao diện thủ công, hệ thống cho phép người dùng tải về tệp tin mẫu định dạng Excel, điền thông tin và tải (upload) danh sách khách hàng hàng loạt lên trang quản lý.
5. Cấu trúc bảng dữ liệu Người dùng (User) trong cơ sở dữ liệu PostgreSQL gồm những trường khóa nào?
Bảng User sử dụng trường id_user (kiểu dữ liệu serial) làm khóa chính, cùng hai trường khóa ngoại là id_department (liên kết mã phòng ban) và id_rights (liên kết mã quyền người dùng).
Kết luận
Khóa luận tốt nghiệp của sinh viên Võ Văn Thảo đã nghiên cứu và ứng dụng thành công nền tảng Node.js kết hợp hệ quản trị cơ sở dữ liệu PostgreSQL để giải quyết bài toán quản lý quan hệ khách hàng và khai thác khách hàng tiềm năng cho doanh nghiệp. Bằng phương pháp phân tích thiết kế hướng đối tượng chặt chẽ, đề tài đã xây dựng hoàn chỉnh từ mô hình lý thuyết, lược đồ cơ sở dữ liệu đến giao diện thực thi cho 6 phân hệ chức năng trọng yếu. Công trình cung cấp giải pháp công nghệ thiết thực giúp doanh nghiệp tối ưu chi phí tiếp thị, nâng cao chất lượng chăm sóc khách hàng và là tài liệu tham khảo có giá trị chuyên môn cao cho sinh viên ngành Công nghệ thông tin.