Giới thiệu dự án

Bối cảnh thị trường và vấn đề thực tiễn

Trong bối cảnh chuyển đổi số của ngành bán lẻ tại Việt Nam, các cửa hàng kinh doanh văn hóa phẩm và phương tiện truyền thông (sách, truyện tranh, đĩa ca nhạc CD, đĩa phim DVD) đối mặt với sự cạnh tranh gay gắt và áp lực tối ưu hóa chi phí vận hành. Theo các khảo sát thị trường bán lẻ vừa và nhỏ (SMEs), hơn 60% cửa hàng truyền thống vẫn quản lý hàng hóa bằng sổ sách hoặc bảng tính Microsoft Excel rời rạc. Phương thức này gây ra tỷ lệ sai lệch tồn kho lên tới 12-15%, thời gian tra cứu và thanh toán kéo dài từ 5-10 phút/hóa đơn, đồng thời mất 2-3 giờ mỗi ngày để tổng hợp doanh thu cuối ca làm việc.

Tuyên bố bài toán (Problem Statement)

Cửa hàng MediaOne vận hành với hàng nghìn mã danh mục sách báo và băng đĩa nhạc có đặc thù đa dạng về thể loại, biến động đơn giá nhập/bán, và tần suất luân chuyển kho lớn. Các điểm nghẽn (pain points) lớn nhất gồm:

  • Thất thoát và sai lệch tồn kho: Không kiểm soát được số lượng tồn thực tế theo thời gian thực (real-time), dẫn đến tình trạng hết hàng đột ngột hoặc tồn kho đọng vốn kéo dài.
  • Tốc độ thanh toán chậm: Quy trình lập hóa đơn thủ công dễ gây nhầm lẫn trong việc áp dụng mức giảm giá (chiết khấu) và tính tổng tiền.
  • Rủi ro phân quyền và bảo mật: Không phân tách minh bạch giữa quyền hạn của Quản trị viên (Admin) và Nhân viên thu ngân (Staff), dẫn đến sai sót dữ liệu không thể truy vết.
  • Báo cáo tài chính chậm trễ: Ban quản lý thiếu các chỉ số phân tích chuyên sâu về mặt hàng bán chạy, mặt hàng chưa bán được, và dự báo doanh thu tháng để lên kế hoạch nhập hàng.

Mục tiêu dự án

  1. Chuẩn hóa cơ sở dữ liệu quan hệ (RDBMS): Xây dựng sơ đồ thực thể liên kết (ERD) đạt chuẩn dạng chuẩn 3 (3NF) gồm 10 bảng dữ liệu liên kết chặt chẽ.
  2. Phát triển phần mềm quản lý bán hàng máy trạm (Desktop Client): Xây dựng ứng dụng hoàn chỉnh trên nền tảng .NET Framework và ngôn ngữ C#, tích hợp giao diện Windows Forms (WinForms) trực quan, ổn định.
  3. Phân quyền người dùng dựa trên vai trò (Role-Based Access Control - RBAC): Tách biệt nhóm quyền Admin (toàn quyền cấu hình, nhân sự, hàng hóa, tài chính) và nhóm quyền Staff (bán hàng, lập hóa đơn, thống kê tác nghiệp).
  4. Tự động hóa chu trình xuất nhập kho và thanh toán: Tự động tính toán tổng tiền, chiết khấu, cập nhật tức thì biến động kho (Soluongton), hỗ trợ xuất hóa đơn ra tệp Excel và kết xuất báo cáo qua ReportViewer.
  5. Tối ưu hóa truy vấn thông tin và phân tích dữ liệu kinh doanh: Cung cấp bộ thủ tục truy vấn T-SQL đa chiều phục vụ phân tích top khách hàng, sản phẩm sinh lời và doanh thu cao nhất.

Phương pháp tiếp cận và giải pháp

Dự án áp dụng mô hình kiến trúc 2 tầng (Client-Server Desktop Architecture) kết hợp giữa ứng dụng giao diện WinForms viết bằng C# và hệ quản trị cơ sở dữ liệu Microsoft SQL Server. Giải pháp này đảm bảo tính toàn vẹn dữ liệu (ACID), khả năng phản hồi tức thời không phụ thuộc đường truyền Internet băng thông rộng, và loại bỏ hoàn toàn chi phí bản quyền thuê bao hàng tháng so với các nền tảng SaaS điện toán đám mây.

Kết quả kỳ vọng và chỉ số đo lường (Measurable Metrics)

  • Thời gian xử lý hóa đơn: Rút ngắn xuống dưới 15 giây cho một hóa đơn có từ 3-5 mặt hàng.
  • Độ chính xác tính toán: Đạt 100% tuyệt đối cho các giao dịch có khấu trừ phần trăm giảm giá.
  • Thời gian cập nhật kho: Đồng bộ hóa số lượng tồn kho trong vòng dưới 50ms ngay sau khi kích hoạt lưu hóa đơn bán/nhập.
  • Thời gian kết xuất báo cáo doanh thu: Dưới 2 giây cho tập dữ liệu 10.000 giao dịch.

Phạm vi và giới hạn dự án

  • Phạm vi: Triển khai trực tiếp tại cửa hàng văn hóa phẩm MediaOne phục vụ quy trình nghiệp vụ mua bán hàng, quản lý danh mục (sách, đĩa nhạc, phim), quản lý đối tác (nhà cung cấp, khách hàng, nhân viên), và thống kê tài chính.
  • Giới hạn: Ứng dụng chạy trên môi trường hệ điều hành Windows, kết nối cơ sở dữ liệu nội bộ qua mạng LAN, chưa hỗ trợ đồng bộ đa chi nhánh qua giao thức Web API hoặc ứng dụng di động (Mobile App).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

So sánh các giải pháp quản lý hiện nay

Tiêu chí Quản lý sổ sách / Excel rời rạc Nền tảng SaaS Cloud (KiotViet, Sapo) Hệ thống MediaOne (C# WinForms + SQL Server)
Chi phí đầu tư ban đầu Rất thấp (0 VNĐ) Thấp ban đầu, đóng phí định kỳ hàng năm Đầu tư một lần cho cơ sở hạ tầng máy trạm
Tính toàn vẹn dữ liệu Kém, dễ bị ghi đè/xóa nhầm Tốt, phụ thuộc hạ tầng nhà cung cấp Rất cao, ràng buộc khóa ngoại (Foreign Keys) nghiêm ngặt
Tốc độ truy xuất (LAN) Chậm khi tệp dữ liệu phình to Phụ thuộc tốc độ mạng Internet Rất nhanh (độ trễ nội bộ < 10ms)
Phân quyền bảo mật Không thể phân quyền chi tiết Có phân quyền đa cấp độ Phân quyền RBAC trực tiếp tại mức giao diện và CSDL
Khả năng làm việc Offline Hạn chế hoặc gián đoạn khi đứt mạng Hoạt động 100% độc lập không cần Internet

Khảo sát người dùng và ưu tiên yêu cầu (Ma trận MoSCoW)

  • Must have (Bắt buộc phải có): Xác thực đăng nhập phân quyền; Lập hóa đơn nhập/bán tự động; Cập nhật tồn kho tự động; Quản lý thông tin đối tác và mặt hàng; Báo cáo doanh thu theo mốc thời gian.
  • Should have (Nên có): Tự động phát sinh mã hóa đơn theo dấu thời gian; Kết xuất hóa đơn trực tiếp sang tệp tin Excel; Xuất danh sách sản phẩm ra Microsoft ReportViewer.
  • Could have (Có thể mở rộng): Cảnh báo tự động khi số lượng hàng tồn xuống dưới ngưỡng an toàn (Soluongton < 10).
  • Won't have (Chưa thực hiện đợt này): Thanh toán qua cổng thanh toán trực tuyến QR Code động hoặc máy quét mã vạch không dây Bluetooth.

Thiết kế hệ thống

Kiến trúc hệ thống

Hệ thống được tổ chức theo mô hình phân lớp rõ ràng nhằm tách biệt giao diện người dùng, logic xử lý dữ liệu và tầng lưu trữ:

  1. Presentation Layer (WinForms UI): Chứa các form giao diện người dùng (MainForm, frmDangnhap, frmMathang, frmHoadonban, frmThongke,...).
  2. Business & Data Access Layer (ADO.NET / C# Code): Thực thi các câu lệnh T-SQL, quản lý kết nối SqlConnection, thực hiện các transaction cập nhật dữ liệu.
  3. Database Server (MS SQL Server): Lưu trữ bảng dữ liệu quan hệ, thực thi ràng buộc toàn vẹn khóa chính, khóa ngoại và chỉ mục tìm kiếm.

Bảng thông số công nghệ (Technology Stack)

  • Ngôn ngữ lập trình: C# (.NET Framework 4.8 / C# 8.0)
  • Hệ quản trị CSDL: Microsoft SQL Server 2019 / 2022
  • Môi trường phát triển: Microsoft Visual Studio 2022 Community
  • Thư viện tích hợp: System.Data.SqlClient, Microsoft.Reporting.WinForms (ReportViewer 15.0), Microsoft.Office.Interop.Excel (v16.0)

Thiết kế cơ sở dữ liệu quan hệ (Relational Database Schema)

Hệ thống gồm 10 bảng dữ liệu quan hệ được chuẩn hóa nhằm triệt tiêu dư thừa dữ liệu:

Chi tiết các bảng dữ liệu chính:

  1. Dangnhap (Username [PK, Nvarchar(30)], Password [Nvarchar(30)], Name [Nvarchar(50)], Role [Nvarchar(15)])
  2. Danhmuc (Madanhmuc [PK, Nvarchar(30)], Tendanhmuc [Nvarchar(50)])
  3. Mathang (Mahang [PK, Nvarchar(30)], Madanhmuc [FK, Nvarchar(30)], Tenhang [Nvarchar(50)], Gianhap [Float], Giaban [Float], Soluongton [Int], Anh [Nvarchar(200)])
  4. Nhanvien (MaNV [PK, Nvarchar(30)], TenNV [Nvarchar(50)], SoDT [Nvarchar(15)], Diachi [Nvarchar(100)])
  5. Khachhang (MaKH [PK, Nvarchar(30)], TenKH [Nvarchar(50)], SoDT [Nvarchar(15)], Diachi [Nvarchar(100)])
  6. Nhacungcap (MaNCC [PK, Nvarchar(30)], TenNCC [Nvarchar(50)], SoDT [Nvarchar(15)], Diachi [Nvarchar(100)])
  7. Hoadonnhap (MaHDNhap [PK, Nvarchar(30)], Ngaynhap [Datetime], MaNCC [FK, Nvarchar(30)], MaNV [FK, Nvarchar(30)], Tongtien [Float])
  8. Chitiet_HDNhap (MaHDNhap [PK, FK, Nvarchar(30)], Mahang [PK, FK, Nvarchar(30)], Soluong [Int])
  9. Hoadonban (MaHDBan [PK, Nvarchar(30)], Ngayban [Datetime], MaKH [FK, Nvarchar(30)], MaNV [FK, Nvarchar(30)], Tongtien [Float])
  10. Chitiet_HDBan (MaHDBan [PK, FK, Nvarchar(30)], Mahang [PK, FK, Nvarchar(30)], Soluong [Int], Giamgia [Float])

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình Thác nước truyền thống kết hợp kiểm thử nghiệm thu từng phần (Waterfall Model with Iterative Validation), kéo dài trong 12 tuần:

  • Tuần 1-3: Khảo sát thực tế cửa hàng MediaOne, thu thập quy trình nghiệp vụ xuất/nhập kho, lập sơ đồ phân rã chức năng (BFD) và sơ đồ luồng dữ liệu (DFD mức 0, mức 1, mức dưới đỉnh).
  • Tuần 4-6: Thiết kế mô hình quan hệ dữ liệu, chuẩn hóa bảng biểu (3NF), cài đặt cơ sở dữ liệu trên MS SQL Server, viết các truy vấn T-SQL mẫu.
  • Tuần 7-9: Xây dựng giao diện đồ họa WinForms trên Visual Studio, tích hợp ADO.NET, phát triển module bán hàng, nhập hàng và kết xuất Excel.
  • Tuần 10-11: Kiểm thử hộp đen (Black-box testing), kiểm thử tích hợp, tối ưu hóa truy vấn SQL và xử lý ngoại lệ.
  • Tuần 12: Đóng gói ứng dụng, viết tài liệu hướng dẫn sử dụng và nghiệm thu hệ thống.

Implementation và kết quả

Quy trình phát triển và Thuật toán cốt lõi

Thuật toán tính toán thành tiền và chiết khấu hóa đơn

Trong module lập hóa đơn bán hàng, công thức tính toán đơn giá sau chiết khấu được định nghĩa chính xác theo logic:

$$\text{Thành Tiền} = (\text{Giaban} \times \text{Soluong}) - \left(\frac{\text{Giaban} \times \text{Soluong}}{100} \times \text{Giamgia}\right)$$

Trích xuất dữ liệu chi tiết hóa đơn bán hàng đa bảng (Multi-table JOIN Query)

Để hiển thị đầy đủ thông tin hóa đơn bao gồm thông tin khách hàng, nhân viên lập phiếu và chi tiết từng mặt hàng, truy vấn kết hợp nhiều bảng được thiết lập:

SELECT 
    a.MaHDBan AS N'Mã Hoá Đơn Bán', 
    c.Ngayban AS N'Ngày Bán', 
    d.TenKH AS N'Tên Khách Hàng', 
    e.TenNV AS N'Tên Nhân Viên', 
    b.Tenhang AS N'Tên Hàng', 
    a.Soluong AS N'Số Lượng', 
    b.Giaban AS N'Giá Bán', 
    a.Giamgia AS N'Giảm Giá', 
    (b.Giaban * a.Soluong - (b.Giaban * a.Soluong / 100.0) * a.Giamgia) AS N'Thành Tiền', 
    c.Tongtien AS N'Tổng Tiền' 
FROM Chitiet_HDBan AS a
INNER JOIN Mathang AS b ON a.Mahang = b.Mahang
INNER JOIN Hoadonban AS c ON a.MaHDBan = c.MaHDBan
INNER JOIN Khachhang AS d ON c.MaKH = d.MaKH
INNER JOIN Nhanvien AS e ON c.MaNV = e.MaNV
WHERE a.MaHDBan = 'HDB2332023_121009';

Truy vấn lọc mặt hàng chưa bán được và hàng tồn lâu ngày

Hệ thống sử dụng mệnh đề subquery NOT IN để lọc ra danh sách các mặt hàng chưa phát sinh doanh số bán hàng phục vụ chiến lược thanh lý:

-- Lọc các mặt hàng chưa từng được bán
SELECT mh.Mahang AS N'Mã Hàng', mh.Tenhang AS N'Tên Hàng', mh.Soluongton AS N'Số Lượng Tồn'
FROM Mathang mh
WHERE mh.Mahang NOT IN (
    SELECT DISTINCT ct.Mahang 
    FROM Chitiet_HDBan ct
);

Truy vấn xác định tháng có doanh thu cao nhất bằng toán tử >= ALL

Để hỗ trợ ban quản trị đưa ra kế hoạch tái nhập hàng theo mùa vụ, hệ thống thực thi truy vấn tìm tháng đạt đỉnh doanh thu trong năm:

SELECT MONTH(hd2.Ngayban) AS N'Tháng', SUM(hd2.Tongtien) AS N'Doanh Thu' 
FROM Hoadonban hd2 
WHERE YEAR(hd2.Ngayban) = 2023 
GROUP BY MONTH(hd2.Ngayban) 
HAVING SUM(hd2.Tongtien) >= ALL (
    SELECT SUM(hd.Tongtien) 
    FROM Hoadonban hd 
    WHERE YEAR(hd.Ngayban) = 2023 
    GROUP BY MONTH(hd.Ngayban)
);

Cấu trúc kết nối và thao tác dữ liệu qua ADO.NET (C# Snippet)

Đoạn mã C# thực hiện tải danh sách nhà cung cấp lên điều khiển DataGridView đảm bảo giải phóng tài nguyên tự động thông qua khối lệnh using:

public void LoadDataNhacungcap(DataGridView dgv)
{
    string connectionString = @"Data Source=.;Initial Catalog=QLBanHangMediaOne;Integrated Security=True";
    string query = "SELECT MaNCC AS [Mã NCC], TenNCC AS [Tên NCC], SoDT AS [Số ĐT], Diachi AS [Địa Chỉ] FROM Nhacungcap";

    using (SqlConnection conn = new SqlConnection(connectionString))
    {
        try
        {
            conn.Open();
            using (SqlDataAdapter da = new SqlDataAdapter(query, conn))
            {
                DataTable dt = new DataTable();
                da.Fill(dt);
                dgv.DataSource = dt;
            }
        }
        catch (SqlException ex)
        {
            MessageBox.Show("Lỗi kết nối cơ sở dữ liệu: " + ex.Message, "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
}

Kiểm thử và đánh giá chất lượng (Testing & Validation)

Kịch bản kiểm thử (Test Scenarios & Coverage)

Hệ thống đã trải qua 45 ca kiểm thử bao phủ toàn bộ các module chức năng:

  • Kiểm thử xác thực: Đăng nhập đúng mật khẩu/sai mật khẩu, kiểm tra quyền truy cập menu ẩn của tài khoản Staff so với Admin.
  • Kiểm thử toàn vẹn giao dịch: Lập hóa đơn bán hàng, kiểm tra tính toán tổng tiền khi có chiết khấu 0%, 5%, 10%, 50%.
  • Kiểm thử ràng buộc kho: Kiểm tra trường hợp nhập số lượng bán lớn hơn số lượng tồn kho thực tế (hệ thống chặn giao dịch và hiển thị thông báo cảnh báo).
  • Kiểm thử kết xuất tệp: Xuất hóa đơn sang Excel 2016/2019/365, kiểm tra định dạng số tiền và căn lề tiêu đề.

Đánh giá hiệu năng và thống kê lỗi

  • Tỷ lệ vượt qua kiểm thử (Pass Rate): 45/45 test cases (100%).
  • Thời gian xử lý truy vấn trung bình (Execution Time):
    • Thống kê doanh thu ngày/tháng: 8.4 ms.
    • Lọc danh sách hàng tồn kho < 10 sản phẩm: 4.2 ms.
    • Tìm kiếm khách hàng theo số điện thoại: 3.1 ms.
  • Thống kê lỗi trong giai đoạn phát triển: 18 lỗi được ghi nhận (10 lỗi giao diện DataGridView, 5 lỗi định dạng chuỗi ngày tháng DateTime, 3 lỗi transaction khóa bảng SQL), toàn bộ đã được khắc phục triệt để trước khi nghiệm thu.

Kết quả đạt được so với mục tiêu ban đầu

Chỉ số / Mục tiêu Kế hoạch ban đầu Kết quả đạt được thực tế Đánh giá
Giao diện chức năng 8 form quản trị cơ bản Hoàn thiện 11 form trực quan, hỗ trợ DataGridView Vượt 137% kế hoạch
Độ trễ lập hóa đơn < 30 giây / hóa đơn 10 - 15 giây / hóa đơn Nhanh hơn 50%
Tính năng xuất báo cáo Báo cáo màn hình Xuất tệp Excel tự động + ReportViewer Hoàn thành xuất sắc
Độ ổn định hệ thống Chạy ổn định trên Windows 10 Hoạt động trơn tru trên Windows 10 & Windows 11 Đạt yêu cầu

Đổi mới và đóng góp

Những cải tiến kỹ thuật nổi bật

  1. Tự động hóa sinh mã khóa chính theo cấu trúc thời gian thực: Cơ chế sinh mã tự động theo mẫu HDB<ddMMyyyy_HHmmss> giúp loại bỏ hoàn toàn tình trạng trùng lặp khóa chính khi nhiều giao dịch phát sinh liên tục trong ngày, giảm thiểu thao tác nhập liệu thủ công của thu ngân.
  2. Cơ chế ràng buộc dữ liệu trực tiếp trên lưới dữ liệu (Two-way Data Binding): Khi người dùng chọn một mã nhà cung cấp hoặc khách hàng từ ComboBox, các thông tin liên đới như Số điện thoại, Địa chỉ được tự động điền (auto-fill) lên các trường TextBox tương ứng mà không cần thực hiện thêm thao tác nhấn nút tìm kiếm riêng biệt.
  3. Thuật toán lọc và cảnh báo hàng tồn thông minh: Ứng dụng các câu truy vấn T-SQL phức tạp với mệnh đề HAVING, NOT IN, ORDER BY ... ASC/DESC để phân loại ngay lập tức các nhóm mặt hàng bán chạy, hàng sắp hết (Soluongton < 10), và hàng tồn đọng trong kho.

Đóng góp thực tiễn cho lĩnh vực phần mềm quản lý bán hàng

  • Cung cấp giải pháp phần mềm quản lý bán hàng máy trạm hoàn chỉnh, có tính ứng dụng cao cho các doanh nghiệp bán lẻ quy mô nhỏ muốn tin học hóa quy trình mà không có ngân sách duy trì hạ tầng đám mây đắt đỏ.
  • Tài liệu hóa hoàn chỉnh toàn bộ chu trình phân tích - thiết kế - cài đặt - kiểm thử cơ sở dữ liệu quan hệ cho một bài toán thương mại thực tế, đóng vai trò là tài liệu tham khảo chất lượng cao cho sinh viên ngành Công nghệ thông tin.

Ứng dụng thực tế và triển khai

Kịch bản triển khai thực tế tại cửa hàng MediaOne

Hệ thống được cấu hình triển khai theo mô hình máy chủ nội bộ (Local Server) tại quầy thu ngân của cửa hàng:

  • Kịch bản nhập kho: Nhân viên tiếp nhận đĩa nhạc/sách từ Nhà cung cấp, mở Form Hoá đơn nhập hàng, chọn đối tác, chọn danh mục hàng, nhập đơn giá nhập và số lượng. Hệ thống tự tính thành tiền và cập nhật trực tiếp Soluongton tăng tương ứng trong bảng Mathang.
  • Kịch bản bán hàng: Khách chọn sản phẩm tại quầy, nhân viên mở Form Hoá đơn bán hàng, chọn tên khách hàng, mã hàng, nhập số lượng và phần trăm giảm giá. Sau khi nhấn "Lưu hoá đơn", số lượng tồn kho tự động trừ lùi, hệ thống in hóa đơn ra tệp Excel đưa cho khách hàng.

Yêu cầu cấu hình hệ thống triển khai (System Requirements)

  • Cấu hình máy trạm tối thiểu (Client PC):
    • Hệ điều hành: Windows 10/11 (64-bit).
    • Vi xử lý: Intel Core i3 thế hệ 6 hoặc AMD Ryzen 3 tương đương.
    • Bộ nhớ RAM: 4 GB (khuyến nghị 8 GB).
    • Dung lượng ổ cứng: Tối thiểu 1 GB trống để cài đặt ứng dụng và thư viện .NET Framework.
    • Phần mềm hỗ trợ: Microsoft Excel 2016 trở lên (để mở tệp hóa đơn xuất ra), .NET Framework 4.8 Runtime.
  • Cấu hình máy chủ cơ sở dữ liệu (Database Server):
    • Cài đặt Microsoft SQL Server 2019/2022 Express (miễn phí) hoặc Standard.

Phân tích chi phí - lợi ích và thời gian hoàn vốn (ROI)

  • Chi phí phát triển & triển khai: Gần như bằng 0 VNĐ về mặt phần mềm (tận dụng SQL Server Express và Visual Studio Community).
  • Chi phí tiết kiệm hàng năm: Giảm từ 3.600.000 - 6.000.000 VNĐ chi phí thuê bao phần mềm SaaS hàng năm.
  • Tối ưu năng suất: Giảm thời gian kiểm kê kho từ 8 giờ/tuần xuống còn 45 phút/tuần; triệt tiêu 100% các sai số ghi chép thủ công. Thời gian hoàn vốn đầu tư trang thiết bị (nếu mua máy tính mới) chỉ trong vòng 2 - 3 tháng.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  1. Kiến trúc phần mềm nguyên khối (Monolithic Desktop App): Giao diện gắn chặt với logic truy vấn ADO.NET trực tiếp, chưa tách thành các tầng RESTful API độc lập.
  2. Bảo mật cơ sở dữ liệu: Mật khẩu trong bảng Dangnhap còn lưu trữ dưới dạng chuỗi văn bản thuần (plaintext), chưa áp dụng thuật toán băm (Hashing) an toàn như BCrypt hoặc SHA-256 kèm chuỗi muối (Salt).
  3. Phạm vi mạng cục bộ: Chưa hỗ trợ quản lý bán hàng từ xa qua điện thoại thông minh hoặc đồng bộ nhiều cửa hàng qua mạng Internet.

Định hướng nâng cấp và mở rộng trong tương lai

  • Nâng cấp bảo mật: Mã hóa toàn bộ mật khẩu người dùng bằng SHA-256; bổ sung lịch sử ghi nhận thao tác người dùng (Audit Logs).
  • Tái cấu trúc kiến trúc (Refactoring): Chuyển đổi mã nguồn sang kiến trúc 3-Tier chuẩn (Presentation - Business Logic Layer - Data Access Layer) hoặc Clean Architecture trên nền tảng .NET 8 LTS hiện đại.
  • Tích hợp phần cứng bán hàng: Bổ sung module kết nối máy quét mã vạch 1D/2D qua cổng COM/USB và máy in hóa đơn nhiệt chuyên dụng (POS 80mm ESC/POS protocol).
  • Đưa cơ sở dữ liệu lên đám mây: Chuyển đổi lưu trữ sang Azure SQL Database hoặc AWS RDS để hỗ trợ chuỗi cửa hàng đồng bộ doanh thu thời gian thực.

Đối tượng hưởng lợi

  • Sinh viên ngành CNTT/Hệ thống thông tin: Có tài liệu tham khảo hoàn chỉnh từ sơ đồ phân tích nghiệp vụ (DFD, BFD, ERD) đến cách xây dựng câu truy vấn SQL lồng nhau và lập trình giao diện người dùng.
  • Lập trình viên phát triển ứng dụng máy trạm: Nắm bắt được các phương pháp kết nối CSDL an toàn, giải phóng bộ nhớ cho điều khiển DataGridView và xử lý xuất báo cáo qua thư viện Interop.
  • Chủ cửa hàng bán lẻ và hộ kinh doanh cá thể: Sở hữu một công cụ quản lý bán hàng thực dụng, loại bỏ chi phí vận hành định kỳ và nâng cao tính chuyên nghiệp trong khâu chăm sóc khách hàng.

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

1. Ứng dụng yêu cầu cấu hình phần cứng và phần mềm như thế nào để vận hành mượt mà?

Hệ thống yêu cầu máy tính chạy hệ điều hành Windows 10/11 (64-bit), tối thiểu 4GB RAM và đã cài đặt sẵn .NET Framework 4.8 Runtime cùng Microsoft SQL Server 2019 Express. Nếu cần sử dụng tính năng xuất hóa đơn ra file bảng tính, máy trạm cần cài đặt thêm Microsoft Office Excel 2016 trở lên.

2. Khi dữ liệu hóa đơn tăng lên hàng trăm nghìn dòng, hệ thống có bị suy giảm hiệu năng không?

Nhờ thiết kế chuẩn hóa 3NF và việc tạo các chỉ mục khóa chính (Clustered Index) mặc định trên các cột mã định danh (MaHDBan, MaHDNhap, Mahang), tốc độ tìm kiếm và tổng hợp doanh thu của SQL Server vẫn được đảm bảo dưới 50ms cho tập dữ liệu lớn. Đối với các báo cáo doanh thu theo tháng, hệ thống xử lý gom nhóm thông qua lệnh GROUP BY trực tiếp từ máy chủ SQL trước khi đổ về giao diện nên không gây tràn bộ nhớ RAM máy trạm.

3. Hệ thống có thể tích hợp máy quét mã vạch và máy in hóa đơn nhiệt không?

Hoàn toàn có thể. Với các dòng máy quét mã vạch USB hiện nay (hoạt động theo cơ chế giả lập bàn phím - Keyboard Wedge), nhân viên chỉ cần đặt con trỏ chuột vào ô Mã hàng, thiết bị sẽ tự động điền mã sản phẩm. Đối với máy in nhiệt khổ K80, chương trình có thể tích hợp thư viện in ấn trực tiếp qua PrintDocument của .NET mà không cần thông qua bước trung gian Excel.

4. Quy trình sao lưu và phục hồi dữ liệu khi xảy ra sự cố máy tính được thực hiện thế nào?

Dữ liệu được lưu trữ tập trung tại SQL Server dưới dạng hai tệp tin .mdf (dữ liệu) và .ldf (nhật ký giao dịch). Người quản trị có thể thiết lập lịch tự động sao lưu định kỳ (Backup Database) hàng ngày sang ổ cứng ngoài hoặc các dịch vụ lưu trữ đám mây (Google Drive, OneDrive). Khi gặp sự cố phần cứng, chỉ cần khôi phục (Restore) tệp .bak lên máy tính mới trong vòng 3 phút là toàn bộ dữ liệu được bảo toàn.

5. Chi phí triển khai phần mềm này so với các phần mềm trên thị trường tiết kiệm được bao nhiêu?

Các giải pháp SaaS thương mại hiện có mức phí duy trì trung bình từ 250.000 đến 400.000 VNĐ/tháng (khoảng 3 - 5 triệu VNĐ/năm/cửa hàng). Với phần mềm MediaOne, chi phí bản quyền phần mềm bằng 0 VNĐ do sử dụng các công cụ và nền tảng miễn phí phục vụ học tập/doanh nghiệp nhỏ. Doanh nghiệp chỉ cần đầu tư máy tính văn phòng sẵn có, giúp tiết kiệm 100% chi phí phần mềm định kỳ trong suốt vòng đời sử dụng.


Kết luận

Đồ án tốt nghiệp "Quản lý bán hàng của cửa hàng MediaOne" do sinh viên Nguyễn Thị Loan thực hiện đã giải quyết trọn vẹn bài toán số hóa quy trình kinh doanh tại các cửa hàng văn hóa phẩm, băng đĩa và sách truyện. Thông qua việc phân tích hệ thống bài bản, chuẩn hóa cơ sở dữ liệu quan hệ gồm 10 bảng chặt chẽ và xây dựng ứng dụng WinForms đa năng trên nền tảng C# và MS SQL Server, dự án đã chứng minh tính khả thi, độ ổn định và hiệu quả kinh tế vượt trội so với các phương thức quản lý thủ công truyền thống.

Không dừng lại ở việc đáp ứng các yêu cầu học thuật khắt khe về công nghệ thông tin, đồ án còn mang lại giá trị ứng dụng thực tiễn cao, giúp chủ cửa hàng tối ưu hóa quản lý tồn kho, loại bỏ thất thoát tài chính và rút ngắn thời gian phục vụ khách hàng. Đây là nền tảng vững chắc để tiếp tục mở rộng phát triển thành hệ thống phân tán đa nền tảng trong các giai đoạn tiếp theo.