I. Giới thiệu về Đồ án Xây dựng App Hỗ trợ Học tập
Đồ án xây dựng app hỗ trợ học tập là một dự án công nghệ thông tin nhằm phát triển một nền tảng toàn diện cho sinh viên hiện đại. Ứng dụng này được thiết kế để giải quyết những thách thức trong quá trình học tập của sinh viên bằng cách tích hợp các tính năng hiện đại như họp trực tuyến, soạn thảo văn bản cộng tác và diễn đàn trao đổi học tập. Dự án được thực hiện bởi các sinh viên từ Trường Đại học Công nghệ Thông tin, Đại học Quốc gia TP. HCM, dưới sự hướng dẫn của các giảng viên chuyên môn. Mục tiêu chính là tạo ra một ứng dụng hỗ trợ sinh viên toàn diện, giúp nâng cao hiệu quả học tập và tạo môi trường học tập tương tác.
1.1. Lý do chọn đề tài
Lý do chọn đề tài này xuất phát từ nhận thức rõ ràng về nhu cầu của sinh viên hiện đại trong việc tìm kiếm các công cụ hỗ trợ học tập hiệu quả. Trong bối cảnh giáo dục số hóa, sinh viên cần một nền tảng tập trung giúp họ quản lý học tập, cộng tác với bạn cùng lớp và tương tác với giảng viên. Ứng dụng này sẽ giảm bớt sự phân tán giữa các công cụ và tạo ra một không gian học tập tích hợp cho tất cả sinh viên.
1.2. Phạm vi và mục tiêu dự án
Phạm vi đồ án bao gồm xây dựng một ứng dụng web đầy đủ chức năng với ba module chính: hệ thống diễn đàn trao đổi, nền tảng soạn thảo tài liệu cộng tác, và công cụ họp trực tuyến. Dự án sử dụng công nghệ hiện đại như React, Node.js, MongoDB và các API chuyên biệt. Mục tiêu là tạo ra một sản phẩm hoàn thiện, có giao diện thân thiện và các tính năng đáp ứng nhu cầu của sinh viên đại học.
II. Công nghệ và Công cụ Sử dụng
Công nghệ sử dụng trong đồ án được lựa chọn kỹ lưỡng để đảm bảo hiệu suất, bảo mật và khả năng mở rộng. Ứng dụng được phát triển trên nền tảng web hiện đại, kết hợp frontend framework mạnh mẽ với backend API linh hoạt. Các công cụ hỗ trợ bao gồm hệ thống xác thực người dùng Clerk, thư viện UI React shadcn dựa trên Tailwind CSS, nền tảng cộng tác GetStream cho các tính năng real-time, và Liveblocks để soạn thảo văn bản thời gian thực. Cơ sở dữ liệu NoSQL MongoDB được chọn để lưu trữ dữ liệu linh hoạt. Những lựa chọn này đảm bảo ứng dụng hỗ trợ học tập có hiệu suất cao và trải nghiệm người dùng tốt.
2.1. Công nghệ Frontend và Backend
Frontend được xây dựng bằng React kết hợp với Tailwind CSS để tạo giao diện đẹp mắt và responsive. Backend sử dụng Node.js và Express để xử lý các yêu cầu API. MongoDB được sử dụng như cơ sở dữ liệu chính để lưu trữ dữ liệu người dùng, bài đăng, tài liệu và thông tin cuộc họp. Kiến trúc này cho phép ứng dụng hỗ trợ sinh viên xử lý nhiều người dùng đồng thời một cách hiệu quả.
2.2. Công cụ hỗ trợ và Tích hợp API
Clerk cung cấp hệ thống xác thực an toàn và quản lý tài khoản người dùng. GetStream tích hợp tính năng cộng tác thời gian thực cho diễn đàn và chat. Liveblocks hỗ trợ soạn thảo tài liệu cộng tác cho phép nhiều người sửa tài liệu cùng lúc. Svix cung cấp dịch vụ webhook để đồng bộ dữ liệu. DeepInfra hỗ trợ các tính năng AI nâng cao. Bộ công cụ này tạo nên một app hỗ trợ học tập toàn diện và hiện đại.
III. Kiến trúc Hệ thống và Thiết kế Dữ liệu
Kiến trúc hệ thống được thiết kế theo mô hình lớp, tách biệt rõ ràng giữa presentation layer, business logic layer và data layer. Mô hình này đảm bảo tính bảo trì cao và dễ mở rộng. Thiết kế dữ liệu sử dụng NoSQL schema linh hoạt để lưu trữ thông tin người dùng, bài đăng trong diễn đàn, tài liệu soạn thảo, và dữ liệu cuộc họp. Các collection trong MongoDB bao gồm users, posts, comments, documents, documents_access, meetings và recordings. Hệ thống sử dụng các usecase để định nghĩa rõ ràng tương tác giữa người dùng và ứng dụng hỗ trợ học tập. Thiết kế này cho phép quản lý hiệu quả các chức năng như đăng nhập, tạo bài đăng, chia sẻ tài liệu và tổ chức họp trực tuyến.
3.1. Mô hình Dữ liệu NoSQL
MongoDB được sử dụng để lưu trữ dữ liệu với schema linh hoạt. Các collection chính bao gồm users cho thông tin người dùng, posts cho bài đăng diễn đàn, comments cho câu trả lời, documents cho tài liệu soạn thảo, meetings cho thông tin cuộc họp, và recordings cho video ghi hình. Mỗi collection có các field phù hợp như timestamps, ownership, permissions và metadata. Thiết kế này cho phép app hỗ trợ sinh viên truy vấn dữ liệu nhanh chóng và xử lý các tính năng phức tạp như tìm kiếm, filter và sorting.
3.2. Usecase và Luồng Xử lý
Hệ thống định nghĩa 26 usecase chính bao gồm quản lý tài khoản, quản lý bài đăng diễn đàn, soạn thảo tài liệu cộng tác và quản lý cuộc họp trực tuyến. Mỗi usecase chi tiết mục tiêu, tiền điều kiện, bước thực hiện và kết quả. Ví dụ, usecase 'Tạo bài đăng' cho phép sinh viên đăng câu hỏi hoặc chia sẻ kiến thức trên ứng dụng hỗ trợ học tập, trong khi 'Soạn thảo cộng tác' cho phép nhóm sinh viên cùng chỉnh sửa tài liệu.
IV. Tính năng Chính của Ứng dụng
Ứng dụng hỗ trợ học tập được xây dựng với ba tính năng chính tích hợp một cách hiệu quả. Diễn đàn trao đổi cho phép sinh viên đặt câu hỏi, chia sẻ kiến thức và bình luận dưới các bài đăng. Hệ thống soạn thảo tài liệu hỗ trợ tạo, chỉnh sửa và chia sẻ tài liệu với quyền truy cập linh hoạt. Nền tảng họp trực tuyến cung cấp khả năng tạo cuộc họp, lên lịch, ghi hình và xem lại. Giao diện người dùng được thiết kế thân thiện sử dụng Tailwind CSS và shadcn components. Toàn bộ hệ thống được tối ưu hóa cho hiệu suất, bảo mật và trải nghiệm người dùng. App hỗ trợ sinh viên này cung cấp một môi trường học tập toàn diện.
4.1. Tính năng Diễn đàn Trao đổi Học tập
Diễn đàn cho phép sinh viên tạo bài đăng câu hỏi, chia sẻ bài học hoặc thảo luận các chủ đề học tập. Người dùng có thể vote, lưu bài đăng yêu thích, và trả lời câu hỏi. Hệ thống hỗ trợ phân loại theo nhãn (tags) giúp tổ chức nội dung. Tính năng bình luận lồng nhau tạo luồng trò chuyện logic. Ứng dụng hỗ trợ học tập này giúp sinh viên tương tác và học hỏi từ nhau.
4.2. Tính năng Soạn thảo và Họp trực tuyến
Soạn thảo tài liệu cộng tác cho phép nhiều sinh viên chỉnh sửa cùng một tài liệu trong thời gian thực bằng Liveblocks. Họp trực tuyến được hỗ trợ bởi GetStream, cho phép tạo cuộc họp, lên lịch, chia sẻ màn hình và ghi hình. Tính năng ghi hình tự động lưu lại buổi học để xem lại sau. App hỗ trợ học tập này kết hợp các công cụ này một cách seamless.