I. Giới thiệu về Đồ án LMS Dạy học Lập trình Web Tương tác
Đồ án LMS (Learning Management System) là một hệ thống quản lý học tập toàn diện, được xây dựng nhằm hỗ trợ dạy và học lập trình web tương tác một cách hiệu quả. Đây là dự án capstone của sinh viên ngành Công nghệ Phần mềm tại Trường Đại học Công nghệ Thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh. Hệ thống này kết hợp các công nghệ web hiện đại để tạo nên một nền tảng học tập tương tác với đầy đủ tính năng cho giảng viên và học viên. Mục tiêu chính của đồ án là giải quyết những vấn đề tồn tại trong giáo dục lập trình web trực tuyến, từ việc quản lý khóa học, tương tác giữa giáo viên và học sinh, đến việc thực hành code thực tế trong một môi trường an toàn và hiệu quả.
1.1. Lý do chọn đề tài và mục tiêu chính
Nhu cầu học lập trình web online ngày càng gia tăng nhưng các nền tảng hiện có chưa đáp ứng đầy đủ. Đồ án này nhằm xây dựng một hệ thống LMS chuyên biệt có tích hợp công cụ biên soạn code, live streaming, và quản lý dự án. Mục tiêu là cung cấp một giải pháp toàn diện cho các khóa học lập trình web tương tác, giúp học viên thực hành code trực tiếp, tương tác với giảng viên qua video call, forum và các công cụ hỗ trợ khác.
1.2. Đối tượng sử dụng và phạm vi ứng dụng
Hệ thống LMS này được thiết kế cho hai nhóm người dùng chính: giảng viên (quản lý khóa học, thống kê doanh thu, tạo bài tập) và học viên (đăng ký khóa học, xem video, thực hành code, tham gia forum). Phạm vi ứng dụng bao gồm quản lý khóa học, video streaming, code editor tích hợp, live stream, task management, whiteboard drawing, và forum thảo luận. Đây là một nền tảng hoàn chỉnh cho các khóa học lập trình web chuyên nghiệp.
II. Các Tính năng Chính của Hệ thống LMS
Hệ thống LMS được phát triển với một bộ tính năng phong phú nhằm tối ưu hóa trải nghiệm dạy và học. Mỗi tính năng được thiết kế dựa trên phân tích yêu cầu chức năng chi tiết, đảm bảo đáp ứng nhu cầu thực tế của cả giảng viên và học viên. Các tính năng này bao gồm quản lý tài khoản, quản lý khóa học, code editor tương tác, live streaming, task management, whiteboard, và forum thảo luận. Mỗi module được tích hợp với nhau một cách liền mạch để tạo ra một nền tảng học tập toàn diện và dễ sử dụng.
2.1. Quản lý Khóa học và Dữ liệu Học viên
Giảng viên có khả năng tạo, chỉnh sửa, và quản lý khóa học một cách dễ dàng thông qua giao diện quản lý. Hệ thống LMS cho phép tổ chức nội dung theo chương, với mỗi chương chứa các bài giảng video, tài liệu, và bài tập. Ngoài ra, giảng viên có thể xem thống kê doanh thu, theo dõi tiến độ học viên, và quản lý danh sách học viên một cách tổng thể. Dữ liệu học viên được lưu trữ an toàn với xác thực email và quản lý mật khẩu bảo mật.
2.2. Code Editor và Công cụ Lập trình Web Tương tác
Code editor tích hợp trong hệ thống cho phép học viên viết, chỉnh sửa, và thực thi code trực tiếp trên nền tảng mà không cần cài đặt công cụ bên ngoài. Tính năng format code, thay đổi theme, thay đổi ngôn ngữ lập trình giúp tối ưu hóa trải nghiệm lập trình. Snippet library cho phép lưu và tái sử dụng đoạn code, còn code sharing giúp cộng tác giữa học viên và giảng viên một cách hiệu quả.
III. Kiến trúc Công nghệ và Thiết kế Hệ thống
Kiến trúc hệ thống LMS được xây dựng theo mô hình 3-layer (Presentation, Business Logic, Data Access) đảm bảo tính mô-đun và dễ bảo trì. Thiết kế sơ đồ Use case được xây dựng chi tiết cho cả giảng viên và học viên, bao gồm các quy trình đăng ký, đăng nhập, quản lý khóa học, thực hành code, và tương tác qua forum. Database được thiết kế với các bảng dữ liệu chi tiết lưu trữ thông tin người dùng, khóa học, chương học, tasks, comments, và code snippets. Hệ thống này sử dụng các công nghệ web hiện đại để đảm bảo hiệu suất và khả năng mở rộng.
3.1. Phân tích Yêu cầu Chức năng và Phi chức năng
Yêu cầu chức năng bao gồm: quản lý tài khoản người dùng, tạo và quản lý khóa học, code editor tương tác, live streaming, task management, whiteboard drawing, forum thảo luận, và video sharing. Yêu cầu phi chức năng tập trung vào hiệu suất (thời gian tải trang < 2 giây), bảo mật (mã hóa mật khẩu, xác thực email), khả năng mở rộng (xử lý 1000+ người dùng đồng thời), và độ tin cậy (uptime > 99.9%).
3.2. Thiết kế Giao diện Người dùng UI UX
Giao diện hệ thống được thiết kế thân thiện với người dùng với các màn hình chính bao gồm: đăng ký/đăng nhập, quản lý profile, danh sách khóa học, chi tiết khóa học, code editor, live streaming, task management, whiteboard, và forum. Mỗi giao diện được tối ưu hóa cho responsive design, hoạt động tốt trên desktop, tablet, và mobile. UI/UX tuân theo các nguyên tắc thiết kế hiện đại để đảm bảo trải nghiệm người dùng tốt nhất.
IV. Các Công cụ Hỗ trợ Dạy Học Tương tác
Hệ thống LMS được trang bị các công cụ hỗ trợ dạy và học toàn diện nhằm tạo ra một môi trường học tập tương tác và hiệu quả. Bao gồm live streaming video, code editor tích hợp, whiteboard drawing, task/project management, forum thảo luận, và screen sharing. Các công cụ này cho phép giảng viên tương tác trực tiếp với học viên, cung cấp phản hồi real-time, và hỗ trợ học viên trong quá trình thực hành lập trình web. Tính năng livestream hỗ trợ share screen và cấu hình OBS cho phép giảng viên demo code một cách chuyên nghiệp.
4.1. Live Streaming Video Conferencing và Screen Sharing
Tính năng livestream cho phép giảng viên phát sóng trực tiếp khóa học với hỗ trợ video conferencing và screen sharing. Danh sách phiên live hiển thị các khóa học sắp diễn ra, học viên có thể tham gia phiên livestream và xem demo code từ giảng viên. Hệ thống hỗ trợ cấu hình OBS cho phép chất lượng video cao và ổn định. Tính năng chặn người dùng xấu bảo vệ môi trường học tập an toàn và tích cực.
4.2. Task Management Whiteboard và Forum Thảo luận
Task management cho phép giảng viên tạo và quản lý các nhiệm vụ, với view bảng Kanban, lịch và danh sách chi tiết. Whiteboard drawing cung cấp công cụ vẽ hình, chèn ảnh, link, minimap, và tính năng xuất ảnh. Forum thảo luận cho phép học viên đặt câu hỏi, thảo luận code, và chia sẻ kinh nghiệm. Các công cụ này tạo ra tương tác hai chiều giữa giảng viên và học viên, giúp tăng cường việc học tập và xây dựng cộng đồng học tập.