Bối cảnh và vấn đề nghiên cứu
Trong đời sống xã hội, thông tin đóng vai trò then chốt trong việc kết nối cộng đồng và mở rộng hiểu biết. Trước sự phổ biến của Internet (khoảng 25 năm trước), việc truyền tải thông tin chủ yếu phụ thuộc vào các phương tiện truyền thông truyền thống như loa phát thanh, sách, ảnh và báo giấy, vốn tốn kém chi phí và có độ trễ nhất định. Sự phát triển mạnh mẽ của Internet cho phép người dùng chia sẻ dữ liệu nhanh chóng; tuy nhiên, lượng dữ liệu khổng lồ nảy sinh vấn đề khó khăn trong việc chọn lọc thông tin cần thiết và thông báo tập trung cho các nhóm đối tượng có chung mục đích, sở thích.
Tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, nhu cầu trao đổi thông tin mang tính liên tục và thiết yếu. Phương thức thông báo truyền thống của nhà trường chủ yếu thông qua website của các khoa, thư điện tử (Gmail) hoặc cổng thông tin trực tuyến (online.hcmute.edu.vn). Hạn chế của phương thức này là phụ thuộc vào việc người dùng phải chủ động truy cập định kỳ, dẫn đến tình trạng sinh viên và giảng viên bỏ lỡ các thông báo quan trọng do không kiểm tra website thường xuyên. Nhằm giải quyết bất cập này, đề tài "Xây dựng ứng dụng mạng xã hội UTeSocial trên Android" được thực hiện bởi hai sinh viên Nguyễn Quang Vinh và Nguyễn Văn Trường, dưới sự hướng dẫn của ThS. Nguyễn Hữu Trung thuộc Bộ môn Công nghệ phần mềm, Khoa Công nghệ Thông tin.
Văn bản xác định 03 mục tiêu cụ thể:
- Xây dựng ứng dụng trên thiết bị di động cho phép người dùng đăng bài viết và theo dõi bài viết của những người dùng khác.
- Xây dựng hệ thống website dành cho quản trị viên nhằm hỗ trợ quản lý người dùng và các danh mục dữ liệu vận hành.
- Nghiên cứu và áp dụng các công nghệ mới, ngôn ngữ lập trình hiện đại vào quá trình phát triển ứng dụng di động và hệ thống máy chủ.
Phạm vi và đối tượng nghiên cứu của đồ án được xác định rõ:
- Không gian nghiên cứu: Môi trường nội bộ Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.
- Đối tượng người dùng hệ thống: Được phân tách thành 04 nhóm cụ thể gồm:
- Sinh viên đang theo học tại trường.
- Giảng viên đang tham gia công tác giảng dạy tại trường.
- Cựu sinh viên đã hoàn thành chương trình đào tạo và tốt nghiệp.
- Thí sinh có nguyện vọng đăng ký xét tuyển vào các ngành đào tạo của trường.
- Thời gian thực hiện: Đồ án được triển khai từ ngày 21/08/2023 đến ngày 25/12/2023, trong đó kế hoạch phân tích, lập trình, kiểm thử và viết báo cáo được tổ chức chi tiết qua 12 tuần làm việc từ ngày 02/10/2023 đến ngày 24/12/2023.
Cơ sở lý thuyết và phương pháp
Đề tài sử dụng mô hình kiến trúc phần mềm Clean Architecture làm nền tảng tổ chức mã nguồn trên thiết bị di động, chia ứng dụng thành ba tầng độc lập nhằm nâng cao tính mở rộng, bảo trì và kiểm thử:
- Tầng Trình diễn (Presentation Layer): Chịu trách nhiệm hiển thị giao diện người dùng (UI) và xử lý sự kiện tương tác, tách biệt hoàn toàn khỏi logic nghiệp vụ.
- Tầng Nghiệp vụ (Domain Layer): Chứa các quy tắc nghiệp vụ (business logic) độc lập, không phụ thuộc vào bất kỳ thư viện hay framework ngoại vi nào, cho phép kiểm thử đơn vị thuận lợi.
- Tầng Dữ liệu (Data Layer): Quản lý việc truy xuất dữ liệu từ các nguồn bên ngoài (cơ sở dữ liệu, mạng API) mà không ràng buộc chặt chẽ với công nghệ phần cứng hay nền tảng cụ thể.
Về phương pháp nghiên cứu và kỹ thuật thực hiện, nhóm tác giả đã kết hợp:
- Phương pháp khảo sát hiện trạng và đối sánh phần mềm: Khảo sát ứng dụng nhắn tin và mạng xã hội phổ biến Zalo để chỉ ra các ưu điểm và hạn chế khi áp dụng vào môi trường trường đại học.
- Phương pháp phân tích và thiết kế hướng đối tượng: Sử dụng biểu đồ ca sử dụng (Use Case Diagram) để mô hình hóa hành vi của các tác tử (App User, Web Admin) và biểu đồ tuần tự (Sequence Diagram) để mô tả luồng thông điệp xử lý giữa các thành phần.
- Phương pháp thiết kế cơ sở dữ liệu phi quan hệ (NoSQL Document-oriented): Xác định cấu trúc dữ liệu linh hoạt trên MongoDB.
- Phương pháp kiểm thử chức năng (Functional Testing): Thiết kế kịch bản kiểm thử theo từng ca sử dụng, kiểm tra luồng cơ bản (Basic Flow) và luồng rẽ nhánh (Alternative Flow) trên cả giao diện di động lẫn website quản trị.
Nguồn dữ liệu của hệ thống được quản trị thông qua cơ sở dữ liệu MongoDB và kho lưu trữ tệp đám mây Firebase Storage. Các công nghệ nền tảng được trích xuất từ văn bản gồm:
| Phân hệ / Thành phần |
Công nghệ / Thư viện sử dụng |
Vai trò kỹ thuật theo văn bản |
| Ứng dụng di động (Client) |
Android Framework & Kotlin |
Xây dựng ứng dụng di động gốc, tận dụng tính tương thích máy ảo JVM và tính an toàn của Kotlin |
|
Retrofit |
Xử lý các yêu cầu mạng HTTP/RESTful API, chuyển đổi dữ liệu phản hồi JSON sang đối tượng Kotlin |
|
Hilt |
Quản lý Dependency Injection (DI) dựa trên Dagger 2, hỗ trợ scoped injection theo vòng đời Android |
| Hệ thống máy chủ (Backend) |
Node.js (V8 Engine) |
Xây dựng API máy chủ xử lý bất đồng bộ (asynchronous non-blocking I/O) |
|
Express |
Framework định tuyến và xử lý các yêu cầu HTTP endpoint |
|
JSON Web Token (jsonwebtoken) |
Xác thực danh tính người dùng và cấp quyền truy cập phiên làm việc an toàn |
|
Mongoose |
Thư viện ODM (Object Data Modeling) hỗ trợ tương tác và định nghĩa Schema cho cơ sở dữ liệu |
| Cơ sở dữ liệu & Lưu trữ |
MongoDB |
Hệ quản trị cơ sở dữ liệu NoSQL lưu trữ tài liệu phân tán dạng document |
|
Firebase Storage |
Lưu trữ và bảo mật các tệp phương tiện truyền thông (hình ảnh đại diện, ảnh bài viết) |
| Giao diện quản trị (Web Admin) |
Vue.js & Vuetify |
Xây dựng giao diện trang web quản trị theo phong cách Material Design, đáp ứng giao diện responsive |
Thiết kế và triển khai
Hệ thống UTeSocial được tổ chức theo mô hình tích hợp Client-Server. Phía máy khách di động kết nối với máy chủ API viết bằng Node.js/Express qua thư viện Retrofit; các tệp đa phương tiện được đưa lên Firebase Storage; dữ liệu nghiệp vụ lưu trữ tại MongoDB; trang quản trị quản lý cấu hình danh mục qua nền tảng Vue.js.
+-----------------------------------------------------------------------------------+
| KIẾN TRÚC TỔNG THỂ HỆ THỐNG |
| |
| [ Ứng dụng Di động Android ] [ Giao diện Quản trị Web Admin ] |
| - Ngôn ngữ: Kotlin - Framework: Vue.js & Vuetify |
| - Kiến trúc: Clean Architecture - Phong cách: Material Design |
| - Thư viện: Retrofit, Hilt |
| \ / |
| \ / |
| v v |
| +------------------------------------------------+ |
| | Backend Server (Node.js/Express) | |
| | Xác thực: JSON Web Token (JWT) | |
| | Điều phối dữ liệu qua Mongoose ODM | |
| +------------------------------------------------+ |
| / \ |
| / \ |
| v v |
| [ Cơ sở dữ liệu MongoDB ] [ Firebase Storage ] |
| - 15 Bộ sưu tập (Collections)- Lưu trữ hình ảnh & Media |
+-----------------------------------------------------------------------------------+
Cơ sở dữ liệu của hệ thống được tổ chức thành 15 bộ sưu tập (collections) riêng biệt, phản ánh cấu trúc quản trị người dùng đa vai trò và các tương tác mạng xã hội:
Admin: Lưu trữ thông tin tài khoản của quản trị viên hệ thống.
AdminGroup: Quản lý các nhóm và phân quyền của quản trị viên.
Comment: Lưu trữ nội dung bình luận của người dùng trên bài viết.
EnrollmenrtYear: Quản lý thông tin niên khóa đào tạo của sinh viên.
Faculty: Quản lý danh mục các khoa đào tạo trong trường.
FriendShip: Quản lý quan hệ kết bạn và trạng thái kết nối giữa các tài khoản.
KeyToken: Quản lý token xác thực phục vụ kiểm tra phiên đăng nhập và bảo mật.
Like: Lưu trữ tương tác thích bài viết của người dùng.
Major: Quản lý danh mục các ngành học thuộc từng khoa.
Post: Lưu trữ nội dung bài viết, trạng thái hiển thị và thông tin người đăng.
ResourceStorage: Quản lý thông tin định danh và đường dẫn các tệp tài nguyên.
User: Lưu trữ thông tin cốt lõi của tài khoản người dùng chung.
CollegeStudent: Lưu thông tin chi tiết dành riêng cho vai trò sinh viên (khoa, ngành, niên khóa).
Lecturer: Lưu trữ thông tin chuyên biệt dành cho đối tượng giảng viên.
Candidate: Lưu trữ thông tin ngành học quan tâm dành cho đối tượng thí sinh xét tuyển.
Về quy trình cài đặt và triển khai hệ thống:
- Ứng dụng di động: Được đóng gói thành tệp định dạng APK, người dùng tải về bộ nhớ máy (thư mục Download), cấp quyền cài đặt từ nguồn không xác định trên hệ điều hành Android và khởi chạy; hoặc cài đặt trực tiếp qua mã nguồn dự án bằng môi trường Android Studio thông qua lệnh chạy trên thanh công cụ tác vụ.
- Website quản trị: Mã nguồn được triển khai trên môi trường Node.js. Quản trị viên sử dụng giao diện dòng lệnh (Terminal), cài đặt các gói phụ thuộc qua lệnh
npm install, khởi động dịch vụ bằng lệnh npm run dev để hệ thống sinh ra URL nội bộ truy cập trên trình duyệt web.
Nội dung chính theo từng chương
Chương 1: Cơ sở lý thuyết
Chương 1 hệ thống hóa toàn bộ các nền tảng công nghệ và lý thuyết được vận dụng trong đồ án:
- Phân tích vai trò của Android Framework từ khi ra đời năm 2008 đến nay trong việc xây dựng ứng dụng di động cho doanh nghiệp, giáo dục và giải trí.
- Khẳng định ưu thế của Kotlin so với Java nhờ tính an toàn mã nguồn, sự tương thích hoàn toàn trên nền máy ảo JVM và sự công nhận chính thức từ Google.
- Trình bày chi tiết cấu trúc 3 tầng của Clean Architecture (Presentation, Domain, Data) và các lợi ích mang lại: dễ bảo trì, linh hoạt khi thay đổi công nghệ, thuận lợi cho kiểm thử đơn vị độc lập.
- Làm rõ nguyên lý hoạt động của các thư viện bổ trợ: Retrofit hỗ trợ định nghĩa API mạng qua interface với Converter Factory; Hilt hỗ trợ quản lý Dependency Injection và Scoped Injection.
- Trình bày kiến trúc máy chủ backend xây dựng trên nền Node.js không đồng bộ, bộ khung Express, cơ chế chứng thực bảo mật bằng chuỗi mã hóa JSON Web Token, thư viện ánh xạ Mongoose, hệ quản trị cơ sở dữ liệu MongoDB và nền tảng đám mây Firebase Storage.
- Giới thiệu Vue.js kết hợp Vuetify nhằm xây dựng trang quản trị responsive theo chuẩn Material Design một cách nhanh chóng.
Chương 2: Khảo sát hiện trạng & Xác định yêu cầu
Chương 2 tập trung phân tích thực trạng truyền thông tại trường và xác lập các yêu cầu phần mềm:
- Chỉ ra điểm nghẽn của các kênh thông báo hiện tại (website khoa, Gmail, trang online) khi người dùng không chủ động tra cứu thường xuyên.
- Tiến hành khảo sát đối chứng ứng dụng Zalo trên 07 màn hình giao diện (Đăng nhập/Đăng ký, Cuộc hội thoại, Bạn bè, Tìm kiếm, Danh sách bài viết, Chi tiết bài viết, Thông tin cá nhân). Báo cáo tổng hợp ưu điểm và hạn chế như sau:
| Đối tượng khảo sát |
Ưu điểm ghi nhận |
Hạn chế ghi nhận trong văn bản |
| Ứng dụng Zalo |
- Tìm kiếm và kết bạn linh hoạt - Nhắn tin trao đổi giữa bạn bè hoặc người lạ - Đăng tải và tương tác với bài viết - Giao diện đơn giản, dễ thao tác - Có thông báo khi bạn bè đăng bài mới |
- Chỉ hiển thị và tương tác bài viết trong phạm vi bạn bè - Là mạng xã hội công cộng đại trà, không phân nhóm chuyên biệt cho cộng đồng học thuật đại học |
- Xác định danh sách yêu cầu nghiệp vụ và phân hệ:
- Phân hệ Người dùng di động: Đăng ký tài khoản (hỗ trợ nhập thông tin theo 4 vai trò), đăng nhập, đăng xuất, xem danh sách bài viết, xem chi tiết bài viết, tương tác thích/bỏ thích bài viết, bình luận bài viết, tạo bài viết mới kèm emoji/media, xóa bài viết của bản thân, chỉnh sửa trạng thái hiển thị của bài viết, tìm kiếm người dùng theo từ khóa, gửi yêu cầu kết bạn, phản hồi yêu cầu kết bạn (đồng ý hoặc từ chối), xem và chỉnh sửa thông tin cá nhân (đổi username, đổi ảnh đại diện, đổi mật khẩu).
- Phân hệ Quản trị viên: Đăng nhập, đăng xuất, đổi mật khẩu quản trị, quản lý người dùng (thêm người dùng mới kèm tính năng tạo mật khẩu ngẫu nhiên, xóa, chỉnh sửa thông tin người dùng), quản lý khoa (thêm, sửa, xóa), quản lý ngành đào tạo (thêm, sửa, xóa), quản lý niên khóa (thêm, sửa, xóa), quản lý tài khoản quản trị viên và nhóm quản trị viên.
- Xác định yêu cầu phi chức năng: Đảm bảo tính bảo mật và phân quyền hệ thống chặt chẽ; toàn bộ mật khẩu và dữ liệu nhạy cảm của người dùng bắt buộc phải được mã hóa trước khi lưu trữ vào cơ sở dữ liệu MongoDB.
Chương 3: Phân tích thiết kế
Chương 3 tiến hành chi tiết hóa các ca sử dụng thông qua các biểu đồ mô hình hóa:
- Xây dựng 02 biểu đồ ca sử dụng tổng quát: Usecase Diagram – App User và Usecase Diagram – Web Admin.
- Xây dựng hệ thống bảng đặc tả chi tiết và biểu đồ tuần tự (Sequence Diagram) cho 14 ca sử dụng phía người dùng (Đăng nhập, Đăng xuất, Đăng ký, Đổi Username, Đổi ảnh đại diện, Đổi mật khẩu, Hiện chi tiết bài viết, Thích bài viết, Bình luận bài viết, Tạo bài viết, Xóa bài viết, Chỉnh sửa trạng thái bài viết, Tìm kiếm người dùng, Gửi kết bạn, Phản hồi kết bạn) và các ca sử dụng quản trị (Đăng nhập, Đăng xuất, Đổi mật khẩu, Thêm/Sửa/Xóa người dùng, niên khóa, khoa, ngành, quản trị viên, nhóm quản trị viên).
- Mỗi ca sử dụng được quy định rõ: Tên ca sử dụng, Tác tử (Actor), Mô tả ngắn gọn, Tiền điều kiện (Pre-conditions), Hậu điều kiện (Post-conditions), Luồng sự kiện cơ bản (Basic flow), Luồng sự kiện rẽ nhánh (Alternative flow) và Điểm mở rộng (Extension point). Ví dụ: ca sử dụng Đăng ký xử lý rẽ nhánh khi email đã tồn tại; ca sử dụng Đổi mật khẩu xử lý kiểm tra độ mạnh, tính trùng khớp và tính xác thực của mật khẩu cũ.
- Thiết kế lược đồ cơ sở dữ liệu MongoDB chi tiết với 15 bảng mô tả cấu trúc trường dữ liệu cho từng bộ sưu tập (từ
Admin đến Candidate).
Chương 4: Thiết kế phần mềm
Chương 4 mô tả chi tiết giao diện, quy trình điều hướng và kết quả kiểm thử:
- Thiết kế giao diện ứng dụng di động UTeSocial gồm: Màn hình khởi động (Splash Screen), Đăng nhập, chuỗi màn hình Đăng ký đa bước (nhập thông tin cơ bản, chọn vai trò, nhập thông tin chuyên biệt cho sinh viên theo khoa/ngành/niên khóa, giảng viên, thí sinh theo ngành, thiết lập mật khẩu), Màn hình chính, Màn hình danh sách bài viết, Màn hình chi tiết bài viết, Màn hình tạo bài viết mới, Màn hình danh sách bạn bè, Màn hình cài đặt, Màn hình cập nhật ảnh đại diện, Màn hình đổi mật khẩu, Màn hình thông tin tài khoản và chi tiết cá nhân.
- Thiết kế giao diện trang quản trị web gồm: Trang đăng nhập, Trang chủ (Home), Trang đổi mật khẩu, hệ thống các trang danh sách, trang thêm mới và trang chỉnh sửa dành cho niên khóa, khoa, ngành, người dùng, quản trị viên và nhóm quản trị viên.
- Tiến hành thực thi các ca kiểm thử chức năng cho cả hai phân hệ: bảng kiểm thử các chức năng phía người dùng và bảng kiểm thử các chức năng phía quản trị viên, ghi nhận khả năng đáp ứng đúng kịch bản của phần mềm khi chạy thực tế.
Kết quả và đóng góp
Đồ án đã hoàn thành các nội dung công việc đề ra theo đúng kế hoạch 12 tuần:
- Xây dựng hoàn chỉnh ứng dụng di động UTeSocial chạy trên hệ điều hành Android bằng ngôn ngữ Kotlin, tuân thủ mô hình Clean Architecture, tích hợp thành công Retrofit và Hilt.
- Phát triển hệ thống backend xử lý API bằng Node.js và Express, cơ sở dữ liệu MongoDB (15 collections), hệ thống lưu trữ ảnh Firebase Storage, cùng cơ chế mã hóa mật khẩu và phân quyền bảo mật qua chuỗi JWT.
- Xây dựng cổng thông tin quản trị Website Management bằng Vue.js và thư viện Vuetify, đảm bảo quản lý toàn diện các thực thể học thuật (khoa, ngành, niên khóa) và các cấp quản trị viên.
| Phân hệ chức năng |
Các kết quả chức năng đã hoàn thành theo văn bản |
| Phân hệ Người dùng di động (UTeSocial App) |
- Đăng ký tài khoản linh hoạt theo 04 vai trò chuyên biệt - Đăng nhập, đăng xuất, bảo mật và đổi mật khẩu, đổi username, cập nhật ảnh đại diện - Bảng tin xem danh sách bài viết, xem chi tiết bài viết - Tương tác: Thích/bỏ thích, gửi bình luận văn bản - Soạn thảo và đăng bài viết mới kèm emoji và hình ảnh - Quản lý bài viết cá nhân: Xóa bài viết, chỉnh sửa trạng thái hiển thị bài viết - Tìm kiếm tài khoản người dùng khác theo từ khóa - Quản lý bạn bè: Gửi yêu cầu kết bạn, nhận thông báo, phản hồi đồng ý hoặc từ chối kết bạn |
| Phân hệ Quản trị (Web Management) |
- Đăng nhập, đăng xuất, đổi mật khẩu tài khoản quản trị - Quản lý người dùng: Xem danh sách, thêm tài khoản mới (hỗ trợ tự sinh mật khẩu ngẫu nhiên), sửa thông tin, xóa tài khoản - Quản trị thực thể trường học: Thêm, sửa, xóa Niên khóa, Khoa, Ngành đào tạo - Quản trị phân quyền: Quản lý danh sách quản trị viên cấp dưới và các Nhóm quản trị viên |
Về mặt giải pháp, đồ án đã đề xuất phương thức trao đổi thông tin khép kín, tập trung và trực quan hóa cho sinh viên, giảng viên và thí sinh của Trường Đại học Sư phạm Kỹ thuật TP.HCM, khắc phục tình trạng phân mảnh thông tin trên website và email truyền thống. So với các nền tảng mạng xã hội mở như Zalo (vốn chỉ tương tác trong phạm vi bạn bè cá nhân và không gắn liền với cấu trúc tổ chức học thuật), UTeSocial đóng góp giải pháp định danh tài khoản người dùng gắn liền trực tiếp với dữ liệu khoa, ngành đào tạo và niên khóa của nhà trường.
Hạn chế và hướng nghiên cứu tiếp
Mặc dù đã hoàn thành các mục tiêu cốt lõi, đồ án ghi nhận một số hạn chế do tác giả tự xác định:
- Thời gian nghiên cứu và thực hiện đề tài tương đối ngắn (trong vòng khoảng 4 tháng, từ cuối tháng 8 đến tháng 12/2023).
- Vốn kiến thức và kỹ năng chuyên môn của nhóm sinh viên vẫn còn những giới hạn nhất định, dẫn đến các thiếu sót kỹ thuật trong quá trình xây dựng hệ thống là khó tránh khỏi.
- Hệ thống mới tập trung vào các luồng nghiệp vụ cơ bản của mạng xã hội (đăng bài, kết bạn, bình luận, quản lý danh mục); chưa tích hợp các tiện ích mở rộng phức tạp như nhắn tin tức thời trong ứng dụng hay các thuật toán gợi ý bảng tin nâng cao.
Hướng phát triển tiếp theo được tác giả nêu ra bao gồm:
- Tiếp tục khắc phục các lỗi phát sinh trong quá trình vận hành thử nghiệm.
- Nâng cấp, cải tiến các giao diện và tối ưu hóa hiệu năng xử lý của các điểm cuối API trên máy chủ.
- Nghiên cứu bổ sung các tính năng tương tác chuyên sâu, mở rộng quy mô phục vụ toàn diện cho hoạt động trao đổi học thuật của nhà trường.
Giá trị tham khảo
Đồ án là tài liệu kỹ thuật có giá trị thực tiễn đối với:
- Sinh viên chuyên ngành Công nghệ thông tin và Công nghệ phần mềm: Đặc biệt là những sinh viên đang làm khóa luận hoặc đồ án tốt nghiệp liên quan đến lập trình ứng dụng di động Android bằng ngôn ngữ Kotlin.
- Lập trình viên xây dựng hệ thống Client-Server: Tài liệu cung cấp tài liệu mẫu mực về việc hiện thực hóa mô hình Clean Architecture (Presentation, Domain, Data Layer) trên Android kết hợp cùng các thư viện tiêu chuẩn như Retrofit và Hilt.
- Người thiết kế hệ thống mạng xã hội học thuật: Cung cấp hồ sơ phân tích thiết kế chi tiết gồm biểu đồ ca sử dụng, lược đồ cơ sở dữ liệu MongoDB 15 collections được phân tầng rõ nét giữa thông tin người dùng chung và dữ liệu riêng biệt cho từng vai trò sinh viên, giảng viên, thí sinh.
Câu hỏi thường gặp
1. Đề tài UTeSocial hướng tới những nhóm đối tượng người dùng cụ thể nào trong trường học?
Theo phạm vi đề tài, hệ thống được thiết kế chuyên biệt cho 04 nhóm đối tượng thuộc Trường Đại học Sư phạm Kỹ thuật TP.HCM: sinh viên đang theo học, giảng viên đang tham gia giảng dạy, cựu sinh viên đã tốt nghiệp và thí sinh có nguyện vọng đăng ký vào các ngành học của trường.
2. Kiến trúc Clean Architecture được áp dụng trong ứng dụng di động UTeSocial như thế nào?
Ứng dụng di động phân tách cấu trúc mã nguồn thành 03 tầng độc lập: tầng Presentation chịu trách nhiệm xử lý và hiển thị giao diện người dùng; tầng Domain quản lý toàn bộ các quy tắc nghiệp vụ độc lập mà không phụ thuộc vào thư viện ngoài, giúp tối ưu kiểm thử đơn vị; tầng Data quản lý việc giao tiếp, truy xuất dữ liệu từ API máy chủ hoặc cơ sở dữ liệu bên ngoài.
3. Cơ sở dữ liệu MongoDB của hệ thống quản lý dữ liệu thông qua những bộ sưu tập (collections) nào?
Hệ thống sử dụng 15 bộ sưu tập gồm: Admin, AdminGroup, Comment, EnrollmenrtYear, Faculty, FriendShip, KeyToken, Like, Major, Post, ResourceStorage, User, CollegeStudent, Lecturer và Candidate.
4. Phân hệ quản trị web (Web Admin) được phát triển bằng công nghệ gì và cung cấp những chức năng nào?
Website quản trị được xây dựng trên nền tảng Vue.js kết hợp framework giao diện Vuetify theo phong cách Material Design. Hệ thống cung cấp các chức năng: đăng nhập, đổi mật khẩu, quản lý người dùng (thêm kèm tạo mật khẩu ngẫu nhiên, sửa, xóa), quản lý niên khóa, quản lý khoa, quản lý ngành đào tạo, cùng việc quản trị danh sách và nhóm quản trị viên.
5. Cơ chế xác thực và lưu trữ dữ liệu đa phương tiện trong hệ thống được thực hiện bằng cách nào?
Hệ thống sử dụng thư viện jsonwebtoken trên nền Node.js để cấp phát và kiểm tra token (JWT), lưu trữ token qua collection KeyToken nhằm bảo mật các yêu cầu mạng. Toàn bộ hình ảnh đại diện và hình ảnh đính kèm bài viết được lưu trữ và bảo vệ tập trung thông qua nền tảng đám mây Firebase Storage.
Kết luận
Đồ án tốt nghiệp "Xây dựng ứng dụng mạng xã hội UTeSocial trên Android" của sinh viên Nguyễn Quang Vinh và Nguyễn Văn Trường đã giải quyết thành công bài toán số hóa kênh liên lạc và cập nhật thông tin trong môi trường giáo dục đại học. Bằng việc kết hợp chặt chẽ kiến trúc Clean Architecture, ngôn ngữ Kotlin, thư viện Retrofit, Hilt trên nền tảng Android cùng backend Node.js, cơ sở dữ liệu MongoDB và giao diện quản trị Vue.js/Vuetify, đề tài đã xây dựng được một hệ thống phần mềm hoàn chỉnh, đáp ứng đầy đủ các yêu cầu chức năng nghiệp vụ đề ra. Đây là tài liệu tham khảo giàu tính thực tiễn cho sinh viên kỹ thuật trong việc phân tích thiết kế hệ thống thông tin và lập trình ứng dụng di động hiện đại.