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

Trong môi trường giáo dục đại học, đặc biệt tại các cơ sở đào tạo kỹ thuật chuyên sâu như Đại học Bách khoa Hà Nội, khối lượng kiến thức và áp lực thi cử đối với sinh viên rất lớn. Sinh viên năm nhất và các khóa đầu thường gặp nhiều trở ngại trong việc thích nghi với phương pháp giảng dạy trên giảng đường và tự tìm kiếm tài liệu học tập phù hợp. Thực tế cho thấy các kênh tiếp cận tài liệu truyền thống như xin lại từ sinh viên khóa trước hoặc mua tài liệu in tại các cửa hàng xung quanh trường không còn đáp ứng tối ưu nhu cầu thực tế. Theo số liệu khảo sát được tác giả ghi nhận, tỷ lệ sinh viên lựa chọn tìm kiếm tài liệu trực tuyến lên tới 7/10 người.

Mặc dù trên môi trường mạng có nhiều nền tảng và hội nhóm chia sẻ tài liệu (tiêu biểu như hocmai.com hoặc các diễn đàn mạng xã hội), các hệ thống này vẫn bộc lộ nhiều hạn chế đối với sinh viên Đại học Bách khoa Hà Nội. Cụ thể, tài liệu thường mang tính chất phổ quát, thiếu cập nhật, không bám sát chương trình đào tạo của các môn học cơ sở ngành và chuyên ngành đặc thù; đồng thời các nền tảng này chưa cung cấp công cụ tương tác, trao đổi thông tin trực tiếp giữa các sinh viên trong cùng một môi trường đào tạo.

Nhằm giải quyết các vấn đề trên, đồ án tốt nghiệp xác định các mục tiêu và nhiệm vụ nghiên cứu cụ thể như sau:

  1. Xây dựng một nền tảng website hỗ trợ học tập chuyên biệt dành cho sinh viên Đại học Bách khoa Hà Nội.
  2. Cung cấp hệ thống lưu trữ, phân loại và tìm kiếm tài liệu học tập, đề thi của các kỳ trước bao quát từ khối kiến thức đại cương đến chuyên ngành, ngoại ngữ và lập trình.
  3. Thiết lập hệ thống cung ứng khóa học trực tuyến với chi phí thấp, cho phép sinh viên đăng ký, mua khóa học thông qua phương thức thanh toán chuyển khoản quét mã QR.
  4. Tích hợp các module tương tác phụ trợ bao gồm: làm bài tập trực tuyến (online), diễn đàn tin tức/blog để sinh viên trao đổi kinh nghiệm, và hệ thống đánh giá, bình luận tài liệu/khóa học.
  5. Xây dựng phân hệ quản trị (Admin) hoàn chỉnh nhằm kiểm duyệt nội dung, quản lý tài khoản người dùng, quản lý tài liệu, khóa học và xác nhận giao dịch thanh toán.

Đối tượng và phạm vi nghiên cứu của đề tài bao gồm:

  • Đối tượng nghiên cứu: Quy trình quản lý, tìm kiếm và phân phối tài liệu học tập, khóa học trực tuyến; các kỹ thuật phân tích, thiết kế và phát triển ứng dụng web theo mô hình phân tầng.
  • Phạm vi không gian và đối tượng thụ hưởng: Sinh viên và cán bộ quản trị tại Trường Đại học Bách khoa Hà Nội.
  • Phạm vi thời gian và thực hiện: Đồ án được hoàn thành và bảo vệ vào tháng 07 năm 2024 tại Trường Điện – Điện tử, Đại học Bách khoa Hà Nội.

Cơ sở lý thuyết và phương pháp nghiên cứu

Nghiên cứu áp dụng các nguyên lý kỹ thuật phần mềm tiêu chuẩn trong phân tích, thiết kế và phát triển hệ thống thông tin. Đồ án kết hợp giữa phương pháp nghiên cứu khảo sát hiện trạng thực tế và phương pháp phát triển hệ thống hướng đối tượng theo mô hình phân tán Client-Server kết hợp kiến trúc 3 tầng (3-tier architecture).

Khung lý thuyết và công nghệ sử dụng

  • Mô hình kiến trúc phần mềm: Hệ thống được thiết kế theo mô hình Client-Server. Phía máy chủ phân tách thành 3 tầng riêng biệt: Tầng biểu diễn (Presentation Layer / Controller), Tầng xử lý logic nghiệp vụ (Business Logic Layer / Service), và Tầng truy cập dữ liệu (Data Access Layer / Repository).
  • Khung xác thực và phân quyền: Cơ chế bảo mật dựa trên Spring Security kết hợp với mã định danh không trạng thái JSON Web Token (JWT). Token được cấu tạo gồm 3 phần: Header (chứa thuật toán mã hóa), Payload (chứa thông tin xác thực người dùng và thời hạn) và Signature (chữ ký số tạo bởi thuật toán mã hóa và chuỗi bí mật).
  • Ánh xạ đối tượng - quan hệ (ORM): Sử dụng Spring Data JPA dựa trên chuẩn Java Persistence API để liên kết giữa các lớp thực thể (Entity) với các bảng quan hệ trong cơ sở dữ liệu qua ngôn ngữ truy vấn hướng đối tượng JPQL.

Phương pháp nghiên cứu và thu thập dữ liệu

  • Phương pháp khảo sát: Thu thập ý kiến đánh giá trực tiếp và qua kênh mạng xã hội từ sinh viên Đại học Bách khoa Hà Nội về thực trạng tiếp cận tài liệu và trải nghiệm sử dụng các website học tập trực tuyến hiện nay.
  • Phương pháp mô hình hóa hướng đối tượng: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng biểu đồ Use Case tổng quát, biểu đồ Use Case phân rã, biểu đồ gói phụ thuộc và biểu đồ lớp.
  • Phương pháp kiểm thử phần mềm: Áp dụng phương pháp kiểm thử chức năng (Functional Testing) thông qua các ca kiểm thử (test cases) cụ thể đối với các chức năng đăng ký tài khoản và đăng tải khóa học.

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

Kiến trúc phân tầng của hệ thống

Hệ thống máy chủ xây dựng trên nền tảng Java Spring Boot được phân bổ cấu trúc logic nghiêm ngặt nhằm đảm bảo nguyên tắc đảo ngược phụ thuộc (Dependency Inversion Principle):

  • Presentation Layer (Gói Controller): Tiếp nhận yêu cầu HTTP từ phía Client, thực hiện ánh xạ tuyến đường API và chuyển tiếp dữ liệu tới tầng Service tương ứng (ví dụ: CourseController, AccountController, AuthController).
  • Business Logic Layer (Gói Service và DTO): Gồm các giao diện (Interface) khai báo nghiệp vụ và các lớp triển khai (ServiceImpl) thực hiện logic xử lý dữ liệu, đồng thời sử dụng các đối tượng truyền dữ liệu (DTO - Data Transfer Object) cho các cấu trúc Request/Response.
  • Data Access Layer (Gói Repository và Entity): Gói Entity chứa các lớp ánh xạ bảng cơ sở dữ liệu; gói Repository cung cấp các phương thức CRUD tương tác trực tiếp với hệ quản trị cơ sở dữ liệu.

Công nghệ và công cụ phát triển

Tác giả đã tổng hợp danh mục các công nghệ và phần mềm sử dụng trong quá trình triển khai hệ thống:

Mục đích Công cụ / Công nghệ Vai trò kỹ thuật
Backend Framework Spring Boot / Java Xây dựng hệ thống API, điều hướng luồng nghiệp vụ
Bảo mật & Xác thực Spring Security, JWT Mã hóa mật khẩu, kiểm soát phiên và phân quyền truy cập
Tương tác CSDL Spring Data JPA Quản lý quan hệ thực thể, tối ưu truy vấn dữ liệu
Cơ sở dữ liệu MySQL Server Lưu trữ dữ liệu quan hệ
Frontend Framework HTML5, CSS3, JavaScript, Bootstrap Xây dựng giao diện người dùng tương thích đa thiết bị
Môi trường phát triển IntelliJ IDEA, VS Code, MySQL Workbench 8.0 Lập trình mã nguồn Backend, Frontend và quản trị CSDL
Kiểm thử API Postman, Swagger Kiểm tra tính đúng đắn của các điểm cuối API
Mô hình hóa & Thiết kế Astah UML, Draw.io, Balsamiq Vẽ biểu đồ hệ thống, thiết kế CSDL và giao diện mẫu
Quản lý phiên bản Git / GitHub Quản lý mã nguồn dự án

Thiết kế các lớp dịch vụ chính

Các lớp xử lý nghiệp vụ khóa học được định nghĩa chi tiết với các phương thức tiếp nhận và xử lý chuẩn hóa:

Lớp Tên phương thức Tham số đầu vào Kiểu dữ liệu đầu ra Chức năng nghiệp vụ
CourseController getAll Không ResponseEntity<List<Course>> Truy xuất toàn bộ danh sách khóa học
CourseController search SearchCourseRequest ResponseEntity<List<Course>> Tìm kiếm khóa học theo tiêu chí
CourseController getById courseId ResponseEntity<CourseDto> Lấy thông tin khóa học theo định danh
CourseController create CourseCreateDTO ResponseEntity<BaseResponse> Tạo mới bản ghi khóa học
CourseController update CourseUpdateDTO ResponseEntity<BaseResponse> Cập nhật thông tin khóa học
CourseController delete courseId ResponseEntity<BaseResponse> Xóa khóa học khỏi hệ thống
CourseService getAll Không List<Course> Xử lý logic gọi danh sách khóa học
CourseService search SearchCourseRequest List<Course> Thực thi logic tìm kiếm khóa học
CourseService getById courseId CourseDto Đọc dữ liệu chi tiết một khóa học
CourseService create CourseCreateDTO BaseResponse Xử lý lưu trữ bản ghi khóa học mới
CourseService update CourseUpdateDTO BaseResponse Xử lý cập nhật thông tin khóa học
CourseService delete courseId BaseResponse Xử lý xóa khóa học trong CSDL

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

Hệ thống sử dụng các bảng dữ liệu cốt lõi được chuẩn hóa trong MySQL:

Bảng Tên trường Kiểu dữ liệu Bắt buộc Ràng buộc / Mô tả
Course id INT Có Khóa chính (Primary Key)
name VARCHAR(50) Có Tên khóa học
Course_type VARCHAR(255) Có Phân loại khóa học
Course_Description VARCHAR(500) Không Mô tả chi tiết nội dung khóa học
image VARCHAR(50) Có Đường dẫn hình ảnh đại diện
Lesion_number INT Có Tổng số bài học trong khóa
price INT Có Học phí khóa học
Status VARCHAR(255) Không Trạng thái hiển thị của khóa học
created_date / updated_at DATETIME Không Thời gian khởi tạo / cập nhật
created_by / updated_by VARCHAR(255) Có / Không Người tạo / người cập nhật
account id INT Có Khóa chính (Primary Key)
Full_name VARCHAR(50) Không Họ và tên người dùng
Email VARCHAR(100) Có Địa chỉ thư điện tử
username VARCHAR(50) Có Tên đăng nhập hệ thống
password VARCHAR(100) Có Chuỗi mật khẩu đã được mã hóa
phone VARCHAR(50) Không Số điện thoại liên lạc
role VARCHAR(255) Không Quyền hạn tài khoản (User, Admin)
address VARCHAR(200) Có Địa chỉ liên hệ
Status VARCHAR(255) Không Trạng thái kích hoạt tài khoản
Teacher id INT Có Khóa chính (Primary Key)
name VARCHAR(50) Có Họ tên giảng viên/người biên soạn
Email VARCHAR(100) Có Thư điện tử giảng viên
password VARCHAR(100) Có Mật khẩu tài khoản giảng viên
phone VARCHAR(50) Không Số điện thoại liên lạc
order id INT Có Khóa chính (Primary Key)
Order_status VARCHAR(50) Có Trạng thái xử lý đơn hàng
created_date / updated_at DATETIME Không Thời gian phát sinh đơn hàng

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

Chương 1: Giới thiệu đề tài

Chương 1 thiết lập cơ sở ban đầu cho đồ án thông qua việc phân tích tính cấp thiết của việc xây dựng công cụ số hỗ trợ sinh viên Bách khoa. Tác giả chỉ ra sự khác biệt giữa phương pháp học phổ thông và đại học, đưa ra nhận định rằng 7/10 sinh viên lựa chọn mạng Internet để tìm tài liệu nhưng gặp rào cản do tài liệu không chuyên biệt. Mục tiêu đồ án là phát triển website tích hợp hai phân hệ: website công khai cho sinh viên (tìm kiếm tài liệu, đăng ký khóa học, bình luận, làm bài tập) và website quản trị cho quản trị viên (quản lý bài đăng, người dùng, phê duyệt đơn hàng). Định hướng giải pháp kỹ thuật xác định rõ việc lựa chọn mô hình Client-Server, công nghệ Spring Boot ở Backend, Bootstrap/HTML/CSS/JS ở Frontend và MySQL cho hệ quản trị cơ sở dữ liệu.

Chương 2: Khảo sát và phân tích yêu cầu

Chương 2 phân tích hiện trạng các hệ thống học tập trực tuyến thông qua bảng so sánh ưu nhược điểm:

Nhóm hệ thống Ưu điểm ghi nhận Nhược điểm thực tế
Các website học tập trực tuyến hiện nay (như hocmai.com,...) Uy tín, có lịch sử phát triển lâu năm; nguồn tài liệu và khóa học đa dạng cho đối tượng học sinh, sinh viên diện rộng. Khóa học về các môn cơ sở ngành và chuyên ngành Bách khoa bị hạn chế; tài liệu ít được cập nhật; thiếu tính năng tương tác chuyên biệt giữa sinh viên.

Chương này xác định 3 nhóm tác nhân tham gia hệ thống:

  • Khách (Guest): Người dùng chưa xác thực, có thể tra cứu thông tin cơ bản, tìm kiếm tài liệu theo bảng chữ cái hoặc đăng ký tài khoản.
  • Người dùng (User): Kế thừa toàn bộ quyền của Khách, có quyền mua khóa học, tham gia học qua video, bình luận và thực hiện bài tập trực tuyến.
  • Quản trị viên (Admin): Quản lý toàn bộ cơ sở dữ liệu, phê duyệt quyền truy cập khóa học và quản trị tài nguyên số.

Đồng thời, chương 2 hoàn thiện biểu đồ Use Case tổng quát, các biểu đồ phân rã chức năng (tìm kiếm tài liệu, quản lý thông tin cá nhân, đăng ký khóa học, làm bài tập online, quản lý khóa học, quản lý blog, quản lý tài liệu), quy trình đăng ký mua khóa học và các đặc tả chi tiết về mặt chức năng và phi chức năng (bảo mật bằng JWT, mã hóa mật khẩu, hiệu năng hoạt động ổn định).

Chương 3: Công nghệ sử dụng

Chương 3 trình bày cơ sở lý thuyết và lý do lựa chọn các công nghệ triển khai:

  • MySQL & MySQL Workbench 8.0 CE: Cung cấp hệ thống lưu trữ dữ liệu quan hệ mã nguồn mở, hỗ trợ xử lý đa luồng, đa người dùng với chi phí tối ưu.
  • Bootstrap, HTML, CSS, JavaScript: Đảm bảo xây dựng giao diện người dùng đạt chuẩn Responsive, tương thích trên các kích thước màn hình khác nhau, hỗ trợ các thành phần giao diện động.
  • Spring Boot: Tối ưu hóa cấu hình ứng dụng thông qua tính năng tự động cấu hình (Auto-configuration), tích hợp sẵn máy chủ nhúng Tomcat.
  • Spring Data JPA: Đơn giản hóa các thao tác giao tiếp cơ sở dữ liệu thông qua cơ chế ORM và EntityManager, loại bỏ sự phức tạp của mã nguồn JDBC truyền thống.
  • Spring Security & JSON Web Token: Xây dựng chuỗi bộ lọc bảo mật (Filter Chain), thực hiện xác thực người dùng và ủy quyền tài nguyên dựa trên mã token chuẩn hóa gồm 3 phần (Header, Payload, Signature).

Chương 4: Thực nghiệm và đánh giá

Chương 4 mô tả toàn bộ quá trình hiện thực hóa đồ án:

  • Phân tích chi tiết kiến trúc Client-Server và biểu đồ phụ thuộc gói theo 3 tầng (Presentation, Business Logic, Data Access).
  • Thiết kế giao diện chi tiết các màn hình: Đăng nhập, Đăng ký, Trang chủ, Tài liệu, Khóa học, Giỏ hàng thanh toán.
  • Chi tiết hóa thiết kế các lớp Java (CourseController, CourseService) và thiết kế chi tiết 4 bảng dữ liệu chính (Course, account, Teacher, order).
  • Minh họa giao diện thực thi thực tế: Trang tài liệu với chức năng lọc theo tên môn (ví dụ môn Giải tích cho kết quả 3 tài liệu tương ứng), trang danh mục khóa học (môn Lập trình), giỏ hàng, trang hiển thị mã QR thanh toán ngân hàng, giao diện học qua video, giao diện thi trực tuyến môn Tiếng Anh và màn hình tin tức/blog.
  • Thực hiện các kịch bản kiểm thử chức năng đối với quy trình đăng ký tài khoản và quy trình đăng tải khóa học mới.

Chương 5: Các giải pháp và đóng góp

Chương 5 phân tích giải pháp kỹ thuật giải quyết hai bài toán trung tâm:

  • Bài toán tìm kiếm tài liệu: Xây dựng bộ lọc tài liệu theo tên môn học (minh họa với môn Giải tích), tài liệu phân loại rõ ràng theo tên giáo viên biên soạn, tích hợp khu vực bình luận dưới mỗi tài liệu.
  • Bài toán mua bán khóa học: Thiết lập quy trình đặt hàng, hiển thị mã QR chuyển khoản và luồng xử lý đơn hàng tại giao diện quản trị, giúp sinh viên tiếp cận bài giảng chuyên môn với chi phí thấp.

Kết quả và đóng góp của đồ án

Kết quả chính đạt được

  • Xây dựng thành công hệ thống website hỗ trợ học tập phục vụ sinh viên Đại học Bách khoa Hà Nội, vận hành đầy đủ cả phân hệ người dùng công khai và phân hệ quản trị.
  • Hiện thực hóa quy trình tìm kiếm tài liệu thông minh theo bảng chữ cái và tên môn học, cho phép xem chi tiết và thảo luận tương tác.
  • Triển khai thành công quy trình mua khóa học trực tuyến với luồng thanh toán gián tiếp thông qua mã QR tài khoản ngân hàng và kiểm duyệt bởi quản trị viên.
  • Xây dựng module thi trực tuyến môn Tiếng Anh (hiển thị đề thi số 1) và module blog tin tức, khuyến mãi phục vụ tương tác sinh viên.
  • Áp dụng thành công các công nghệ tiêu chuẩn của Java Enterprise: kiến trúc 3 tầng, Spring Boot, Spring Security, JWT và Spring Data JPA.

Đóng góp thực tiễn của đề tài

  1. Đối với sinh viên Bách khoa: Cung cấp nguồn học liệu tập trung, bám sát các môn học đại cương và chuyên ngành của trường; tạo không gian trao đổi kinh nghiệm học tập thực tế giữa các khóa sinh viên.
  2. Về mặt kỹ thuật của tác giả: Vận dụng toàn diện quy trình phát triển phần mềm chuẩn từ bước khảo sát nhu cầu, phân tích yêu cầu, thiết kế kiến trúc phân tầng, thiết kế CSDL quan hệ đến triển khai mã nguồn và kiểm thử chức năng.

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

Dựa trên nội dung đồ án, hệ thống còn tồn tại một số điểm cần tiếp tục hoàn thiện:

  • Hạn chế: Quy trình thanh toán khóa học chưa được tích hợp cổng thanh toán trực tuyến tự động (như VNPay, MoMo, ZaloPay), việc kích hoạt khóa học vẫn phụ thuộc vào thao tác đối soát thủ công của quản trị viên sau khi người dùng chuyển khoản qua mã QR.
  • Hướng phát triển: Tác giả định hướng mở rộng thêm các tính năng mới trong tương lai nhằm nâng cao chất lượng phục vụ và mở rộng khả năng đáp ứng cho nhiều trường đại học khác.

Giá trị tham khảo

Đồ án là tài liệu tham khảo phù hợp cho:

  • Sinh viên ngành Kỹ thuật Điện tử - Viễn thông, Công nghệ thông tin, Kỹ thuật phần mềm: Tham khảo mô hình xây dựng ứng dụng web hướng đối tượng hoàn chỉnh từ khảo sát hiện trạng đến thiết kế và kiểm thử.
  • Người nghiên cứu các đề tài phát triển ứng dụng Java Web: Tham khảo phương thức tổ chức mã nguồn theo kiến trúc 3 tầng (Presentation - Business Logic - Data Access Layer) kết hợp Spring Boot, Spring Security, JWT và Spring Data JPA.
  • Người phát triển hệ thống quản lý học tập (LMS): Tham khảo quy trình thiết kế Use Case, cấu trúc cơ sở dữ liệu quan hệ quản lý khóa học, tài liệu, tài khoản và đơn hàng.

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

1. Hệ thống sử dụng cơ chế bảo mật và xác thực người dùng nào? Hệ thống sử dụng framework Spring Security kết hợp với mã định danh JSON Web Token (JWT). Mật khẩu tài khoản được mã hóa trước khi lưu trữ trong cơ sở dữ liệu. Mỗi yêu cầu (request) từ phía người dùng gửi lên máy chủ phải đính kèm JWT token đã được ký số để xác thực tính hợp lệ và phân quyền truy cập.

2. Quy trình mua khóa học và kích hoạt tài khoản diễn ra như thế nào? Người dùng đăng nhập, thêm khóa học cần mua vào giỏ hàng và tiến hành xác nhận đặt hàng. Hệ thống sẽ hiển thị một mã QR ngân hàng của chủ website để người dùng quét mã chuyển khoản. Sau khi nhận được thanh toán, Quản trị viên (Admin) sẽ kiểm tra thông tin đối soát và thực hiện phê duyệt trên hệ thống để cấp quyền truy cập khóa học cho người dùng.

3. Cơ sở dữ liệu của hệ thống quản lý những thực thể dữ liệu chính nào? Hệ thống thiết kế 4 bảng dữ liệu cốt lõi trong MySQL gồm:

  • Bảng Course: Lưu trữ thông tin khóa học (tên, phân loại, mô tả, hình ảnh, số bài học, giá tiền, trạng thái, người tạo).
  • Bảng account: Lưu trữ thông tin tài khoản người dùng (họ tên, email, tên đăng nhập, mật khẩu mã hóa, số điện thoại, quyền hạn, địa chỉ).
  • Bảng Teacher: Lưu trữ thông tin giáo viên/người biên soạn (tên, email, mật khẩu mã hóa, số điện thoại).
  • Bảng order: Quản lý các đơn hàng và trạng thái đơn hàng mua khóa học.

4. Khảo sát thực tế trong đồ án ghi nhận tỷ lệ sinh viên tìm kiếm tài liệu trực tuyến là bao nhiêu? Theo kết quả khảo sát thực tế do tác giả thực hiện trên sinh viên Đại học Bách khoa Hà Nội, tỷ lệ sinh viên tìm kiếm tài liệu học tập qua môi trường mạng Internet thay vì các phương pháp truyền thống đạt mức 7 trên 10 sinh viên (chiếm 70%).


Kết luận

Đồ án tốt nghiệp "Xây dựng website hỗ trợ học tập" của sinh viên Nguyễn Thanh Nhật Huy đã hoàn thành việc khảo sát, thiết kế và phát triển thành công một nền tảng học tập trực tuyến chuyên biệt cho sinh viên Đại học Bách khoa Hà Nội. Hệ thống được tổ chức chuẩn mực theo kiến trúc Client-Server 3 tầng, ứng dụng hiệu quả hệ sinh thái công nghệ Java Spring Boot, Spring Security, JWT, MySQL và giao diện Responsive với Bootstrap. Kết quả nghiên cứu giải quyết tốt nhu cầu tìm kiếm tài liệu, đăng ký khóa học chuyên ngành và tương tác trao đổi học thuật, đóng vai trò là một tài liệu tham khảo kỹ thuật có giá trị cho sinh viên và lập trình viên trong lĩnh vực phát triển phần mềm quản lý giáo dục.