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

Trong bối cảnh nền kinh tế phát triển nhanh chóng, nhu cầu học tập và nâng cao trình độ chuyên môn của xã hội ngày càng gia tăng, tạo ra áp lực lớn đối với các cơ sở giáo dục nói chung và các trung tâm đào tạo ngoài công lập nói riêng. Việc quản lý thủ công hoặc sử dụng các công cụ rời rạc (như bảng tính Excel, sổ sách) bộc lộ nhiều bất cập về tính chính xác, tính toàn vẹn dữ liệu, cũng như gây khó khăn trong công tác chăm sóc học viên và theo dõi doanh thu. Mặc dù trên thị trường đã xuất hiện các ứng dụng hỗ trợ quản lý giáo dục, việc đáp ứng đầy đủ cả về số lượng tính năng và chất lượng vận hành theo đặc thù từng trung tâm vẫn là bài toán thực tiễn cần giải quyết.

Đề tài "Phát triển hệ thống quản lý cho trung tâm đào tạo" được thực hiện nhằm xây dựng một giải pháp phần mềm hoàn chỉnh, phục vụ công tác quản lý và vận hành quy trình nghiệp vụ tại Trung tâm Đào tạo NewStar.

Mục tiêu và nhiệm vụ nghiên cứu:

  1. Nghiên cứu cơ sở lý thuyết về các công nghệ phát triển phần mềm hiện đại: Spring Framework, Spring Boot, Hibernate ORM, Angular 7 và chuẩn xác thực JSON Web Token (JWT).
  2. Khảo sát hiện trạng vận hành tại trung tâm đào tạo, thu thập và chuẩn hóa danh mục các yêu cầu chức năng cho từng bộ phận (Quản trị viên, Bán hàng, Tiếp thị, Đào tạo, Nhân sự, Kế toán) và yêu cầu phi chức năng.
  3. Mô hình hóa yêu cầu hệ thống thông qua biểu đồ ca sử dụng (Use Case Diagram) tổng quát và phân rã chi tiết.
  4. Thiết kế kiến trúc phần mềm, bao gồm thiết kế lớp (Class Diagram), thiết kế tương tác (Sequence Diagram), thiết kế cơ sở dữ liệu quan hệ và thiết kế giao diện người dùng.
  5. Cài đặt, hiện thực hóa các giao diện lập trình ứng dụng (RESTful APIs) ở phía Backend và giao diện tương tác người dùng (Frontend SPA).
  6. Thiết lập môi trường và thực hiện kiểm thử chức năng (Functional Testing) thông qua các kịch bản kiểm thử (Test Cases) cụ thể.

Đố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ý đào tạo, bán hàng, chăm sóc khách hàng, nhân sự và tài chính tại trung tâm giáo dục; các công nghệ phần mềm ứng dụng gồm Spring MVC, Java Core, Hibernate, MySQL, Angular 7, Kendo Angular, PrimeNG và JSON Web Token (JWT).
  • Phạm vi không gian: Áp dụng cho mô hình vận hành của Trung tâm Đào tạo NewStar; đề tài được triển khai tại Bộ môn Công nghệ Phần mềm, Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.
  • Phạm vi thời gian: Quá trình nghiên cứu và thực hiện khóa luận diễn ra từ ngày 07/01/2019 đến ngày 01/07/2019.

Cơ sở lý thuyết và công nghệ nền tảng

Hệ thống được xây dựng dựa trên kiến trúc phân tách giữa tầng dịch vụ dữ liệu (Backend API) và tầng hiển thị tương tác (Frontend SPA), sử dụng các nền tảng và chuẩn công nghệ sau:

Thành phần / Công nghệ Vai trò và đặc tính kỹ thuật chính
Spring Framework & Spring Boot Khung phát triển ứng dụng Java phía máy chủ. Ứng dụng hai nguyên lý cốt lõi: Nghịch đảo điều khiển/Tiêm phụ thuộc (Dependency Injection - DI với Constructor/Setter Injection) và Lập trình hướng khía cạnh (Aspect Oriented Programming - AOP). Spring Boot cung cấp tính năng phát triển ứng dụng nhanh (RAD), giảm thiểu cấu hình XML phức tạp.
Hibernate Framework Công cụ ánh xạ quan hệ - đối tượng (ORM Framework) đóng vai trò tầng lưu trữ (Persistence Layer), thực hiện giao tiếp, kết nối, truy xuất và quản lý dữ liệu đối tượng giữa ứng dụng Java và hệ quản trị cơ sở dữ liệu MySQL.
Angular 7 & TypeScript Framework phát triển giao diện Web tương tác dựa trên kiến trúc thành phần (Component-based architecture). Sử dụng ngôn ngữ TypeScript hỗ trợ kiểm tra kiểu dữ liệu tĩnh tại thời điểm biên dịch; tích hợp các thư viện giao diện Kendo Angular và PrimeNG.
JSON Web Token (JWT - RFC 7519) Chuẩn mở xác thực và trao đổi thông tin an toàn. Token gồm 3 phần phân tách bằng dấu chấm: Header (loại token, thuật toán mã hóa HMAC/RSA), Payload (các Claim: Reserved, Public, Private) và Signature (chữ ký số kiểm tra tính toàn vẹn). Hệ thống sử dụng HTTP Interceptor để kiểm tra token trên từng yêu cầu.
MySQL Community Server Hệ quản trị cơ sở dữ liệu quan hệ dùng để lưu trữ toàn bộ dữ liệu nghiệp vụ của hệ thống.

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

1. Kiến trúc phân hệ và mô hình hóa chức năng

Hệ thống phân chia thành 6 phân hệ chức năng tương ứng với các vị trí công tác tại trung tâm đào tạo:

  • Phân hệ Quản lý bán hàng: Quản lý thông tin học viên tiềm năng (nguồn tiếp cận: marketing, gọi điện, email, giới thiệu), chuyển đổi học viên tiềm năng sang học viên chính thức, quản lý học viên cá nhân (trạng thái: đang học, tạm dừng, hoàn thành), theo dõi đăng ký học và ghi nhận doanh số.
  • Phân hệ Quản lý tiếp thị: Quản lý chiến dịch tiếp thị qua thư điện tử (Email Campaign hàng loạt), thống kê số lượng khách hàng/học viên tiềm năng phát sinh từ chiến dịch, quản lý mẫu nội dung (Email/SMS Templates).
  • Phân hệ Quản lý hỗ trợ (Customer Support - CS): Lập kế hoạch công việc cá nhân (ngày/tuần/tháng/năm), cơ chế nhắc nhở thời hạn, phân công nhiệm vụ và báo cáo giám sát tiến độ thực hiện công việc.
  • Phân hệ Quản lý đào tạo: Quản lý danh mục chương trình học (mã, tên, thời lượng, học phí), quản lý lớp học (mở lớp khi đạt sĩ số tối thiểu 10 học viên), quản lý giảng viên (thông tin, hợp đồng, lịch dạy), quản lý bảng điểm (nhập trực tiếp/nhập qua file Excel, xuất bảng điểm, xuất chứng chỉ) và quản lý điểm danh lớp học.
  • Phân hệ Quản lý kế toán: Thu học phí (tiền mặt, chuyển khoản ngân hàng, thu nhiều đợt), theo dõi trạng thái phiếu thu, áp dụng tỷ lệ chiết khấu khuyến mãi (%), thống kê và in báo cáo doanh thu theo nhân viên, khóa học hoặc kỳ thời gian (tháng/quý/năm).
  • Phân hệ Quản lý hệ thống: Quản lý tài khoản người dùng, phân quyền truy cập chi tiết theo nhóm quyền/chức vụ, cấu hình tham số hệ thống và email, sao lưu và phục hồi dữ liệu.

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

Hệ thống hiện thực hóa mô hình dữ liệu quan hệ trên MySQL thông qua 17 bảng dữ liệu:

Tên bảng Chức năng lưu trữ dữ liệu
Classes Lưu thông tin lớp học (mã lớp, tên lớp, ngày bắt đầu, ngày kết thúc, sĩ số).
Contacts Lưu thông tin liên hệ của khách hàng, đối tác và tổ chức.
Courses Lưu thông tin các khóa học (mã khóa học, tên khóa học, mô tả).
Course_Category Phân loại danh mục khóa học trong chương trình đào tạo.
Employees Lưu trữ hồ sơ nhân viên và giảng viên của trung tâm.
Employee_Types Định nghĩa các nhóm loại hình nhân viên (toàn thời gian, bán thời gian, thỉnh giảng).
Jobs Lưu trữ thông tin công việc, vị trí chức danh chuyên môn.
Marks Quản lý bảng điểm, điểm thi của từng học viên theo từng lớp học và khóa học.
Marketing_Campaign Lưu thông tin các chiến dịch tiếp thị và thống kê hiệu quả chiến dịch.
Potential_Student Quản lý danh sách học viên tiềm năng trước khi nhập học chính thức.
Prices Lưu biểu giá học phí quy định theo từng khóa học và chương trình đào tạo.
Privileges Định nghĩa danh mục các quyền hạn thao tác chức năng trong hệ thống.
Roles Danh mục nhóm quyền/vai trò người dùng.
Students Quản lý hồ sơ học viên chính thức (mã học viên, họ tên, ngày sinh, liên lạc, nghề nghiệp).
Tasks Lưu trữ công việc, nhiệm vụ được giao, trạng thái và tiến độ xử lý.
Templates Lưu trữ các mẫu nội dung soạn sẵn cho Email và SMS Marketing.
Users Quản lý tài khoản đăng nhập hệ thống, mật khẩu mã hóa và liên kết quyền hạn.

3. Cài đặt và môi trường vận hành

  • Máy chủ ứng dụng (Backend): Cấu hình biến môi trường JAVA_HOME, bổ sung đường dẫn JDK vào biến Path; triển khai dự án Spring Boot quản lý phụ thuộc bằng Maven.
  • Máy khách (Frontend): Cài đặt môi trường thực thi Node.js, công cụ Angular CLI, tích hợp bộ thành phần giao diện Kendo UI và PrimeNG.
  • Cơ sở dữ liệu: Cài đặt dịch vụ Windows Service cho MySQL Server, thiết lập cổng mạng mặc định, tài khoản quản trị và chuỗi kết nối trong cấu hình ứng dụng.

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

Lời mở đầu

Trình bày tính cấp thiết của việc tin học hóa công tác quản trị tại các trung tâm giáo dục trong nền kinh tế tri thức. Nêu rõ đối tượng nghiên cứu (nhu cầu người dùng tại trung tâm đào tạo, công nghệ Spring, Hibernate, Angular, JWT) và phạm vi nghiên cứu (xây dựng các module nghiệp vụ, phân hệ Core API, quản lý dữ liệu học viên, lớp học, tài chính và phân quyền).

Chương 1. Spring Framework – Spring Boot

Trình bày cơ sở lý thuyết về các công nghệ nền tảng được lựa chọn:

  • Phân tích chi tiết kiến trúc Spring Framework, cơ chế Dependency Injection (DI) với các hình thức Constructor Injection, Setter Injection, Interface Injection và lập trình hướng khía cạnh (AOP) giúp tách biệt các mối quan tâm xuyên suốt.
  • Giới thiệu Spring Boot trong việc tối ưu hóa cấu hình và phát triển ứng dụng độc lập.
  • Trình bày kiến trúc ORM của Hibernate Framework trong việc kết nối tầng ứng dụng với cơ sở dữ liệu quan hệ.
  • Trình bày kiến trúc Component-based của Angular 7, vai trò của TypeScript và mô hình phân tầng.
  • Phân tích cấu trúc kỹ thuật của JSON Web Token (JWT) theo chuẩn RFC 7519 (Header, Payload, Signature) và nguyên lý bảo mật token qua Interceptor thay thế cookie để giải quyết bài toán CORS.

Chương 2. Khảo sát hiện trạng và xác định yêu cầu

Tổng hợp kết quả khảo sát thực tế tại Trung tâm NewStar:

  • Xác định quy trình nghiệp vụ chi tiết cho 6 bộ phận: Quản trị viên (4 nhiệm vụ), Nhân viên bán hàng (13 nhiệm vụ), Nhân viên tiếp thị (7 nhiệm vụ), Nhân viên phòng đào tạo (13 nhiệm vụ), Nhân viên phòng nhân sự (12 nhiệm vụ), Nhân viên phòng kế toán (8 nhiệm vụ).
  • Thiết lập bảng yêu cầu phi chức năng: Tốc độ phản hồi tìm kiếm tối đa trong 5 giây; khả năng sao lưu, phục hồi dữ liệu an toàn; khả năng xử lý đồng thời cho nhiều tài khoản; tính tiến hóa cho phép mở rộng tính năng và điều chỉnh linh hoạt công thức tính chiết khấu.
  • Xây dựng 13 sơ đồ ca sử dụng (Use Case) tổng quát và phân hệ; đặc tả chi tiết 48 ca sử dụng nghiệp vụ với đầy đủ các luồng sự kiện chính, điều kiện tiên quyết và kết quả đầu ra.

Chương 3. Thiết kế phần mềm

Hiện thực hóa các mô hình thiết kế kỹ thuật của hệ thống:

  • Thiết kế hệ thống: Xây dựng biểu đồ lớp (Class Diagram) chi tiết cho 3 module nòng cốt gồm Module Học viên, Module Lớp học và Module Khóa học; xây dựng biểu đồ tuần tự (Sequence Diagram) mô tả chi tiết luồng xử lý cho 9 thao tác chính (thêm mới học viên, cập nhật học viên, xóa học viên, thêm khóa học, thêm lớp học, thêm học viên vào lớp, thêm giảng viên vào lớp, tìm kiếm khóa học, tìm kiếm học viên).
  • Thiết kế dữ liệu: Đặc tả chi tiết cấu trúc trường, kiểu dữ liệu, khóa chính, khóa ngoại của 17 bảng dữ liệu và sơ đồ quan hệ thực thể (ERD).
  • Thiết kế giao diện: Xây dựng mô hình chuyển đổi màn hình và thiết kế chi tiết 15 màn hình giao diện (Đăng nhập, Quản lý học viên, Quản lý lớp học, Quản lý khóa học, Quản lý người dùng, Phân quyền tài khoản, Cấu hình nhóm quyền...).

Chương 4. Cài đặt và kiểm thử phần mềm

Trình bày quy trình cài đặt môi trường phát triển:

  • Các bước thiết lập công cụ phát triển (IDE), Java JDK, Node.js, Angular và hệ quản trị MySQL Community.
  • Xây dựng bảng kịch bản kiểm thử (Test Cases) chi tiết để kiểm chứng tính đúng đắn của phần mềm trên 3 module trung tâm: Module quản lý học viên (Bảng 89), Module quản lý lớp học (Bảng 90) và Module quản lý khóa học (Bảng 91).

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

1. Kết quả đạt được

  • Xây dựng hoàn chỉnh hệ thống phần mềm quản lý trung tâm đào tạo với kiến trúc Client-Server hiện đại, tách biệt hoàn toàn giữa Backend (Spring Boot RESTful APIs) và Frontend (Angular 7 SPA).
  • Hoàn thành thiết kế và hiện thực hóa 48 ca sử dụng nghiệp vụ phủ kín toàn bộ các hoạt động: quản lý học viên tiềm năng/chính thức, tổ chức lớp học và khóa học, điểm danh, nhập/xuất bảng điểm và chứng chỉ, quản lý chiến dịch tiếp thị Email/SMS, theo dõi thu học phí và phân quyền bảo mật dữ liệu.
  • Thiết lập cấu trúc cơ sở dữ liệu chuẩn hóa gồm 17 bảng liên kết logic, hỗ trợ đầy đủ các quan hệ thực thể phức tạp trong trung tâm giáo dục.
  • Ứng dụng cơ chế bảo mật xác thực tập trung không trạng thái (Stateless Authentication) bằng JSON Web Token, kiểm soát an toàn mọi luồng dữ liệu truy cập qua cơ chế Interceptor.
  • Thực hiện kiểm thử chức năng trên các module trọng yếu, đảm bảo tính ổn định và đáp ứng các tiêu chuẩn yêu cầu phi chức năng đề ra (thời gian phản hồi tìm kiếm trong ngưỡng 5 giây).

2. Quy tắc nghiệp vụ và giải pháp kiến nghị từ đồ án

  • Cơ chế bảo toàn dữ liệu (Soft Delete): Đồ án đề xuất và thiết lập quy tắc không xóa vật lý bản ghi đối với các thực thể quan trọng (học viên, nhân viên, lớp học) mà chỉ chuyển đổi trạng thái sang dạng vô hiệu hóa (disable), giúp bảo toàn tính toàn vẹn dữ liệu lịch sử và chứng từ kế toán.
  • Quy tắc mở lớp: Quy định chặt chẽ điều kiện mở lớp học đào tạo chỉ được kích hoạt khi số lượng học viên đăng ký đạt sĩ số tối thiểu từ 10 học viên trở lên.
  • Quy trình chuyển đổi dữ liệu học viên: Toàn bộ thông tin thu thập từ giai đoạn học viên tiềm năng được kế thừa và sao chép tự động sang hồ sơ học viên chính thức khi đăng ký khóa học, giúp loại bỏ thao tác nhập liệu trùng lặp.

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

  • Hạn chế:

    • Khảo sát nghiệp vụ và thiết kế hệ thống được tối ưu hóa dựa trên quy trình thực tế của Trung tâm Đào tạo NewStar, do đó việc áp dụng cho các cơ sở đào tạo có quy mô đào tạo đại học hoặc mô hình đào tạo trực tuyến hoàn toàn (E-learning) sẽ cần điều chỉnh thêm.
    • Phân hệ kế toán mới hỗ trợ ghi nhận việc thu học phí trực tiếp hoặc chuyển khoản thủ công, chưa tích hợp tự động với các cổng thanh toán trực tuyến hoặc hệ sinh thái ngân hàng điện tử qua API.
    • Việc điểm danh học viên và giảng viên hiện dựa trên thao tác nhập liệu trực tiếp trên phần mềm hoặc import file Excel, chưa kết nối trực tiếp với thiết bị phần cứng chuyên dụng (máy chấm công vân tay, thẻ từ).
  • Hướng nghiên cứu và phát triển tiếp:

    • Tích hợp các cổng thanh toán trực tuyến phổ biến để tự động hóa việc xuất hóa đơn và đối soát học phí.
    • Xây dựng ứng dụng di động (Mobile App) trên nền tảng Android/iOS dành riêng cho học viên và giảng viên, tái sử dụng hệ thống RESTful API hiện có để tra cứu thời khóa biểu, lịch giảng dạy và điểm thi.
    • Mở rộng phân hệ điểm danh thông qua liên kết với phần cứng sinh trắc học hoặc quét mã QR.

Giá trị tham khảo

Đồ án tốt nghiệp này là tài liệu tham khảo hữu ích cho:

  • Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Cung cấp tài liệu mẫu về quy trình phát triển một ứng dụng quản lý doanh nghiệp hoàn chỉnh từ khâu khảo sát hiện trạng, mô hình hóa UML, thiết kế CSDL quan hệ đến hiện thực hóa mã nguồn.
  • Lập trình viên phát triển ứng dụng Web: Cung cấp giải pháp mẫu về việc kết hợp kiến trúc giữa Spring Boot (Backend) và Angular 7 (Frontend), đặc biệt là kỹ thuật xác thực phân quyền qua JSON Web Token (JWT) và cơ chế HTTP Interceptor.
  • Nhà phát triển hệ thống quản lý giáo dục: Tham khảo bộ phân tích yêu cầu nghiệp vụ thực tế với 48 đặc tả Use Case chi tiết và cấu trúc 17 bảng cơ sở dữ liệu trong quản lý trung tâm đào tạo.

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

1. Hệ thống sử dụng công nghệ nào để đảm bảo bảo mật và kiểm soát truy cập giữa Frontend và Backend?
Hệ thống sử dụng tiêu chuẩn JSON Web Token (JWT - RFC 7519). Khi người dùng đăng nhập thành công, máy chủ cấp một Token chứa thông tin định danh và quyền hạn được ký số bằng thuật toán mã hóa (HMAC/RSA). Phía Frontend (Angular) sử dụng cơ chế HTTP Interceptor để tự động gắn Token này vào tiêu đề của mọi yêu cầu gửi lên máy chủ, cho phép kiểm soát quyền truy cập mà không cần dùng Session Cookie.

2. Điều kiện để nhân viên phòng đào tạo có thể kích hoạt mở một lớp học mới là gì?
Theo quy định nghiệp vụ được xác định trong đồ án (Bảng 4), lớp học chỉ đủ điều kiện mở khi số lượng học viên đăng ký chính thức đạt sĩ số tối thiểu từ 10 người trở lên.

3. Quy tắc xóa các đối tượng như học viên, nhân viên và lớp học trong hệ thống được thực hiện như thế nào?
Để đảm bảo toàn vẹn dữ liệu và lưu vết lịch sử, hệ thống áp dụng cơ chế xóa mềm: không xóa vĩnh viễn các bản ghi trong cơ sở dữ liệu mà chỉ cập nhật cờ trạng thái của đối tượng sang dạng vô hiệu hóa (disable).

4. Cơ sở dữ liệu của hệ thống gồm bao nhiêu bảng và các thực thể chính là gì?
Cơ sở dữ liệu của hệ thống được xây dựng trên MySQL gồm 17 bảng dữ liệu, bao gồm các bảng chính: Classes (lớp học), Courses (khóa học), Students (học viên chính thức), Potential_Student (học viên tiềm năng), Employees (nhân viên/giảng viên), Marks (điểm số), Prices (học phí), Marketing_Campaign (chiến dịch tiếp thị), Users (tài khoản) và Roles/Privileges (phân quyền).

5. Hệ thống hỗ trợ nhân viên tiếp thị thực hiện những chức năng nào?
Nhân viên tiếp thị được cung cấp các công cụ để quản lý chiến dịch gửi thư hàng loạt (Email Campaign), quản lý các mẫu thư điện tử và tin nhắn (Email/SMS Templates), đồng thời theo dõi thống kê số lượng liên hệ và học viên tiềm năng được tạo ra từ từng chiến dịch.


Kết luận

Đồ án tốt nghiệp "Phát triển hệ thống quản lý cho trung tâm đào tạo" của sinh viên Nguyễn Tạ Minh Trung và Võ Hoàng Hà đã giải quyết trọn vẹn bài toán tin học hóa các quy trình vận hành tại Trung tâm Đào tạo NewStar. Thông qua việc kết hợp các công nghệ Spring Boot, Hibernate, Angular 7 và JSON Web Token, hệ thống cung cấp đầy đủ các phân hệ quản lý bán hàng, tiếp thị, đào tạo, nhân sự và kế toán với giao diện tương tác trực quan và cơ chế bảo mật phân quyền chặt chẽ. Kết quả của đồ án không chỉ đáp ứng tốt các yêu cầu chức năng và phi chức năng trong thực tiễn quản lý giáo dục mà còn là tài liệu tham khảo có giá trị cao về thiết kế kiến trúc phần mềm hướng dịch vụ.