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

Trong bối cảnh ngành công nghệ thông tin và viễn thông phát triển mạnh mẽ, điện thoại di động đã trở thành thiết bị thiết yếu trong đời sống hàng ngày. Sự gia tăng liên tục về chủng loại, mẫu mã, thương hiệu cùng các thông số kỹ thuật phức tạp (dung lượng RAM, ROM, màu sắc, xuất xứ, hệ điều hành) đã tạo ra thách thức lớn đối với các doanh nghiệp và cửa hàng bán lẻ trong công tác quản lý kho hàng. Phương thức quản lý thủ công bộc lộ nhiều hạn chế như dễ phát sinh sai sót, tốn kém thời gian, khó kiểm soát số lượng tồn kho theo thời gian thực và gây chậm trễ trong việc tổng hợp dữ liệu báo cáo kinh doanh.

Xuất phát từ thực tiễn trên, đề tài "Quản lý kho điện thoại" được nhóm sinh viên Khoa Công nghệ Thông tin – Trường Đại học Sài Gòn thực hiện nhằm nghiên cứu, phân tích và xây dựng một phần mềm quản lý kho chuyên nghiệp, tối ưu hóa quy trình vận hành và kiểm soát luồng hàng hóa.

Mục tiêu nghiên cứu và phát triển phần mềm được xác định rõ qua 6 nhiệm vụ trọng tâm:

  1. Giảm thiểu sai sót phát sinh trong quá trình quản lý kho thủ công.
  2. Tự động hóa quy trình nhập và xuất kho, tối ưu hóa thời gian và nhân lực vận hành.
  3. Theo dõi chính xác số lượng tồn kho theo từng phiên bản và linh kiện sản phẩm, hỗ trợ đưa ra quyết định nhập – bán hàng dựa trên dữ liệu thực tế.
  4. Hỗ trợ lập kế hoạch đặt hàng từ các nhà cung cấp một cách kịp thời và hiệu quả.
  5. Thiết lập cơ chế phân quyền truy cập chặt chẽ cho từng đối tượng người dùng nội bộ.
  6. Lưu trữ và truy xuất toàn bộ lịch sử thao tác, giao dịch nhập xuất trong hệ thống.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ quản lý kho hàng điện thoại di động, bao gồm quản lý danh mục sản phẩm theo thuộc tính đa dạng, quản lý đối tác (nhà cung cấp, khách hàng), quản lý chứng từ (phiếu nhập, phiếu xuất) và báo cáo thống kê doanh thu - kho bãi.
  • Phạm vi ứng dụng: Hệ thống được thiết kế phục vụ nội bộ cho các doanh nghiệp, chuỗi cửa hàng hoặc cá nhân kinh doanh bán lẻ điện thoại di động; không cung cấp tính năng đăng ký tài khoản đại trà cho khách hàng bên ngoài.

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

Đề tài áp dụng các nguyên lý kỹ thuật phần mềm chuẩn mực để chuyển đổi các yêu cầu thực tiễn thành một giải pháp công nghệ cụ thể.

Khung kiến trúc và mô hình lý thuyết

  • Mô hình Client - Server: Tách biệt rõ ràng giữa tầng giao diện người dùng (Client) và tầng xử lý nghiệp vụ, quản trị cơ sở dữ liệu (Server).
  • Kiến trúc MVC (Model - View - Controller): Phân chia hệ thống thành 3 thành phần chính nhằm đảm bảo tính module hóa, dễ bảo trì và mở rộng:
    • Model (M): Xử lý logic dữ liệu, định nghĩa cấu trúc bảng và tương tác trực tiếp với hệ quản trị cơ sở dữ liệu thông qua công cụ ORM.
    • View (V): Thành phần giao diện người dùng, chịu trách nhiệm kết xuất dữ liệu và tiếp nhận phản hồi từ người sử dụng.
    • Controller (C): Điều phối luồng xử lý, tiếp nhận các yêu cầu HTTP từ View, gọi Model tương ứng và trả dữ liệu về cho giao diện.
  • Mô hình DFD (Data Flow Diagram): Sử dụng sơ đồ luồng dữ liệu mức 0 và mức 1 để mô hình hóa sự luân chuyển của thông tin qua các tiến trình nghiệp vụ trong hệ thống.

Phương pháp nghiên cứu và phát triển

  • Phương pháp khảo sát và phân tích nghiệp vụ: Thu thập và chuẩn hóa các quy trình xuất, nhập, phân loại thuộc tính điện thoại và quản lý nhân sự tại cửa hàng bán lẻ.
  • Phương pháp phân tích và thiết kế cơ sở dữ liệu quan hệ: Chuẩn hóa các bảng dữ liệu, thiết lập các khóa chính (PK), khóa ngoại (FK) và các ràng buộc toàn vẹn nhằm lưu trữ dữ liệu nhất quán.
  • Phương pháp kiểm thử phần mềm: Thực hiện kiểm thử chức năng giao diện và kiểm thử API để xác minh tính chính xác của các luồng nghiệp vụ.

Thiết kế và triển khai hệ thống

Công cụ và công nghệ xây dựng

Hệ thống được xây dựng trên nền tảng các công nghệ web hiện đại, hỗ trợ hiệu năng cao và khả năng tương thích tốt:

Thành phần Công nghệ / Công cụ sử dụng Vai trò trong hệ thống
Frontend ReactJS, JavaScript, Axios Xây dựng giao diện đơn trang (SPA), điều hướng mượt mà, gọi API bất đồng bộ
Backend Node.js, Express Xây dựng máy chủ xử lý logic nghiệp vụ, cung cấp RESTful API
Thư viện ORM Sequelize Kết nối, ánh xạ dữ liệu đối tượng và thao tác với cơ sở dữ liệu quan hệ
Cơ sở dữ liệu MySQL Hệ quản trị cơ sở dữ liệu quan hệ lưu trữ thông tin toàn hệ thống
Môi trường & Công cụ Visual Studio Code, Git, GitHub Soạn thảo mã nguồn, quản lý phiên bản và phối hợp nhóm
Hỗ trợ & Kiểm thử Postman, XAMPP Kiểm thử API độc lập, thiết lập môi trường máy chủ cơ sở dữ liệu cục bộ

Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu của phần mềm bao gồm 19 bảng quan hệ được thiết kế chi tiết để quản lý toàn diện các thực thể trong kho:

1. san_pham (ma_sp [PK], ten_sp, hinh_anh, chip_xu_ly, dung_luong_pin, camera_truoc, camera_sau, hdh [FK], thuong_hieu [FK], xuat_xu [FK], khu_vuc_kho, so_luong_ton, mo_ta_sp, trang_thai)
2. phien_ban_san_pham (ma_phien_ban [PK], ma_sp [FK], ma_ram [FK], ma_rom [FK], ma_mau [FK], gia_nhap, gia_xuat, ton_kho, trang_thai)
3. thuong_hieu (ma_thuong_hieu [PK], ten_thuong_hieu, trang_thai)
4. mau_sac (ma_mau [PK], ten_mau, trang_thai)
5. xuat_xu (ma_xuat_xu [PK], ten_xuat_xu, trang_thai)
6. ram (ma_ram [PK], kich_thuoc_ram, trang_thai)
7. rom (ma_rom [PK], kich_thuoc_rom, trang_thai)
8. khu_vuc_kho (ma_khu_vuc_kho [PK], ten_khu_vuc_kho, trang_thai)
9. phieu_nhap (ma_pn [PK], ma_nv [FK], ma_ncc [FK], thoi_gian_nhap, tong_tien, trang_thai)
10. chi_tiet_phieu_nhap (ma_pn [FK], ma_phien_ban_sp [FK], so_luong, gia_nhap)
11. phieu_xuat (ma_px [PK], ma_nv [FK], ma_kh [FK], thoi_gian_xuat, tong_tien, trang_thai)
12. chi_tiet_phieu_xuat (ma_px [FK], ma_phien_ban_sp [FK], so_luong, gia_xuat)
13. nha_cung_cap (ma_ncc [PK], ten_ncc, dia_chi, email_ncc, sdt_ncc, trang_thai)
14. khach_hang (ma_kh [PK], ten_kh, dia_chi_kh, sdt_kh, trang_thai)
15. nhan_vien (ma_nv [PK], ten_nv, gioi_tinh, sdt, email, mat_khau, ma_quyen, trang_thai)
16. nhom_quyen (ma_quyen [PK], ten_quyen, trang_thai)
17. chi_tiet_quyen (ma_quyen [FK], ma_chuc_nang [FK], hanh_dong)
18. chuc_nang (ma_chuc_nang [PK], ten_chuc_nang, trang_thai)
19. kho (ma_kho [PK], ten_kho, chu_thich, trang_thai)

Đặc tả quy tắc nghiệp vụ và an toàn hệ thống

  • Cơ chế xác thực và bảo mật đăng nhập: Khi người dùng nhập sai thông tin đăng nhập quá 3 lần, hệ thống tự động khóa tài khoản tạm thời trong vòng 15 phút. Toàn bộ các lần đăng nhập không thành công đều được ghi lại.
  • Quy chuẩn mật khẩu: Mật khẩu khi khởi tạo hoặc thay đổi phải đạt độ dài tối thiểu 8 ký tự, kết hợp đầy đủ giữa chữ cái, chữ số và ký tự đặc biệt. Hệ thống hỗ trợ khôi phục mật khẩu thông qua liên kết xác thực gửi đến email đã đăng ký.
  • Phân quyền truy cập đa cấp (RBAC): Cấu trúc phân quyền linh hoạt dựa trên nhóm quyền và bảng chi tiết hành động. Quản lý cửa hàng sở hữu toàn quyền quản trị, thêm/sửa/xóa và xem thống kê tài chính. Nhân viên kho chỉ có quyền tạo phiếu, cập nhật sản phẩm và theo dõi tồn kho. Tài khoản người dùng do quản trị viên cấp nội bộ, không hỗ trợ đăng ký công khai.

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

Phần A: Tổng quan về ứng dụng và đặc tả yêu cầu

Nội dung phần này tập trung phân tích thực trạng quản lý kho hàng điện thoại, xác định các yêu cầu tổng quát và chi tiết cho hệ thống phần mềm.

  • Yêu cầu chung và người dùng: Xác định ba đối tượng thụ hưởng gồm Quản lý cửa hàng, Nhân viên quản lý kho và Nhân viên kinh doanh. Đặt ra yêu cầu về tính tương thích trên trình duyệt web hiện đại và yêu cầu phần cứng tiêu chuẩn.
  • Quy trình nghiệp vụ: Mô tả chi tiết chức năng của từng bộ phận. Quản lý chịu trách nhiệm phê duyệt, quản lý đối tác, nhân viên và số liệu tổng hợp. Nhân viên kho phụ trách lập phiếu nhập/xuất và cập nhật số lượng thực tế.
  • Đặc tả yêu cầu phần mềm: Phân tích chi tiết các màn hình giao diện bên ngoài gồm Đăng nhập, Quản lý sản phẩm, Quản lý thuộc tính (Thương hiệu, Xuất xứ, Hệ điều hành, Màu sắc, RAM, ROM), Quản lý phiếu nhập/xuất, Quản lý khách hàng, Quản lý nhà cung cấp, Quản lý nhân viên, Phân quyền và Thống kê.

Phần B: Kiến trúc phần mềm và thiết kế chi tiết

Chương này đi sâu vào giải pháp kỹ thuật, cấu trúc mã nguồn và mô hình dữ liệu.

  • Kiến trúc hệ thống: Trình bày mô hình MVC trên nền tảng Node.js và ReactJS. Định nghĩa chi tiết các Model dữ liệu tương ứng với từng thực thể.
  • Thiết kế cơ sở dữ liệu: Trình bày chi tiết cấu trúc của 19 bảng dữ liệu quan hệ, chỉ rõ kiểu dữ liệu, ràng buộc khóa chính, khóa ngoại và các trường trạng thái phục vụ tính năng xóa mềm (soft delete).
  • Thiết kế chi tiết chức năng và giao diện: Đặc tả luồng xử lý giao diện từ thêm/sửa/xóa sản phẩm, cấu hình thuộc tính, hiển thị danh sách kho, đến hộp thoại xác nhận ("Are You Sure") khi thực hiện ẩn hoặc xóa khách hàng, nhà cung cấp.

Phần C: Kiểm thử, sơ đồ luồng dữ liệu và hướng phát triển

Chương cuối cùng tổng kết hoạt động kiểm thử hệ thống và mô hình hóa tiến trình qua sơ đồ DFD.

  • Mô hình DFD: Thiết lập sơ đồ luồng dữ liệu Mức 0 (ngữ cảnh tổng quát tương tác giữa người dùng và hệ thống) và Sơ đồ Mức 1 (phân rã các tiến trình chi tiết: Đăng nhập, Quản lý kho, Lập phiếu, Thống kê).
  • Kiểm thử hệ thống: Xác định mục tiêu, phạm vi và nội dung kiểm thử chức năng; ghi nhận các màn hình thực thi và giao diện kết quả thực tế của ứng dụng.
  • Hướng phát triển: Định hướng các tính năng nâng cấp nhằm hoàn thiện ứng dụng trong các giai đoạn tiếp theo.

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

Kết quả triển khai thực tế

Đồ án đã thiết kế và xây dựng thành công phần mềm "Quản lý kho điện thoại" với đầy đủ các phân hệ chức năng hoạt động đồng bộ:

  • Hệ thống quản lý sản phẩm chuyên biệt hóa cho ngành hàng điện thoại, cho phép quản lý chi tiết từ thông số phần cứng (Chip, Pin, Camera) đến từng phiên bản cấu hình (RAM, ROM, Màu sắc).
  • Phân hệ phiếu nhập/xuất tự động hóa tính toán tổng tiền, tự động cập nhật và trừ lượng tồn kho tức thì khi giao dịch hoàn tất.
  • Phân hệ báo cáo thống kê đa chiều: Thống kê doanh thu theo năm, theo tháng trong năm, theo ngày của tháng, lọc khoảng thời gian tùy chọn; thống kê chi tiết theo khối lượng giao dịch của khách hàng và nhà cung cấp.
  • Hoàn thiện cơ chế bảo mật và phân quyền chi tiết đến từng hành động nghiệp vụ.

Phân công thực hiện đề tài

Dự án được hoàn thành bởi nhóm 7 sinh viên với tỷ lệ đóng góp đồng đều (14.28% mỗi thành viên):

STT Sinh viên thực hiện Mã sinh viên Nội dung công việc đảm nhiệm
1 Nguyễn Trần Công Hậu 3122410106 Quản lý khu vực kho, thiết kế tạo Database, viết báo cáo
2 Nguyễn Trấn Khang 3121410255 Quản lý nhân viên, quản lý tài khoản, viết báo cáo
3 Trần Minh Phú 3122410318 Quản lý khách hàng, quản lý nhà cung cấp, viết báo cáo
4 Lại Thế Thành 3122560068 Quản lý phân quyền, chức năng đăng nhập, viết báo cáo
5 Đỗ Hoàng Tin 3122410413 Quản lý phiếu nhập, quản lý phiếu xuất, viết báo cáo
6 Trần Minh Trường 3122410443 Quản lý sản phẩm, quản lý thuộc tính sản phẩm, viết báo cáo
7 Thới Thanh Vương 3122410487 Xây dựng phân hệ báo cáo và thống kê, viết báo cáo

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

Hạn chế của đề tài

  • Hệ thống được triển khai trên môi trường phát triển cục bộ (sử dụng XAMPP và MySQL local), chưa tích hợp quy trình triển khai đám mây (Cloud deployment).
  • Phần mềm chỉ phục vụ mạng nội bộ doanh nghiệp và chưa mở rộng các cổng giao tiếp API cho đối tác bên thứ ba hoặc người tiêu dùng cuối.

Hướng phát triển tiếp theo

  • Mở rộng chức năng kết nối trực tiếp với các kênh bán hàng trực tuyến và các sàn thương mại điện tử.
  • Nâng cấp hệ thống thống kê dự báo nhu cầu thị trường dựa trên lịch sử nhập xuất hàng hóa qua các chu kỳ kinh doanh.
  • Tối ưu hóa trải nghiệm người dùng trên các thiết bị di động dành riêng cho nhân viên kiểm kho thực địa.

Giá trị tham khảo

Báo cáo đồ án là tài liệu tham khảo hữu ích cho sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm và Hệ thống thông tin:

  • Cung cấp mô hình tham chiếu thực tế về cách thiết kế cơ sở dữ liệu quan hệ cho các mặt hàng có nhiều biến thể thuộc tính phức tạp như điện thoại di động (tách biệt bảng sản phẩm chung và phiên bản cấu hình chi tiết).
  • Minh họa rõ nét phương pháp ứng dụng kiến trúc MVC kết hợp giữa ReactJS và Node.js/Express thông qua ORM Sequelize.
  • Đóng vai trò là tài liệu hướng dẫn chuẩn cho việc xây dựng quy trình phân quyền RBAC và quản lý chứng từ nhập xuất hàng hóa.

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

1. Hệ thống xử lý bảo mật đăng nhập và mật khẩu như thế nào?

Hệ thống áp dụng chính sách kiểm soát truy cập nghiêm ngặt: nếu người dùng nhập sai mật khẩu quá 3 lần, tài khoản sẽ bị tạm khóa trong 15 phút và sự kiện này được lưu vết. Khi thiết lập mật khẩu mới, hệ thống yêu cầu độ dài tối thiểu 8 ký tự bao gồm chữ cái, số và ký tự đặc biệt. Tính năng khôi phục mật khẩu được xử lý qua liên kết gửi đến email xác thực của nhân viên.

2. Cơ chế phân quyền và đối tượng người dùng trong hệ thống gồm những ai?

Hệ thống phân định rõ ba đối tượng: Quản lý cửa hàng (toàn quyền cấu hình, quản trị người dùng, duyệt chứng từ, xem báo cáo doanh thu), Nhân viên quản lý kho (thực hiện nghiệp vụ tạo phiếu nhập/xuất, quản lý thông tin sản phẩm, kiểm tra tồn kho), và Nhân viên kinh doanh (tra cứu sản phẩm, xem tồn kho). Do tính chất nội bộ, hệ thống không mở đăng ký tự do; toàn bộ tài khoản do Quản lý tạo và phân quyền chi tiết theo từng chức năng.

3. Cấu trúc cơ sở dữ liệu giải quyết bài toán quản lý nhiều phiên bản của một dòng điện thoại ra sao?

Cơ sở dữ liệu tách biệt thành hai thực thể: bảng san_pham lưu thông tin chung (tên, chip xử lý, pin, camera, thương hiệu, xuất xứ, hệ điều hành) và bảng phien_ban_san_pham lưu thông tin biến thể cụ thể (liên kết khóa ngoại đến mã RAM, ROM, màu sắc, cùng các thông số riêng biệt về giá nhập, giá xuất và số lượng tồn kho của từng phiên bản).

4. Hệ thống sử dụng công nghệ và kiến trúc gì để xây dựng?

Hệ thống được thiết kế theo kiến trúc MVC và mô hình Client-Server. Frontend sử dụng thư viện ReactJS kết hợp JavaScript và thư viện Axios. Backend xây dựng bằng Node.js và Express, sử dụng Sequelize ORM để giao tiếp và quản trị cơ sở dữ liệu quan hệ MySQL.

5. Việc phân chia công việc giữa 7 thành viên nhóm thực hiện đồ án diễn ra như thế nào?

Dự án chia đều 14.28% khối lượng cho mỗi thành viên: Nguyễn Trần Công Hậu phụ trách khu vực kho và database; Nguyễn Trấn Khang quản lý nhân viên và tài khoản; Trần Minh Phú phụ trách khách hàng và nhà cung cấp; Lại Thế Thành đảm nhiệm phân quyền và đăng nhập; Đỗ Hoàng Tin xử lý phiếu nhập/xuất; Trần Minh Trường xây dựng mô-đun sản phẩm và thuộc tính; Thới Thanh Vương phụ trách phân hệ báo cáo và thống kê.


Kết luận

Đồ án "Quản lý kho điện thoại" của nhóm sinh viên Trường Đại học Sài Gòn đã giải quyết thành công bài toán số hóa quy trình quản lý kho hàng cho doanh nghiệp bán lẻ thiết bị di động. Bằng việc kết hợp kiến trúc MVC với các công nghệ ReactJS, Node.js và MySQL, nhóm tác giả đã xây dựng được một hệ thống phần mềm hoàn chỉnh, đáp ứng chuẩn xác từ khâu quản lý thuộc tính đa dạng của sản phẩm đến kiểm soát chứng từ nhập xuất và thống kê doanh thu. Kết quả của đồ án cung cấp một giải pháp công nghệ có tính ứng dụng cao và là tài liệu tham khảo giá trị cho các nghiên cứu phát triển phần mềm quản lý kho tương tự.