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

Khóa luận tốt nghiệp "Tìm hiểu ASP.NET Core, Angular xây dựng website hỗ trợ chăm sóc khách hàng" được thực hiện bởi sinh viên Trần Quang Anh và Nguyễn Khôi, dưới sự hướng dẫn của Thầy Nguyễn Thanh Phước, thuộc Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (bảo vệ tháng 7 năm 2020).

Lý do chọn đề tài xuất phát từ sự phát triển của công nghệ thông tin và mạng Internet, khi hầu hết các tổ chức và doanh nghiệp đều có nhu cầu sở hữu trang web để quản trị thông tin và quảng bá sản phẩm. Tuy nhiên, chi phí thiết kế và duy trì một hệ thống website chuyên biệt hiện nay tương đối cao. Nhóm tác giả hướng trọng tâm nghiên cứu vào mô hình kinh doanh quán cà phê – một loại hình giải trí, giao lưu, học tập và làm việc phổ biến trong đời sống hiện đại, dẫn đến sự gia tăng nhanh chóng về số lượng cửa hàng. Trong khi các tập đoàn lớn (như chuỗi The Coffee House) có đủ tiềm lực tài chính để duy trì đội ngũ lập trình viên riêng nhằm phát triển và nâng cấp hệ thống tiếp cận khách hàng, thì các cửa hàng cà phê vừa và nhỏ gặp nhiều hạn chế về nguồn vốn và đối mặt với rủi ro vận hành cao (điển hình như biến cố dịch bệnh Covid-19 gây áp lực tài chính nghiêm trọng về tiền thuê mặt bằng). Đối với nhóm kinh doanh nhỏ lẻ này, việc đầu tư một trang web phức tạp là không khả thi; họ chỉ cần một công cụ trực tuyến tinh gọn, chi phí thấp, đáp ứng vừa đủ nhu cầu quản lý bán hàng tại quầy và chăm sóc khách hàng.

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

  1. Tìm hiểu hai nền tảng công nghệ ASP.NET Core và Angular nhằm xây dựng một trang web hiện đại (Modern Web), trong đó Back-End là các dịch vụ chuẩn RESTful API và Front-End được thiết kế theo mô hình ứng dụng đơn trang (Single Page Application - SPA).
  2. Xây dựng công cụ phần mềm hỗ trợ các cửa hàng cà phê quản lý hoạt động bán hàng, lưu trữ dữ liệu tập trung và thực hiện các nghiệp vụ chăm sóc khách hàng cơ bản (tạo sự kiện giảm giá, tích lũy điểm thưởng, đổi quà, liên hệ khách hàng qua thư điện tử nhân dịp sinh nhật hoặc lễ tết, cung cấp trang thông tin tiếp cận khách hàng mới).
  3. Trình bày nội dung nghiên cứu một cách khoa học, logic trong khuôn khổ một khóa luận tốt nghiệp ngành Công nghệ thông tin.

Đối tượng nghiên cứu của đề tài là quy trình quản lý bán lẻ, tương tác giữ chân khách hàng tại các quán cà phê quy mô vừa và nhỏ, cùng các giải pháp công nghệ lập trình web hiện đại. Phạm vi nghiên cứu về không gian tập trung vào mô hình vận hành của các cửa hàng cà phê tại Việt Nam; phạm vi thời gian nghiên cứu và thực nghiệm hoàn thành vào tháng 7 năm 2020.

Cơ sở lý thuyết và phương pháp

Khóa luận áp dụng các nền tảng kỹ thuật và công nghệ chính sau:

  • ASP.NET Core: Nền tảng mã nguồn mở, đa nền tảng (chạy trên Windows, Linux, macOS) do Microsoft phát triển để xây dựng ứng dụng kết nối đám mây, dịch vụ web và Back-End di động. Ngôn ngữ lập trình chính được sử dụng là C#. Ứng dụng ASP.NET Core có thể vận hành trên nền tảng đám mây hoặc máy chủ nội bộ (on-premises).
  • Angular CLI và Angular: Framework hỗ trợ xây dựng giao diện người dùng theo mô hình MVC phía máy khách. Framework này sử dụng TypeScript (ngôn ngữ mở rộng từ JavaScript), hỗ trợ kiểm tra kiểu dữ liệu tĩnh và tái cấu trúc mã nguồn an toàn, phục vụ phát triển ứng dụng đơn trang (Single Page Application - SPA).
  • SQL Server: Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) của Microsoft sử dụng ngôn ngữ truy vấn Transact-SQL (T-SQL), hỗ trợ lưu trữ dung lượng lớn và tích hợp đồng bộ với các dịch vụ máy chủ như IIS, Proxy Server.
  • Các module và thư viện mở rộng: Thư viện ZXing Scanner (hỗ trợ quét mã giảm giá qua webcam), CKEditor (công cụ soạn thảo văn bản phục vụ chỉnh sửa nội dung trang thông tin cửa hàng) và DataTables (hỗ trợ hiển thị, lọc và phân trang dữ liệu).

Phương pháp nghiên cứu thực tế gồm:

  • Phương pháp phân tích và thiết kế hệ thống hướng đối tượng: Nhận diện tác nhân, xây dựng biểu đồ phân rã chức năng, lập biểu đồ ca sử dụng (Use Case Diagram) và thiết kế cơ sở dữ liệu quan hệ.
  • Phương pháp kiến trúc phần mềm: Thiết kế hệ thống tách rời hai phần Back-End (cung cấp RESTful API) và Front-End (SPA tiếp nhận dữ liệu JSON).
  • Phương pháp kiểm thử thực nghiệm: Sử dụng công cụ Postman để gửi các phương thức yêu cầu HTTP (GET, POST, PUT, DELETE) nhằm kiểm tra tính chính xác của các đường dẫn API trước khi ghép nối giao diện.

Nguồn dữ liệu của nghiên cứu là dữ liệu giả lập được xây dựng trong môi trường kiểm thử SQL Server, phục vụ việc minh họa hoạt động của các cửa hàng, tài khoản người dùng, sản phẩm đồ uống, voucher và hóa đơn bán hàng.

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình kiến trúc Modern Web phân tách rõ rệt giữa máy chủ dịch vụ và giao diện người dùng. Phía Back-End được cấu trúc thành các bộ điều khiển (Controllers) xử lý logic nghiệp vụ và trả dữ liệu định dạng JSON. Phía Front-End sử dụng Angular tổ chức theo các phân hệ: Thư mục Auth (xác thực), App (cấu hình gốc), Models (định nghĩa thực thể dữ liệu), Services (giao tiếp HTTP với API), Utils (tiện ích dùng chung) và Views (giao diện hiển thị).

Hệ thống phân định 4 nhóm tác nhân (actors) với các chức năng cụ thể:

Tác nhân Nhóm chức năng chính
Người quản trị (Admin) Đăng nhập hệ thống quản trị; xem thông tin tài khoản các cửa hàng; phê duyệt/kích hoạt tài khoản mới; vô hiệu hóa tài khoản vi phạm hoặc hết hạn; gia hạn và nâng cấp gói tài khoản cửa hàng.
Chủ cửa hàng (Store Owner) Đăng ký tài khoản (gói dùng thử hoặc gói trả phí); đăng nhập quản trị cửa hàng; quản lý thông tin nhân viên (thêm, sửa, xóa); quản lý danh mục và sản phẩm; cấu hình quy đổi điểm tích lũy; quản lý sự kiện khuyến mãi; quản lý biểu mẫu và gửi thư Gmail cho khách hàng; theo dõi báo cáo doanh thu và chi tiết hóa đơn.
Nhân viên bán hàng (Employee) Đăng nhập giao diện bán hàng (POS); lọc sản phẩm theo danh mục và tìm kiếm nhanh theo tên; tạo thẻ thành viên mới cho khách; lập và xử lý hóa đơn bán hàng; áp dụng mã sự kiện, mã giảm giá (nhập tay hoặc quét qua webcam); thanh toán bằng tiền mặt hoặc điểm tích lũy.
Người dùng trang web (Customer) Tìm kiếm cửa hàng cà phê theo tên; xem trang thông tin giới thiệu của từng cửa hàng; theo dõi các sự kiện khuyến mãi đang áp dụng tại cửa hàng tìm kiếm được.

Cơ sở dữ liệu quan hệ của hệ thống gồm 13 bảng thực thể được chuẩn hóa:

  1. Admin: Lưu tài khoản người quản trị (Username, Password, Fullname, Saltvalue).
  2. Stores: Lưu hồ sơ các cửa hàng (id, Ten, Diachi, Matkhau, Image, ImgCMNDF, ImgCMNDB, Status, Hinhthucsudung, Ngaytao, Hansudung, Yeucau, Hoten, Sdt, Thongtin, Hienthi).
  3. Employees: Lưu danh sách nhân viên trực thuộc cửa hàng (id, Taikhoan, Matkhau, Ten, Storeid, Email, SDT, Diachi, Vitri).
  4. Categories: Phân loại nhóm mặt hàng (id, Ten, Storeid).
  5. Products: Danh mục đồ uống/sản phẩm (id, Ten, Dongia, Storeid, Cateid, Giagoc).
  6. Members: Quản lý thông tin khách hàng thành viên (id, Ma, Hovaten, SDT, Diemtichluy, Storeid, Email, Ngaysinh).
  7. Bills: Quản lý thông tin chung của hóa đơn (id, Ngaytao, Giotao, Tongtien, Giamgia, Giasaugiam, Magiamgia, Storeid, Nhanvien, Member, Ghichu).
  8. Bills_Details: Chi tiết từng dòng sản phẩm trong đơn hàng (id, billid, productid, soluong, contents, dongia).
  9. Settings: Thiết lập cơ chế tích điểm và giao tiếp của quán (id, Tichdiem, Vnd, Repoint, Revnd, Salebill, Paybypoint, Voucherbill, Storeid, Lienhe, Email, Matkhauemail).
  10. Emails: Quản lý biểu mẫu thư điện tử lưu sẵn (id, Subject, Contents, Storeid, Email, Password).
  11. EventTypes: Phân loại chương trình sự kiện (id, Noidung).
  12. Events: Quản lý sự kiện giảm giá (id, Noidung, Loai, PhantramgiamgiaTHD, THD, Thongtin, Storeid, Ngaybatdau, Ngayketthuc, Trangthai).
  13. Vouchers: Quản lý mã giảm giá (id, Ma, Hsd, Owner, Status, Storeid, Type, Value).

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

Chương 1: Tổng quan

Chương 1 trình bày lý do chọn đề tài dựa trên việc phân tích bài toán thực tế của các doanh nghiệp kinh doanh cà phê quy mô vừa và nhỏ. Nội dung chương phân tích các hình thức chăm sóc khách hàng phổ biến hiện nay (tiếp nhận phản hồi, gửi thư điện tử, tin nhắn, mạng xã hội) và xác định phạm vi hệ thống chỉ cung cấp giải pháp hỗ trợ ở mức độ vừa đủ nhằm tối ưu chi phí. Chương này cũng công bố mục tiêu xây dựng website trên nền tảng ASP.NET Core và Angular, đồng thời khái quát cấu trúc 5 chương của khóa luận.

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

Chương 2 tập trung trình bày các công nghệ nền tảng được lựa chọn. Tác giả phân tích các đặc tính kỹ thuật của ASP.NET Core như khả năng chạy đa nền tảng, tính mềm dẻo và cơ chế tối ưu hóa cho ứng dụng đám mây. Đối với Angular CLI và Angular, tác giả nêu bật lợi thế của mô hình MVC, sự hỗ trợ của ngôn ngữ TypeScript trong việc hạn chế lỗi kiểu dữ liệu và hỗ trợ gỡ lỗi. Về hệ cơ sở dữ liệu, SQL Server được làm rõ ở khả năng đáp ứng môi trường dữ liệu quy mô lớn và khả năng phối hợp với các dịch vụ máy chủ. Đồng thời, chương giới thiệu các thư viện tích hợp bao gồm ZXing Scanner để nhận dạng mã giảm giá qua webcam, CKEditor phục vụ nhập liệu nội dung và DataTables để quản lý hiển thị dữ liệu bảng biểu.

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

Chương 3 là phần trọng tâm về kỹ thuật, bao gồm việc phân tích yêu cầu nghiệp vụ cho 4 nhóm tác nhân (Admin, Chủ cửa hàng, Nhân viên, Người dùng trang web) và thiết lập sơ đồ phân rã chức năng. Lược đồ cơ sở dữ liệu được chi tiết hóa qua 13 bảng thực thể với đầy đủ tên thuộc tính, kiểu dữ liệu và độ dài trường dữ liệu. Tác giả xây dựng các kịch bản ca sử dụng chi tiết (từ UC_1 đến UC_12), quy định cụ thể điều kiện tiên quyết, luồng sự kiện chính và các ngoại lệ xử lý cho từng nghiệp vụ:

  • Quy trình quản trị của Admin: Đăng nhập (UC_1), xem chi tiết tài khoản cửa hàng (UC_2), gia hạn tài khoản (UC_3), kích hoạt tài khoản mới đăng ký (UC_4), vô hiệu hóa tài khoản vi phạm (UC_5), nâng cấp tài khoản (UC_6).
  • Quy trình của Chủ cửa hàng: Đăng ký dịch vụ với 2 tùy chọn dùng thử hoặc trả phí (UC_7), đăng nhập trang quản lý qua mã cửa hàng (UC_8), thêm nhân viên (UC_9), sửa thông tin nhân viên (UC_10), xóa nhân viên (UC_11), chỉnh sửa trang thông tin hiển thị của cửa hàng (UC_12), cùng các giao thức thiết lập sự kiện, tích điểm và quản lý thư mẫu Gmail.

Chương 4: Kết quả so sánh, thực nghiệm, phân tích

Chương 4 ghi nhận kết quả triển khai mã nguồn thực tế của hệ thống. Ở phần Back-End, chương trình bày cấu trúc thư mục chứa các Controller xử lý API và minh họa quá trình gửi nhận yêu cầu thông qua công cụ Postman. Ở phần Front-End, tác giả trình bày việc tổ chức mã nguồn trong các thư mục Angular (Models, Services, Views, Auth, Utils) và cách các Service gọi đường dẫn API Back-End. Chương trình bày tập hợp các màn hình giao diện đã hoàn thiện: màn hình trang chủ tiếp cận khách hàng; form đăng ký gói dùng thử/trả phí; giao diện đăng nhập phân quyền; màn hình quản lý nhân sự, danh mục và sản phẩm; giao diện cấu hình quy đổi điểm; trang quản lý biểu mẫu Gmail; màn hình bán hàng hỗ trợ quét camera nhận diện mã giảm giá; và bảng báo cáo doanh thu theo ngày, theo khoảng thời gian xác định.

Chương 5: Kết luận và hướng phát triển

Chương 5 đánh giá mức độ hoàn thành nhiệm vụ nghiên cứu so với mục tiêu đề ra ban đầu, tổng kết những kinh nghiệm thu nhận được trong quá trình tìm hiểu ASP.NET Core và Angular. Tác giả thẳng thắn nhìn nhận những mặt hạn chế của hệ thống do thiếu kinh nghiệm thực tiễn và đề xuất các định hướng nâng cấp trong tương lai.

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

Khóa luận đã đạt được các kết quả cụ thể:

  • Hoàn thiện website dạng Modern Web với Back-End cung cấp đầy đủ các RESTful API xây dựng bằng ASP.NET Core và Front-End Single Page Application phát triển bằng Angular.
  • Thiết kế và cài đặt hoàn chỉnh cơ sở dữ liệu gồm 13 bảng quan hệ trên SQL Server, giải quyết bài toán phân vùng dữ liệu cho nhiều cửa hàng thông qua trường khóa ngoại Storeid.
  • Tích hợp thành công các module bổ trợ: công cụ quét mã vạch/QR qua webcam bằng thư viện ZXing Scanner, trình biên tập CKEditor cho trang thông tin cửa hàng, và phân trang tìm kiếm qua DataTables.
  • Xây dựng đầy đủ các luồng nghiệp vụ thực tế: đăng ký tài khoản có xác thực ảnh chụp CMND (mặt trước và mặt sau); phân quyền gói dịch vụ (dùng thử và trả phí); màn hình bán hàng POS hỗ trợ thanh toán linh hoạt bằng tiền mặt hoặc điểm thành viên; hệ thống quản lý biểu mẫu và tự động gửi thư qua Gmail.

Về mặt giải pháp, tác giả đề xuất việc chuẩn hóa quy trình chăm sóc khách hàng ở mức độ vừa đủ, giúp các cửa hàng cà phê nhỏ lẻ có thể ứng dụng công nghệ thông tin vào hoạt động kinh doanh mà không phải chịu gánh nặng chi phí đầu tư phần mềm quá lớn. Đóng góp của đề tài là việc tự nghiên cứu, làm chủ và kết hợp hai công nghệ phổ biến (ASP.NET Core và Angular) để tạo ra một sản phẩm ứng dụng có khả năng áp dụng vào thực tiễn quản lý bán lẻ.

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

Khóa luận tự chỉ ra một số hạn chế do kiến thức chuyên môn và kinh nghiệm thực tiễn của nhóm sinh viên còn giới hạn, khiến hệ thống chưa thể bao quát toàn bộ các nghiệp vụ phức tạp của ngành dịch vụ ăn uống. Về mặt vận hành, việc kích hoạt tài khoản cửa hàng mới vẫn phụ thuộc vào quy trình duyệt thủ công của Admin thông qua việc kiểm tra ảnh CMND. Các kênh tương tác với khách hàng mới chỉ dừng lại ở gửi thư điện tử qua Gmail và áp dụng mã giảm giá, chưa tích hợp tin nhắn SMS hay các nền tảng mạng xã hội.

Hướng phát triển tiếp theo được tác giả xác định là tiếp tục tìm hiểu và khắc phục các điểm yếu của hệ thống website, hoàn thiện trải nghiệm giao diện người dùng, nâng cao tính bảo mật và mở rộng thêm các kênh giao tiếp đa dạng nhằm tăng hiệu quả chăm sóc khách hàng.

Giá trị tham khảo

Khóa luận là tài liệu tham khảo phù hợp cho:

  • Sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm chuẩn bị thực hiện đồ án tốt nghiệp liên quan đến kiến trúc Modern Web (kết hợp ASP.NET Core Web API và Angular SPA).
  • Lập trình viên đang tìm hiểu cách tổ chức cấu trúc thư mục dự án Front-End (tách biệt Services, Models, Views, Utils) và tích hợp các module ngoại vi như ZXing Scanner hay CKEditor vào Angular.
  • Những người phát triển ứng dụng quản lý bán hàng (POS) quy mô nhỏ muốn tham khảo thiết kế lược đồ cơ sở dữ liệu về cơ chế tích lũy/sử dụng điểm thưởng, quản lý danh mục đồ uống và mô hình phân tách dữ liệu đa cửa hàng (multi-tenant) đơn giản qua mã Storeid.

Nội dung có giá trị tham khảo cao nhất nằm ở Chương 3 (thiết kế chi tiết 13 bảng dữ liệu quan hệ và đặc tả ca sử dụng) cùng Chương 4 (cấu trúc tổ chức dịch vụ kết nối API giữa Angular và ASP.NET Core).

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

1. Hệ thống phân định quyền hạn giữa các nhóm người dùng như thế nào?
Hệ thống phân chia thành 4 tác nhân độc lập: Admin có quyền quản trị tài khoản các cửa hàng (duyệt thông tin, kích hoạt, gia hạn, nâng cấp, vô hiệu hóa); Chủ cửa hàng có quyền thiết lập thông tin quán, quản lý nhân viên, sản phẩm, cài đặt sự kiện khuyến mãi, quy đổi điểm và xem báo cáo doanh thu; Nhân viên bán hàng chỉ truy cập màn hình POS để lập hóa đơn, tìm món, tích điểm và quét mã giảm giá; Người dùng phổ thông truy cập trang chủ để tìm kiếm quán và xem sự kiện ưu đãi.

2. Cơ chế tích điểm và đổi điểm cho khách hàng được thiết kế ra sao trong cơ sở dữ liệu?
Cơ chế này được quản lý thông qua bảng Settings và bảng Members. Bảng Settings lưu các thông số: Tichdiem (trạng thái bật/tắt), Vnd (số tiền tương ứng để được 1 điểm), Repoint (số điểm quy đổi), Revnd (số tiền được giảm tương ứng với số điểm quy đổi), cùng các tùy chọn cho phép tích điểm khi áp dụng giảm giá (Salebill) hay voucher (Voucherbill). Số điểm tích lũy của từng khách hàng được cập nhật trực tiếp tại cột Diemtichluy trong bảng Members.

3. Màn hình bán hàng dành cho nhân viên hỗ trợ những phương thức chăm sóc khách hàng nào?
Tại màn hình POS, nhân viên có thể tra cứu thông tin khách hàng bằng mã thành viên để thực hiện tích điểm, tạo mới tài khoản thành viên cho khách hàng mới, áp dụng mã sự kiện giảm giá trên tổng hóa đơn, hoặc sử dụng webcam quét mã voucher giảm giá thông qua module ZXing Scanner. Hóa đơn có thể được thanh toán bằng tiền mặt hoặc trừ trực tiếp bằng điểm thưởng tích lũy.

4. Quy trình đăng ký tài khoản cửa hàng mới yêu cầu những thông tin gì để xác thực?
Chủ cửa hàng khi đăng ký tài khoản (dùng thử hoặc trả phí) phải cung cấp các thông tin cơ bản của quán, họ tên, số điện thoại, cùng hai ảnh chụp giấy tờ pháp lý gồm mặt trước (ImgCMNDF) và mặt sau (ImgCMNDB) của Chứng minh nhân dân. Tài khoản sau khi đăng ký sẽ ở trạng thái chờ người quản trị (Admin) kiểm tra thông tin và phê duyệt kích hoạt trên giao diện quản trị.

5. Back-End và Front-End trao đổi dữ liệu với nhau bằng cách nào và được kiểm thử bằng công cụ gì?
Back-End ASP.NET Core đóng vai trò là RESTful API cung cấp các dịch vụ dữ liệu chuẩn JSON thông qua các phương thức HTTP. Phía Front-End Angular sử dụng các tệp tin trong thư mục Services để gọi API qua các đường dẫn tương ứng. Nhóm tác giả sử dụng công cụ Postman để trực tiếp gửi các truy vấn và kiểm thử tính chính xác của các đường dẫn API trước khi tích hợp vào giao diện.

Kết luận

Khóa luận tốt nghiệp của sinh viên Trần Quang Anh và Nguyễn Khôi đã hoàn thành mục tiêu nghiên cứu và ứng dụng bộ đôi công nghệ ASP.NET Core và Angular để xây dựng một website hỗ trợ bán hàng và chăm sóc khách hàng dành cho các quán cà phê vừa và nhỏ. Hệ thống giải quyết được bài toán chi phí phần mềm cho các hộ kinh doanh cá thể thông qua việc cung cấp các công cụ quản lý thiết yếu như tích lũy điểm thưởng, quản lý voucher và thông báo qua thư điện tử. Đề tài cung cấp tài liệu tham khảo thực tế về thiết kế cơ sở dữ liệu phân tách đa cửa hàng và mô hình kiến trúc Modern Web phục vụ cho học tập và phát triển ứng dụng quản lý bán lẻ.