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

Khóa luận tốt nghiệp kỹ sư ngành Hệ thống Thông tin với đề tài "Xây dựng hệ thống dạy và học trực tuyến sử dụng WebRTC" (tên tiếng Anh: Online Teaching and Learning System Using WebRTC) được thực hiện bởi nhóm tác giả Nguyễn Kim Thảo (MSSV: 17521065) và Nguyễn Phi Yến (MSSV: 17521289), dưới sự hướng dẫn của ThS. Mai Xuân Hùng tại Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP. Hồ Chí Minh năm 2021.

Về bối cảnh thực tiễn, nhóm tác giả phân tích rằng sự bùng nổ của đại dịch Covid-19 cùng tiến trình chuyển đổi số đã đặt ra yêu cầu cấp thiết phải thay đổi phương thức đào tạo. Hình thức giáo dục truyền thống bộc lộ những rào cản lớn về chi phí cơ sở vật chất (phòng học, bàn ghế, thiết bị làm mát), khoảng cách địa lý (tốn kém thời gian và chi phí đi lại, đặc biệt là du học) và tính thiếu an toàn khi phải tập trung đông người trong điều kiện dịch bệnh. Mặc dù các mô hình dạy học trực tuyến (E-Learning) đã xuất hiện để khắc phục các hạn chế trên, các giải pháp đương thời vẫn tồn tại những bất cập:

  • Các nền tảng E-Learning sử dụng video thu sẵn (như Udemy, Hocmai): khiến người học rơi vào trạng thái thụ động do hoàn toàn thiếu sự tương tác hai chiều với giảng viên.
  • Các lớp học chuyển đổi cơ học từ trực tiếp sang trực tuyến: người học gặp khó khăn trong việc tự do lựa chọn giáo viên phù hợp; quy mô lớp học quá đông khiến lượng kiến thức truyền tải bị phân tán ("loãng"), làm suy giảm hiệu quả tiếp thu.

Xuất phát từ thực trạng đó, khóa luận xác định các mục tiêu và nhiệm vụ nghiên cứu cụ thể:

  1. Nghiên cứu tổng quan và cung cấp cơ sở lý thuyết về E-Learning, Web Conference cùng công nghệ truyền thông thời gian thực WebRTC.
  2. Thiết kế và hiện thực hóa một ứng dụng dạy và học trực tuyến có tính ứng dụng thực tiễn cao, đáp ứng các tiêu chí: tối ưu hóa ưu điểm của E-Learning; bảo đảm tương tác trực tiếp đa phương tiện thời gian thực giữa người dạy và người học; cung cấp nội dung học tập đa dạng; tạo môi trường học tập tương hỗ lẫn nhau; đáp ứng chính xác nhu cầu cá nhân hóa của người học.
  3. Hiện thực hóa các chức năng nghiệp vụ hoàn chỉnh nhằm kết nối hiệu quả giữa đối tượng có nhu cầu truyền đạt kiến thức và đối tượng cần tiếp thu kiến thức.

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

  • Đối tượng sử dụng: Toàn bộ người dùng có nhu cầu bồi dưỡng kỹ năng, kiến thức mới và các cá nhân có chuyên môn, mong muốn chia sẻ kiến thức thông qua môi trường trực tuyến.
  • Phạm vi nghiên cứu và triển khai: Hệ thống tập trung xây dựng các tính năng tương tác trực tuyến chuyên biệt theo mô hình tương tác 1 người dạy và 1 người học (mô hình 1 - 1).

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

Khóa luận xây dựng nền tảng dựa trên các khái niệm học thuật, mô hình truyền thông mạng và công nghệ phần mềm chuyên ngành:

  • Khái niệm E-Learning: Khóa luận trích dẫn định nghĩa của tác giả Lê Huy Hoàng: "E-learning là một loại hình đào tạo chính qui hay không chính qui hướng tới thực hiện tốt mục tiêu học tập, trong đó có sự tương tác trực tiếp giữa người dạy với người học cũng như giữa cộng đồng học tập một cách thuận lợi thông qua công nghệ thông tin và truyền thông". Khóa luận phân tích 5 ưu điểm nền tảng của E-Learning gồm: dễ tiếp cận và thuận tiện, tiết kiệm thời gian và tiền bạc, tính linh hoạt cao, khả năng hỗ trợ theo dõi tiến độ kịp thời và giảm thiểu tiếp xúc tập trung.
  • Khái niệm Web Conference: Được định nghĩa là hình thức trao đổi thông tin trực tiếp giữa các thành viên ở các vị trí địa lý cách xa nhau thông qua truyền tải đồng thời thoại (voice), hình ảnh (video) và dữ liệu (data), hỗ trợ chia sẻ các tệp tài liệu số (PowerPoint, Excel, Word, PDF).
  • Công nghệ WebRTC (Web Real-Time Communication): Tập hợp các tiêu chuẩn và giao thức chuẩn hóa bởi W3C và IETF, cho phép trình duyệt web thực thi truyền thông đa phương tiện thời gian thực qua JavaScript APIs mà không cần cài đặt plugin bổ trợ (như Flash hay Java Applets trước đây). Khóa luận ghi nhận các mốc lịch sử phát triển từ bản dự thảo đầu tiên của W3C (27/10/2011), các hỗ trợ từng phần trên Chrome 23, Firefox 20/22, Chrome 29 Android đến Opera 18/20. Kiến trúc WebRTC bao gồm 3 tầng API: APIs cho nhà lập trình web, APIs cho nhà phát triển trình duyệt và Overridable API. Ba giao diện lập trình cốt lõi gồm:
    • RTCPeerConnection: Quản lý kết nối truyền dữ liệu âm thanh, hình ảnh, mã hóa và điều phối băng thông.
    • MediaStream: Truy xuất luồng dữ liệu từ các thiết bị ngoại vi của người dùng (camera, microphone).
    • RTCDataChannel: Thiết lập kênh truyền dữ liệu phi media hai chiều giữa các peer.
  • Phương pháp và mô hình mạng: Tác giả sử dụng phương pháp phân tích - so sánh kỹ thuật giữa các mô hình truyền thông WebRTC: mô hình P2P thuần (Mesh), mô hình máy chủ trung tâm MCU (Multipoint Controller Unit) và mô hình SFU (Selective Forwarding Unit). Khi mở rộng số lượng kết nối mạng lưới P2P, băng thông yêu cầu tăng nhanh (ví dụ 10 peer đòi hỏi gần 5 Mbps, vượt ngưỡng đáp ứng của đường truyền ADSL 3 Mbps thông thường). Để giải quyết bài toán tải, hai mô hình Media Server được phân tích:
Tiêu chí so sánh Mô hình P2P thuần (Mesh) Mô hình MCU (Multipoint Controller Unit) Mô hình SFU (Selective Forwarding Unit)
Cơ chế xử lý Kết nối trực tiếp ngang hàng giữa các client thông qua Signaling Server Media Server nhận tất cả stream, giải mã, trộn layout thành 1 stream duy nhất rồi mã hóa gửi lại Media Server nhận stream từ từng client và chuyển tiếp nguyên trạng tới các client khác
Số luồng stream/người Tỷ lệ thuận với số peer tham gia Cố định: Nhận 1 luồng tổng hợp, gửi 1 luồng Nhận $(n - 1)$ luồng, gửi 1 luồng
Tổng số luồng toàn mạng Tăng theo cấp số nhân ($n(n-1)$) $2n$ luồng $n^2$ luồng
Tài nguyên máy chủ Không cần Media Server riêng Tiêu tốn CPU và tài nguyên xử lý giải mã/mã hóa rất lớn Tối ưu tài nguyên CPU do không phải giải mã và trộn luồng
Độ trễ và chất lượng Phụ thuộc hoàn toàn vào đường truyền client Có độ trễ do xử lý trộn; chất lượng video có thể suy giảm Độ trễ thấp, giữ nguyên chất lượng gốc của luồng dữ liệu

Thiết kế và triển khai

Là một đồ án xây dựng hệ thống phần mềm, khóa luận triển khai qua 5 giai đoạn: (1) Thực hiện khảo sát, (2) Phân tích thiết kế, (3) Phát triển hệ thống, (4) Kiểm thử, (5) Triển khai.

Khảo sát hệ thống liên quan

Khóa luận khảo sát 3 nền tảng đang vận hành nhằm xác định các khoảng trống tính năng:

Hệ thống khảo sát Tích hợp Web Conference Chủ đề học tập đa dạng Chính sách học phí Đặc điểm giao diện
Cambly Có tích hợp trực tiếp Không đa dạng (chuyên giao tiếp tiếng Anh) Thu phí theo gói thời gian Đơn giản, dễ thao tác
Udemy Không tích hợp (video thu sẵn) Rất đa dạng nhiều lĩnh vực Thu phí tùy theo từng khóa học Phân mục khóa học rõ ràng
Coursera Không tích hợp (chủ yếu khóa học định kỳ) Đa dạng theo học liệu đại học Thu phí theo chứng chỉ/khóa học Giao diện học thuật chuẩn mực

Phân tích và thiết kế hệ thống

  • Tác nhân hệ thống: Phân quyền 2 nhóm tác nhân:
    • A001: Người dùng (User): Bao gồm người có nhu cầu học (học viên) và người tham gia giảng dạy (gia sư).
    • A002: Quản trị viên (Admin): Vận hành và giám sát dữ liệu toàn hệ thống.
  • Phân hệ chức năng: Hệ thống được cấu trúc thành 9 phân hệ use case chính:
    • PH01 — Quản lý tài khoản cá nhân: Đăng ký (UC101 - mật khẩu phải được băm/hash), Đăng nhập (UC102), Đăng xuất (UC103), Cập nhật thông tin tài khoản cá nhân và ảnh đại diện (UC104).
    • PH02 — Xem lịch dạy/học: Xem chi tiết lịch biểu các lớp tham gia (UC201).
    • PH03 — Đăng ký lớp học: Đăng ký học (UC301 - kiểm tra ràng buộc không trùng thời gian học), Tìm kiếm lớp học (UC302), Xem thông tin gia sư (UC303).
    • PH04 — Quản lý lớp học: Xem chi tiết lớp học (UC401), Đánh giá lớp học theo số sao và nhận xét (UC402), Hủy lớp học có quy trình xác nhận hai phía (UC403).
    • PH05 — Tham gia buổi học: Gọi video thời gian thực (UC501), Chia sẻ màn hình (UC502), Kết thúc cuộc gọi (UC503).
    • PH06 — Quản lý lớp dạy: Xem chi tiết lớp dạy (UC601), Tạo lớp dạy mới (UC602), Cập nhật thông tin lớp (UC603), Xóa lớp dạy (UC604), Xem danh sách học viên (UC605), Hủy lớp dạy (UC606).
    • PH07 — Quản lý khóa học: Tạo, chỉnh sửa, xóa và hiển thị thông tin các khóa học trực thuộc.
    • PH08 — Quản lý chủ đề: Quản lý danh mục chủ đề phân loại kiến thức trên hệ thống.
    • PH09 — Quản lý user: Quản trị viên quản lý danh sách, sửa đổi và phân quyền người dùng.

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

  • Front-end: Thư viện ReactJS phát triển ứng dụng đơn trang (SPA), chia tách giao diện thành các thành phần (components) độc lập có khả năng tái sử dụng.
  • Back-end: Ngôn ngữ Java (nền tảng Java Standard Edition 8 - Java SE 8), xây dựng theo kiến trúc dịch vụ RESTful API tiếp nhận và xử lý yêu cầu qua giao thức HTTP.
  • Cơ sở dữ liệu: Hệ quản trị cơ sở dữ liệu quan hệ MySQL; thiết kế thông qua sơ đồ quan hệ thực thể (ERD) đồng bộ hóa logic dữ liệu lớp học, tài khoản, khóa học và lịch học.
  • Môi trường triển khai: Triển khai toàn bộ ứng dụng lên nền tảng đám mây Heroku.

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

Chương 1. Tổng quan đề tài

Chương 1 trình bày tổng quan về bối cảnh giảng dạy và học thêm ngoài giờ tại Việt Nam, phân tích bài toán thực tế dưới tác động của dịch bệnh Covid-19 và làn sóng chuyển đổi số. Tác giả đối chiếu những ưu điểm, khuyết điểm của hai mô hình E-Learning truyền thống (video bài giảng quay sẵn và lớp học số hóa từ lớp trực tiếp). Nội dung chương cũng trình bày khảo sát các mô hình kiến trúc kỹ thuật của WebRTC: phân tích hạn chế băng thông khi kết nối Mesh nhiều peer (10 kết nối tốn gần 5 Mbps trên hạ tầng ADSL 3 Mbps) và so sánh nguyên lý hoạt động của hai bộ điều phối Media Server là MCU và SFU. Cuối cùng, chương 1 xác định mục tiêu xây dựng giải pháp học trực tuyến 1 - 1, đối tượng phục vụ và tuyên bố kết quả đạt được.

Chương 2. Cơ sở lý thuyết và công nghệ sử dụng

Chương 2 hệ thống hóa toàn bộ kiến thức lý thuyết về đào tạo trực tuyến E-Learning và công nghệ Web Conference. Đi sâu vào giải pháp kỹ thuật, chương trình bày chi tiết về WebRTC: định nghĩa, các mốc chuẩn hóa từ năm 2011 đến 2014, 7 lợi ích vượt trội (giảm giá thành, không cần plugin, truyền thông P2P, dễ sử dụng, đa nền tảng, mã nguồn mở, bảo mật tích hợp qua mã hóa). Tác giả làm rõ kiến trúc WebRTC trong trình duyệt thông qua 3 lớp API và cơ chế hoạt động của 3 giao diện cốt lõi: RTCPeerConnection, MediaStream, RTCDataChannel. Phần còn lại của chương giới thiệu các công nghệ nền tảng được chọn để xây dựng hệ thống gồm ReactJS ở tầng giao diện, ngôn ngữ Java (Java SE 8) ở tầng máy chủ và hệ quản trị cơ sở dữ liệu MySQL.

Chương 3. Xây dựng hệ thống

Chương 3 là phần trọng tâm của khóa luận, mô tả chi tiết quy trình xây dựng ứng dụng qua 5 giai đoạn:

  1. Thực hiện khảo sát: Lập bảng so sánh tính năng đối chiếu với Cambly, Udemy và Coursera.
  2. Phân tích thiết kế: Xây dựng mô hình Use Case tổng thể với 2 tác nhân (User, Admin) và 9 phân hệ (PH01 đến PH09). Chương cung cấp bảng đặc tả chi tiết cho từng use case gồm định danh, tác nhân, điều kiện tiên quyết, luồng sự kiện chính, luồng thay thế, luồng ngoại lệ và yêu cầu phi chức năng (mã hóa mật khẩu hash). Đi kèm là các sơ đồ hoạt động (Activity Diagrams) cho các quy trình cốt lõi: Đăng ký, Đăng nhập, Xem lịch dạy, Tìm kiếm lớp học, Gọi video, Chia sẻ màn hình, Tạo và Hủy lớp học.
  3. Phát triển hệ thống: Thiết kế sơ đồ thực thể mối quan hệ ERD, xây dựng các API theo chuẩn RESTful bằng Java ở phía back-end, xây dựng giao diện người dùng tương tác bằng ReactJS ở front-end.
  4. Quy trình nghiệp vụ: Mô tả chi tiết 6 quy trình hoạt động bằng giao diện thực tế: Đăng ký tài khoản, Đăng ký lớp học, Tham gia buổi học (với nút "Vào lớp màu đỏ"), Đánh giá lớp học, Tạo khóa học và Tạo lớp học.
  5. Triển khai: Đóng gói và phát hành ứng dụng lên nền tảng đám mây Heroku.

Chương 4. Kết luận và hướng phát triển

Chương 4 tổng kết các hạng mục đã hoàn thành trong khuôn khổ khóa luận và đề xuất các phương hướng mở rộng hệ thống. Tác giả tự đánh giá việc hoàn thành mục tiêu xây dựng một ứng dụng web kết nối học trực tuyến 1 - 1 tích hợp truyền thông thời gian thực, đồng thời chỉ ra các định hướng công nghệ cần tiếp tục bổ sung để giải quyết bài toán quy mô người dùng lớn hơn trong tương lai.


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

Kết quả chính

  • Hệ thống hóa đầy đủ cơ sở lý thuyết về WebRTC, phân biệt rõ cơ chế vận hành của mạng P2P với các kiến trúc máy chủ trung gian SFU và MCU.
  • Xây dựng hoàn chỉnh ứng dụng E-Learning tích hợp Web Conference hỗ trợ đầy đủ các chức năng nghiệp vụ dạy và học: quản lý tài khoản, quản lý khóa học/chủ đề, tìm kiếm và đăng ký lớp học có kiểm tra ràng buộc thời gian biểu, phòng học trực tuyến tương tác âm thanh - hình ảnh thời gian thực, tính năng chia sẻ màn hình và hệ thống đánh giá sau buổi học.
  • Đóng gói và triển khai vận hành thử nghiệm thành công hệ thống trên nền tảng đám mây Heroku.

Giải pháp và quy trình nghiệp vụ tác giả đề xuất

  • Quy trình hủy lớp bảo đảm đồng thuận: Thiết kế cơ chế gửi yêu cầu hủy lớp kèm lý do xác thực, yêu cầu đối tác học viên hoặc gia sư phải phê duyệt xác nhận đồng ý thì hệ thống mới chính thức thực hiện thao tác hủy lớp (tránh tình trạng đơn phương hủy buổi học làm gián đoạn lịch trình).
  • Cơ chế kiểm soát xung đột lịch: Khi người dùng gửi yêu cầu đăng ký lớp học (UC301), hệ thống tự động đối soát cơ sở dữ liệu để bảo đảm thời gian lớp học mới không bị trùng lặp với bất kỳ lịch dạy hoặc lịch học nào đã tồn tại trước đó của người dùng.
  • Bảo mật dữ liệu định danh: Ràng buộc phi chức năng bắt buộc toàn bộ mật khẩu người dùng phải được băm (hash) trước khi lưu trữ vào cơ sở dữ liệu MySQL.

Đóng góp so với nghiên cứu trước

  • Khóa luận đã khắc phục nhược điểm thiếu tương tác thời gian thực của các hệ thống E-Learning truyền thống sử dụng video thu sẵn (như Udemy).
  • Khắc phục tình trạng "loãng" kiến thức và thiếu sự cá nhân hóa ở các lớp học chuyển đổi trực tiếp đông người bằng cách chuyên biệt hóa mô hình dạy học tương tác 1 - 1, cho phép người học chủ động tìm kiếm và lựa chọn gia sư phù hợp với nhu cầu.
  • Loại bỏ hoàn toàn sự phụ thuộc vào các tiện ích mở rộng (Flash, Java Applets) hoặc phần mềm cài đặt riêng biệt bên thứ ba nhờ ứng dụng các tiêu chuẩn WebRTC trực tiếp trên trình duyệt.

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

Khóa luận chỉ rõ những hạn chế gắn liền với phạm vi kỹ thuật hiện tại:

  • Hệ thống mới chỉ đáp ứng mô hình dạy và học 1 - 1 (1 người dạy và 1 người học kết nối P2P qua trình duyệt).
  • Chưa giải quyết triệt để bài toán mở rộng phòng học cho nhiều người tham gia cùng lúc (kết nối Mesh sẽ quá tải băng thông mạng client nếu số lượng peer tăng cao).
  • Chưa tích hợp các công nghệ xử lý luồng video nâng cao trong quá trình truyền dữ liệu thời gian thực.

Về hướng nghiên cứu và phát triển tiếp:

  • Tích hợp hệ thống máy chủ truyền thông chuyên dụng theo mô hình SFU (Selective Forwarding Unit) hoặc MCU (Multipoint Controller Unit) để mở rộng hệ thống cho các lớp học quy mô nhiều người dùng mà không làm quá tải thiết bị đầu cuối.
  • Ứng dụng các kỹ thuật xử lý hình ảnh nâng cao như Thị giác máy tính (Computer Vision) hoặc Thực tế ảo tăng cường (Augmented Reality - AR) vào luồng truyền video để tăng cường trải nghiệm và tính tương tác trong lớp học trực tuyến.
  • Tiếp tục tối ưu hóa hiệu năng truyền tải và bảo mật cơ sở dữ liệu.

Giá trị tham khảo

Tài liệu khóa luận này mang lại giá trị tham khảo cụ thể cho các đối tượng:

  • Sinh viên ngành Hệ thống Thông tin, Công nghệ Thông tin và Kỹ thuật Phần mềm: Là tài liệu tham khảo chi tiết về quy trình phân tích thiết kế hệ thống thông tin hoàn chỉnh, từ việc xác định bài toán, khảo sát thực tế, phân rã use case, viết bảng đặc tả use case chuẩn hóa đến xây dựng sơ đồ thực thể quan hệ ERD.
  • Người phát triển ứng dụng Web thời gian thực: Chương 1 và Chương 2 cung cấp tài liệu tổng hợp rõ ràng về kiến trúc WebRTC, cơ chế Signaling, các giao diện lập trình (RTCPeerConnection, MediaStream, RTCDataChannel) cũng như bảng phân tích so sánh kỹ thuật giữa hai mô hình Media Server (MCU và SFU).
  • Nhóm nghiên cứu phát triển hệ thống E-Learning: Tài liệu cung cấp cách tiếp cận thiết thực trong việc giải quyết bài toán tương tác trực tiếp 1 - 1, quy trình quản lý lịch trình, cơ chế phối hợp kiểm tra xung đột thời gian và giải pháp xác nhận hủy lớp hai chiều giữa giảng viên và người học.

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

1. Khóa luận giải thích sự khác biệt giữa hai mô hình Media Server MCU và SFU trong WebRTC như thế nào?
Theo phân tích trong Chương 1, MCU (Multipoint Controller Unit) nhận toàn bộ các luồng dữ liệu từ các peer, giải mã, trộn thành một layout hình ảnh duy nhất rồi mã hóa lại và phát tới tất cả các peer khác (tổng số luồng là $2n$). Ưu điểm của MCU là giảm tải số kết nối cho client nhưng nhược điểm là tốn tài nguyên CPU máy chủ, độ trễ cao và chất lượng hình ảnh có thể suy giảm. Ngược lại, SFU (Selective Forwarding Unit) chỉ đóng vai trò định tuyến và chuyển tiếp các luồng stream nguyên bản tới các peer khác mà không thực hiện trộn luồng (tổng số luồng là $n^2$). SFU giúp giảm thiểu độ trễ, giữ nguyên chất lượng luồng dữ liệu gốc và tiêu tốn ít tài nguyên xử lý của máy chủ hơn.

2. Ba giao diện lập trình (APIs) cốt lõi của WebRTC được sử dụng trong khóa luận là gì và vai trò của chúng?
Ba APIs nền tảng được trình bày tại Chương 2 gồm:

  • RTCPeerConnection: Chịu trách nhiệm thiết lập và duy trì kết nối âm thanh, video, truyền dữ liệu ngang hàng giữa các trình duyệt, đồng thời xử lý mã hóa dữ liệu và quản lý băng thông.
  • MediaStream: Cho phép ứng dụng truy cập và điều khiển các luồng dữ liệu đa phương tiện từ thiết bị phần cứng của người dùng (camera, microphone).
  • RTCDataChannel: Hỗ trợ thiết lập kênh truyền thông hai chiều trực tiếp giữa các peer để gửi và nhận dữ liệu phi media (non-media data).

3. Tại sao hệ thống trong khóa luận giới hạn phạm vi ở hình thức dạy và học 1 - 1?
Nhóm tác giả phân tích rằng với mô hình kết nối P2P thuần (không có Media Server trung gian), mỗi peer phải gửi và nhận luồng dữ liệu trực tiếp với tất cả các peer còn lại. Khi có 10 peer kết nối đồng thời, băng thông yêu cầu lên tới gần 5 Mbps (vượt quá khả năng đáp ứng của mạng ADSL tiêu chuẩn 3 Mbps). Do đó, để bảo đảm chất lượng đường truyền, độ ổn định âm thanh, hình ảnh và giải quyết triệt để vấn đề "loãng" kiến thức ở các lớp đông người, đề tài giới hạn phạm vi xây dựng cho mô hình tương tác trực tiếp giữa 1 người dạy và 1 người học.

4. Hệ thống sử dụng ngăn xếp công nghệ (tech stack) nào để xây dựng các phân hệ chức năng?
Hệ thống được xây dựng trên nền tảng công nghệ gồm:

  • Tầng giao diện (Front-end): Sử dụng thư viện ReactJS để tạo ứng dụng đơn trang (SPA).
  • Tầng máy chủ (Back-end): Sử dụng ngôn ngữ Java (Java SE 8) để xây dựng hệ thống xử lý nghiệp vụ thông qua kiến trúc RESTful API.
  • Tầng cơ sở dữ liệu: Hệ quản trị cơ sở dữ liệu quan hệ MySQL.
  • Tầng truyền thông thời gian thực: WebRTC kết hợp với Signaling Server.
  • Triển khai (Deployment): Ứng dụng được triển khai và phát hành trên nền tảng PaaS Heroku.

5. Quy trình hủy lớp học (UC403 và UC606) được kiểm soát như thế nào để tránh việc hủy lớp tùy tiện?
Theo đặc tả use case trong Chương 3, khi một bên (học viên hoặc gia sư) thực hiện lệnh gửi yêu cầu hủy lớp học sắp diễn ra hoặc đang diễn ra, người dùng phải nhập lý do hủy lớp vào hệ thống. Hệ thống không hủy ngay mà ghi nhận trạng thái chờ xác nhận, đồng thời gửi thông báo đến phía còn lại (học viên đối với yêu cầu của gia sư, hoặc gia sư đối với yêu cầu của học viên). Lớp học chỉ chính thức bị hủy bỏ khi bên còn lại xác nhận đồng ý; nếu bên còn lại từ chối, yêu cầu hủy lớp sẽ bị loại bỏ và use case dừng lại.


Kết luận

Khóa luận tốt nghiệp của tác giả Nguyễn Kim Thảo và Nguyễn Phi Yến đã hoàn thành trọn vẹn mục tiêu nghiên cứu và hiện thực hóa hệ thống dạy - học trực tuyến tích hợp hội nghị truyền hình WebRTC theo mô hình tương tác cá nhân hóa 1 - 1. Bằng việc kết hợp kiến trúc front-end ReactJS, máy chủ RESTful API bằng Java và cơ sở dữ liệu MySQL, đề tài đã giải quyết hiệu quả bài toán truyền thông thời gian thực đa phương tiện ngay trên trình duyệt mà không cần cài đặt phần mềm trung gian. Đây là công trình kỹ thuật có giá trị thực tiễn và tính học thuật rõ ràng, cung cấp tài liệu tham khảo chi tiết cho việc phát triển các nền tảng E-Learning thế hệ mới trong bối cảnh chuyển đổi số giáo dục.