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

Trong bối cảnh công nghệ thông tin và thương mại điện tử phát triển mạnh mẽ, các dịch vụ bán hàng và quản lý trực tuyến ngày càng giữ vị trí quan trọng trong nền kinh tế thị trường. Tuy nhiên, việc tiếp cận các hệ thống mua bán công nghệ vẫn tồn tại rào cản đối với nhóm người tiêu dùng chưa có nhiều kiến thức về tin học, đồng thời các đơn vị kinh doanh bán lẻ thường gặp khó khăn trong công tác kiểm soát hàng hóa, quy trình thanh toán và chăm sóc khách hàng nếu quản lý theo phương thức thủ công.

Đề tài "Quản Lý Bán Hàng Linh Kiện Máy Tính" được nhóm tác giả Nguyễn Hữu Minh Luân, Nguyễn Trần Nhật Thái và Nguyễn Thiện Bình (Lớp 20DTHB1, Khoa Công nghệ Thông tin, Trường Đại học Công nghệ TP.HCM - HUTECH) thực hiện dưới sự hướng dẫn của Th.S Tống Thanh Văn vào năm 2022 trong khuôn khổ học phần Lập trình trên môi trường Windows.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài tập trung vào các nội dung cụ thể:

  1. Xây dựng một phần mềm quản lý bán hàng linh kiện máy tính đáp ứng các nghiệp vụ bán lẻ, quản lý kho, theo dõi đơn hàng và hỗ trợ chăm sóc khách hàng.
  2. Giảm thiểu chi phí nhân sự và thời gian quản lý cho cửa hàng thông qua việc tin học hóa quy trình lập hóa đơn, nhập kho từ nhà cung cấp và quản lý nhân viên.
  3. Thiết kế giao diện trực quan, đơn giản hóa các thao tác xử lý để người dùng có thể làm quen và vận hành hệ thống một cách nhanh chóng.

Đối tượng nghiên cứu của đồ án là quy trình quản lý hoạt động kinh doanh bán lẻ các thiết bị tin học và linh kiện máy tính (PC, laptop, ổ cứng, chuột, bàn phím, màn hình...). Phạm vi nghiên cứu giới hạn trong đồ án môn học Lập trình trên môi trường Windows, triển khai ứng dụng dạng Windows Forms trên nền tảng desktop và quản lý dữ liệu tập trung tại cửa hàng bán lẻ có quầy thu ngân và quầy kế toán.


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

Đồ án ứng dụng mô hình kiến trúc 3 tầng (Three-Layer Architecture) kết hợp đối tượng truyền tải dữ liệu (DTO - Data Transfer Objects) để phát triển phần mềm theo mô hình Client/Server độc lập giữa giao diện, logic xử lý và lưu trữ dữ liệu. Các thành phần của kiến trúc bao gồm:

  • Presentation Layer (GUI): Lớp giao diện người dùng, tiếp nhận thao tác nhập liệu, hiển thị thông tin và kiểm tra tính hợp lệ sơ bộ của dữ liệu trước khi gửi xuống tầng xử lý nghiệp vụ. Lớp này chứa 2 thành phần chính: UI Components (TextBox, Button, ComboBox, ProgressBar...) và UI Process Components (quản lý điều hướng và chuyển đổi giữa các giao diện/UserControl).
  • Business Logic Layer (BLL): Lớp xử lý nghiệp vụ trung gian, chịu trách nhiệm tiếp nhận yêu cầu từ GUI, kiểm tra ràng buộc toàn vẹn, tính toán dữ liệu nghiệp vụ trước khi gọi tầng dữ liệu. Tầng này gồm 4 thành phần: Service Interface, Business Workflows, Business Components và Business Entities.
  • Data Access Layer (DAL): Lớp truy xuất cơ sở dữ liệu, thực hiện các thao tác truy vấn (thêm, xóa, sửa, tìm kiếm) với hệ quản trị cơ sở dữ liệu qua Data Access Logic Components và giao tiếp dịch vụ ngoài qua Service Agents.
  • Data Transfer Objects (DTO): Lớp trung gian định nghĩa cấu trúc bảng, thuộc tính cột để ánh xạ và truyền tải dữ liệu qua lại giữa các tầng kiến trúc.

Phương pháp nghiên cứu và phát triển hệ thống được thực hiện qua:

  • Phương pháp phân tích hiện trạng và khảo sát nghiệp vụ thực tế của cửa hàng kinh doanh linh kiện máy tính.
  • Phương pháp phân tích hướng đối tượng: Xây dựng sơ đồ Use Case tổng quan, phân rã Use Case chi tiết và lập bảng đặc tả Use Case cho từng chức năng.
  • Phương pháp thiết kế cơ sở dữ liệu quan hệ: Xác định các thực thể, thuộc tính và khóa ngoại liên kết dữ liệu nghiệp vụ.

Thiết kế và triển khai

Hệ thống được tổ chức thành một Solution gồm 4 project Class Library và 1 project Presentation Layer độc lập, tương ứng với mô hình kiến trúc phân tầng:

Solution: QuanLyBanHangLinhKienMayTinh

Cơ sở dữ liệu của phần mềm bao gồm 13 bảng quan hệ để quản lý toàn bộ thực thể nghiệp vụ:

Tên bảng CSDL Diễn giải chức năng lưu trữ
TAIKHOAN Lưu trữ thông tin tài khoản, tên đăng nhập, mật khẩu mã hóa
QUYEN Danh mục các quyền hạn trong hệ thống
PHANQUYEN Bảng phân quyền chi tiết cho từng tài khoản/loại tài khoản
LOAINHANVIEN Danh mục phân loại chức vụ, vị trí nhân viên
NHANVIEN Thông tin cá nhân, hồ sơ và trạng thái làm việc của nhân viên
KHACHHANG Thông tin khách hàng (họ tên, số điện thoại, địa chỉ, email)
NCC Thông tin các nhà cung cấp linh kiện máy tính
LOAISANPHAM Danh mục phân loại nhóm linh kiện (PC, RAM, CPU, Laptop...)
SANPHAM Chi tiết sản phẩm, giá nhập, tỷ lệ lợi nhuận, hạn dùng, hình ảnh
PHIEUNHAP Thông tin tổng quát phiếu nhập hàng từ nhà cung cấp
CHITIETPHIEUNHAP Chi tiết từng mặt hàng, số lượng và giá trong phiếu nhập
HOADON Thông tin hóa đơn bán hàng cho khách
CTHD Chi tiết sản phẩm, số lượng, đơn giá và khuyến mãi trong hóa đơn

Về mặt xử lý kỹ thuật và giao diện:

  • Tối ưu hóa đa nhiệm: Sử dụng cơ chế đa luồng với hai Task chạy đồng thời (LoadProgressBar và LoadUserControl) để cập nhật tiến trình phần trăm lên thanh ProgressBar khi người dùng chuyển đổi các phân hệ chức năng, tránh tình trạng treo giao diện (UI freeze).
  • Cơ chế bảo mật: Áp dụng thuật toán mã hóa mật khẩu khi lưu trữ vào bảng TAIKHOAN và giải mã/xác thực khi đăng nhập hoặc thực hiện đổi mật khẩu trong mục thiết lập.
  • Ràng buộc toàn vẹn dữ liệu đầu vào:
    • Thông tin khách hàng: Họ tên tối đa 50 ký tự; số điện thoại hợp lệ từ 10 đến 12 chữ số; địa chỉ tối đa 200 ký tự.
    • Thông tin sản phẩm: Tên sản phẩm tối đa 200 ký tự; mã loại và mã nhà cung cấp phải tồn tại và đang hợp tác; đơn vị tính hợp lệ (Cái, chiếc, hộp...); ngày sản xuất phải trước ngày hết hạn; tỷ lệ lợi nhuận (%) phải lớn hơn 0.
  • Tương tác bán hàng: Giao diện phân trang danh sách sản phẩm (mỗi trang hiển thị 8 sản phẩm), hỗ trợ phím tắt chức năng (F9 để Thanh toán và in hóa đơn, F12 để Hủy hóa đơn đang tạo).

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

Phần I – Giới thiệu

Phần mở đầu nêu rõ tính cấp thiết của việc ứng dụng công nghệ thông tin vào quản lý kinh doanh bán lẻ linh kiện máy tính. Nhóm tác giả mô tả bài toán thực tế của một cửa hàng thiết bị điện tử, đặt ra mục đích nghiên cứu nhằm tối ưu hóa hoạt động bán hàng, quản lý kho bãi, theo dõi nhà cung cấp và giảm thiểu chi phí quản lý vận hành.

Chương 1: Cơ Sở Lý Thuyết

Chương 1 mô tả hiện trạng hoạt động của cửa hàng thiết bị điện tử với nhiều chủng loại hàng hóa đa dạng (PC, ổ cứng, laptop, chuột, bàn phím, màn hình...), chia thành các khu vực quầy thu ngân và quầy kế toán. Chương này xác định 8 chức năng nghiệp vụ chính của hệ thống: Đăng nhập, Quản lý hóa đơn (Bán sản phẩm), Quản lý nhập sản phẩm, Quản lý khách hàng, Quản lý sản phẩm, Quản lý nhân viên, Quản lý nhà cung cấp, và Thiết lập. Đồng thời, văn bản định nghĩa các yêu cầu phi chức năng:

  • Giao diện trực quan, dễ thao tác sau 10 phút làm quen.
  • Cơ sở dữ liệu đáp ứng khả năng mở rộng lưu trữ khi khối lượng giao dịch tăng.
  • Đảm bảo thời gian khắc phục sự cố phần mềm tối đa trong 1 ngày.
  • Trình bày chi tiết lý thuyết kiến trúc 3 lớp (Presentation Layer, Business Logic Layer, Data Access Layer) cùng vai trò của DTO.

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

Chương 2 tập trung phân tích hành vi hệ thống thông qua các tác nhân (Nhân viên bán hàng, Nhân viên quản lý). Nội dung bao gồm sơ đồ Use Case tổng quan và 8 bảng đặc tả Use Case chi tiết:

  • Use Case Đăng nhập: Kiểm tra tính hợp lệ của tài khoản và điều hướng người dùng theo phân quyền.
  • Use Case Quản lý khách hàng: Thao tác Thêm, Xóa, Cập nhật thông tin khách hàng với các bộ kiểm tra độ dài chuỗi và định dạng số điện thoại.
  • Use Case Bán sản phẩm: Tìm kiếm khách hàng qua số điện thoại, chọn sản phẩm vào giỏ hàng, tính tổng tiền có trừ khuyến mãi, nhập tiền khách đưa, tính tiền thừa và lưu/in hóa đơn.
  • Use Case Quản lý sản phẩm: Thêm mới, cập nhật thông tin kỹ thuật, đơn giá, nhà cung cấp và thiết lập trạng thái ngừng kinh doanh.
  • Use Case Quản lý nhân viên, Nhà cung cấp, Nhập sản phẩm và Thiết lập: Đặc tả quy trình luân chuyển dữ liệu và xử lý ngoại lệ khi thiếu thông tin hoặc sai định dạng. Chương này cũng xác lập mô hình cơ sở dữ liệu quan hệ gồm 13 bảng dữ liệu.

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

Chương 3 trình bày chi tiết việc hiện thực hóa phần mềm trên môi trường Windows Forms:

  • Cấu trúc Solution phân tách các thư viện BusinessLogicLayer, DataAccessLayer, DTO và PresentationLayer.
  • Thiết kế giao diện Đăng nhập với tính năng ẩn/hiển thị mật khẩu, thông báo lỗi popup.
  • Giao diện Form chính tích hợp thanh ProgressBar điều hướng bất đồng bộ bằng Task.
  • Phân hệ Trang chủ hiển thị tổng hợp: tổng sản phẩm đã bán, tổng doanh thu, tổng số lượng khách hàng; Biểu đồ doanh thu theo các mốc thời gian (Hôm nay, hôm qua, 7 ngày qua, tháng này, tháng trước); Biểu đồ Top 10 sản phẩm bán chạy theo số lượng và theo doanh thu; hỗ trợ thu phóng màn hình.
  • Phân hệ Bán sản phẩm phân trang (8 sản phẩm/trang), bộ lọc tìm kiếm nhanh, tìm khách hàng qua số điện thoại, đổi màu trạng thái nút Thanh toán sang màu xanh lá khi đủ điều kiện, hỗ trợ phím nóng F9, F12, và giao diện in hóa đơn bán lẻ.
  • Phân hệ Quản lý sản phẩm tích hợp tính năng tự động tô đỏ các control nhập liệu bị thiếu thông tin và các nút bấm (+) để thêm nhanh Loại sản phẩm hoặc Nhà cung cấp trực tiếp.
  • Phân hệ Quản lý phiếu nhập, quản lý nhân viên, quản lý khách hàng và phân hệ Thiết lập đổi mật khẩu người dùng.

Chương 4: Kết quả thực hiện

Chương 4 tổng kết các kết quả đạt được sau quá trình lập trình và kiểm thử chức năng của phần mềm quản lý bán lẻ linh kiện máy tính, đồng thời đề xuất các định hướng phát triển nhằm mở rộng hệ thống trong tương lai.


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

Đồ án đã hoàn thiện một phần mềm desktop quản lý bán hàng linh kiện máy tính hoàn chỉnh trên nền tảng Windows Forms, đạt được các kết quả kỹ thuật cụ thể:

Phân hệ / Module Kết quả triển khai thực tế
Xác thực & Bảo mật Thực hiện đăng nhập phân quyền (Quản lý / Bán hàng), mã hóa và giải mã mật khẩu tài khoản trong CSDL.
Bán hàng & Hóa đơn Giao diện hiển thị 8 sản phẩm/trang, tìm kiếm khách qua số điện thoại, tự động tính tiền thừa, đổi màu nút thanh toán, gán phím tắt F9/F12 và xuất giao diện in hóa đơn.
Báo cáo & Thống kê Tích hợp Dashboard trực quan tại trang chủ gồm 2 biểu đồ: Biểu đồ doanh thu và Biểu đồ Top 10 sản phẩm bán chạy (lọc theo hôm nay, hôm qua, 7 ngày qua, tháng này, tháng trước).
Quản lý danh mục Xử lý nghiệp vụ sản phẩm, loại sản phẩm, nhà cung cấp, khách hàng, nhân viên; hỗ trợ thêm nhanh loại sản phẩm/nhà cung cấp ngay tại form nhập liệu và tô đỏ cảnh báo lỗi.
Quản lý nhập hàng Xây dựng quy trình tạo phiếu nhập, chọn sản phẩm, lưu và xác nhận phiếu nhập từ nhà cung cấp.

Đóng góp của đồ án thể hiện ở việc áp dụng mô hình 3 lớp chuẩn hóa, giúp tách biệt mã nguồn xử lý giao diện và truy vấn cơ sở dữ liệu, tạo thuận lợi cho việc bảo trì mã nguồn, đồng thời thiết kế luồng xử lý giao diện đa luồng giúp tối ưu hóa trải nghiệm người dùng trên môi trường Windows.


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

Căn cứ theo phạm vi thực hiện đồ án học phần, hệ thống còn một số điểm giới hạn:

  • Ứng dụng xây dựng trên nền tảng Windows Forms máy trạm (desktop application), chưa phát triển phiên bản Web hoàn chỉnh để khách hàng tự đặt hàng trực tuyến từ xa như ý tưởng ban đầu của phần mở đầu.
  • Cơ sở dữ liệu và hạ tầng phần mềm chủ yếu phục vụ quy mô bán lẻ cục bộ tại cửa hàng.

Hướng phát triển tiếp theo được tác giả xác định trong Chương 4 bao gồm việc nâng cấp phần mềm, mở rộng các cổng thanh toán điện tử, phát triển thêm các mô-đun kết nối bán hàng đa kênh trên nền tảng website/di động và tăng cường khả năng đồng bộ dữ liệu trực tuyến.


Giá trị tham khảo

Báo cáo đồ án là tài liệu tham khảo thực tiễn dành cho:

  • Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm đang học tập các học phần Lập trình Windows, Lập trình C#/.NET, hoặc Phân tích thiết kế hệ thống thông tin.
  • Người học cần tài liệu mẫu về cách tổ chức đồ án theo mô hình kiến trúc 3 tầng (Presentation - BLL - DAL - DTO), cách viết đặc tả Use Case chuẩn và thiết kế cơ sở dữ liệu quan hệ cho bài toán quản lý bán hàng.
  • Phần đáng tham khảo nhất là Chương 2 (các bảng đặc tả Use Case chi tiết có điều kiện ràng buộc dữ liệu cụ thể) và Chương 3 (thiết kế chi tiết các form giao diện, xử lý sự kiện Dashboard thống kê và cơ chế nạp UserControl bất đồng bộ).

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

1. Hệ thống phân chia quyền hạn cho những tác nhân nào?
Hệ thống xác định hai tác nhân chính tham gia vận hành là Nhân viên quản lý (toàn quyền quản lý danh mục, nhân viên, nhà cung cấp, sản phẩm, phiếu nhập, thống kê) và Nhân viên bán hàng (thực hiện chức năng bán sản phẩm, lập hóa đơn, quản lý khách hàng).

2. Kiến trúc 3 tầng trong đồ án bao gồm những thành phần nào?
Bao gồm Presentation Layer (GUI chứa UI Components và UI Process Components), Business Logic Layer (chứa Service Interface, Business Workflows, Business Components, Business Entities), Data Access Layer (chứa Data Access Logic Components, Service Agents), cùng lớp phụ trợ DTO để ánh xạ dữ liệu bảng.

3. Cơ sở dữ liệu của phần mềm gồm bao nhiêu bảng dữ liệu?
Cơ sở dữ liệu gồm 13 bảng: TAIKHOAN, QUYEN, PHANQUYEN, NCC, PHIEUNHAP, CHITIETPHIEUNHAP, LOAISANPHAM, SANPHAM, NHANVIEN, LOAINHANVIEN, KHACHHANG, HOADON, và CTHD.

4. Module Bán sản phẩm hỗ trợ những thao tác và phím tắt nào?
Module hiển thị 8 sản phẩm/trang, tìm khách hàng qua số điện thoại, hỗ trợ tăng giảm số lượng (+/-), tự động tính tiền thừa, đổi màu nút thanh toán sang màu xanh lá khi đủ thông tin, hỗ trợ phím F9 để Thanh toán/In hóa đơn và phím F12 để Hủy đơn hàng.

5. Dashboard trang chủ cung cấp các biểu đồ thống kê nào?
Trang chủ cung cấp Biểu đồ doanh thu và Biểu đồ Top 10 sản phẩm bán chạy (theo số lượng hoặc doanh thu), với các tùy chọn lọc dữ liệu theo thời gian: Hôm nay, hôm qua, 7 ngày qua, tháng này, và tháng trước.


Kết luận

Báo cáo đồ án "Quản Lý Bán Hàng Linh Kiện Máy Tính" của nhóm sinh viên Trường Đại học Công nghệ TP.HCM đã giải quyết toàn diện bài toán tin học hóa quy trình quản lý bán lẻ thiết bị tin học trên nền tảng Windows Forms. Đồ án xây dựng thành công kiến trúc 3 lớp rõ ràng, thiết kế cơ sở dữ liệu 13 bảng chặt chẽ và triển khai đầy đủ 8 phân hệ nghiệp vụ từ bán hàng, nhập kho đến báo cáo thống kê trực quan. Đây là tài liệu học thuật có giá trị tham khảo tốt cho sinh viên ngành Công nghệ thông tin trong việc phân tích thiết kế và xây dựng phần mềm ứng dụng desktop.