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

Trong bối cảnh công nghệ thông tin và mạng Internet phát triển nhanh chóng, đào tạo trực tuyến (E-learning) đã trở thành một phương thức giáo dục phổ biến, cho phép người dạy và người học tương tác không bị giới hạn bởi không gian và thời gian, đồng thời tối ưu hóa chi phí và thời gian tổ chức đào tạo. Tại các cơ sở giáo dục đại học và cao đẳng, xu hướng hiện nay là kết hợp phương pháp giảng dạy truyền thống trên giảng đường với các hệ thống học tập trực tuyến (blended learning) nhằm nâng cao tính chủ động của sinh viên và hỗ trợ giảng viên quản lý học liệu, theo dõi tiến độ học tập một cách có hệ thống. Bên cạnh đó, ngôn ngữ lập trình Ruby và framework Ruby on Rails nổi lên như một nền tảng phát triển ứng dụng web hiện đại, có cú pháp linh hoạt, hỗ trợ phát triển nhanh và khả năng mở rộng cao. Từ những lý do thực tiễn và kỹ thuật đó, tác giả lựa chọn thực hiện đề tài xây dựng hệ thống đào tạo trực tuyến ứng dụng framework Ruby on Rails.

Mục tiêu nghiên cứu của khóa luận được xác định cụ thể qua ba nhóm nhiệm vụ:

  1. Nghiên cứu và tìm hiểu các công nghệ, dịch vụ phát triển ứng dụng web bao gồm: HTML5, CSS3, SCSS, JavaScript, jQuery, cơ sở dữ liệu MySQL, framework Ruby on Rails, nền tảng điện toán đám mây Heroku và dịch vụ lưu trữ Amazon S3.
  2. Khảo sát, phân tích các website đào tạo trực tuyến hiện có: hệ thống website môn học của Trường Đại học Công nghệ (Đại học Quốc gia Hà Nội) và các nền tảng học trực tuyến thương mại như Udemy, Codecademy, Coursera, edX.
  3. Nghiên cứu, phân tích thiết kế hướng đối tượng và hiện thực hóa việc xây dựng một hệ thống đào tạo trực tuyến hoàn chỉnh phục vụ giảng viên và sinh viên các trường đại học, cao đẳng.

Đố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: Ngôn ngữ lập trình Ruby; framework Ruby on Rails; các thành phần, cấu trúc và đặc điểm chức năng của hệ thống đào tạo trực tuyến; quy trình và phương pháp phát triển ứng dụng web trên nền tảng Ruby on Rails.
  • Phạm vi nghiên cứu: Phạm vi nghiệp vụ giới hạn ở mô hình đào tạo trực tuyến hỗ trợ kết hợp giảng đường đại học (quản lý khóa học, bài giảng văn bản, bài giảng video có thời lượng dưới 20 phút, bài tập, đề kiểm tra trắc nghiệm, thảo luận, theo dõi tiến độ); phạm vi công nghệ tập trung vào hệ sinh thái Ruby on Rails và các công cụ bổ trợ liên quan trên môi trường máy tính cá nhân.

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

Khóa luận dựa trên nền tảng lý thuyết phát triển phần mềm hiện đại và các nguyên lý kiến trúc hướng đối tượng, cụ thể:

  • Kiến trúc phần mềm MVC (Model - View - Controller): Phân tách hệ thống thành ba thành phần độc lập gồm Model (quản lý logic dữ liệu và quy tắc nghiệp vụ), View (kết xuất giao diện người dùng qua các mẫu ERB/HTML), và Controller (tiếp nhận request, điều phối dữ liệu giữa Model và View).
  • Các nguyên lý cốt lõi của Ruby on Rails: Nguyên lý DRY (Don’t Repeat Yourself) nhằm triệt tiêu sự lặp lại mã nguồn; nguyên lý Convention over Configuration (ngầm định thay cho cấu hình) giúp chuẩn hóa cách đặt tên bảng, tên lớp và cấu trúc thư mục; cơ chế tự động sinh mã nguồn (code generation); kỹ thuật ánh xạ quan hệ - đối tượng (ORM) thông qua Active Record.
  • Ngôn ngữ lập trình Ruby: Khung khái niệm thuần hướng đối tượng (mọi kiểu dữ liệu, bao gồm cả số nguyên thông qua lớp Numeric, đều là đối tượng), tính chất mềm dẻo cho phép định nghĩa lại toán tử, cùng cơ chế Modules và Mixin cung cấp không gian tên (namespace) và giải quyết bài toán đa kế thừa trên nền tảng đơn kế thừa.

Phương pháp nghiên cứu và kỹ thuật thực tế được tác giả triển khai bao gồm:

  • Phương pháp phân tích và thiết kế hệ thống hướng đối tượng (OOAD): Sử dụng ngôn ngữ mô hình hóa thống nhất UML để xây dựng các biểu đồ ca sử dụng (Use Case Diagram), biểu đồ tuần tự (Sequence Diagram) và biểu đồ lớp (Class Diagram) cho từng phân hệ người dùng.
  • Phương pháp phân tích, so sánh hệ thống: Khảo sát thực tế hệ thống website môn học của Trường Đại học Công nghệ (nền tảng Moodle) và hệ thống Udemy để xác định ưu điểm, hạn chế và rút ra yêu cầu bài toán.
  • Phương pháp phát triển phần mềm thực nghiệm: Thiết lập môi trường, lập trình mã nguồn theo chuẩn kiến trúc Rails, thiết kế cơ sở dữ liệu quan hệ, tích hợp các gem chuyên dụng và triển khai lên môi trường máy chủ đám mây.
  • Phương pháp kiểm thử: Sử dụng công cụ kiểm thử tự động RSpec để viết test suite và kiểm tra tính toàn vẹn của mã nguồn, kết hợp lấy ý kiến đánh giá thực nghiệm từ người dùng cuối.

Nguồn dữ liệu của nghiên cứu gồm tài liệu kỹ thuật chuẩn của Ruby, tài liệu Ruby on Rails Guides, các nghiên cứu và số liệu khảo sát lập trình viên của Stack Overflow (2017–2019), tài liệu đặc tả nghiệp vụ đào tạo của Trường Đại học Công nghệ, cùng dữ liệu khảo sát người dùng thực tế sau khi triển khai hệ thống.

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình 3 tầng chuẩn của framework Ruby on Rails, vận hành trên máy chủ web và tương tác với hệ quản trị cơ sở dữ liệu quan hệ cùng dịch vụ lưu trữ đám mây.

Cấu hình môi trường và các công nghệ triển khai:

  • Môi trường phát triển: Hệ điều hành Ubuntu 16.04 LTS.
  • Ngôn ngữ và Framework backend: Ruby phiên bản 2.5.1; Ruby on Rails phiên bản 5.2.
  • Hệ quản trị cơ sở dữ liệu: MySQL phiên bản 5.7, kết nối qua thư viện mysql2. Quản lý tiến hóa lược đồ thông qua Active Record Migrations (db/schema.rb, db/seeds.rb).
  • Giao diện và tương tác frontend: HTML5, cú pháp tiền xử lý CSS SCSS (thông qua gem sass-rails), thư viện giao diện Bootstrap 4 (gem bootstrap), JavaScript và jQuery (gem jquery-rails), kết hợp thư viện thông báo toastr và hộp thoại sweetalert cài đặt qua npm.
  • Quản lý cấu hình và biến môi trường: Sử dụng gem figaro thông qua tập tin config/application.yml nhằm bảo mật các khóa API và thông số máy chủ.
  • Cơ chế xác thực và phân quyền: Gem devise cung cấp các module Database Authenticable, Registerable, Recoverable, Rememberable. Hệ thống bổ sung enum phân quyền trong model User với 3 cấp độ: user: 1 (học viên), manager: 2 (giáo viên), admin: 3 (quản trị viên). Mật khẩu ngẫu nhiên cho tài khoản do quản trị viên tạo được sinh tự động bằng hàm SecureRandom.hex(3) (chuỗi 6 ký tự).
  • Quản lý tệp tin và lưu trữ đám mây: Sử dụng gem carrierwave tích hợp dịch vụ lưu trữ đối tượng Amazon S3 để tải lên và phân phối video bài giảng, hình ảnh đại diện và tài liệu đính kèm.
  • Công nghệ thời gian thực và xử lý nền: Sử dụng Action Cable (giao thức WebSockets) cho tính năng tương tác thời gian thực; Action Mailer kết hợp Active Job thực thi chế độ deliver_later để gửi thư điện tử thông báo mà không làm nghẽn tiến trình chính.
  • Môi trường triển khai sản phẩm: Nền tảng PaaS Heroku cho ứng dụng web, kết hợp Amazon S3 cho kho học liệu đa phương tiện.

Cơ sở dữ liệu của hệ thống được chuẩn hóa gồm 13 bảng với các mối quan hệ 1:1, 1:N, N:N và quan hệ đa hình (polymorphic):

Tên bảng CSDL Mục đích và nội dung lưu trữ Mối liên kết chính
users Thông tin tài khoản người dùng, email, mật khẩu mã hóa, vai trò (role), thông tin cá nhân. 1:N với user_courses, comments, results.
courses Thông tin khóa học (tên, mô tả, hình ảnh, thời gian bắt đầu, kết thúc). 1:N với subjects, user_courses.
user_courses Bảng trung gian liên kết học viên và khóa học (đăng ký khóa học). N:N giữa users và courses.
subjects Các chủ đề học tập thành phần thuộc một khóa học cụ thể. N:1 với courses, 1:N với tasks, exams.
tasks Bài học chi tiết trong chủ đề (nội dung văn bản, video bài giảng, tài liệu). N:1 với subjects, 1:N với user_tasks, comments.
user_tasks Ghi nhận trạng thái hoàn thành từng bài học của học viên để tính tiến trình. N:1 với users, N:1 với tasks.
comments Các bình luận, phản hồi thảo luận dưới từng bài học cụ thể. N:1 với users, N:1 với tasks.
notifications Thông báo từ giáo viên hoặc hệ thống gửi tới học viên các lớp học. N:1 với users, N:1 với courses.
exams Đề kiểm tra đánh giá kiến thức thuộc chủ đề học tập. N:1 với subjects, 1:N với questions, tests.
questions Ngân hàng câu hỏi trắc nghiệm của đề kiểm tra (chọn 1 hoặc nhiều đáp án). N:1 với exams, 1:N với answers.
answers Các phương án trả lời tương ứng với từng câu hỏi (kèm cờ đúng/sai). N:1 với questions.
tests Phiên làm bài kiểm tra cụ thể của một học viên đối với một đề thi. N:1 với users, N:1 với exams, 1:1 với results.
results Kết quả chi tiết, điểm số và số câu đúng/sai của phiên làm bài. 1:1 với tests.

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

CHƯƠNG 1. PHÂN TÍCH HỆ THỐNG ĐÀO TẠO TRỰC TUYẾN

Chương này tập trung xác định bài toán nghiệp vụ, phân tích hiện trạng và đặc tả các yêu cầu phần mềm:

  • Khảo sát hệ thống tương tự: Phân tích website môn học của Trường Đại học Công nghệ (vận hành trên nền Moodle, chia kỳ học 15 tuần, làm tốt việc gửi tài liệu và bài tập nhưng chưa khai thác bài giảng video) và hệ thống thương mại Udemy (hơn 12 triệu học viên, 40 nghìn khóa học, mạnh về video bài giảng đa ngôn ngữ nhưng dữ liệu học viên và chương trình phụ thuộc hoàn toàn vào Udemy, không thuộc quyền quản lý trực tiếp của nhà trường).
  • Nhận diện 3 nhóm tác nhân tham gia hệ thống: Quản trị viên (nhân viên phòng đào tạo: quản lý tài khoản, phân quyền, giám sát toàn bộ khóa học), Giáo viên (tạo khóa học, tổ chức chủ đề, tải bài giảng, tạo ngân hàng đề thi trắc nghiệm, theo dõi lộ trình và chấm điểm), Học viên (sinh viên: đăng ký khóa học, học qua video/văn bản, làm bài kiểm tra, thảo luận dưới bài giảng, theo dõi tỷ lệ hoàn thành lộ trình).
  • Đặc tả yêu cầu phi chức năng: Phần mềm phải đảm bảo tính khả dụng để người dùng làm quen trong vòng 30 phút; giao diện tối ưu hóa cho máy tính cá nhân; vận hành ổn định, phản hồi nhanh; bảo mật thông tin tài khoản cá nhân.
  • Thiết kế hướng đối tượng: Xây dựng biểu đồ ca sử dụng tổng quát cho 3 tác nhân, phân tích chi tiết luồng sự kiện chính, luồng bổ sung, tiền điều kiện và hậu điều kiện cho ca sử dụng tiêu biểu (Đăng ký tài khoản, Tạo khóa học, Sửa khóa học); thiết kế biểu đồ tuần tự và mô hình cơ sở dữ liệu quan hệ gồm 13 bảng.

TÌM HIỂU FRAMEWORK RUBY ON RAILS (CHƯƠNG 2)

Chương 2 trình bày cơ sở lý thuyết về ngôn ngữ Ruby và kiến trúc của framework Rails:

  • Đặc điểm ngôn ngữ Ruby: Ra đời năm 1993 bởi Yukihiro Matsumoto; cấu trúc thuần hướng đối tượng; cú pháp ngắn gọn, linh hoạt; kỹ thuật Mixin giải quyết giới hạn của đơn thừa kế bằng cách nhúng các module chứa phương thức vào lớp; cơ chế không gian tên (namespace) ngăn chặn xung đột định danh.
  • Kiến trúc và nguyên lý Rails: Vận hành theo mô hình MVC; triệt tiêu trùng lặp qua DRY; áp dụng Convention over Configuration giúp loại bỏ các tệp cấu hình XML/YAML phức tạp bằng các quy ước đặt tên ngầm định (tên model viết hoa số ít ánh xạ tới tên bảng viết thường số nhiều).
  • Phân tích chi tiết 11 thành phần cốt lõi của Rails: Action Pack, Action Dispatch, Action Controller, Active Model, Active Record (hỗ trợ ORM và các thao tác CRUD tự động), Action View (hỗ trợ layout, template ERB, partials), Action Mailer (xử lý thư điện tử), Active Resource, Active Job (quản lý hàng đợi nền: Sidekiq, Resque), Action Cable (xử lý WebSockets), Active Storage và Railties/Rake.

CÀI ĐẶT HỆ THỐNG VÀ ĐÁNH GIÁ THỰC NGHIỆM (CHƯƠNG 3)

Chương 3 mô tả chi tiết quá trình hiện thực hóa hệ thống từ mã nguồn đến thử nghiệm:

  • Tổ chức mã nguồn: Phân định rõ chức năng các thư mục app/ (controllers, models, views, helpers, mailers, assets), config/ (routes.rb, environments, application.yml), db/ (migrate, schema.rb, seeds.rb).
  • Kỹ thuật định tuyến lồng nhau (nested resources): Áp dụng cơ chế định tuyến lồng để biểu diễn quan hệ cha - con giữa Khóa học, Chủ đề và Bài học (/courses/:course_id/subjects/:subject_id/tasks), đồng thời phân chia không gian tên điều khiển qua namespace :admin và namespace :manage.
  • Cài đặt nghiệp vụ chi tiết: Hiện thực hóa việc tạo mật khẩu ngẫu nhiên 6 ký tự qua SecureRandom.hex(3) và gửi mail kích hoạt; quản lý ngân hàng câu hỏi trắc nghiệm hỗ trợ cả dạng chọn 1 đáp án và nhiều đáp án đúng; tự động sinh đề thi ngẫu nhiên cho học viên; lưu trữ dữ liệu đa phương tiện lên Amazon S3 qua gem carrierwave.
  • Kiểm thử và triển khai: Viết kịch bản kiểm thử tự động sử dụng RSpec; triển khai ứng dụng trên nền tảng đám mây Heroku; tiến hành đánh giá thực nghiệm mức độ hài lòng và tính ổn định của hệ thống từ phía người dùng cuối.

KẾT LUẬN VÀ ĐÁNH GIÁ KẾT QUẢ ĐẠT ĐƯỢC

Chương cuối cùng tổng kết các kết quả đạt được, chỉ ra các mặt còn tồn tại của hệ thống sau quá trình cài đặt, và phác thảo các định hướng phát triển kỹ thuật trong tương lai.

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

Khóa luận đã hoàn thành việc xây dựng một hệ thống đào tạo trực tuyến hoàn chỉnh với các kết quả cụ thể:

  • Hiện thực hóa đầy đủ 3 phân hệ chức năng độc lập cho 3 nhóm đối tượng: Quản trị viên, Giáo viên và Học viên, đáp ứng các user stories đã đặt ra trong pha phân tích.
  • Xây dựng hoàn chỉnh cơ sở dữ liệu quan hệ gồm 13 bảng với các mối liên kết chặt chẽ (1:1, 1:N, N:N thông qua bảng trung gian user_courses, và quan hệ tự tham chiếu/đa hình).
  • Tích hợp thành công các thư viện chuyên sâu trong hệ sinh thái Ruby: Devise (quản lý xác thực và phân quyền), Figaro (bảo mật biến môi trường), CarrierWave (liên kết lưu trữ đám mây Amazon S3), Action Mailer (gửi thông báo và mật khẩu tự động).
  • Thiết lập kịch bản kiểm thử tự động với RSpec và hoàn tất đóng gói, triển khai hệ thống hoạt động ổn định trên nền tảng điện toán đám mây Heroku.

Đóng góp của tác giả tự nêu:

  • Khắc phục hạn chế của hệ thống website môn học Moodle tại trường (vốn chỉ dừng lại ở việc đăng tải tài liệu dạng tập tin) bằng cách tích hợp trực tiếp các bài giảng video có độ dài tối ưu (dưới 20 phút), gắn liền với lộ trình học tập trực quan và hệ thống câu hỏi kiểm tra đánh giá tự động.
  • Giải quyết bài toán quản lý tập trung và bảo mật dữ liệu học viên mà các nền tảng thương mại như Udemy không đáp ứng được đối với các cơ sở đào tạo đại học độc lập.
  • Cung cấp tài liệu hoàn chỉnh về phương pháp luận và quy trình từng bước xây dựng một ứng dụng web hướng đối tượng phức tạp bằng framework Ruby on Rails, từ khâu mô hình hóa UML, thiết kế CSDL đến cấu hình triển khai thực tế.

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

Các hạn chế được chỉ ra trong khóa luận:

  • Giao diện và trải nghiệm người dùng của hệ thống mới chỉ được tối ưu hóa cho trình duyệt web trên máy tính cá nhân (desktop), chưa hỗ trợ tối ưu trên các thiết bị di động và chưa có ứng dụng di động độc lập (native mobile application).
  • Hình thức kiểm tra, đánh giá kiến thức mới chỉ hỗ trợ định dạng câu hỏi trắc nghiệm khách quan (chọn một đáp án hoặc nhiều đáp án đúng), chưa tích hợp hình thức nộp bài tập tự luận có chấm điểm thủ công hoặc cơ chế giám sát thi chống gian lận.
  • Các hoạt động tương tác giữa giảng viên và sinh viên mới dừng lại ở kênh thông báo bất đồng bộ và khu vực bình luận văn bản dưới bài học, chưa phát triển phân hệ lớp học ảo trực tiếp (live classroom/video conferencing).

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

  • Nâng cấp phiên bản framework từ Ruby on Rails 5.2 lên Rails 6 để tận dụng các cải tiến mới về hiệu năng và công cụ song song.
  • Phát triển ứng dụng trên nền tảng di động (iOS và Android) hoặc thiết kế giao diện theo hướng Progressive Web App (PWA) để học viên học tập thuận tiện hơn.
  • Mở rộng các dạng bài tập đánh giá: bổ sung công cụ nộp bài tập tự luận, hỗ trợ tải lên các tệp mã nguồn hoặc tài liệu, và xây dựng cơ chế chấm bài chéo giữa các học viên.
  • Ứng dụng WebRTC hoặc tích hợp các dịch vụ hội nghị trực tuyến bên thứ ba để xây dựng phòng học trực tuyến thời gian thực ngay trên nền tảng.

Giá trị tham khảo

Khóa luận là tài liệu tham khảo hữu ích cho:

  • Sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm đang thực hiện đồ án tốt nghiệp, bài tập lớn hoặc các dự án xây dựng ứng dụng web theo mô hình kiến trúc MVC.
  • Lập trình viên mới tiếp cận ngôn ngữ Ruby và framework Ruby on Rails: Tài liệu cung cấp góc nhìn hệ thống về các nguyên lý DRY, Convention over Configuration, cách cấu hình Gemfile, quản lý môi trường bằng Figaro, và kỹ thuật định tuyến lồng nhau (nested resources).
  • Người phát triển các hệ thống quản lý học tập (LMS): Chương 1 và Phụ lục A, B cung cấp tài liệu chi tiết về đặc tả ca sử dụng, luồng sự kiện và thiết kế lược đồ cơ sở dữ liệu quan hệ cho các nghiệp vụ đào tạo trực tuyến, ngân hàng câu hỏi và chấm thi trắc nghiệm.

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

1. Hệ thống đào tạo trực tuyến trong khóa luận phân quyền người dùng như thế nào?

Hệ thống sử dụng gem devise kết hợp khai báo enum trong model User để phân chia 3 vai trò người dùng cụ thể:

  • admin (vai trò 3): Quản trị viên, có toàn quyền quản lý tài khoản người dùng, tạo tài khoản mới cho giảng viên/học viên và giám sát toàn bộ khóa học.
  • manager (vai trò 2): Giáo viên, có quyền tạo và quản lý khóa học, xây dựng chủ đề học tập, tạo ngân hàng câu hỏi, đề kiểm tra, đăng thông báo và theo dõi lộ trình của học viên.
  • user (vai trò 1): Học viên (sinh viên), có quyền tìm kiếm, đăng ký khóa học, học bài qua văn bản/video, làm bài kiểm tra trắc nghiệm, nhận thông báo và thảo luận dưới bài học.

2. Tác giả đã phân tích và so sánh hệ thống với các nền tảng nào có sẵn?

Tác giả đã tiến hành khảo sát và so sánh trực tiếp với 2 hệ thống:

  • Website môn học Trường Đại học Công nghệ: Xây dựng trên mã nguồn mở Moodle, chia khóa học theo học kỳ 15 tuần. Ưu điểm là cung cấp kênh trao đổi bài tập và tài liệu dạng tệp tin, nhưng hạn chế là chưa quan tâm và khai thác tính năng bài giảng video.
  • Hệ thống Udemy: Nền tảng thương mại quy mô lớn (hơn 12 triệu học viên, 40 nghìn khóa học), rất mạnh về video bài giảng đa ngôn ngữ và giao diện trực quan, nhưng có hạn chế là nội dung kiểm duyệt ngặt nghèo và dữ liệu người học thuộc sở hữu của Udemy, không thuộc quyền quản lý trực tiếp của các cơ sở đào tạo đại học.

3. Quy trình cấp tài khoản người dùng mới bởi Quản trị viên được xử lý ra sao trong mã nguồn?

Khi Quản trị viên tạo người dùng mới từ phân hệ admin/users:

  1. Tiếp nhận thông tin từ biểu mẫu đăng ký (user_params).
  2. Tự động sinh mật khẩu ngẫu nhiên gồm 6 ký tự bằng cú pháp password_random = SecureRandom.hex(3).
  3. Ghi dữ liệu vào bảng users thông qua phương thức save của ActiveRecord.
  4. Gửi thư điện tử chứa mật khẩu vừa sinh đến địa chỉ email của người dùng được tạo.

4. Cơ chế lưu trữ bài giảng video và tài liệu đa phương tiện được thiết kế như thế nào?

Để đảm bảo hiệu năng và không gây quá tải cho máy chủ web chạy ứng dụng Rails, toàn bộ hình ảnh đại diện, tệp tin bài giảng và video (độ dài khuyến nghị dưới 20 phút) không lưu trực tiếp trên ổ đĩa máy chủ ứng dụng mà được quản lý thông qua gem carrierwave và lưu trữ trực tiếp trên dịch vụ lưu trữ đám mây Amazon S3.

5. Hệ thống tổ chức lộ trình học tập trong một khóa học theo cấu trúc phân cấp nào?

Cấu trúc nội dung khóa học được tổ chức lồng nhau theo thứ tự: Khóa học (Course) $\rightarrow$ Chủ đề (Subject) $\rightarrow$ Bài học/Nhiệm vụ (Task) và Đề kiểm tra (Exam). Trong Rails, cấu trúc này được thiết lập bằng cơ chế nested resources với định dạng đường dẫn có tiền tố /courses/:course_id/subjects/:subject_id/tasks. Mỗi chủ đề bắt đầu bằng nội dung giới thiệu, tiếp theo là các bài giảng văn bản/video và kết thúc bằng bài kiểm tra trắc nghiệm để đánh giá mức độ tiếp thu kiến thức.

Kết luận

Khóa luận tốt nghiệp của tác giả Trần Tuấn Anh đã nghiên cứu toàn diện ngôn ngữ Ruby cùng framework Ruby on Rails, ứng dụng thành công vào việc xây dựng hệ thống đào tạo trực tuyến phục vụ mô hình học tập kết hợp cho các trường đại học và cao đẳng. Công trình hoàn thành trọn vẹn quy trình kỹ thuật phần mềm hướng đối tượng từ khâu khảo sát thực tế, phân tích đặc tả yêu cầu, thiết kế kiến trúc UML, thiết kế cơ sở dữ liệu quan hệ 13 bảng cho đến lập trình backend, frontend, kiểm thử tự động bằng RSpec và triển khai trên máy chủ đám mây Heroku. Mặc dù vẫn còn những hạn chế nhất định về việc tối ưu trên thiết bị di động và thiếu vắng phân hệ lớp học trực tiếp thời gian thực, khóa luận đã đạt được toàn bộ mục tiêu đề ra và đóng vai trò là một tài liệu kỹ thuật có giá trị tham khảo rõ ràng cho sinh viên cũng như các nhà phát triển ứng dụng web trên nền tảng Rails.