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

Trong bối cảnh công nghệ thông tin phát triển và mạng xã hội trở thành phương tiện kết nối phổ biến, nhu cầu ứng dụng nền tảng trực tuyến vào giáo dục ngày càng gia tăng. Tuy nhiên, việc học sinh tiếp cận các mạng xã hội giải trí thông thường tiềm ẩn rủi ro xao nhãng và thiếu định hướng học tập. Đồng thời, phụ huynh thường gặp trở ngại về thời gian trong việc theo dõi sát sao quá trình học của con em, trong khi giáo viên cần một không gian trực tuyến linh hoạt để tổ chức lớp học, giao bài kiểm tra và duy trì tương tác hai chiều. Nhằm giải quyết các vấn đề trên, đề tài khóa luận tốt nghiệp ngành Công nghệ Thông tin (chuyên ngành Công nghệ Phần mềm) tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh đã thực hiện nghiên cứu và phát triển đề tài: "Xây dựng website mạng xã hội học tập", do sinh viên Trần Văn Kiệt (MSSV: 20110665) và Bùi Đặng Quốc Chí (MSSV: 20110614) thực hiện dưới sự hướng dẫn của ThS. Nguyễn Thủy An.

Căn cứ theo văn bản đề tài, mục tiêu nghiên cứu cụ thể bao gồm:

  1. Giao diện Người Dùng Thân Thiện và Hấp Dẫn: Xây dựng giao diện trực quan, dễ thao tác nhằm tối ưu hóa trải nghiệm người dùng và khuyến khích sự tương tác học tập.
  2. Tính Năng Nâng Cao Kết Nối: Phát triển các tính năng mạng xã hội cốt lõi như đăng bài viết, hình ảnh, bình luận, tương tác cảm xúc, tham gia nhóm và sự kiện học tập.
  3. Bảo Mật và Quyền Riêng Tư Đáng Tin Cậy: Thiết lập cơ chế bảo mật tài khoản và dữ liệu cá nhân thông qua mã hóa và phân quyền.
  4. Hiệu Suất và Mở Rộng: Tối ưu hiệu năng xử lý của hệ thống backend và cơ sở dữ liệu để đáp ứng lưu lượng người dùng gia tăng.
  5. Chức Năng Học Tập Đặc Biệt: Cung cấp các công cụ phục vụ giáo dục chuyên sâu như tổ chức làm bài kiểm tra trực tuyến (trắc nghiệm và tự luận), quản lý lớp học, nhắn tin cá nhân/nhóm và theo dõi kết quả học tập.

Đối tượng nghiên cứu của đề tài là quy trình tương tác xã hội kết hợp quản lý học tập trực tuyến giữa ba nhóm người dùng chính: học sinh, giáo viên và phụ huynh, cùng với vai trò quản trị hệ thống (Admin). Phạm vi nghiên cứu tập trung vào việc khảo sát các hệ sinh thái học tập tương tự, phân tích thiết kế hướng đối tượng, hiện thực hóa mã nguồn ứng dụng web và kiểm thử hệ thống trong khoảng thời gian từ ngày 22/02/2024 đến ngày 08/07/2024.

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

Khóa luận thiết lập nền tảng lý thuyết kỹ thuật dựa trên các công nghệ phát triển ứng dụng web hiện đại:

  • Spring Framework / Spring Boot: Khung phát triển ứng dụng Java phía máy chủ hoạt động dựa trên các nguyên tắc cốt lõi gồm Dependency Injection (DI), Inversion of Control (IoC) và lập trình hướng khía cạnh (Aspect Oriented Programming - AOP). Các module chính được sử dụng gồm: Spring Core Container (Beans, Core, Context, Expression Language), AOP/Aspects hỗ trợ quản lý giao dịch (Transaction Management / Unit of Work), Spring Data Access/Integration (tương tác cơ sở dữ liệu qua JDBC/ORM), và Spring Web (Spring MVC) để xây dựng dịch vụ RESTful API. Hệ thống tích hợp Spring Security cùng JSON Web Token (JWT) cho nhiệm vụ xác thực và phân quyền, kèm SpringDoc OpenAPI (Swagger UI) để lập tài liệu API tự động.
  • ReactJS: Thư viện JavaScript xây dựng giao diện người dùng dựa trên kiến trúc thành phần (Component-based), cơ chế DOM ảo (Virtual DOM) để tối ưu hóa hiệu năng kết xuất dữ liệu, cú pháp mở rộng JSX và các React Hooks (useState, useEffect, useContext). Phía giao diện tích hợp thư viện thành phần Ant Design và thư viện Axios để thực hiện các yêu cầu HTTP đến máy chủ backend.
  • Hệ thống quản trị cơ sở dữ liệu: Kết hợp mô hình dữ liệu lai giữa Microsoft SQL Server (RDBMS sử dụng T-SQL xử lý các quan hệ ràng buộc chặt chẽ) và MongoDB (NoSQL hướng tài liệu JSON, cấu trúc phi cấu trúc linh hoạt để hỗ trợ các đối tượng dữ liệu phức tạp).

Phương pháp nghiên cứu thực tế bao gồm:

  • Phương pháp khảo sát và phân tích so sánh hiện trạng: Nghiên cứu tính năng, giao diện và luồng nghiệp vụ của năm hệ thống giáo dục và tương tác trực tuyến tương tự gồm ViettelStudy (viettelstudy.vn), Twiducate (livelingua.com/twiducate), vnEdu LMS (lms.vn), Edmodo và Microsoft Teams.
  • Phương pháp phân tích chân dung người dùng (Personas): Xây dựng hồ sơ người dùng mẫu đại diện cho học sinh, phụ huynh và giáo viên để xác định chính xác các yêu cầu chức năng và phi chức năng.
  • Phương pháp phân tích và thiết kế phần mềm hướng đối tượng: Xây dựng mô hình ca sử dụng (Use case), sơ đồ lớp (Class diagram), sơ đồ tuần tự (Sequence diagram) và thiết kế lược đồ cơ sở dữ liệu chi tiết.
  • Phương pháp thực nghiệm và kiểm thử phần mềm: Lập kế hoạch kiểm thử chức năng, chuẩn bị môi trường phần cứng, phần mềm và xác minh các luồng thao tác trên hệ thống thực tế.

Thiết kế và triển khai

Hệ thống được thiết kế theo kiến trúc Client - Server tách biệt giữa tầng hiển thị giao diện và tầng cung cấp dịch vụ dữ liệu:

[Trình duyệt Người dùng: ReactJS + Ant Design + Axios]
[Máy chủ Ứng dụng: Spring Boot REST Web Service + Spring Security]
[Microsoft SQL Server (RDBMS)]            [MongoDB (NoSQL Document)]

Dữ liệu của hệ thống được chuẩn hóa và quản lý qua 32 bảng cơ sở dữ liệu chính:

Nhóm chức năng Tên các bảng dữ liệu trong hệ thống
Xác thực và người dùng tokens, provider, credentials, users, relationship
Quản lý giáo dục và địa lý teacherSubject, subjects, provinces, districts, schools
Tương tác mạng xã hội friendRequests, friend, groupMemberInvitations, groupMemberRequests, groupMembers, groups, events
Giao tiếp và thông báo chatRooms, messages, notifications
Khảo thí và kiểm tra exams, questions, answers, submissions, submissionDetails
Nội dung bài viết và phản hồi posts, comments, reactions, files, surveys, options, reports

Kiến trúc kiểm soát phân quyền vận hành dựa trên cơ chế lọc của Spring Security: khi người dùng đăng nhập thành công, hệ thống mã hóa thông tin và cấp mã JWT. Mọi yêu cầu truy cập dữ liệu tiếp theo thông qua Axios đều phải đính kèm mã này trong tiêu đề để kiểm tra vai trò người dùng (học sinh, giáo viên, phụ huynh hoặc admin).

Môi trường triển khai và công cụ kiểm thử được chuẩn hóa:

  • Yêu cầu phần cứng: Máy chủ cấu hình bộ vi xử lý đa nhân, bộ nhớ RAM và dung lượng ổ cứng đáp ứng việc vận hành đồng thời các dịch vụ Spring Boot, SQL Server và MongoDB.
  • Môi trường phần mềm: Cài đặt Java Development Kit (JDK), Node.js runtime, các hệ quản trị CSDL MS SQL Server và MongoDB.
  • Công cụ kiểm thử: Postman (kiểm thử giao diện API), Swagger UI (tra cứu và kích hoạt API), cùng trình duyệt web Chrome/Edge phục vụ kiểm thử giao diện người dùng cuối.

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

Chương 1: Cơ sở lý thuyết

Nội dung chương tập trung giới thiệu và phân tích sâu các công nghệ nền tảng được lựa chọn cho đồ án:

  • Phân tích chi tiết kiến trúc tầng của Spring Framework, bao gồm Spring Core Container với khả năng quản lý vòng đời bean qua cơ chế IoC/DI, module AOP hỗ trợ phân tách các mối quan tâm liên quan (cross-cutting concerns) như quản lý giao dịch dữ liệu (Unit of Work, commit/rollback), tầng Web MVC xử lý yêu cầu mạng và các thư viện tích hợp cơ sở dữ liệu.
  • Làm rõ nguyên lý vận hành của ReactJS: lợi ích của Virtual DOM trong việc giảm thiểu chi phí tái kết xuất giao diện thực tế; phương pháp đóng gói logic và giao diện qua Component; việc ứng dụng cú pháp JSX cùng các React Hooks tiêu chuẩn (useState, useEffect, useContext) để quản lý trạng thái.
  • So sánh vai trò của hệ quản trị cơ sở dữ liệu quan hệ Microsoft SQL Server (với ngôn ngữ T-SQL, đảm bảo tính toàn vẹn dữ liệu) và hệ quản trị cơ sở dữ liệu NoSQL MongoDB (lưu trữ văn bản JSON linh hoạt, đánh chỉ mục tùy biến, tối ưu cho các luồng dữ liệu mở rộng).

Chương 2: Khảo sát thực trạng và xác định yêu cầu

Chương này ghi nhận quá trình đánh giá thực tiễn và xác định bài toán kỹ thuật:

  • Đánh giá hiện trạng tương tác học đường và phân tích chuyên sâu 5 nền tảng: ViettelStudy (mô hình lớp học, video bài giảng, bài kiểm tra), Twiducate (mạng xã hội trường học phân biệt giao diện học sinh/giáo viên, chia sẻ suy nghĩ và tài liệu), vnEdu LMS (quản lý học tập và thi trực tuyến diện rộng), Edmodo (kết nối phụ huynh, giáo viên, học sinh và bài tập), và Microsoft Teams (giao tiếp kênh và thông báo hoạt động).
  • Thiết lập chân dung người dùng (Personas) cụ thể cho ba tác nhân: Học sinh (nhu cầu trao đổi bài, làm kiểm tra, kết nối bạn bè), Phụ huynh (nhu cầu giám sát điểm số, xem bài kiểm tra của con, tương tác với giáo viên), Giáo viên (nhu cầu quản trị lớp, tạo ngân hàng câu hỏi, chấm điểm, thống kê).
  • Tổng hợp bảng danh mục yêu cầu chức năng (gồm 26 nhóm chức năng từ đăng ký, đăng nhập, kết bạn, nhắn tin, quản lý lớp, bài kiểm tra, khảo sát, báo cáo) và các yêu cầu phi chức năng về bảo mật, hiệu năng, tính mở rộng và tính tiện dụng.

Chương 3: Phân tích & thiết kế hệ thống

Nội dung chương trình bày chi tiết bản vẽ kỹ thuật của phần mềm:

  • Xây dựng sơ đồ Use case tổng quan và 23 lược đồ Use case phân rã cho từng nghiệp vụ: quản lý tài khoản, quản lý nhóm, quản lý bạn bè, quản lý tin nhắn, quản lý bài viết, quản lý bình luận, quản lý cảm xúc, quản lý quan hệ phụ huynh - học sinh, quản lý lớp, quản lý thông báo, quản lý bài kiểm tra, quản lý câu hỏi, quản lý đáp án, quản lý bài làm, quản lý người dùng, quản lý địa chỉ, quản lý môn học, quản lý khảo sát và báo cáo. Đi kèm là 26 bảng đặc tả Use case chi tiết từ Bảng 2 đến Bảng 27.
  • Xây dựng mô hình lớp hướng đối tượng (Class diagram) phản ánh các thực thể: người dùng, bạn bè, tin nhắn nhóm, lớp học, lời mời tham gia, bài đăng, bài kiểm tra.
  • Đặc tả cấu trúc chi tiết của 32 bảng cơ sở dữ liệu (từ Bảng 28 đến Bảng 59) với các khóa chính, khóa ngoại, kiểu dữ liệu và mô tả trường.
  • Thiết kế 8 lược đồ tuần tự (Sequence diagram) minh họa luồng thông điệp giữa các tầng đối tượng: chức năng đăng ký, đăng nhập, tạo bài viết, bình luận bài viết, thêm cảm xúc, giáo viên tạo bài kiểm tra, học sinh làm bài kiểm tra, và phụ huynh xem kết quả kiểm tra.

Chương 4: Thiết kế giao diện và xử lý

Chương này mô tả chi tiết thiết kế giao diện đồ họa người dùng (UI/UX) và luồng xử lý tương ứng thông qua các bảng đặc tả từ Bảng 60 đến Bảng 99:

  • Phân hệ người dùng phổ thông: Giao diện trang giới thiệu, đăng nhập, xác thực tài khoản giáo viên, biểu mẫu đăng ký dành cho học sinh (có đính kèm tài khoản phụ huynh liên kết), biểu mẫu đăng ký phụ huynh, quy trình cấp lại và đặt lại mật khẩu mới.
  • Phân hệ không gian học tập và mạng xã hội: Giao diện trang chủ (bảng tin), trang nhóm/lớp học, trang chi tiết bài viết, trang danh mục bài kiểm tra, giao diện tạo mới/chỉnh sửa bài kiểm tra, giao diện học sinh trực tiếp làm bài thi và giao diện xem lại bài nộp/lịch sử làm bài. Thiết kế các khu vực quản lý tài liệu học tập, sự kiện lớp học, biểu mẫu khảo sát ý kiến, chuyên mục cuộc thi (competition), trang bảng xếp hạng, lịch thi, biểu mẫu báo cáo vi phạm, trang cá nhân, tìm kiếm bạn bè và hộp thoại tin nhắn thời gian thực.
  • Phân hệ giao diện quản trị (Admin Dashboard): Bảng điều khiển quản lý người dùng, quản lý nhóm, chi tiết thành viên, quản lý danh sách lớp học, và module cấu hình danh mục địa chỉ (tỉnh thành, quận huyện, trường học).

Chương 5: Cài đặt ứng dụng và kiểm thử

Chương cuối cùng ghi nhận quá trình đưa phần mềm vào thực nghiệm:

  • Đặc tả chi tiết các thông số kỹ thuật phần cứng (Bảng 100) và danh mục phiên bản phần mềm/môi trường phát triển (Bảng 101).
  • Trình bày danh mục các công cụ hỗ trợ kiểm thử chất lượng phần mềm (Bảng 102).
  • Thống kê chi tiết các ca kiểm thử (Bảng 103) bao gồm kiểm thử các chức năng xác thực người dùng, tương tác mạng xã hội (đăng bài, bình luận, tương tác cảm xúc, kết bạn, nhắn tin), quy trình giáo viên tạo bài kiểm tra, học sinh nộp bài, tính toán điểm số tự động, phụ huynh tra cứu bài làm của học sinh, và các thao tác kiểm duyệt của quản trị viên. Toàn bộ các ca kiểm thử cơ bản đều đạt kết quả khớp với yêu cầu thiết kế.

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

Khóa luận đã hoàn thành các mục tiêu kỹ thuật được đề ra trong đề cương:

  • Xây dựng hoàn chỉnh một ứng dụng mạng xã hội học tập tích hợp đa vai trò, cho phép kết nối liên thông giữa giáo viên, học sinh và phụ huynh.
  • Triển khai thành công hệ thống tính năng mạng xã hội: kết bạn, quản lý phòng trò chuyện, nhắn tin, đăng bài viết kèm hình ảnh, bình luận, bày tỏ cảm xúc, tạo cuộc khảo sát ý kiến và tổ chức sự kiện nhóm lớp.
  • Hiện thực hóa thành công phân hệ quản lý học tập chuyên biệt: phân quyền tổ chức lớp học, thư viện tài liệu học tập, ngân hàng câu hỏi, tổ chức kiểm tra với cả hai hình thức trắc nghiệm và tự luận, bảng xếp hạng cuộc thi và giao diện dành riêng cho phụ huynh theo dõi kết quả bài làm của con.
  • Xây dựng hệ thống quản trị nội dung và người dùng phía sau (Admin Dashboard) hỗ trợ xử lý vi phạm, quản lý danh mục môn học, danh mục trường học, quận huyện và tỉnh thành.
  • Hoàn thiện tài liệu hóa API bằng Swagger UI, áp dụng cơ chế xác thực JWT kết hợp mã hóa dữ liệu nhạy cảm và hoàn thành triển khai thử nghiệm hệ thống trên mạng Internet.

So với các nghiên cứu và sản phẩm được khảo sát trong văn bản, đóng góp của đề tài thể hiện ở việc thu hẹp khoảng cách giữa các phần mềm LMS truyền thống (vốn nặng tính quản lý hành chính, thiếu tính tương tác trực tiếp) và các mạng xã hội giải trí (thiếu công cụ kiểm soát học tập và vắng bóng vai trò đồng hành của phụ huynh). Bằng việc tích hợp trực tiếp cơ chế quản lý quan hệ phụ huynh - học sinh (relationship) cùng luồng bài kiểm tra minh bạch, hệ thống tạo ra một môi trường học tập trực tuyến có tính kết nối cao và an toàn.

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

Căn cứ theo nội dung báo cáo và tiến độ thực tế, đề tài còn tồn tại một số hạn chế:

  • Thời gian thực hiện đồ án có giới hạn (khoảng 5 tháng, từ cuối tháng 2 đến đầu tháng 7 năm 2024), do đó khối lượng công việc dàn trải trên nhiều phân hệ dẫn đến một số logic phức tạp (như xử lý chấm điểm bài thi tự luận, quản lý tranh tài trong module cuộc thi) cần thêm thời gian để tối ưu hóa triệt để.
  • Hệ thống chủ yếu tập trung kiểm thử các ca chức năng chính trên môi trường web, chưa thực hiện kiểm thử chịu tải sâu với số lượng lớn người dùng đồng thời trên môi trường Internet thực tế.

Hướng phát triển tiếp theo của nhóm nghiên cứu gồm:

  • Tối ưu hóa thuật toán và hoàn thiện sâu hơn các quy trình chấm điểm, phản hồi bài thi tự luận.
  • Mở rộng và nâng cấp phân hệ cuộc thi (competition), tăng cường tính tương tác học thuật quy mô lớn.
  • Phát triển thêm ứng dụng trên nền tảng thiết bị di động (sử dụng React Native như hướng nghiên cứu đề cập tại cơ sở lý thuyết) nhằm tăng tính tiện lợi cho người dùng.

Giá trị tham khảo

Đồ án là tài liệu kỹ thuật có giá trị tham khảo thiết thực đối với:

  • Sinh viên chuyên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Cung cấp tài liệu mẫu mực về quy trình công nghệ phần mềm hoàn chỉnh, từ khảo sát hiện trạng, phân tích nghiệp vụ, mô hình hóa Use case (gồm 26 bảng đặc tả chi tiết) đến thiết kế lược đồ quan hệ CSDL (32 bảng).
  • Lập trình viên phát triển web full-stack: Tham khảo cách thức tổ chức mã nguồn backend với Spring Boot kết hợp Spring Security, JWT và Swagger UI; cách thức thiết kế giao diện người dùng theo component với ReactJS và Ant Design; cùng giải pháp kiến trúc kết hợp giữa SQL Server và MongoDB.
  • Những người phát triển các nền tảng giáo dục số (EdTech): Cung cấp góc nhìn thực tiễn về việc kết hợp giữa tính năng kết nối mạng xã hội và các chức năng học vụ chuyên biệt (lớp học, khảo thí, liên kết phụ huynh - học sinh).

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

1. Hệ thống mạng xã hội học tập này hướng tới những tác nhân nào và mối quan hệ giữa họ được thiết kế ra sao?

Hệ thống thiết kế cho 4 tác nhân chính: Học sinh, Giáo viên, Phụ huynh và Quản trị viên (Admin). Điểm đặc thù của hệ thống là bảng dữ liệu relationship, cho phép liên kết tài khoản của phụ huynh với học sinh. Nhờ đó, phụ huynh có thể trực tiếp theo dõi danh sách bài làm, xem kết quả và chi tiết bài kiểm tra của con mình ngay trên giao diện riêng.

2. Công nghệ nào được sử dụng cho tầng giao diện và dịch vụ máy chủ của hệ thống?

Tầng giao diện (Frontend) được xây dựng bằng ReactJS kết hợp thư viện thành phần giao diện Ant Design và thư viện Axios để gửi các yêu cầu mạng. Tầng dịch vụ máy chủ (Backend) được xây dựng bằng Java Spring Boot theo kiến trúc RESTful API, sử dụng Spring Security và JWT để xác thực, cùng SpringDoc OpenAPI để tự động sinh tài liệu Swagger UI.

3. Cơ sở dữ liệu của đồ án được tổ chức như thế nào?

Đồ án sử dụng mô hình kết hợp giữa cơ sở dữ liệu quan hệ Microsoft SQL Server và cơ sở dữ liệu NoSQL MongoDB. Tổng thể cơ sở dữ liệu bao gồm 32 cấu trúc bảng/tập dữ liệu (từ Bảng 28 đến Bảng 59) quản lý đầy đủ các thực thể: định danh (users, credentials, tokens), phân cấp giáo dục (schools, subjects, provinces), tương tác xã hội (friend, groups, chatRooms, messages, posts, comments, reactions) và nghiệp vụ khảo thí (exams, questions, answers, submissions, submissionDetails).

4. Hệ thống hỗ trợ những hình thức kiểm tra trực tuyến nào?

Theo nhật ký kế hoạch thực hiện và danh mục bảng đặc tả của đề tài, hệ thống hỗ trợ cả hai hình thức kiểm tra là trắc nghiệm và tự luận. Giáo viên có quyền tạo ngân hàng câu hỏi, thiết lập thời gian làm bài, cấu hình đáp án; học sinh thực hiện nộp bài trên giao diện; hệ thống tự động ghi nhận và cho phép xem lại chi tiết bài làm.

Kết luận

Đồ án tốt nghiệp "Xây dựng website mạng xã hội học tập" của sinh viên Trần Văn Kiệt và Bùi Đặng Quốc Chí đã giải quyết thành công bài toán tích hợp mạng xã hội vào môi trường giáo dục trực tuyến. Hệ thống kết nối hiệu quả ba nhóm đối tượng học sinh, phụ huynh và giáo viên thông qua việc xây dựng đầy đủ các tính năng tương tác cộng đồng gắn liền với công cụ học tập, kiểm tra trực tuyến. Với kiến trúc kỹ thuật hiện đại dựa trên Spring Boot, ReactJS, SQL Server và MongoDB, đồ án đáp ứng toàn diện các tiêu chuẩn của một dự án công nghệ phần mềm hoàn chỉnh từ lý thuyết, phân tích thiết kế đến hiện thực hóa mã nguồn và kiểm thử.