Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh đô thị hóa và sự phát triển nhanh chóng của các khu dân cư, mô hình siêu thị mini và chuỗi cửa hàng tiện lợi đã trở thành một phần thiết yếu phục vụ đời sống hàng ngày của người tiêu dùng. Tại các đô thị lớn như Thành phố Hồ Chí Minh, nhu cầu mua sắm nhanh chóng, tiện lợi của người dân và sinh viên là rất lớn. Tuy nhiên, việc vận hành tại nhiều cửa hàng kinh doanh quy mô vừa và nhỏ hiện nay vẫn gặp phải những bất cập trong khâu quản lý kho và bán hàng.
Từ trải nghiệm thực tế trong sinh hoạt và học tập tại Thành phố Thủ Đức, tác giả nhận thấy các hạn chế điển hình gồm: tình trạng hết hàng đột xuất, việc quản lý tồn kho không đồng bộ dẫn đến việc áp dụng chương trình khuyến mãi (như mua 2 giảm giá) gặp trở ngại do số lượng tồn kho bị lẻ hoặc thiếu hụt. Bên cạnh đó, thao tác kiểm kê, nhập kho và bán hàng tại nhiều điểm bán vẫn thực hiện thủ công bằng giấy bút, gây lãng phí thời gian, dễ nhầm lẫn và thiếu tính chính xác.
Khối lượng thông tin quản lý trong một siêu thị mini rất đa dạng—từ danh mục mặt hàng, nhà cung cấp, thông tin nhân viên, tài khoản phân quyền đến dữ liệu giao dịch hóa đơn, phiếu nhập, phiếu trả và báo cáo doanh thu. Việc lưu trữ bằng sổ sách thủ công vượt quá khả năng kiểm soát hiệu quả của cửa hàng. Do đó, nhóm nghiên cứu đã xây dựng đề tài "Phần mềm quản lý siêu thị mini" trong khuôn khổ học phần Lập trình trên môi trường Windows (Mã học phần: CMP170) tại Khoa Công nghệ Thông tin, Trường Đại học Công nghệ TP.HCM (HUTECH).
Mục tiêu và nhiệm vụ nghiên cứu cụ thể bao gồm:
- Tìm hiểu và áp dụng quy trình phát triển ứng dụng trên nền tảng Windows Forms theo đúng quy chuẩn kỹ thuật.
- Khảo sát và phân tích các nghiệp vụ quản lý bán lẻ tại các cửa hàng tiện lợi và siêu thị quy mô vừa và nhỏ.
- Thiết kế và hiện thực hóa các module chức năng độc lập, bảo đảm tính logic và độ chính xác trong xử lý dữ liệu.
- Xây dựng cơ chế phân quyền người dùng theo 3 vai trò rõ rệt (Quản lý, Thủ kho, Nhân viên) nhằm chuẩn hóa quy trình vận hành.
- Kiểm thử hệ thống theo mô hình phòng ngừa lỗi, đảm bảo khả năng bảo trì và nâng cấp.
Đối tượng nghiên cứu là hệ thống quản lý hoạt động kinh doanh bán lẻ của siêu thị mini. Phạm vi ứng dụng thử nghiệm tập trung vào các cửa hàng tiện lợi, siêu thị nhỏ tại địa phương, làm cơ sở để mở rộng sang các mô hình bán lẻ tương đương.
Cơ sở lý thuyết và phương pháp
Phương pháp nghiên cứu và phát triển hệ thống
Đề tài áp dụng quy trình phát triển phần mềm có cấu trúc gồm 4 giai đoạn chính:
- Giai đoạn 1: Phân tích đặc tả yêu cầu: Khảo sát nghiệp vụ bán hàng, nhập kho, đổi trả, quản lý khách hàng thân thiết và lập báo cáo tài chính.
- Giai đoạn 2: Thiết kế hệ thống: Xây dựng sơ đồ phân tích lớp, sơ đồ chức năng, sơ đồ Use Case, sơ đồ tuần tự (Sequence Diagram), sơ đồ hoạt động (Activity Diagram), thiết kế cơ sở dữ liệu quan hệ (ERD) và layout giao diện người dùng.
- Giai đoạn 3: Hiện thực hóa phần mềm: Lập trình ứng dụng bằng ngôn ngữ C# trên môi trường Windows Forms.
- Giai đoạn 4: Kiểm thử phần mềm: Đánh giá chất lượng hệ thống thông qua kiểm thử thủ công (Manual Testing) dựa trên khung quy trình của mô hình chữ V (V-Model).
Nền tảng công nghệ và công cụ sử dụng
| Thành phần |
Công nghệ / Công cụ sử dụng |
Vai trò trong đồ án |
| Ngôn ngữ lập trình |
C# (.NET Framework) |
Lập trình logic, xử lý sự kiện giao diện và tương tác dữ liệu |
| Môi trường phát triển |
Microsoft Visual Studio Professional 2022 |
Môi trường tích hợp (IDE) xây dựng ứng dụng Windows Forms |
| Hệ quản trị CSDL |
Microsoft SQL Server Management Studio (SSMS) |
Thiết kế, lưu trữ và xử lý truy vấn cơ sở dữ liệu quan hệ |
| Thư viện giao diện |
Guna UI Framework (Guna Charts/WinForms) |
Xây dựng biểu đồ thống kê và giao diện người dùng |
| Quản trị mã nguồn |
Git & GitHub |
Quản lý phiên bản mã nguồn và hỗ trợ làm việc nhóm |
Thiết kế và triển khai
Phân quyền hệ thống
Hệ thống thiết lập cơ chế kiểm soát truy cập và bảo mật dựa trên 3 nhóm quyền người dùng:
- Quyền Nhân viên (Thu ngân): Thực hiện bán hàng tại quầy, tra cứu mặt hàng, lập hóa đơn, áp dụng tích điểm/giảm giá cho Khách Hàng Thân Thiết, đăng ký thành viên mới khi hóa đơn đạt giá trị quy định (từ 100.000 VNĐ trở lên).
- Quyền Thủ kho: Quản lý danh mục mặt hàng, nhà cung cấp, cập nhật giá bán và tỷ lệ chiết khấu; lập phiếu nhập hàng (tăng tồn kho); lập phiếu trả hàng lỗi về nhà cung cấp dựa trên phiếu nhập trước đó (giảm tồn kho).
- Quyền Quản lý: Toàn quyền cấu hình thông tin nhân sự, cấp phát và thu hồi tài khoản, giám sát kho hàng, tra cứu lịch sử hóa đơn, phiếu nhập/trả, phân tích biểu đồ doanh thu theo tháng/năm, so sánh số liệu tăng trưởng và xuất báo cáo.
Cấu trúc cơ sở dữ liệu
Cơ sở dữ liệu của phần mềm gồm 14 bảng quan hệ được chuẩn hóa nhằm lưu trữ toàn diện các thực thể trong hệ thống:
| STT |
Tên bảng |
Chức năng lưu trữ |
Khóa chính (PK) |
Khóa ngoại (FK) |
| 1 |
Customer |
Thông tin khách hàng thân thiết và điểm tích lũy |
CustomerID |
Không |
| 2 |
Invoice |
Thông tin tổng quát của hóa đơn bán hàng |
InvoiceID |
EmployeeID, CustomerID |
| 3 |
DetailInvoice |
Chi tiết từng sản phẩm trong hóa đơn bán lẻ |
InvoiceID, ProductID |
EmployeeID, CustomerID, ProductTypeID |
| 4 |
ImportProductCard |
Phiếu nhập hàng từ nhà cung cấp |
ImportProductID |
SupplierID, EmployeeID |
| 5 |
DetailImportProductCard |
Chi tiết mặt hàng, số lượng, đơn giá nhập |
ImportProductID, ProductID |
PositionID, EmployeeID, ProductTypeID, SupplierID |
| 6 |
ReturnProductCard |
Phiếu trả hàng lỗi về cho nhà cung cấp |
ReturnProductID |
EmployeeID, ImportProductID |
| 7 |
DetailReturnProductCard |
Chi tiết mặt hàng trả lại và lý do trả |
ReturnProductID, ProductID |
ProductTypeID, EmployeeID, PositionID |
| 8 |
Position |
Danh mục chức vụ nhân viên |
PositionID |
Không |
| 9 |
Employee |
Hồ sơ nhân viên, ngày sinh, số điện thoại |
EmployeeID |
Không |
| 10 |
Account |
Tài khoản đăng nhập hệ thống và mật khẩu |
Username |
EmployeeID |
| 11 |
ProductType |
Phân loại sản phẩm và đơn vị tính |
ProductTypeID |
Không |
| 12 |
Product |
Thông tin sản phẩm, giá mua, ảnh sản phẩm |
ProductID |
ProductTypeID, SupplierID |
| 13 |
Supplier |
Danh bạ đối tác cung cấp hàng hóa |
SupplierID |
Không |
| 14 |
Repository |
Kho hàng, giá bán, số lượng tồn và giảm giá |
ProductID, SupplierID |
ProductTypeID |
Phân rã chức năng và tổ chức mã nguồn
Các nhóm hàm xử lý chính trong mã nguồn được phân chia thành 3 tầng chức năng:
- Thành phần giao diện: Hàm nhập dữ liệu (tiếp nhận thao tác từ UI) và hàm xuất dữ liệu (hiển thị kết quả tra cứu, tính toán, trạng thái lên các Form).
- Thành phần xử lý: Hàm kiểm tra tính hợp lệ của dữ liệu đầu vào (Validation), hàm xử lý tính toán doanh thu, chiết khấu, trừ tồn kho, cộng tích lũy.
- Thành phần dữ liệu: Hàm đọc (truy xuất dữ liệu từ SQL Server vào bộ nhớ tạm để hiển thị trên GridView) và hàm ghi (thêm, sửa, xóa bản ghi xuống CSDL).
Nội dung chính theo từng chương
CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI
Chương 1 trình bày lý do chọn đề tài xuất phát từ nhu cầu thực tiễn quản lý chuỗi bán lẻ vừa và nhỏ tại Thành phố Thủ Đức. Đề tài xác định tính cấp thiết của việc số hóa nghiệp vụ cửa hàng tiện lợi nhằm thay thế phương pháp ghi chép sổ sách thủ công kém bảo mật và dễ thất thoát. Tác giả nêu rõ lợi ích xã hội thông qua việc hiện đại hóa quy trình bán lẻ địa phương và lợi ích bản thân trong việc củng cố kỹ năng lập trình hướng đối tượng, thiết kế phần mềm Windows Forms và quản trị cơ sở dữ liệu. Chương này cũng phân kỳ nội dung thực hiện thành 4 phần rõ ràng (Phân tích, Thiết kế, Kiểm thử, Tổng kết) cùng mục tiêu xây dựng một ứng dụng có giao diện thân thiện, bảo mật theo vai trò và đáp ứng truy xuất lịch sử giao dịch chính xác.
CHƯƠNG 2. PHÂN TÍCH ĐẶC TẢ YÊU CẦU
Chương 2 tập trung mô tả chi tiết quy trình nghiệp vụ và phân tích bài toán quản trị siêu thị mini:
- Quy trình bán hàng: Khách hàng chọn hàng -> Nhân viên thu ngân quét mã/nhập hóa đơn -> Tính tổng tiền -> Kiểm tra thông tin Khách Hàng Thân Thiết để tích lũy hoặc trừ điểm giảm giá -> Nếu hóa đơn trên 100.000 VNĐ, nhân viên hỗ trợ đăng ký tài khoản Khách Hàng Thân Thiết mới -> In hóa đơn và xuất hàng.
- Quy trình nhập và trả hàng: Quản lý kho kiểm tra lượng tồn trong kho
Repository -> Liên hệ nhà cung cấp đặt hàng -> Kiểm kê thực tế và lập phiếu nhập ImportProductCard để tăng số lượng tồn -> Nếu phát hiện hàng lỗi, lập phiếu trả ReturnProductCard liên kết trực tiếp với mã phiếu nhập trước đó, ghi nhận nguyên nhân trả hàng và trừ tồn kho.
- Nghiệp vụ quản lý: Thiết lập danh mục nhân sự, cấp tài khoản, kiểm soát chi tiết giao dịch xuất nhập, thống kê doanh thu theo mốc thời gian linh hoạt (ngày, tuần, tháng, năm) và trực quan hóa qua biểu đồ.
CHƯƠNG 3. THIẾT KẾ PHẦN MỀM
Chương 3 là phần trọng tâm kỹ thuật của đồ án, bao gồm:
- Thiết kế mô hình kiến trúc: Xây dựng sơ đồ lớp phân tích, sơ đồ chức năng và hệ thống sơ đồ Use Case (tổng quát, đăng nhập, thanh toán, đăng ký khách hàng, nhập hàng, trả hàng, quản lý nhân viên, quản lý hàng hóa, thống kê doanh thu).
- Mô hình hóa động: Xây dựng 8 sơ đồ tuần tự (Sequence Diagrams) và 8 sơ đồ hoạt động (Activity Diagrams) tương ứng với từng luồng nghiệp vụ chính như Đăng nhập, Thanh toán, Đăng ký KHTT, Nhập hàng, Trả hàng, Quản lý mặt hàng, Đăng ký nhân viên và Cấp tài khoản.
- Thiết kế cơ sở dữ liệu: Xây dựng sơ đồ thực thể kết hợp (ERD), chuyển đổi sang lược đồ quan hệ và chi tiết hóa 14 bảng dữ liệu kèm theo ràng buộc khóa chính, khóa ngoại, kiểu dữ liệu và mô tả ngữ nghĩa.
- Thiết kế giao diện: Xây dựng giao diện đồ họa phân quyền với 18 màn hình chức năng (màn hình đăng nhập, thanh toán, quản lý hàng hóa, phiếu nhập/trả, quản lý giá bán và khuyến mãi, thống kê doanh thu tích hợp biểu đồ Guna UI, quản lý nhân sự và tài khoản).
CHƯƠNG 4. KIỂM THỬ PHẦN MỀM
Chương 4 mô tả chiến lược kiểm soát chất lượng phần mềm dựa trên mô hình chữ V (V-Model):
- Lập kế hoạch phòng ngừa lỗi sớm ngay từ giai đoạn đặc tả yêu cầu và thiết kế chi tiết nhằm giảm thiểu chi phí sửa lỗi ở giai đoạn cuối.
- Thực hiện các cấp độ kiểm thử: Kiểm tra yêu cầu và kiến trúc hệ thống -> Kiểm tra module đơn vị và kiểm thử tích hợp giữa các thành phần -> Kiểm thử toàn bộ hệ thống (chức năng giao diện, tính toán hóa đơn, đồng bộ kho) -> Nghiệm thu chức năng.
- Ghi nhận cảm nhận từ kiểm thử viên (Tester): Giao diện phần mềm được đánh giá trực quan, bố cục phím chức năng rõ ràng, phông chữ và màu sắc dễ nhìn, thao tác chuột/phím ổn định, dễ tiếp cận cho người dùng mới.
CHƯƠNG 5. HƯỚNG PHÁT TRIỂN
Chương 5 đúc kết kết quả đạt được và định hướng mở rộng đề tài:
- Kết quả: Xây dựng thành công ứng dụng quản lý siêu thị mini trên nền tảng Windows Forms đáp ứng đầy đủ chu trình bán hàng, quản lý xuất - nhập - tồn, phân quyền chặt chẽ và báo cáo doanh thu.
- Hướng phát triển tiếp theo: Bổ sung phương thức thanh toán không tiền mặt (thẻ ngân hàng, ví điện tử); phát triển module chấm công tự động và tính lương; ứng dụng nhận diện khuôn mặt để điểm danh ca làm việc; hoàn thiện chế độ giao diện sáng/tối (Dark/Light mode) toàn diện; tối ưu hóa hiệu năng và bảo mật hệ thống.
Kết quả và đóng góp
Kết quả triển khai thực tế
- Hoàn thiện hệ thống phần mềm quản lý bán lẻ độc lập trên môi trường Windows với giao diện đồng bộ, tích hợp thư viện đồ họa Guna Charts.
- Xây dựng thành công 14 bảng dữ liệu quan hệ với các ràng buộc toàn vẹn dữ liệu chặt chẽ, đáp ứng lưu trữ toàn diện thông tin hàng hóa, kho bãi, nhân sự và hóa đơn.
- Tự động hóa quy trình nghiệp vụ bán hàng và quản lý kho: tính tiền tự động, tích điểm khách hàng thân thiết, liên kết dữ liệu phiếu trả hàng trực tiếp với phiếu nhập để quản lý lỗi hàng hóa minh bạch.
- Trực quan hóa dữ liệu kinh doanh qua biểu đồ doanh thu theo năm, phân loại cơ cấu doanh số giữa khách hàng thân thiết và khách hàng vãng lai.
Đóng góp của đề tài
- Cung cấp một giải pháp phần mềm cụ thể, chi phí thấp, phù hợp với năng lực quản lý của các siêu thị mini và cửa hàng tiện lợi tại địa phương.
- Chuẩn hóa quy trình làm việc của nhân viên thu ngân và thủ kho, giảm thiểu thất thoát hàng hóa và thời gian kiểm kê so với phương thức ghi chép sổ sách truyền thống.
- Đóng vai trò là tài liệu đồ án mẫu hoàn chỉnh về mặt kỹ thuật cho sinh viên ngành Công nghệ thông tin trong việc hiện thực hóa quy trình phân tích - thiết kế - lập trình - kiểm thử phần mềm Windows Forms bằng C# và SQL Server.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế được ghi nhận
- Công tác kiểm thử phần mềm chủ yếu thực hiện bằng phương pháp thủ công (Manual Testing), do nhóm nghiên cứu chưa có tài khoản doanh nghiệp để tích hợp các công cụ kiểm thử tự động chuyên sâu.
- Còn tồn tại một số lỗi nhỏ liên quan đến quá trình xử lý tập tin, tải lên hình ảnh sản phẩm/nhân viên.
- Hệ thống đôi khi phát sinh lỗi nhỏ khi người dùng thực hiện chuỗi thao tác hỗn hợp hoặc trong quá trình thoát ứng dụng.
Hướng nghiên cứu và phát triển tiếp theo
- Hoàn thiện xử lý đa luồng nhằm nâng cao độ ổn định và khắc phục triệt để lỗi khi upload hình ảnh, thoát ứng dụng.
- Tích hợp cổng thanh toán trực tuyến qua thẻ ngân hàng và ví điện tử phổ biến.
- Xây dựng phân hệ nhân sự chuyên sâu: module chấm công, xếp lịch ca kíp, tính lương tự động và điểm danh ca làm việc bằng công nghệ nhận diện khuôn mặt.
- Mở rộng tùy biến giao diện người dùng: hỗ trợ phóng to/thu nhỏ linh hoạt theo độ phân giải màn hình và hoàn thiện chế độ giao diện sáng/tối (Light/Dark mode).
- Tái thiết kế mẫu in hóa đơn theo hướng chuyên nghiệp, chi tiết và trực quan hơn.
Giá trị tham khảo
Tài liệu đồ án mang lại giá trị tham khảo thiết thực cho các nhóm đối tượng sau:
- Sinh viên ngành Công nghệ thông tin / Kỹ thuật phần mềm: Là tài liệu tham khảo trực quan về cấu trúc một báo cáo đồ án môn học chuẩn mực, đặc biệt trong các học phần Lập trình Windows, Phát triển ứng dụng .NET hoặc Phân tích thiết kế hệ thống thông tin.
- Lập trình viên mới bắt đầu với C# và WinForms: Cung cấp mẫu thiết kế cơ sở dữ liệu bán lẻ gồm 14 bảng quan hệ, danh mục hàm xử lý 3 tầng (UI, Logic, Data), cùng cách tổ chức giao diện tương tác với người dùng theo phân quyền vai trò.
- Chủ cửa hàng bán lẻ quy mô nhỏ: Tham khảo mô hình quy trình nghiệp vụ chuẩn hóa từ khâu nhập kho, kiểm kho, đổi trả hàng hóa lỗi đến cơ chế quản lý khách hàng thân thiết và thống kê doanh thu.
Câu hỏi thường gặp
1. Phần mềm phân chia quyền hạn của người dùng như thế nào?
Hệ thống phân cấp thành 3 quyền độc lập:
- Nhân viên: Chỉ được truy cập màn hình thanh toán, lập hóa đơn, áp dụng tích điểm và đăng ký Khách Hàng Thân Thiết.
- Thủ kho: Quản lý danh mục sản phẩm, nhà cung cấp, lập phiếu nhập hàng, lập phiếu trả hàng lỗi và điều chỉnh giá bán/khuyến mãi.
- Quản lý: Quản lý hồ sơ nhân viên, cấp tài khoản hệ thống, theo dõi toàn bộ hóa đơn/phiếu nhập/phiếu trả, xem biểu đồ thống kê doanh thu, tỷ lệ khách hàng và xuất báo cáo.
2. Điều kiện để đăng ký tài khoản Khách Hàng Thân Thiết trong hệ thống là gì?
Khách hàng có hóa đơn mua hàng với tổng giá trị thanh toán từ 100.000 VNĐ trở lên sẽ đủ điều kiện để nhân viên thu ngân tạo tài khoản Khách Hàng Thân Thiết (dựa trên mã hóa đơn gần nhất) để bắt đầu tích lũy và sử dụng điểm giảm giá cho các lần mua hàng tiếp theo.
3. Nghiệp vụ trả hàng lỗi về nhà cung cấp được xử lý ra sao trong cơ sở dữ liệu?
Khi phát hiện lô hàng bị lỗi, thủ kho sẽ lập phiếu trả hàng (ReturnProductCard). Phiếu trả này bắt buộc phải liên kết với mã phiếu nhập hàng (ImportProductID) tương ứng đã nhập trước đó. Chi tiết phiếu trả (DetailReturnProductCard) sẽ lưu rõ mã sản phẩm, số lượng trả, giá mua và lý do trả hàng, đồng thời hệ thống tự động trừ số lượng sản phẩm tương ứng trong bảng kho (Repository).
4. Đồ án áp dụng phương pháp kiểm thử nào để đảm bảo chất lượng phần mềm?
Nhóm tác giả áp dụng mô hình chữ V (V-Model), thực hiện các kế hoạch kiểm thử song song với quá trình phân tích và thiết kế hệ thống. Quá trình kiểm thử bao gồm kiểm tra yêu cầu kiến trúc, kiểm thử từng module, kiểm thử tích hợp và kiểm thử toàn hệ thống trước khi nghiệm thu. Hiện tại, nhóm sử dụng phương pháp kiểm thử thủ công (sức người) do giới hạn về tài khoản doanh nghiệp đối với các công cụ kiểm thử tự động.
5. Cơ sở dữ liệu của phần mềm gồm những bảng chính nào?
Hệ thống sử dụng 14 bảng dữ liệu trong SQL Server: Customer (khách hàng), Invoice (hóa đơn), DetailInvoice (chi tiết hóa đơn), ImportProductCard (phiếu nhập), DetailImportProductCard (chi tiết nhập), ReturnProductCard (phiếu trả), DetailReturnProductCard (chi tiết trả), Position (chức vụ), Employee (nhân viên), Account (tài khoản), ProductType (loại sản phẩm), Product (sản phẩm), Supplier (nhà cung cấp) và Repository (kho hàng và giá bán).
Kết luận
Báo cáo đồ án môn học "Phần mềm quản lý siêu thị mini" của nhóm sinh viên Trường Đại học Công nghệ TP.HCM (HUTECH) đã giải quyết hiệu quả bài toán tự động hóa quản lý bán lẻ cho các cửa hàng vừa và nhỏ. Bằng việc ứng dụng ngôn ngữ C#, Windows Forms và hệ quản trị SQL Server, hệ thống đã hoàn thiện đầy đủ chu trình nghiệp vụ từ bán hàng, quản lý kho, kiểm soát đổi trả đến phân tích doanh thu theo mô hình phân quyền 3 cấp. Công trình có cấu trúc thiết kế dữ liệu 14 bảng chặt chẽ, sơ đồ UML chi tiết và quy trình kiểm thử theo mô hình chữ V, đóng vai trò là tài liệu tham khảo học thuật và kỹ thuật giá trị cho sinh viên ngành Công nghệ thông tin.