Bối cảnh và vấn đề nghiên cứu
Khóa luận tốt nghiệp kỹ sư Công nghệ thông tin với đề tài "Xây dựng App mạng xã hội Thắc mắc học tập ASKUTE trên di động" do hai sinh viên Đỗ Duy Hào và Trần Bửu Quyến thực hiện dưới sự hướng dẫn của TS. Lê Vĩnh Thịnh tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (Khoa Công nghệ Thông tin, Bộ môn Công nghệ Phần mềm), hoàn thành vào tháng 7 năm 2024.
Lý do chọn đề tài xuất phát từ quan sát thực tiễn trong môi trường đại học: sinh viên, đặc biệt là sinh viên mới nhập học (năm nhất), thường gặp trở ngại trong việc nắm bắt thông tin liên quan đến các quy định đào tạo, thủ tục hành chính, lịch trình học tập và đời sống sinh viên. Hiện nay, các kênh truyền thông phụ trợ như mạng xã hội bên ngoài (Facebook), thư điện tử (email) và bảng thông báo truyền thống bộc lộ nhược điểm là thông tin phân tán trên nhiều nguồn, thiếu tính đồng nhất, tiềm ẩn nguy cơ sai lệch hoặc không được cập nhật kịp thời. Tình trạng này khiến người học mất nhiều thời gian tra cứu, dễ bỏ lỡ thông báo quan trọng hoặc hiểu sai hướng dẫn hành chính, tạo nên tâm lý lo lắng và bối rối trong quá trình học tập. Trước thực trạng đó, nhóm tác giả đề xuất xây dựng ứng dụng ASKUTE nhằm thiết lập một hệ thống hỏi đáp chuyên biệt, đóng vai trò là kênh thông tin chính thức, tập trung, giải quyết nhu cầu tương tác học thuật và thủ tục hành chính cho cộng đồng nhà trường.
Mục tiêu nghiên cứu của đề tài được xác định cụ thể như sau:
- Xây dựng một nền tảng trực tuyến tập trung trên thiết bị di động, hỗ trợ sinh viên tra cứu và trao đổi thông tin liên quan đến lịch học, lịch thi, thông báo từ giảng viên và thủ tục hành chính (đăng ký môn học, xin cấp giấy xác nhận sinh viên, hoạt động ngoại khóa).
- Tăng cường mức độ tương tác hai chiều giữa người học với giảng viên và các phòng ban thông qua các tính năng đăng câu hỏi, trả lời, bình luận và thảo luận học tập.
- Đảm bảo an toàn thông tin và tính toàn vẹn dữ liệu người dùng bằng việc ứng dụng cơ chế xác thực và phân quyền qua mã định danh bảo mật Json Web Token (JWT).
- Thiết kế và phát triển giao diện người dùng trực quan, thân thiện trên nền tảng di động thông qua Framework Flutter, hướng tới khả năng hỗ trợ đa nền tảng.
Đối tượng và phạm vi nghiên cứu của đồ án:
- Đối tượng nghiên cứu: Nhu cầu tiếp nhận và xử lý thông tin của sinh viên trong môi trường đại học; công nghệ phát triển hệ thống bao gồm Spring Boot, ngôn ngữ Java, hệ quản trị cơ sở dữ liệu (MySQL / SQL Server), Framework Flutter với ngôn ngữ Dart; cơ chế kiểm soát bảo mật và phân quyền truy cập thông qua giao thức Json Web Token (JWT).
- Phạm vi nghiên cứu: Ứng dụng tập trung vào các chức năng cốt lõi của một mạng xã hội hỏi đáp học tập nội bộ trường học, bao gồm quản lý tài khoản, tương tác đăng bài và thảo luận, quản lý lớp học học phần, theo dõi đơn vị khoa, hộp thư trao đổi cá nhân và cơ chế phản hồi tự động. Phạm vi không gian được định hình phục vụ người dùng trong khuôn viên trường đại học; thời gian thực hiện trong Học kỳ 2, năm học 2023–2024.
Cơ sở lý thuyết và phương pháp
Đồ án được triển khai dựa trên các công nghệ phần mềm tiêu chuẩn và phương pháp luận kỹ thuật phần mềm hướng đối tượng:
- Khung công nghệ Frontend (Di động): Nghiên cứu sử dụng Framework Flutter do Google phát triển. Flutter hoạt động dựa trên ngôn ngữ lập trình Dart, tích hợp bộ công cụ phát triển phần mềm (SDK) giúp biên dịch trực tiếp sang mã máy gốc cho hai hệ điều hành Android và iOS. Cấu trúc giao diện của Flutter vận hành theo cơ chế widget phân lớp (UI Library based on widgets), hỗ trợ các thành phần giao diện theo chuẩn Material Design và thư viện Cupertino. Tính năng "Hot reload" của Flutter được khai thác để rút ngắn chu kỳ thử nghiệm giao diện và sửa lỗi.
- Khung công nghệ Backend (Máy chủ dịch vụ): Hệ thống xây dựng trên nền tảng Spring Boot – một module chuyên biệt của Spring Framework cung cấp các tính năng phát triển ứng dụng nhanh (Rapid Application Development - RAD). Spring Boot loại bỏ nhu cầu cấu hình tệp tin XML phức tạp, tận dụng các bộ phụ thuộc khởi tạo (dependency starters) và máy chủ web nhúng để tạo ra các dịch vụ RESTful APIs độc lập chạy trực tiếp dưới dạng tệp thực thi Java.
- Cơ sở dữ liệu và lưu trữ: Dữ liệu hệ thống được thiết kế và quản trị trên hệ quản trị cơ sở dữ liệu quan hệ (văn bản đề cập MySQL trong phương án kỹ thuật và SQL Server trong tổng quan công nghệ), bảo đảm tính toàn vẹn thông qua các quan hệ ràng buộc khóa chính và khóa ngoại.
- Cơ chế an toàn và bảo mật: Ứng dụng giải pháp xác thực Json Web Token (JWT) để kiểm soát các luồng dữ liệu vào và ra tại các cổng API. Quy trình đăng ký và phục hồi mật khẩu tích hợp cơ chế gửi mã xác thực dùng một lần OTP (One-Time Password) qua hộp thư điện tử nhằm xác minh danh tính người dùng.
- Phương pháp nghiên cứu: Tác giả áp dụng phương pháp khảo sát hiện trạng thực tế kết hợp quy trình phân tích và thiết kế hệ thống theo chuẩn mô hình hóa Unified Modeling Language (UML). Các công cụ mô hình hóa gồm lược đồ ca sử dụng (Use Case Diagram), lược đồ tuần tự (Sequence Diagram), lược đồ hoạt động (Activity Diagram), và lược đồ thực thể kết hợp (Entity-Relationship Diagram - ERD). Quá trình hoàn thiện phần mềm tuân thủ quy trình kiểm thử chức năng (Functional Testing) dựa trên các kịch bản kiểm thử định sẵn.
Thiết kế và triển khai
Hệ thống được thiết kế theo kiến trúc Client - Server phân tách rõ rệt giữa tầng giao diện người dùng di động và tầng logic nghiệp vụ máy chủ.
Tầng giao diện người dùng trên thiết bị di động (Client) giao tiếp với hệ thống máy chủ (Server) thông qua các giao thức HTTP/HTTPS gọi tới hệ thống Spring Boot APIs. Mỗi yêu cầu từ người dùng sau khi xác thực đều được đính kèm chuỗi mã thông báo JWT trên tiêu đề (header) để máy chủ phân quyền thực thi chức năng tương ứng với vai trò của từng tài khoản.
Hệ thống xác định 4 tác nhân tham gia vào luồng vận hành:
- Khách (Guest): Người dùng chưa xác thực, chỉ có quyền truy cập màn hình đăng ký tài khoản hoặc gửi yêu cầu khôi phục mật khẩu.
- Sinh viên (Student): Người dùng có quyền tra cứu thông tin, đăng câu hỏi, gửi câu trả lời, lưu bài viết, bày tỏ cảm xúc (thích/hủy thích), tham gia lớp học phần, theo dõi hoạt động của Khoa, tìm kiếm người dùng và gửi tin nhắn riêng.
- Giảng viên (Lecturer): Tiếp nhận các quyền tương tự sinh viên, đồng thời có thêm quyền hạn nghiệp vụ bao gồm: tạo lớp học, thêm sinh viên vào lớp học bằng mã số sinh viên, đánh dấu câu trả lời chính xác để kết thúc thảo luận của một câu hỏi, và chuyển tiếp các câu hỏi không đúng chuyên môn sang bộ phận phụ trách.
- Quản lý Khoa / Trưởng Khoa (Department Manager / Dean): Quản trị viên cấp cao của đơn vị khoa trên hệ thống, có thẩm quyền đăng thông báo ghim trên bảng tin khoa, quản lý danh mục lĩnh vực chuyên môn, thêm hoặc xóa giảng viên thuộc khoa, kiểm duyệt nội dung câu hỏi bị báo cáo vi phạm tiêu chuẩn cộng đồng, áp lệnh cấm đăng câu hỏi đối với người dùng vi phạm, và thực hiện phân bổ câu hỏi chưa có lời giải cho các giảng viên chuyên trách.
| Tác nhân |
Các quyền hạn chức năng chính trong hệ thống |
| Khách (Guest) |
Đăng ký tài khoản, xác nhận OTP qua email, kích hoạt quy trình quên mật khẩu |
| Sinh viên |
Đăng nhập/đăng xuất, đăng câu hỏi, trả lời, thích/lưu bài viết, theo dõi Khoa, tham gia lớp học, nhắn tin, báo cáo vi phạm |
| Giảng viên |
Đầy đủ quyền tương tác học thuật, tạo lớp học, mời sinh viên, đánh dấu câu trả lời đúng, chuyển tiếp câu hỏi sai chuyên môn |
| Quản lý Khoa |
Đăng thông báo ghim, thêm/xóa lĩnh vực, quản lý giảng viên khoa, duyệt câu hỏi bị báo cáo, cấm đăng, phân phối câu hỏi |
Cơ sở dữ liệu của ASKUTE được chuẩn hóa để quản lý cấu trúc mạng xã hội học thuật phức tạp. Các bảng dữ liệu chính được định nghĩa trong tài liệu gồm:
user_level: Lưu trữ định danh phân quyền và cấp độ tài khoản người dùng trong hệ thống.
sector_members: Quản lý danh sách thành viên trực thuộc các lĩnh vực chuyên môn của Khoa.
class_members: Quản lý danh sách sinh viên tham gia vào từng lớp học cụ thể.
Group_members: Lưu trữ thông tin phân nhóm và thành viên trong các hội nhóm học tập.
User_follow: Lưu vết quan hệ theo dõi giữa sinh viên và các Khoa đào tạo.
Picture_of_post: Quản lý danh sách tệp tin hình ảnh đính kèm theo từng bài đăng câu hỏi thảo luận.
saved_post và save_item: Lưu trữ dữ liệu bài viết thảo luận được sinh viên đánh dấu lưu lại để tra cứu sau.
message_box và message_members: Quản lý cấu trúc hộp thoại và các thành viên tham gia trong luồng trò chuyện tin nhắn riêng.
Hệ thống giao diện được tổ chức trên Flutter với chuỗi màn hình liên kết chặt chẽ: từ luồng xác thực (Màn hình Đăng ký, Xác nhận OTP, Đăng nhập), màn hình điều hướng trung tâm (Trang chủ, Thông báo, Menu hệ thống), các màn hình chức năng học phần (Danh sách lớp học, Tạo lớp học, Trang chủ lớp học, Danh sách thành viên lớp), giao diện quản trị khoa (Danh sách khoa, Quản lý khoa), đến các màn hình tương tác nội dung (Đăng câu hỏi, Chi tiết bài viết, Hộp thoại tin nhắn) và giao diện Chat Bot hỗ trợ trả lời tự động.
Nội dung chính theo từng chương
Phần mở đầu
Trình bày cơ sở thực tiễn và tính cấp thiết của đề tài trong việc giải quyết tình trạng phân tán thông tin học đường. Chương này làm rõ đối tượng nghiên cứu là sinh viên đại học cùng các giải pháp công nghệ hiện đại (Spring Boot, Flutter, MySQL, JWT); xác định 4 mục tiêu cốt lõi; vạch rõ phạm vi nghiên cứu tập trung vào các chức năng hỏi đáp và hỗ trợ thủ tục hành chính; khẳng định ý nghĩa khoa học trong việc làm chủ kiến trúc phần mềm di động kết hợp máy chủ dịch vụ và ý nghĩa thực tiễn trong nâng cao chất lượng hỗ trợ sinh viên.
Chương 1. Flutter và Spring Boot APIs
Chương này dành cho việc nghiên cứu tổng quan lý thuyết về hai nền tảng công nghệ trung tâm của dự án:
- Công nghệ Flutter: Giới thiệu định nghĩa framework di động của Google; phân tích cấu tạo gồm bộ công cụ phát triển phần mềm (SDK) và thư viện giao diện người dùng dựa trên widget; làm rõ các tính năng nổi bật như khả năng tương thích mã Dart, tính năng nạp lại nhanh "hot reload", cơ chế tự nhận thức nền tảng; chỉ ra các ưu điểm về tốc độ phát triển và tính đồng nhất hiển thị, đồng thời phân tích khách quan các nhược điểm như kích thước ứng dụng lớn, độ hoàn thiện của Dart so với các ngôn ngữ bản địa, và việc giao diện sao chép Material/Cupertino chưa đồng nhất tuyệt đối với các thành phần gốc của hệ điều hành.
- Công nghệ Spring Boot APIs: Trình bày nguyên lý thiết kế ứng dụng Spring Boot hướng tới phát triển ứng dụng nhanh (RAD); phân tích các ưu điểm về cấu hình tối giản không dùng XML, việc nhúng sẵn máy chủ (embedded web server) giúp thực thi độc lập qua dòng lệnh
java -jar, và khả năng giảm tải công sức viết mã thông qua dependency starter; đồng thời chỉ rõ hạn chế về việc phát sinh nhiều gói phụ thuộc không dùng đến làm tăng dung lượng triển khai và tính không phù hợp đối với các hệ thống có quy mô quá lớn.
Chương 2. Khảo sát hiện trạng và mô hình hóa yêu cầu
Nội dung chương tập trung vào việc mô tả hiện trạng tiếp cận thông tin của sinh viên qua các kênh phân tán (email, Facebook, bảng tin) và định hình nhu cầu tập trung hóa. Nhóm tác giả xác định cụ thể 8 nhóm yêu cầu chức năng (Đăng nhập/đăng ký, Quản lý thông tin cá nhân, Thông báo và tin tức, Hỏi đáp và trao đổi thông tin, Tạo nhóm và tham gia nhóm, Tìm kiếm và kết nối, Bình luận và trả lời câu hỏi, Quản lý trang cá nhân và trang chủ) cùng 4 yêu cầu phi chức năng (tốc độ tìm kiếm, bảo mật thông tin, tốc độ xử lý và khả năng mở rộng).
Phần mô hình hóa yêu cầu triển khai chi tiết 33 ca sử dụng (Use case) phân bổ cho các nhóm tác nhân:
- Nhóm xác thực và quản lý tài khoản: Đăng ký, Đăng nhập, Quên mật khẩu, Đăng xuất, Thay đổi thông tin cá nhân, Đổi mật khẩu.
- Nhóm tương tác hỏi đáp: Đăng câu hỏi thảo luận, Xóa câu hỏi thảo luận, Trả lời câu hỏi, Xóa câu trả lời, Lưu câu hỏi, Hủy lưu, Thích, Hủy thích, Báo cáo câu hỏi thảo luận, Báo cáo tài khoản người dùng, Tìm kiếm, Đánh dấu câu trả lời đúng, Trả lời câu hỏi tự động.
- Nhóm giao tiếp và cộng đồng: Gửi tin nhắn, Tham gia lớp học, Theo dõi Khoa, Hủy theo dõi Khoa.
- Nhóm quản trị học phần và khoa: Đăng thông báo, Thêm lĩnh vực, Xóa lĩnh vực, Thêm giảng viên vào khoa, Xóa giảng viên, Duyệt câu hỏi, Cấm đăng câu hỏi, Phân câu hỏi cho giảng viên, Tạo lớp học, Thêm sinh viên vào lớp học, Chuyển câu hỏi đi. Mỗi use case đều được xây dựng bảng đặc tả chi tiết gồm tiền điều kiện, hậu điều kiện, luồng sự kiện cơ bản và luồng thay thế khi có lỗi nhập liệu hoặc lỗi xác thực.
Chương 3. Thiết kế phần mềm
Chương này hiện thực hóa các yêu cầu đã phân tích thành tài liệu kỹ thuật chi tiết:
- Xây dựng hệ thống các lược đồ tuần tự (Sequence Diagram) và lược đồ hoạt động (Activity Diagram) cho toàn bộ 33 chức năng nhằm mô tả chính xác tương tác giữa giao diện người dùng, bộ điều khiển, dịch vụ nghiệp vụ và cơ sở dữ liệu.
- Thiết kế lược đồ thực thể kết hợp (ERD) và chi tiết các bảng quan hệ dữ liệu (
user_level, sector_members, class_members, Group_members, User_follow, Picture_of_post, saved_post, save_item, message_box, message_members).
- Xây dựng sơ đồ luồng màn hình riêng biệt cho từng vai trò người dùng (Sinh viên, Giảng viên, Quản lý Khoa) trên nền tảng di động.
- Thiết kế chi tiết các giao diện ứng dụng từ khâu xác thực OTP, duyệt danh sách thông báo, tương tác bài đăng, giao diện trao đổi nhóm học phần, quản trị khoa, tới hộp thoại tích hợp Chat Bot.
Chương 4. Cài đặt và kiểm thử
Chương này trình bày quá trình cài đặt ứng dụng di động trên Flutter, hiện thực hóa các endpoint dịch vụ bằng Spring Boot, thiết lập bảng phạm vi kiểm thử cho các ca sử dụng, kiểm tra tính đúng đắn của các luồng xử lý và ghi nhận bảng kết quả kiểm thử chức năng thực tế của ứng dụng.
Phần kết luận
Đánh giá tổng quan các mục tiêu đã hoàn thành của ứng dụng ASKUTE, chỉ ra những mặt tồn tại cần khắc phục và đề xuất phương hướng phát triển, nâng cấp hệ thống trong tương lai.
Kết quả và đóng góp
Về mặt sản phẩm phần mềm, đồ án đã triển khai hoàn chỉnh ứng dụng mạng xã hội hỏi đáp học tập ASKUTE trên thiết bị di động với các kết quả cụ thể:
- Hiện thực hóa thành công chuỗi 33 ca sử dụng nghiệp vụ bao quát các nhu cầu từ cá nhân đến cộng đồng học thuật trong trường đại học.
- Xây dựng quy trình xử lý thông tin học tập chuyên biệt: cho phép sinh viên đăng thắc mắc kèm hình ảnh minh chứng; giảng viên có công cụ xác thực chuyên môn bằng cách "Đánh dấu câu trả lời đúng" để chốt nội dung học thuật hoặc "Chuyển câu hỏi đi" khi vấn đề nằm ngoài phạm vi phụ trách.
- Thiết lập quy trình quản lý thông tin cấp khoa chặt chẽ: Quản lý Khoa có khả năng ghim thông báo có thời hạn, phân phối câu hỏi tồn đọng tới từng giảng viên theo lĩnh vực, duyệt các bài đăng bị phản ánh vi phạm tiêu chuẩn cộng đồng và cấm quyền đăng của tài khoản vi phạm.
- Tích hợp tính năng Chat Bot trả lời tự động hỗ trợ giải đáp nhanh các câu hỏi thường gặp cho người học.
- Ứng dụng thành công cơ chế bảo mật kết hợp giữa mã OTP gửi qua email trong khâu cấp phát/phục hồi tài khoản và chữ ký số JSON Web Token (JWT) trong việc kiểm soát phiên làm việc và bảo vệ dữ liệu người dùng.
Về mặt học thuật và đóng góp chuyên môn:
- Đồ án được Hội đồng chấm thi thuộc Bộ môn Công nghệ Phần mềm, Khoa Công nghệ Thông tin đánh giá đạt loại Giỏi (theo nhận xét của giảng viên hướng dẫn TS. Lê Vĩnh Thịnh).
- Tác giả tự nêu đóng góp thực tiễn của đề tài là xây dựng thành công một mô hình giải pháp kỹ thuật tập trung hóa dòng luân chuyển thông tin trong môi trường đại học. Ứng dụng loại bỏ tình trạng nhiễu loạn và thiếu kiểm chứng của các kênh mạng xã hội tự phát, cung cấp nguồn tin chính thống từ các phòng ban, đồng thời tạo ra một kênh hỗ trợ trực tuyến kịp thời, nâng cao chất lượng trải nghiệm học đường của sinh viên.
Hạn chế và hướng nghiên cứu tiếp
Mặc dù đã hoàn thành các tính năng đề ra, báo cáo khóa luận và nhận xét của cán bộ hướng dẫn đã chỉ rõ một số hạn chế:
- Về công tác khảo sát: Cán bộ hướng dẫn (TS. Lê Vĩnh Thịnh) đánh giá phần "Khảo sát hiện trạng cần chi tiết hơn" nhằm phản ánh toàn diện hơn nữa các khía cạnh nhu cầu và hành vi người dùng trong thực tế trước khi xây dựng phần mềm.
- Về mặt công nghệ và hiệu năng:
- Khung phát triển Flutter tồn tại nhược điểm dung lượng tệp tin cài đặt lớn, chiếm nhiều bộ nhớ; ngôn ngữ Dart còn mới và một số thư viện chuyên sâu chưa đạt độ tương thích hoàn hảo như các công cụ bản địa; giao diện hiển thị được giả lập qua Material và Cupertino nên chưa đạt mức đồng nhất 100% với các thành phần nguyên bản của hệ điều hành.
- Phía máy chủ Spring Boot phát sinh kích thước tệp triển khai lớn do tồn tại nhiều gói phụ thuộc mặc định không được dùng tới, đồng thời việc mở rộng kiến trúc khi quy mô người dùng tăng đột biến ở cấp độ rất lớn sẽ đòi hỏi các giải pháp tái cấu trúc phức tạp.
- Hướng phát triển tiếp: Đề tài đề xuất hướng mở rộng khảo sát hiện trạng với tập mẫu người dùng sâu rộng hơn; tiếp tục tối ưu hóa hiệu năng, tinh giảm dung lượng ứng dụng và cải tiến mã nguồn để nâng cao trải nghiệm người dùng; nghiên cứu mở rộng khả năng liên kết dữ liệu trực tiếp với các hệ thống quản lý đào tạo hiện hữu của nhà trường.
Giá trị tham khảo
Tài liệu khóa luận tốt nghiệp này mang lại giá trị tham khảo thiết thực cho các nhóm đối tượng:
- Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Là tài liệu mẫu hữu ích trong việc thực hiện đồ án tốt nghiệp, đặc biệt là các đề tài xây dựng ứng dụng di động đa nền tảng kết hợp kiến trúc dịch vụ RESTful APIs. Tài liệu cung cấp ví dụ thực tế về cách tích hợp giữa Flutter (Dart) ở phía Client và Spring Boot (Java) ở phía Backend.
- Người học cần tài liệu tham khảo về mô hình hóa hệ thống (UML): Khóa luận là nguồn tư liệu phong phú với hệ thống 33 bảng đặc tả ca sử dụng chi tiết (bao gồm đầy đủ tiền điều kiện, hậu điều kiện, luồng sự kiện cơ bản và luồng thay thế), hệ thống lược đồ tuần tự (Sequence Diagram), lược đồ hoạt động (Activity Diagram) và thiết kế cơ sở dữ liệu quan hệ hoàn chỉnh.
- Nhà phát triển hệ thống quản lý giáo dục nội bộ: Đồ án cung cấp các ý tưởng thiết kế luồng nghiệp vụ hữu ích về việc phân loại câu hỏi theo lĩnh vực đào tạo, cơ chế phân công giảng viên chuyên trách, kiểm duyệt nội dung vi phạm tiêu chuẩn cộng đồng và quy trình đánh dấu câu trả lời chuẩn xác.
Câu hỏi thường gặp
1. Ứng dụng ASKUTE phục vụ những nhóm người dùng nào và phân quyền giữa các nhóm ra sao?
Hệ thống ASKUTE phục vụ 4 nhóm người dùng chính:
- Khách (Guest): Người chưa đăng nhập, chỉ được sử dụng chức năng đăng ký tài khoản (có xác thực OTP qua email) và quên mật khẩu.
- Sinh viên: Có quyền tra cứu thông tin, đăng câu hỏi thảo luận, trả lời, thích, lưu bài viết, theo dõi các Khoa, tham gia lớp học và nhắn tin trao đổi.
- Giảng viên: Có toàn bộ quyền tương tác của sinh viên, cộng thêm quyền tạo lớp học phần, mời sinh viên vào lớp bằng MSSV, đánh dấu câu trả lời đúng và chuyển tiếp câu hỏi nếu không đúng chuyên môn.
- Quản lý Khoa (Trưởng Khoa): Quản trị các vấn đề cấp khoa bao gồm đăng thông báo ghim, thêm/xóa lĩnh vực đào tạo, thêm/xóa giảng viên, duyệt các bài đăng bị báo cáo vi phạm, cấm đăng bài và phân bổ câu hỏi chưa trả lời cho giảng viên.
2. Cơ chế xử lý đối với một bài đăng câu hỏi vi phạm tiêu chuẩn cộng đồng hoặc bị báo cáo diễn ra như thế nào?
Khi người dùng đăng câu hỏi có từ ngữ vi phạm, hệ thống sẽ đưa ra cảnh báo về quy tắc cộng đồng để người dùng điều chỉnh. Trong quá trình vận hành, sinh viên và giảng viên có quyền gửi báo cáo đối với các câu hỏi hoặc tài khoản nghi vấn vi phạm. Các câu hỏi này sẽ được chuyển vào mục "Duyệt câu hỏi" của Quản lý Khoa. Tại đây, Trưởng Khoa có toàn quyền xem xét để bấm nút "Duyệt" cho phép hiển thị nếu nội dung hợp lệ, hoặc chọn "Cấm" nhằm ngăn chặn bài viết hiển thị và xử lý vi phạm tài khoản.
3. Giảng viên xử lý như thế nào khi nhận được câu hỏi không thuộc chuyên môn của mình?
Trong luồng nghiệp vụ của hệ thống, khi một câu hỏi được giao đến giảng viên nhưng vấn đề thảo luận không thuộc chuyên môn phụ trách, giảng viên có thể sử dụng chức năng "Chuyển câu hỏi đi" (Usecase 33) trực tiếp tại trang chi tiết bài viết. Câu hỏi sau đó sẽ được chuyển trở về trạng thái chưa phân công của Khoa để Quản lý Khoa thực hiện chỉ định lại lĩnh vực và phân công cho giảng viên phù hợp khác thông qua chức năng "Phân câu hỏi cho Giảng viên" (Usecase 30).
4. Ứng dụng triển khai cơ chế bảo mật và xác thực người dùng bằng những công nghệ nào?
Hệ thống kết hợp hai giải pháp an ninh:
- Xác thực qua mã OTP gửi về thư điện tử: Áp dụng bắt buộc trong luồng ca sử dụng Đăng ký tài khoản và luồng Quên mật khẩu để bảo đảm danh tính chủ sở hữu email.
- Xác thực và phân quyền bằng Json Web Token (JWT): Áp dụng cho các phiên làm việc sau khi đăng nhập thành công. Mọi luồng dữ liệu truy xuất và gọi dịch vụ Spring Boot APIs đều được kiểm soát và giải mã token để xác định quyền hạn của từng tác nhân, ngăn chặn truy cập trái phép.
Kết luận
Đồ án "Xây dựng App mạng xã hội Thắc mắc học tập ASKUTE trên di động" của sinh viên Đỗ Duy Hào và Trần Bửu Quyến đã xây dựng thành công một giải pháp công nghệ đáp ứng nhu cầu trao đổi thông tin và giải đáp học thuật trong môi trường đại học. Hệ thống kết hợp hiệu quả giữa giao diện di động đa nền tảng Flutter và nền tảng máy chủ dịch vụ Spring Boot, tích hợp cơ chế xác thực an toàn bằng JWT và OTP qua email. Với hệ thống 33 chức năng được phân tích và thiết kế chi tiết theo chuẩn UML, đồ án là một tài liệu kỹ thuật có giá trị tham khảo rõ ràng cho sinh viên và các nhà phát triển phần mềm trong lĩnh vực ứng dụng hỗ trợ giáo dục.