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

Đề tài "Dịch vụ in thông minh cho sinh viên tại Trường Đại học Bách khoa Tp.HCM (Student Smart Printing Service - HCMUT-SSPS)" được thực hiện trong khuôn khổ môn học Đồ án tổng hợp - Công nghệ phần mềm (mã môn học CO3103) thuộc Khoa Khoa học và Kỹ thuật Máy tính, Trường Đại học Bách khoa – Đại học Quốc gia Thành phố Hồ Chí Minh. Báo cáo được hoàn thành vào tháng 12/2023 bởi nhóm tác giả ValPhy (Lớp L02) dưới sự hướng dẫn của giảng viên Bùi Công Tuấn.

1. Lý do chọn đề tài và bối cảnh thực tiễn

Trong môi trường giáo dục đại học, mặc dù tài liệu điện tử ngày càng phổ biến, nhu cầu in ấn bài giảng, đề thi, tài liệu học tập và báo cáo nghiên cứu của sinh viên vẫn rất lớn. Phương thức in ấn truyền thống tại các cơ sở photocopy bộc lộ nhiều hạn chế thực tiễn:

  • Chi phí in ấn dịch vụ bên ngoài tương đối cao đối với sinh viên.
  • Mất nhiều thời gian tìm kiếm và di chuyển đến các địa điểm in ấn ngoài khuôn viên trường.
  • Quy trình thủ công thiếu linh hoạt về thời gian, địa điểm, dễ xảy ra sai sót và không đảm bảo tính bảo mật của tài liệu.

Hệ thống HCMUT-SSPS được thiết kế nhằm hiện đại hóa và tự động hóa quy trình in ấn, cung cấp dịch vụ in ấn trực tuyến từ xa, kiểm soát hạn mức giấy in và hỗ trợ chia sẻ học liệu nội bộ.

2. Mục tiêu nghiên cứu và phát triển

Tài liệu xác định các mục tiêu cụ thể của dự án gồm:

  1. Tạo điều kiện cho sinh viên tiếp cận dịch vụ in ấn tài liệu từ xa, tự động, nhanh chóng và hiệu quả trên toàn bộ các khuôn viên của HCMUT.
  2. Kiểm soát chi phí in ấn thông qua hạn mức số trang in định kỳ được cấp sẵn, đồng thời tích hợp cổng thanh toán để sinh viên mua thêm khi có nhu cầu.
  3. Tiết kiệm thời gian và giảm thiểu quãng đường di chuyển của sinh viên đến các điểm in.
  4. Tăng tính linh hoạt cho người dùng trong việc lựa chọn thời gian và địa điểm nhận tài liệu in.
  5. Xây dựng quy trình in trực quan, cho phép tùy chỉnh cấu hình in phù hợp với từng đối tượng người dùng.
  6. Đảm bảo an toàn thông tin và tính bảo mật của tài liệu in.
  7. Rèn luyện kỹ năng phân tích yêu cầu, thiết kế kiến trúc phần mềm, lập trình và làm việc nhóm của các thành viên.

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

  • Đối tượng nghiên cứu: Quy trình quản lý, vận hành hệ thống máy in và chu trình dịch vụ in ấn cho sinh viên tại môi trường đại học.
  • Phạm vi không gian: Các cơ sở đào tạo của Trường Đại học Bách khoa – ĐHQG-HCM, kết nối với hệ thống xác thực tập trung HCMUT SSO, cổng thanh toán BKPay và hệ thống máy in vật lý phân tán.
  • Phạm vi thời gian: Nghiên cứu, thiết kế, hiện thực và kiểm thử được triển khai và hoàn thành trong học kỳ I năm học 2023–2024 (tháng 12/2023).

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

Đồ án áp dụng quy trình kỹ nghệ phần mềm tiêu chuẩn cho bài toán phát triển hệ thống thông tin hướng dịch vụ, bao gồm:

1. Phương pháp thu thập và phân tích yêu cầu (Requirement Elicitation)

Nhóm nghiên cứu phân loại và mô hình hóa các yêu cầu dựa trên hai nhóm chủ thể chính:

  • Sinh viên (Student): Người dùng dịch vụ cuối, thực hiện tải file, tùy chỉnh thông số in, quản lý hạn mức trang giấy, mua trang in và chia sẻ tài liệu.
  • Nhân viên dịch vụ in ấn (SPSO - Student Printing Service Officer): Quản trị viên hệ thống, chịu trách nhiệm quản lý máy in, điều chỉnh hạn mức trang in mặc định cho toàn trường, cấu hình danh sách định dạng file cho phép và theo dõi báo cáo doanh thu, hoạt động.
  • Các bên liên quan phụ trợ: Nhân viên bảo trì (Maintainer), Đội ngũ hỗ trợ sinh viên (Student Support), dịch vụ xác thực HCMUT SSO, hệ thống thanh toán BKPay/ví điện tử và nhà cung cấp vật tư in ấn.

2. Mô hình hóa chức năng và thiết kế hệ thống

  • Use Case Modeling: Xây dựng sơ đồ Use Case tổng thể và các kịch bản chi tiết (Use Case Scenarios) gồm luồng chính (Normal flow), luồng thay thế (Alternative flow) và luồng ngoại lệ (Exception flow).
  • Kiến trúc phân lớp (Layered Architecture): Tách biệt các tầng xử lý trong hệ thống nhằm đảm bảo khả năng mở rộng, bảo trì và tái sử dụng mã nguồn.
  • Thiết kế cơ sở dữ liệu quan hệ: Chuẩn hóa dữ liệu để quản lý tài khoản, cấu hình máy in, lịch sử giao dịch và nhật ký in ấn.

3. Tiêu chuẩn yêu cầu phi chức năng (Non-Functional Requirements)

Hệ thống được thiết lập theo các chỉ số định lượng cụ thể:

  • Hiệu năng và tải: Lưu trữ thông tin của 100 trạm in, vận hành đồng thời không suy giảm hiệu năng; lưu trữ dữ liệu 30.000 người dùng và lưu trữ logs lịch sử in trong vòng 1 năm.
  • Tốc độ xử lý: Thời gian tải lên tệp tin dung lượng 200MB không vượt quá 1 phút.
  • Độ sẵn sàng và tin cậy: Hệ thống vận hành liên tục 24/7, tỷ lệ gián đoạn dịch vụ dưới 5%.
  • Chi phí vận hành: Chi phí bảo trì và vận hành không vượt quá 10% chi phí sản xuất phần mềm ban đầu.

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

1. Ngăn xếp công nghệ (Technology Stack)

Thành phần Công nghệ lựa chọn Lý do lựa chọn theo tài liệu
Frontend ReactJS, TailwindCSS Cung cấp giao diện tương tác linh hoạt qua Virtual DOM, quản lý trạng thái bằng State/Props và Redux; hỗ trợ các thư viện xử lý upload file như react-dropzone. TailwindCSS cung cấp cơ chế utility-first tối ưu hóa tốc độ dàn trang và giao diện tùy biến.
Backend NodeJS, ExpressJS Mô hình Non-blocking I/O và Event-driven xử lý hiệu quả các tác vụ I/O đồng thời cao khi tải lên/xuống dữ liệu; hỗ trợ WebSocket kết nối liên tục với máy in và xây dựng RESTful APIs theo mô hình MVC.
Cơ sở dữ liệu MySQL Hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở, tốc độ truy xuất nhanh, bảo mật cao, phù hợp với cấu trúc dữ liệu người dùng và máy in ít biến động trong môi trường giáo dục.
Quản lý mã nguồn Git, GitHub Hệ thống quản lý phiên bản phân tán (DVCS) hỗ trợ làm việc nhóm song song, phân nhánh (branching), xử lý xung đột và lưu trữ repository trực tuyến.

2. Kiến trúc và cơ sở dữ liệu

  • Kiến trúc phần mềm: Hiện thực hóa theo mô hình phân lớp (Layered Architecture) trên nền tảng NodeJS, phân tách rõ ràng giữa tầng tiếp nhận yêu cầu (Routes/Controllers), tầng nghiệp vụ xử lý logic in/thanh toán (Services) và tầng truy xuất dữ liệu MySQL (Repositories/Models).
  • Cơ sở dữ liệu: Thiết kế lược đồ quan hệ quản lý thông tin máy in (mã số, hãng, tình trạng, vị trí, lượng giấy khả dụng), thông tin người dùng (MSSV, số trang khả dụng), nhật ký in (thời gian, cấu hình in, số trang đã in) và kho tài liệu chia sẻ.

3. Chiến lược kiểm thử (Testing Strategy)

Tài liệu xây dựng kế hoạch kiểm thử chức năng và giao diện đối với hai nhóm người dùng (Sinh viên và SPSO):

  • Đánh giá khả năng tương tác của các form nhập liệu, thông báo xác nhận và thông báo lỗi.
  • Đánh giá khả năng phản hồi của hệ thống khi xử lý định dạng file không hợp lệ hoặc tài khoản không đủ số dư trang in.
  • Thu thập bảng khảo sát phản hồi từ người thử nghiệm để tổng hợp danh sách ưu điểm và khuyết điểm cần tối ưu hóa.

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

Tài liệu được kết cấu thành 13 chương nội dung phản ánh toàn bộ quy trình công nghệ phần mềm:

1. Danh sách thành viên và phân chia công việc

Phân công nhiệm vụ cụ thể cho 6 thành viên nhóm ValPhy theo tỷ lệ đóng góp 100%, bao gồm: phân hệ thống kê (Đào Duy Long), quản lý máy in (Bùi Lê Văn, Đặng Phan Minh Phúc), xác thực đăng nhập (Đặng Phan Minh Phúc), cấu hình trang in và file (Đặng Phan Minh Phúc), chia sẻ file (Đỗ Ngọc Ánh), chức năng in và mua trang in/thanh toán (Lưu Chấn Hưng, Lìu Ngọc Yến).

2. Requirement Elicitation

Trình bày ngữ cảnh dự án, xác định vai trò của 7 bên liên quan (Stakeholders), phân tích động lực nghiên cứu, 7 mục tiêu chính, cùng hệ thống yêu cầu chức năng cho SPSO/Sinh viên và yêu cầu phi chức năng về hiệu năng, bảo mật, vận hành.

3. Use-Case Diagram and Use-Case Scenario

Đặc tả chi tiết sơ đồ ca sử dụng toàn hệ thống và kịch bản thực thi dạng bảng:

  • Cập nhật kiểu file và điều chỉnh số trang in: Use case xem danh sách file, thêm/xóa kiểu file cho phép, cấp thêm trang in định kỳ (mặc định cấu hình 100 trang).
  • Quản lý máy in: Use case xem danh sách, thêm máy in mới, sửa thông tin và xóa máy in vật lý.
  • Thực hiện in tài liệu: Kịch bản kiểm tra định dạng file, chọn khổ giấy, cấu hình in 1 mặt/2 mặt (tùy chọn lật trang flip on long edge hoặc flip on short edge), thu phóng (shrink to fit/crop), kiểm tra số dư trang giấy và định tuyến lệnh in đến trạm in.
  • Báo cáo và thống kê: SPSO xem và xuất dữ liệu báo cáo doanh thu, thời gian hoạt động của máy in.
  • Chia sẻ file: Use case xem danh sách file chia sẻ, tải xuống (Download), xem trước (View), xóa file (Delete), đánh giá sao (Rating) và gửi bình luận (Comment).

4. Appropriate Framework / Technology

Phân tích ưu điểm, nhược điểm và đưa ra lý do lựa chọn các công nghệ: ReactJS, TailwindCSS, NodeJS, ExpressJS, MySQL, Git và nền tảng GitHub.

5. Mockup Design and Details

Mô tả chi tiết wireframe giao diện người dùng kèm bảng phân tích thành phần giao diện (UI controls, hành động bắt buộc/tùy chọn):

  • Giao diện quản trị SPSO: thêm/xóa định dạng file, cập nhật trang in, thêm/sửa/xóa máy in, biểu đồ thống kê máy in và doanh thu.
  • Giao diện sinh viên: form mua trang in, thông báo xác nhận thanh toán, danh mục máy in kèm bộ lọc/sắp xếp, danh sách tài liệu chia sẻ, giao diện tải file và chọn tham số in ấn.

6. Implement UI

Mô tả quá trình hiện thực hóa các giao diện người dùng từ bản vẽ mockup lên môi trường web thực tế bằng ReactJS và TailwindCSS.

7. Layered Architecture

Đặc tả mô hình kiến trúc phân tầng của hệ thống, phân định trách nhiệm xử lý giữa client-side, server-side APIs và lớp lưu trữ dữ liệu.

8. Class Diagram

Trình bày sơ đồ lớp tổng thể của hệ thống, định nghĩa các thuộc tính, phương thức và mối quan hệ kết tập, kế thừa giữa các đối tượng nghiệp vụ (Người dùng, Máy in, Lệnh in, Tệp tin, Giao dịch thanh toán).

9. Database

Trình bày thiết kế cơ sở dữ liệu quan hệ trên MySQL, bao gồm các bảng, khóa chính, khóa ngoại và các ràng buộc toàn vẹn dữ liệu.

10. Implement Backend

Mô tả chi tiết việc xây dựng các API dịch vụ bằng NodeJS và ExpressJS, xử lý luồng logic in ấn, quản lý phiên và giao tiếp cơ sở dữ liệu.

11. Kiểm thử

Trình bày quy trình thực nghiệm phần mềm: xác định nhiệm vụ, xây dựng chiến lược kiểm thử, tiến hành chạy thử nghiệm và tổng hợp phản hồi từ người tham gia thông qua các bảng đánh giá chức năng dành cho Sinh viên và SPSO.

12. Kết luận

Tổng kết mức độ hoàn thành các mục tiêu đặt ra của đồ án và đánh giá khả năng ứng dụng thực tế của hệ thống HCMUT-SSPS.

13. Tài liệu tham khảo

Liệt kê danh mục tài liệu, giáo trình kỹ nghệ phần mềm và tài liệu kỹ thuật các framework được sử dụng trong quá trình nghiên cứu.


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

1. Kết quả chính của đề tài

  • Hoàn thành tài liệu báo cáo kỹ thuật dài 73 trang mô tả đầy đủ chu trình phát triển phần mềm theo chuẩn Công nghệ phần mềm.
  • Xây dựng hệ thống 16 kịch bản Use Case chi tiết kèm luồng xử lý ngoại lệ rõ ràng cho mọi tình huống tương tác (không đủ số dư giấy, tải tệp không đúng định dạng, lỗi kết nối cơ sở dữ liệu).
  • Thiết kế hệ thống giao diện trực quan với hơn 30 màn hình mockup chi tiết đáp ứng cả hai nhóm người dùng: Sinh viên và Quản trị viên SPSO.
  • Đề xuất kiến trúc hệ thống đáp ứng năng lực lưu trữ 30.000 tài khoản người dùng, quản lý đồng thời 100 trạm in vật lý, tốc độ upload tệp 200MB trong thời gian dưới 1 phút và tỷ lệ khả dụng dịch vụ đạt 95% (thời gian gián đoạn dưới 5%).

2. Đóng góp thực tiễn

  • Đưa ra giải pháp kỹ thuật giải quyết bài toán in ấn tự động hóa nội bộ cho Trường Đại học Bách khoa Tp.HCM, giúp giảm chi phí và thời gian đi lại cho sinh viên.
  • Tích hợp tính năng cộng đồng cho phép sinh viên chia sẻ, đánh giá (Rating 5 sao) và bình luận tài liệu học tập ngay trên nền tảng in ấn.
  • Cung cấp công cụ quản trị tập trung cho SPSO nhằm tối ưu hóa công tác cấp phát tài nguyên in và theo dõi tình trạng thiết bị theo thời gian thực.

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

Theo phân tích công nghệ trong đồ án, hệ thống còn một số điểm cần lưu ý và cải tiến:

  • Xử lý tệp tin dung lượng lớn: NodeJS có thể gặp khó khăn về hiệu năng bộ nhớ khi xử lý các tệp tin có dung lượng quá lớn hoặc các tác vụ đòi hỏi tài nguyên CPU cao do bản chất đơn luồng (single thread).
  • Lưu trữ tệp trên cơ sở dữ liệu: MySQL không tối ưu cho việc lưu trữ trực tiếp nội dung tệp nhị phân lớn, đòi hỏi hệ thống phải tích hợp giải pháp lưu trữ tệp chuyên biệt hoặc dịch vụ bên thứ ba.
  • Tối ưu hóa truy vấn: Khi quy mô dữ liệu mở rộng ra nhiều trường và lịch sử in tăng cao trong năm, hiệu năng truy vấn của cơ sở dữ liệu quan hệ có thể suy giảm so với các giải pháp NoSQL.

Giá trị tham khảo

Đồ án là tài liệu tham khảo có giá trị học thuật và thực tiễn cao đối với:

  • Sinh viên ngành Kỹ thuật Phần mềm, Khoa học Máy tính và CNTT: Đặc biệt là sinh viên thực hiện môn học Đồ án tổng hợp (CO3103) hoặc Khóa luận tốt nghiệp, tham khảo phương pháp viết tài liệu đặc tả yêu cầu phần mềm (SRS), kỹ thuật phân rã Use Case, thiết kế giao diện Mockup và kiến trúc phân lớp.
  • Nhóm phát triển các hệ thống thông tin trường học: Tham khảo mô hình tích hợp hệ thống dịch vụ in ấn sinh viên với hệ thống xác thực tập trung (SSO) và cổng thanh toán điện tử nội bộ.

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

1. Hệ thống HCMUT-SSPS hỗ trợ các tác vụ in ấn nào cho sinh viên? Hệ thống cho phép sinh viên tải lên tệp tin hợp lệ, lựa chọn kích thước giấy, chọn in một mặt hoặc hai mặt (hỗ trợ tùy chọn lật trang theo cạnh dài hoặc cạnh ngắn), căn chỉnh tỷ lệ (crop hoặc shrink to fit), chọn vị trí trạm in khả dụng, kiểm tra số dư giấy và gửi lệnh in.

2. Quản trị viên SPSO có quyền hạn gì trong hệ thống? SPSO có quyền quản lý danh sách máy in (thêm, sửa thông tin, bật/tắt, xóa máy in), điều chỉnh số lượng trang in cấp định kỳ cho toàn bộ sinh viên, cập nhật danh sách các định dạng file được phép tải lên hệ thống, theo dõi lượng giấy còn lại và xem báo cáo thống kê doanh thu, hoạt động của máy in.

3. Hệ thống xử lý như thế nào khi sinh viên tải tệp sai định dạng hoặc hết số dư giấy in? Nếu tệp tải lên không nằm trong danh mục cho phép của SPSO, hệ thống sẽ chặn xử lý, hiển thị cảnh báo lỗi định dạng và gợi ý chuyển hướng đổi tệp/chuyển đổi định dạng. Nếu số trang in vượt quá số dư khả dụng, nút xác nhận in sẽ bị vô hiệu hóa kèm thông báo yêu cầu người dùng nạp thêm trang in qua cổng thanh toán.

4. Yêu cầu phi chức năng về mặt hiệu năng và khả năng lưu trữ của hệ thống được quy định như thế nào? Hệ thống phải đáp ứng khả năng quản lý 100 trạm in hoạt động đồng thời, lưu trữ thông tin của 30.000 người dùng, lưu trữ dữ liệu lịch sử in (logs) trong vòng 1 năm, duy trì hoạt động 24/7 với tỷ lệ gián đoạn dưới 5% và tải lên tệp 200MB trong thời gian không quá 1 phút.

5. Nhóm tác giả lựa chọn công nghệ nào để xây dựng hệ thống và vì sao? Hệ thống sử dụng ReactJS và TailwindCSS cho Frontend để tối ưu hóa giao diện tương tác; NodeJS và ExpressJS cho Backend nhằm xử lý I/O bất đồng bộ và kết nối thời gian thực; MySQL làm cơ sở dữ liệu quan hệ giúp quản lý dữ liệu người dùng và thiết bị ổn định; Git/GitHub phục vụ quản trị mã nguồn.


Kết luận

Đồ án "Dịch vụ in thông minh cho sinh viên tại Trường Đại học Bách khoa Tp.HCM (HCMUT-SSPS)" của nhóm tác giả ValPhy đã giải quyết trọn vẹn bài toán tự động hóa dịch vụ in ấn học đường thông qua quy trình phát triển phần mềm chặt chẽ. Hệ thống cung cấp đầy đủ các chức năng từ quản lý thiết bị, cấu hình định dạng, thanh toán trang in đến chia sẻ tài liệu trực tuyến với kiến trúc phân lớp hiện đại trên nền tảng ReactJS, NodeJS và MySQL. Đây là tài liệu đồ án kỹ thuật mẫu mực, đáp ứng đầy đủ các tiêu chuẩn kỹ nghệ phần mềm và có tính ứng dụng thực tiễn cao trong môi trường đại học.