CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI 1. Lý do chọn đề tài Với sự phát triển mạnh mẽ và lợi ích mà Công nghệ thông tin (CNTT) mang lại, ngày nay ở hầu hết mọi lĩnh vực được người ta ứng dụng nó như một phần không thể thiếu. Ngoài ra, CNTT giúp chúng ta có thể lưu trữ, quản lý, phân tích và chia sẻ thông tin - dữ liệu một cách hiệu quả, an toàn, nhanh chóng và thuận tiện hơn bao giờ hết. Thêm vào đó, trong các ngành nghề, đơn cử là các nhóm ngành như Công nghiệp hay Dịch vụ thì việc ứng dụng CNTT lại càng thiết yếu và gần như là tiên quyết để gia tăng năng suất lao động một cách tối đa nhất có thể.
Hơn nữa, cách vận hành của doanh nghiệp nhỏ phải đơn giản và hiệu quả nhất thì mới có thể giữ chân được khách hàng và nhân viên cũng hứng thú hơn với công việc của mình. Những yêu cầu kể trên nếu không có sự tham gia của CNTT thì quả là khá khó khăn và phức tạp. Hiểu được những vấn đề đó, “Hệ thống quản lý quan hệ khách hàng (CRM)” đã được phát triển là một nền tảng quản lý quá trình làm việc với khách hàng áp dụng với doanh nghiệp vừa và nhỏ. Và vì thế hệ thống cần đáp ứng được các chức năng bao gồm quản lý thông tin khách hàng, quản lý dự án, quản lý công việc, quản lý nhiệm vụ, quản lý sản phẩm, tạo và quản lý đơn hàng trên một hệ thống có thể truy cập từ bất kỳ đâu chỉ cần kết nối mạng.
Mục tiêu đề tài Phát triển một phần mềm Quản lý Quan hệ Khách hàng (CRM) để khách hàng lưu trữ thông tin dữ liệu thông tin liên hệ, sản phẩm và các tiến trình công việc bao gồm dự án,. Hơn thế nữa, CRM rất phù hợp cho hầu hết mọi công ty dịch vụ, nhà hàng, quán cà phê, cửa hàng, mỹ phẩm. Phần mềm CRM được xây dựng sẽ hướng đến một phần mềm mã nguồn mở (open- source), nghĩa là có thể tăng khả năng mềm dẻo trong việc tùy chỉnh và phát triển. Trong đó, ngoài các phân hệ hay mô-đun cơ bản của hệ thống như điểm bán hàng (POS), CRM, quản lý kho, quản lý nhân sự, quản lý dự án, quản lý công việc… thì phần mềm cho phép có thể chỉnh sửa thêm hay bớt những tính năng hoặc tạo ra các phân hệ mới theo mong muốn.
SINH VIÊN THỰC HIỆN: BÙI VĂN HUÂN 13 Đề tài đồ án tốt nghiệp 2018 – 2021 Trường Đại học Bà Rịa – Vũng Tàu CHƯƠNG II: CƠ SỞ LÝ THUYẾT 1. Cấu trúc hệ thống 1. Hệ thống quản lý quan hệ khách hàng (CRM) là gì? WCRM là hệ thống quản lý dành cho doanh nghiệp vừa và nhỏ, bao gồm các chức năng: 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), quản lý danh sách để làm (To-do) được trình bày trong Hình 1. Hình 1: Chức năng hệ thống - WCRM 1.
Cấu trúc hệ thống Đề tài áp dụng kiến trúc microservices trong việc phát triển phần mềm CRM. Bởi vì, microservices là một kiến trúc có khả năng phân chia, tách biệt các đại diện chức năng và các dịch vụ xử lý thành các phần độc lập riêng rẽ và không có bất kỳ mối liên quan nào giữa chúng. Hơn thế nữa, CRM còn cho phép thay đổi, xóa hoặc thêm mã mà không ảnh hưởng đến các chức năng khác của hệ thống. Ngoài ra, khi sản phẩm cần nâng cấp chức năng hay mở rộng sẽ được thực hiện dễ dàng và thuận tiện hơn.
Kiến trúc microservices được trình bày trong sơ đồ Hình 2. SINH VIÊN THỰC HIỆN: BÙI VĂN HUÂN 14 Đề tài đồ án tốt nghiệp 2018 – 2021 Trường Đại học Bà Rịa – Vũng Tàu Hình 2: Sơ đồ - Cơ cấu tổ chức tệp STT Tên thư mục Diễn giải 1 db Dữ liệu lưu trữ. 2 template Thư mục chứa các thiết kế giao diện(*. 3 static Thư mục chứa hình ảnh, file CSS, Bootstrap, Js.
4 venv Thư mục chứa môi trường, các thư viện của chương trình. 5 migration Thư mục chứa các file chuyển đổi dữ liệu. 6 src Thư mục chứa các cấu hình và tính năng của hệ thống. 7 modules Thư mục chứa các file code tính năng của hệt thống.
8 config Thư mục chứa các file môi trường tùy chỉnh của hệ thống. Các công nghệ sử dụng Sau khi đi vào phân tích và tìm hiểu về cơ cấu tổ chức tệp của dự án cũng như các giải pháp để giải quyết và hướng phát triển đề tài này, các công nghệ được trình bày Hình 3 được áp dụng cụ thể như sau: SINH VIÊN THỰC HIỆN: BÙI VĂN HUÂN 15 Đề tài đồ án tốt nghiệp 2018 – 2021 Trường Đại học Bà Rịa – Vũng Tàu Hình 3: Sơ đồ - Công nghệ áp dụng trong đề tài 2. BackEnd Đối với BackEnd, trong đề tài sử dụng ngôn ngữ lập trình Python và các thư viện hỗ trợ xây dựng website trên ngôn ngữ lập trình Python. Ngôn ngữ Python Python là một ngôn ngữ lập trình cho các mục đích lập trình ứng dụng, phát triển website có thể tùy biến, cấu trúc rõ ràng và là mã nguồn mở.
Flask Python Flask là một ứng dụng web framework được viết bằng Python. Flask cung cấp các công cụ, thư viện và công nghệ cho phép xây dựng một ứng dụng web. Trong đó, các thư viện thường được sử dụng nhất của khung ứng dụng web như URL routing, request & response object, template. SINH VIÊN THỰC HIỆN: BÙI VĂN HUÂN 16 Đề tài đồ án tốt nghiệp 2018 – 2021 Trường Đại học Bà Rịa – Vũng Tàu 2.
Thư viện sử dụng trong hệ thống BackEnd - Werkzeug: Là một bộ công cụ WSGI (Web Server Gateway Interface) đảm nhiệm các yêu cầu, phản hồi đối tượng (objects) và các chức năng tiện ích khác. - Jinja2: Là một công cụ tạo mẫu giao diện phổ biến dành cho Python. Một hệ thống tạo mẫu web kết hợp một mẫu với một nguồn dữ liệu nhất định để hiển thị các trang web động. - Flask-WTForms: Là thư viện mở rộng (extension), giao diện cho gói WTForms được tích hợp với Flask.
- Flask-SQLALchemy: Là một phần mềm trong nhóm sản phẩm gọi là Object Relational Mapping hay ORM. Giúp chúng ta giao tiếp với cơ sử dữ liệu thông qua các thực thể như lớp, đối tượng và phương thức. - SQLite: Là hệ thống cơ sở dữ liệu quan hệ nhỏ gọn, hoàn chỉnh, có thể cài đặt bên trong các trình ứng dụng khác. SQLite được Richard Hipp viết dưới dạng thư viện bằng ngôn ngữ lập trình C.
Nền tảng đám mây Heroku Heroku là nền tảng đám mây cho phép các lập trình viên xây dựng, triển khai, quản lý và mở rộng ứng dụng (PaaS – Platform as a service) tính linh hoạt cao. Nó giúp các nhà phát triển tập trung vào phát triển sản phẩm mà không cần quan tâm đến việc vận hành máy chủ hay phần cứng… 2. FrontEnd Đối với FrontEnd, trong đề tài sử dụng ngôn ngữ lập HTML. Ngôn ngữ HTML Dùng để thiết kế và sắp đặt nội dung, ảnh, và tất cả những yếu tố trên website.
Nó chạy trên bất kỳ trình duyệt nào và được quản lý bởi World Wide Web Consortium và kết hợp với CSS (TaiwinCSS) để làm đẹp cho website hơn và kết hợp với JavaScript để tăng chức năng cho website. Thư viện sử dụng lập trình giao diện website - TaiwinCSS: Là một utility-first CSS framework, có nhiều các class bao gồm các thuộc tính CSS khác nhau và quan trọng, dễ dàng mở rộng tạo mới ra những class bằng chính những class của nó. - Javascript: Được nhúng trực tiếp vào hệ thống trang web hoặc được tham chiếu qua file. Nó là ngôn ngữ phía client, tức là script được tải về máy của khách truy cập và được xử lý tại đó thay vì phía server là xử lý trên server rồi mới đưa kết quả tới khách truy cập.
- jQuery: Là một thư viện JavaScript được thiết kế đơn giản hóa thao tác HTML DOM, cũng như xử lý sự kiện, hoạt ảnh CSS, và Ajax - Alpine.js: Là một minimal framework để xây dựng giao diện người dùng. SINH VIÊN THỰC HIỆN: BÙI VĂN HUÂN 17 Đề tài đồ án tốt nghiệp 2018 – 2021 Trường Đại học Bà Rịa – Vũng Tàu 2. IDE (Môi trường phát triển tích hợp) Pycharm Pycharm là một nền tảng kết kết hợp được JetBrains phát triển như một IDE (Môi trường phát triển tích hợp) để phát triển các ứng dụng cho lập trình trong Python. Phần mềm cũng có khả năng tùy chỉnh theo yêu cầu của nhà phát triển.
Trong đó, nó cũng chứa các Mô đun và các gói giúp các lập trình viên phát triển phần mềm bằng Python trong thời gian ngắn với ít công sức hơn. Hơn thế nữa, PyCharm có mặt trên cả 3 nền tảng Windows, Linux và Mac OS và IDE này hỗ trợ nhiều extensions, môi trường ảo (Virtual Environment), nhiều tính năng thông minh như bộ code completion, tự động thụt lề, phát hiện văn bản trùng lặp và kiểm tra lỗi. Ngoài ra còn có các tính năng tìm kiếm mã nguồn thông minh để tìm kiếm từng từ một trong nháy mắt. SINH VIÊN THỰC HIỆN: BÙI VĂN HUÂN 18 Đề tài đồ án tốt nghiệp 2018 – 2021 Trường Đại học Bà Rịa – Vũng Tàu CHƯƠNG III: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 1.
Khảo sát sơ bộ Đề tài đồ án tốt nghiệp “Hệ thống quản lý quan hệ khách hàng (CRM)” với mục đích phát triển và thực tiễn hoá quá trình 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), quản lý nhiệm vụ (To-do). Mục tiêu của đối tượng nghiên cứu là tìm hiểu, phân tích, chỉ ra sự thiếu đồng bộ và chưa hiệu quả của quá trình quản lý hiện đang triển khai, nêu ra những yêu cầu mới đang đặt ra đối với công tác quản lý khách hàng, dự án, công việc, nhiệm vụ và điểm bán hàng. Vì lý do này, những phương án để khắc phục những khó khăn đang gặp phải nhằm nâng cao tính hiệu quả trong công tác quản lý khách hàng tại các doanh nghiệp nhỏ và đẩy nhanh tiến trình trong công tác quản lý khách hàng, dự án, công việc, nhiệm vụ và sản phẩm trên trên cùng một nền tảng duy nhất. Vì vậy, đề tài đồ án tiến tới xây dựng một hệ thống quản lý khách hàng trong thực tế, dần hoàn thiện phần mềm này để đáp ứng nhu cầu ngày càng cao của Doanh nghiệp.