Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh công nghệ thông tin phát triển và được ứng dụng sâu rộng vào đời sống kinh tế - xã hội, việc lưu trữ, quản lý, phân tích và chia sẻ dữ liệu trở thành yếu tố tiên quyết nhằm gia tăng năng suất lao động, đặc biệt đối với các nhóm ngành công nghiệp và dịch vụ. Đối với các doanh nghiệp vừa và nhỏ, việc vận hành bộ máy đòi hỏi tính đơn giản, linh hoạt và hiệu quả để duy trì mối quan hệ gắn kết với khách hàng cũng như nâng cao hiệu suất làm việc của nhân viên. Tuy nhiên, thực tế tại các đơn vị này cho thấy quy trình quản trị thường xuyên đối mặt với sự phân mảnh, thiếu tính đồng bộ giữa các khâu tiếp nhận thông tin, theo dõi công việc và bán hàng.

Xuất phát từ thực trạng khảo sát sơ bộ, đề tài "Hệ thống quản lý quan hệ khách hàng (CRM)" của tác giả Bùi Văn Huân tập trung giải quyết bài toán hợp nhất các nghiệp vụ quản trị trên một nền tảng duy nhất, có thể truy cập qua môi trường mạng.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể như sau:

  1. Nghiên cứu tổng quan về mô hình quản lý quan hệ khách hàng (CRM) và khảo sát nhu cầu quản lý thực tế tại các doanh nghiệp vừa và nhỏ, bao gồm các mô hình dịch vụ, nhà hàng, quán cà phê, cửa hàng kinh doanh và mỹ phẩm.
  2. Phân tích yêu cầu nghiệp vụ, mô hình hóa các trường hợp sử dụng (Use Case) và thiết kế kiến trúc cơ sở dữ liệu quan hệ đồng bộ từ khâu tiếp nhận khách hàng, lập dự án, phân bổ công việc đến bán hàng tại quầy.
  3. Xây dựng và hoàn thiện phần mềm web CRM theo hướng mã nguồn mở (open-source), cho phép linh hoạt tùy chỉnh, thêm bớt hoặc mở rộng các phân hệ chức năng độc lập.
  4. Triển khai thử nghiệm các phân hệ quản lý thông tin khách hàng, quản lý liên hệ, quản lý dự án, nhiệm vụ, danh mục sản phẩm và điểm bán hàng (POS).

Đối tượng nghiên cứu của đồ án là quy trình quản lý thông tin khách hàng, tiến trình công việc, dự án và giao dịch bán lẻ tại các doanh nghiệp vừa và nhỏ. Phạm vi nghiên cứu về mặt không gian tập trung vào mô hình ứng dụng web vận hành trên nền tảng đám mây; phạm vi thời gian thực hiện nghiên cứu và phát triển phần mềm diễn ra trong giai đoạn từ năm 2018 đến năm 2021 tại Trường Đại học Bà Rịa – Vũng Tàu.

Cơ sở lý thuyết và phương pháp nghiên cứu

Về mặt lý luận, đồ án tiếp cận khái niệm Quản lý quan hệ khách hàng dưới mô hình WCRM (Websiteveloper Customer Relationship Management) dành cho doanh nghiệp vừa và nhỏ. Hệ thống WCRM tích hợp các trục nghiệp vụ cốt lõi gồm: Quản lý sản phẩm (Inventory), Quản lý khách hàng (Customer), Quản lý thông tin liên hệ (Contact), Điểm bán hàng (POS), Quản lý công việc (Task), Quản lý dự án (Project) và Danh sách việc cần làm (To-do). Về mặt kiến trúc phần mềm, đề tài vận dụng nguyên lý kiến trúc microservices nhằm phân chia, tách biệt các đại diện chức năng và dịch vụ xử lý thành các khối độc lập, giảm thiểu sự phụ thuộc lẫn nhau, hỗ trợ việc chỉnh sửa, thay thế hoặc bổ sung module mã nguồn mà không gây gián đoạn hệ thống chung.

Phương pháp nghiên cứu được triển khai xuyên suốt đồ án bao gồm:

  • Phương pháp khảo sát, phân tích yêu cầu phần mềm: Phân tích thực trạng quản trị thiếu đồng bộ, xác định các yêu cầu chức năng, yêu cầu phi chức năng và thiết lập phân quyền người dùng.
  • Phương pháp mô hình hóa hướng đối tượng bằng UML: Xây dựng sơ đồ Use Case tổng quát, Use Case phân rã cho từng phân hệ và các sơ đồ tuần tự (Sequence Diagram) mô tả luồng dữ liệu cho các thao tác đăng nhập, xem, thêm, sửa, xóa dự án.
  • Phương pháp thiết kế cơ sở dữ liệu quan hệ: Chuẩn hóa lược đồ thực thể quan hệ, thiết kế 23 bảng dữ liệu với các ràng buộc khóa chính, khóa ngoại chặt chẽ.
  • Phương pháp lập trình và tích hợp hệ thống: Xây dựng ứng dụng web theo mô hình MVC sử dụng ngôn ngữ Python kết hợp các framework chuyên dụng.

Nguồn dữ liệu của đề tài bao gồm dữ liệu khảo sát quy trình quản lý thực tế tại doanh nghiệp vừa và nhỏ cùng hệ thống dữ liệu thử nghiệm nội bộ được thiết kế trực tiếp trong cơ sở dữ liệu của ứng dụng.

Thiết kế và triển khai hệ thống

Đồ án triển khai hệ thống theo mô hình kiến trúc phân tầng kết hợp cấu trúc thư mục modular, định hướng microservices, cho phép hệ thống vận hành linh hoạt trên môi trường đám mây.

Thành phần Công nghệ / Thư viện sử dụng Vai trò và chức năng trong hệ thống
BackEnd Python Ngôn ngữ lập trình chính xử lý logic hệ thống
Flask Web framework xử lý URL routing, request, response, template
Werkzeug Bộ công cụ WSGI đảm nhiệm yêu cầu, phản hồi đối tượng
Jinja2 Template engine kết hợp mẫu giao diện và dữ liệu động
Flask-WTForms Xử lý và xác thực dữ liệu biểu mẫu (form)
Flask-SQLAlchemy Thư viện ORM ánh xạ bảng dữ liệu quan hệ sang lớp đối tượng
SQLite Hệ thống quản trị cơ sở dữ liệu quan hệ nhúng cục bộ
FrontEnd HTML Cấu trúc nội dung trang web
TailwindCSS Utility-first CSS framework định hình giao diện
JavaScript & jQuery Xử lý sự kiện phía client, tương tác DOM và Ajax
Alpine.js Minimal framework hỗ trợ reactivity trên giao diện người dùng
Môi trường & Đám mây Heroku Nền tảng PaaS triển khai, quản lý và mở rộng ứng dụng web
PyCharm Môi trường phát triển tích hợp (IDE) của JetBrains

Cơ cấu tổ chức tệp tin dự án được chuẩn hóa thành các thư mục chức năng: db (lưu trữ cơ sở dữ liệu), template (chứa các tệp thiết kế giao diện), static (chứa hình ảnh, CSS, Bootstrap, JS), venv (môi trường ảo và thư viện), migration (chuyển đổi lược đồ cơ sở dữ liệu), src (cấu hình và tính năng cốt lõi), modules (mã nguồn xử lý tính năng độc lập), và config (biến môi trường tùy chỉnh).

Hệ thống phân quyền truy cập chặt chẽ thông qua 3 tác nhân (Actor) chính:

  • Admin (Quản trị viên): Nắm toàn quyền quản trị cao nhất, thực hiện cấp quyền truy cập, tạo tài khoản người dùng, cấu hình tham số hệ thống và quản trị toàn bộ dữ liệu.
  • Manager (Quản lý): Theo dõi tình hình báo giá dịch vụ, doanh thu công ty, quản lý nhân viên, danh mục, dịch vụ, hóa đơn, báo cáo thống kê, phiếu hàng, dự án, công việc và khách hàng.
  • Saler (Nhân viên kinh doanh): Tiếp nhận yêu cầu báo giá, quản lý dữ liệu khách hàng, theo dõi tiến trình thực hiện dự án và công việc được phân công, gửi báo giá và thực hiện thu tiền, thanh toán đơn hàng.

Cơ sở dữ liệu của phần mềm bao gồm 23 bảng quan hệ được thiết kế chi tiết: User, Role, UserRole, Tag, Project, ProjectStatus, ProjectTag, Task, TaskStatus, TaskPriority, TaskTag, TaskCheckListItem, TaskCheckListStatus, Client, ClientStatus, ClientOrder, ClientOrderHistory, Contact, Gender, Product, ProductBrand, ProductCategory. Đáng chú ý, để lưu trữ giỏ hàng và danh sách sản phẩm linh hoạt trong bảng ClientOrder, tác giả đã xây dựng lớp tùy biến kiểu dữ liệu JsonEcodedDict kế thừa từ db.TypeDecorator của SQLAlchemy:

class JsonEcodedDict(db.TypeDecorator):
    impl = db.Text
    def process_bind_param(self, value, dialect):
        if value is None:
            return '{}'
        else:
            return json.dumps(value)
    def process_result_value(self, value, dialect):
        if value is None:
            return {}
        else:
            return json.loads(value)

Nội dung chính theo từng chương

Chương I: Tổng quan về đề tài

Chương mở đầu phân tích vai trò thiết yếu của công nghệ thông tin trong việc tối ưu hóa quy trình làm việc và gia tăng năng suất cho doanh nghiệp. Tác giả chỉ rõ các rào cản vận hành của doanh nghiệp vừa và nhỏ khi thiếu giải pháp công nghệ tập trung, dẫn đến việc quản lý khách hàng và dự án bị gián đoạn. Từ đó, chương xác định mục tiêu phát triển hệ thống phần mềm CRM mở, đáp ứng đầy đủ các phân hệ bán hàng (POS), quan hệ khách hàng, quản lý kho, nhân sự, dự án và phân bổ công việc trên cùng một nền tảng.

Chương II: Cơ sở lý thuyết

Nội dung chương tập trung trình bày khái niệm hệ thống WCRM và cấu trúc mô hình microservices ứng dụng trong đồ án. Tác giả phân tích chi tiết cơ cấu 8 thư mục tổ chức tệp tin mã nguồn và tổng hợp toàn bộ ngăn xếp công nghệ được áp dụng. Phần lý thuyết làm rõ cơ chế hoạt động của ngôn ngữ Python, web framework Flask cùng các thư viện mở rộng như Werkzeug, Jinja2, Flask-WTForms, Flask-SQLAlchemy, cơ sở dữ liệu SQLite, nền tảng đám mây Heroku, các công cụ giao diện FrontEnd (HTML, TailwindCSS, JavaScript, jQuery, Alpine.js) và môi trường phát triển PyCharm.

Chương III: Phân tích thiết kế hệ thống

Chương III trình bày kết quả khảo sát sơ bộ và đặc tả yêu cầu chức năng. Tác giả xây dựng sơ đồ tổng quát các Use Case tác động vào hệ thống, phân rã chi tiết Use Case cho các tác nhân Admin, Manager, Saler qua các nhóm chức năng: Quản lý dự án (Project, Task, To-do), Quản lý khách hàng (Customer, Contact), Quản lý báo giá (Product, Inventory, POS), Thiết lập hệ thống (Staff, Account, Role, Category, Currency, Project Tag, Task Tag) và Đăng nhập. Các sơ đồ tuần tự mô tả chi tiết luồng xử lý xác thực đăng nhập, chu trình quản lý dữ liệu, và các thao tác Xem - Thêm - Sửa - Xóa dự án. Đồng thời, chương cung cấp sơ đồ ERD tổng thể và đặc tả chi tiết cấu trúc 23 bảng cơ sở dữ liệu.

Chương IV: Xây dựng hệ thống website

Chương này mô tả chi tiết quá trình lập trình và kết quả giao diện thực tế của phần mềm qua hai phân khu chính:

  1. Giao diện trang chủ (Landing page): Bao gồm phần chào mừng (Home), giới thiệu biểu tượng chức năng (App), bảng thông tin các gói giá dịch vụ (Price - thể hiện rõ dung lượng lưu trữ, số lượng dự án tối đa, số cộng tác viên và đơn giá hàng tháng), biểu mẫu thông tin liên hệ tư vấn và chân trang (Footer).
  2. Giao diện trang quản trị (Admin Dashboard): Trình bày chức năng đăng nhập, thông báo xác thực sai, biểu mẫu đăng ký tài khoản dùng thử, thanh điều hướng ngang (menu top) và thanh menu dọc (menu left). Phân hệ quản lý chi tiết bao gồm:
    • Quản lý thông tin khách hàng: Danh sách, thông tin chi tiết (tích hợp xem thông tin công ty, liên hệ, dự án, nhiệm vụ), biểu mẫu thêm mới, chỉnh sửa và chức năng xóa khách hàng.
    • Quản lý thông tin liên hệ: Danh sách liên hệ, xem thông tin chi tiết qua cửa sổ pop-up (modal), thêm, sửa, xóa liên hệ gắn với từng khách hàng.
    • Quản lý dự án và công việc: Danh sách dự án, xem chi tiết, tạo mới, chỉnh sửa, xóa dự án; theo dõi danh sách việc cần làm chi tiết (checklist to-do items); xem danh mục toàn bộ công việc (All task) với các thuộc tính trạng thái, độ ưu tiên và thẻ đánh dấu.
    • Quản lý sản phẩm và bán hàng: Danh mục sản phẩm, thương hiệu, chi tiết sản phẩm, chức năng thêm/sửa/xóa sản phẩm; giao diện điểm bán hàng (POS) hỗ trợ chọn hàng vào giỏ, xóa sản phẩm khỏi giỏ, liên kết thông tin khách hàng và tiến hành thanh toán đơn hàng.

Chương V: Kết luận

Chương kết luận tổng hợp các kết quả thực tế mà đồ án đã hoàn thành, đối chiếu với mục tiêu đề ra ban đầu về việc xây dựng hệ thống CRM tích hợp hoàn chỉnh và chỉ ra các định hướng tiếp tục hoàn thiện, mở rộng các phân hệ trong tương lai.

Kết quả và đóng góp

Đồ án đã đạt được các kết quả kỹ thuật cụ thể và đóng góp vào giải pháp ứng dụng công nghệ cho doanh nghiệp:

Nhóm kết quả Nội dung chi tiết được hiện thực hóa trong đồ án
Phân hệ Quản trị & Xác thực Hoàn thiện luồng đăng nhập, thông báo lỗi xác thực, đăng ký dùng thử; phân quyền truy cập độc lập cho 3 nhóm đối tượng Admin, Manager, Saler.
Phân hệ CRM & Khách hàng Quản lý thông tin công ty (tên, số điện thoại, email, website, mã số thuế, quốc gia, tiền tệ), liên kết bảng dữ liệu liên hệ (Contact) hiển thị chi tiết qua pop-up modal.
Phân hệ Dự án & Công việc Quản lý vòng đời dự án (Project), công việc (Task) với các tham số thời hạn, trạng thái, mức độ ưu tiên, thẻ tag; tích hợp danh sách việc cần làm chi tiết (Task checklist-items / To-do).
Phân hệ Sản phẩm & Bán hàng (POS) Quản lý dữ liệu sản phẩm, danh mục, thương hiệu, tồn kho; xây dựng giao diện POS cho phép thao tác giỏ hàng, chọn khách hàng, lập đơn hàng và lưu trữ cấu trúc JSON đơn hàng.
Thiết kế Cơ sở dữ liệu Chuẩn hóa hoàn chỉnh 23 bảng quan hệ, tối ưu hóa lưu trữ dữ liệu đơn hàng phức hợp bằng lớp chuyển đổi JsonEcodedDict trong SQLAlchemy.

Về mặt đóng góp, đề tài đã xây dựng thành công một phần mềm CRM mã nguồn mở có khả năng vận hành độc lập trên môi trường web, giải quyết bài toán đồng bộ hóa dữ liệu rời rạc tại các doanh nghiệp vừa và nhỏ. Việc ứng dụng kiến trúc modular microservices và thiết kế giao diện theo hướng hiện đại (TailwindCSS, Alpine.js) giúp mã nguồn có độ mềm dẻo cao, tạo nền tảng để tùy biến các phân hệ theo đặc thù riêng của từng ngành dịch vụ, bán lẻ hoặc nhà hàng.

Hạn chế và hướng nghiên cứu tiếp

Căn cứ trên phạm vi và nội dung trình bày trong văn bản, đồ án còn tồn tại các hạn chế kỹ thuật sau:

  • Hệ thống cơ sở dữ liệu hiện tại sử dụng SQLite, vốn là hệ quản trị cơ sở dữ liệu dạng tệp nhỏ gọn, phù hợp cho quy mô thử nghiệm hoặc doanh nghiệp nhỏ nhưng sẽ gặp giới hạn về hiệu năng khi số lượng giao dịch đồng thời và dung lượng dữ liệu tăng cao.
  • Một số phân hệ nghiệp vụ nâng cao như quản lý kho chuyên sâu (Inventory), quản lý nhân sự chuyên biệt và hệ thống báo cáo phân tích doanh thu đa chiều mới dừng lại ở mức thiết kế cấu trúc dữ liệu và giao diện cơ bản, chưa đi sâu vào các thuật toán dự báo hay tối ưu hóa vận hành.

Hướng phát triển tiếp theo được tác giả xác định trong đồ án bao gồm:

  1. Nghiên cứu bổ sung, hoàn thiện đầy đủ các phân hệ chức năng mở rộng như quản lý kho hàng nâng cao, phân hệ quản lý nhân sự chuyên sâu.
  2. Tối ưu hóa mã nguồn và cấu trúc modular để phát triển hệ thống thành một nền tảng mã nguồn mở hoàn chỉnh, tạo điều kiện cho cộng đồng và các doanh nghiệp dễ dàng tích hợp, tùy biến thêm hoặc bớt các tính năng theo nhu cầu thực tế.

Giá trị tham khảo

Đồ án là tài liệu tham khảo có giá trị chuyên môn đối với sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm và Lập trình ứng dụng web. Tài liệu đặc biệt hữu ích cho những người đang nghiên cứu xây dựng ứng dụng web với framework Flask (Python) kết hợp kiến trúc cơ sở dữ liệu SQLAlchemy.

Các nội dung đáng tham khảo chuyên sâu trong văn bản gồm có:

  • Cấu trúc thư mục dự án phân tách rõ ràng giữa cấu hình, blueprint, migration và các module nghiệp vụ độc lập.
  • Thiết kế lược đồ cơ sở dữ liệu quan hệ gồm 23 bảng bao quát hầu hết các thực thể quản trị của một doanh nghiệp nhỏ (khách hàng, liên hệ, dự án, công việc, checklist, đơn hàng, sản phẩm, phân quyền).
  • Giải pháp kỹ thuật triển khai lưu trữ chuỗi dữ liệu JSON trực tiếp vào cơ sở dữ liệu quan hệ thông qua việc định nghĩa TypeDecorator (JsonEcodedDict), phù hợp tham khảo cho các bài toán xử lý giỏ hàng và dữ liệu bán lẻ linh hoạt.
  • Bộ sơ đồ phân tích hệ thống (Use Case, Sequence Diagram) thể hiện mạch lạc các luồng xử lý dữ liệu chuẩn trong quy trình phát triển phần mềm.

Câu hỏi thường gặp

Hệ thống CRM trong đồ án được thiết kế cho những nhóm đối tượng doanh nghiệp nào?
Theo trình bày của tác giả, hệ thống hướng đến ứng dụng tại các doanh nghiệp vừa và nhỏ, đặc biệt phù hợp cho các mô hình kinh doanh dịch vụ, nhà hàng, quán cà phê, cửa hàng bán lẻ và mỹ phẩm.

Các nhóm người dùng tương tác với hệ thống gồm những ai và quyền hạn được phân chia như thế nào?
Hệ thống xác định 3 tác nhân (Actor) chính: Admin (Quản trị viên) có toàn quyền truy cập, phân quyền và chỉnh sửa dữ liệu; Manager (Quản lý) có quyền theo dõi báo giá, doanh thu, quản lý nhân viên, dịch vụ, hóa đơn, dự án, công việc và khách hàng; Saler (Nhân viên kinh doanh) có quyền xem dự án, công việc, dữ liệu khách hàng, gửi báo giá, thu tiền và thực hiện thanh toán.

Dữ liệu đơn hàng trong phân hệ bán hàng được lưu trữ bằng giải pháp kỹ thuật nào?
Trong bảng dữ liệu ClientOrder, thông tin chi tiết các sản phẩm trong đơn hàng được lưu dưới dạng chuỗi JSON vào cột Orders thông qua việc xây dựng lớp tùy biến JsonEcodedDict kế thừa từ db.TypeDecorator của SQLAlchemy, sử dụng thư viện json để tự động mã hóa (dumps) khi lưu và giải mã (loads) khi truy xuất.

Cấu trúc tệp tin mã nguồn của dự án được tổ chức thành những thư mục nào?
Dự án được tổ chức thành 8 thư mục chính gồm: db (dữ liệu lưu trữ), template (thiết kế giao diện), static (hình ảnh, CSS, JS), venv (môi trường ảo và thư viện), migration (chuyển đổi dữ liệu), src (cấu hình và tính năng hệ thống), modules (mã nguồn tính năng độc lập) và config (tùy chỉnh môi trường).

Ngăn xếp công nghệ BackEnd và FrontEnd của hệ thống gồm những thành phần nào?
Phía BackEnd sử dụng ngôn ngữ Python, web framework Flask cùng các thư viện Werkzeug, Jinja2, Flask-WTForms, Flask-SQLAlchemy, hệ quản trị cơ sở dữ liệu SQLite và triển khai trên đám mây Heroku. Phía FrontEnd được xây dựng bằng HTML kết hợp TailwindCSS, JavaScript, jQuery và Alpine.js.

Kết luận

Đồ án tốt nghiệp "Hệ thống quản lý quan hệ khách hàng (CRM)" của sinh viên Bùi Văn Huân đã xây dựng thành công một giải pháp phần mềm web hoàn chỉnh nhằm hợp nhất quy trình quản lý khách hàng, công việc, dự án và bán hàng cho các doanh nghiệp vừa và nhỏ. Đề tài vận dụng hiệu quả ngôn ngữ Python kết hợp framework Flask, chuẩn hóa cơ sở dữ liệu 23 bảng và tổ chức mã nguồn theo hướng modular microservices linh hoạt. Kết quả nghiên cứu đáp ứng tốt các yêu cầu nghiệp vụ thực tiễn, cung cấp tài liệu kỹ thuật có giá trị tham khảo rõ ràng cho việc thiết kế và phát triển các hệ thống quản trị mã nguồn mở.