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

Khóa luận tốt nghiệp "Xây dựng hệ thống mạng xã hội" được thực hiện bởi sinh viên Phạm Văn Nguyên (Mã sinh viên: A36555, Lớp: TT32H4) và Nguyễn Thị Tâm Anh (Mã sinh viên: A34915, Lớp: TT32E1) dưới sự hướng dẫn của TS. Trần Đức Minh, thuộc ngành Công nghệ thông tin, Trường Đại học Thăng Long (Hà Nội, năm 2023).

  • Lý do chọn đề tài và bối cảnh thực tiễn: Trong bối cảnh thời đại số hóa ngày càng phát triển, nhu cầu kết nối, tương tác và tiếp nhận thông tin trực tuyến của người dùng không ngừng gia tăng. Đề tài tập trung nghiên cứu và phát triển một nền tảng mạng xã hội mang tên MATA. Mục đích của hệ thống là cung cấp một không gian trực tuyến giúp mọi người kết nối, gặp gỡ, giao tiếp thông qua trò chuyện, chia sẻ bài viết, đăng tải nội dung đa phương tiện và phản ứng với các nội dung đó. Bên cạnh các tính năng tương tác cơ bản, MATA định hướng phát triển các công nghệ hỗ trợ người dùng tiếp nhận thông tin, nâng cao chất lượng trải nghiệm và bảo đảm môi trường mạng an toàn, hạn chế các nội dung độc hại.
  • Mục tiêu và nhiệm vụ nghiên cứu:
    1. Khảo sát yêu cầu bài toán, phân loại yêu cầu chức năng và phi chức năng cho hệ thống mạng xã hội MATA.
    2. Lựa chọn kiến trúc phần mềm và các công nghệ phù hợp để xây dựng ứng dụng web (Client-Server, MVC, hướng nghiệp vụ).
    3. Phân tích và đặc tả chi tiết 29 trường hợp sử dụng (Use Cases) bao gồm các luồng sự kiện chính, kịch bản phát sinh, tiền điều kiện và hậu điều kiện.
    4. Thiết kế cơ sở dữ liệu và xây dựng hệ thống biểu đồ mô hình hóa (biểu đồ lớp thiết kế, biểu đồ tuần tự cho từng chức năng).
    5. Cài đặt hoàn thiện giao diện ứng dụng web (Web App) và bảng điều khiển quản trị (Admin Dashboard), tích hợp module kiểm duyệt hình ảnh tự động.
  • Đối tượng và phạm vi nghiên cứu:
    • Đối tượng nghiên cứu: Quy trình phân tích, thiết kế và cài đặt hệ thống ứng dụng mạng xã hội MATA; các giải pháp xử lý tương tác thời gian thực, quản lý dữ liệu người dùng và kiểm duyệt nội dung hình ảnh.
    • Phạm vi nghiên cứu: Ứng dụng web dành cho 2 nhóm tác nhân (Người dùng và Quản trị viên), thực hiện trong khuôn khổ khóa luận tốt nghiệp ngành Công nghệ thông tin tại Trường Đại học Thăng Long năm 2023.

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

Khóa luận áp dụng quy trình phát triển phần mềm chuẩn mực từ phân tích yêu cầu, thiết kế kiến trúc, thiết kế cơ sở dữ liệu đến cài đặt và kiểm thử giao diện.

Khung lý thuyết và mô hình kiến trúc

  • Mô hình kiến trúc phần mềm: Kiến trúc Client-Server, mô hình MVC (Model-View-Controller) và mô hình cấu trúc hướng nghiệp vụ cho giải pháp Web Application.
  • Giao thức và chuẩn truyền thông: Hypertext Transfer Protocol (HTTP), Transmission Control Protocol (TCP/IP), Simple Mail Transfer Protocol (SMTP - sử dụng trong tính năng gửi email xác nhận tài khoản và quên mật khẩu), RESTful API, URI/URL.
  • Chuẩn trao đổi dữ liệu và xác thực: JavaScript Object Notation (JSON), JSON Web Tokens (JWT) phục vụ xác thực người dùng và phân quyền hệ thống, cú pháp mở rộng JavaScript (JSX), Document Object Model (DOM).

Phương pháp nghiên cứu và kỹ thuật áp dụng

  • Phương pháp phân tích yêu cầu: Phân rã chức năng hệ thống thành 29 Use Cases; xác định ma trận phân quyền giữa 2 tác nhân (Người dùng và Quản trị viên); mô hình hóa kịch bản người dùng qua sơ đồ Use Case và bảng đặc tả luồng sự kiện chính / ngoại lệ.
  • Phương pháp mô hình hóa hướng đối tượng (UML): Thiết kế biểu đồ lớp (Class Diagram) định nghĩa thuộc tính và mối quan hệ giữa các thực thể; xây dựng biểu đồ tuần tự (Sequence Diagram) mô tả luồng tương tác giữa Actor, Interface, Controller, Service và Database cho từng chức năng.
  • Kỹ thuật xử lý dữ liệu và truyền thông thời gian thực: Kết hợp cơ chế Web Socket để phục vụ nhắn tin tức thời và cơ chế Firebase Cloud Messaging (FCM) để đẩy thông báo tương tác, kết bạn, kiểm duyệt.
  • Kỹ thuật thị giác máy tính: Ứng dụng thư viện OpenCV kết hợp ngôn ngữ Python để phát hiện tự động các bài đăng chứa hình ảnh vũ khí (cụ thể là súng), kết nối với hệ thống backend thông qua giao thức gRPC.

Nguồn dữ liệu và môi trường công nghệ

Thành phần Công nghệ / Thư viện sử dụng Vai trò trong hệ thống
Frontend ReactJS, NuxtJS, Redux Xây dựng giao diện tương tác người dùng và bảng điều khiển quản trị, quản lý trạng thái tập trung
Backend NodeJS, ExpressJS, Python Xử lý logic nghiệp vụ, định tuyến API, xử lý tác vụ thị giác máy tính
Cơ sở dữ liệu MongoDB Lưu trữ dữ liệu phi quan hệ (NoSQL) cho tài khoản, bài đăng, tin nhắn, thông báo, tương tác
Truyền thông & Tích hợp Socket, gRPC, FCM, SMTP Giao tiếp thời gian thực, giao tiếp giữa các dịch vụ backend, đẩy thông báo và gửi thư điện tử
Xác thực & Lưu trữ file JWT, Cloudinary Xác thực phiên làm việc an toàn, lưu trữ và phân phối tệp tin hình ảnh/đa phương tiện
Kiểm duyệt tự động OpenCV Thuật toán nhận diện và xử lý hình ảnh vi phạm (vũ khí/súng)

Thiết kế và triển khai hệ thống

Hệ thống mạng xã hội MATA được xây dựng trên nền tảng kiến trúc Client-Server phân tầng, bảo đảm tính độc lập giữa giao diện người dùng và hệ thống xử lý nghiệp vụ trung tâm.

Kiến trúc tổng thể và cấu trúc giải pháp

  1. Tầng Client: Phát triển bằng ReactJS và NuxtJS, ứng dụng Redux trong việc quản lý trạng thái ứng dụng. Client gửi các yêu cầu HTTP/HTTPS đến backend thông qua RESTful API và duy trì kênh kết nối liên tục qua Socket để nhận dữ liệu thời gian thực.
  2. Tầng Server (NodeJS / ExpressJS): Tiếp nhận yêu cầu, thực hiện xác thực và phân quyền bằng JWT, điều phối logic nghiệp vụ, thao tác với hệ quản trị cơ sở dữ liệu MongoDB và kết nối với dịch vụ lưu trữ đám mây Cloudinary.
  3. Module kiểm duyệt ảnh (Python / OpenCV / gRPC): Khi người dùng tải ảnh lên trong quá trình tạo bài đăng, dữ liệu hình ảnh được chuyển đến dịch vụ Python qua giao thức gRPC để quét và phát hiện các mẫu hình ảnh vũ khí (súng). Nếu phát hiện vi phạm, hệ thống tự động hủy/xóa bài đăng và kích hoạt thông báo kiểm duyệt gửi về tài khoản người dùng qua FCM.

Thiết kế cơ sở dữ liệu và các luồng xử lý chính

  • Khóa luận xây dựng biểu đồ lớp thể hiện mối quan hệ giữa các thực thể cốt lõi: Người dùng (User), Bài viết (Post), Bình luận (Comment), Cảm xúc (Reaction), Tin ngày (Story), Cuộc trò chuyện (Conversation), Tin nhắn (Message), Thông báo (Notification) và Báo cáo vi phạm (Report).
  • Thiết kế chuỗi biểu đồ tuần tự chi tiết cho các kịch bản: Đăng nhập/Đăng xuất, Tạo bài đăng, Chỉnh sửa thông tin cá nhân, Tương tác bài viết (Thích, Bình luận, Chia sẻ), Gửi và Xác nhận lời mời kết bạn, Theo dõi/Hủy theo dõi, Nhắn tin thời gian thực, Tự động kiểm duyệt và xóa bài viết vi phạm, Quản trị bài viết, Quản trị người dùng và Quản lý báo cáo vi phạm.

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

CHƯƠNG 1. TỔNG QUAN HỆ THỐNG

Chương 1 trình bày bài toán xây dựng mạng xã hội MATA, mục đích kết nối và chia sẻ thông tin an toàn trong thời đại số hóa. Tác giả tiến hành xác định 2 tác nhân chính tham gia hệ thống:

  • Quản trị viên (ADMIN): Quản trị thông tin ứng dụng, xem số liệu thống kê (người dùng, bài viết, tin ngày), tìm kiếm, quản lý danh sách bài viết (xóa, xem chi tiết, block/active), quản lý tài khoản người dùng (chặn/mở chặn đăng nhập) và xử lý danh sách báo cáo vi phạm.
  • Người dùng (USER): Thực hiện đăng ký, đăng nhập, đăng xuất, cập nhật thông tin cá nhân, nhắn tin trò chuyện, tạo bài viết, tạo tin ngày (24 giờ), tương tác bài viết (bình luận, thả cảm xúc, chia sẻ, lưu trữ, báo cáo), kết bạn, theo dõi/hủy theo dõi và quản lý thông báo.

Hệ thống bao gồm 29 trường hợp sử dụng (Use Cases) được phân loại cụ thể:

Mã Use Case Tên chức năng Mô tả tóm tắt
UC#01 Đăng ký Đăng ký tài khoản mới kèm kiểm tra định dạng và xác thực
UC#02 Đăng nhập Đăng nhập hệ thống, hỗ trợ xác nhận lại khi quên mật khẩu
UC#03 Trò chuyện Gửi và nhận tin nhắn văn bản thời gian thực, lưu trữ vào CSDL
UC#04 Tạo bài đăng Chia sẻ bài viết dạng văn bản, hình ảnh, gắn thẻ, vị trí
UC#05 Tương tác bài viết Bình luận, thả cảm xúc, chia sẻ, lưu bài viết, báo cáo vi phạm
UC#06 Chỉnh sửa thông tin cá nhân Cập nhật ảnh đại diện, ảnh bìa, công việc, học vấn, quê quán
UC#07 Theo dõi Theo dõi hoạt động công khai của người dùng khác
UC#08 Hủy theo dõi Ngừng hiển thị bài viết trên dòng thời gian nhưng vẫn giữ bạn bè
UC#09 Gửi lời mời kết bạn Gửi yêu cầu kết nối đến tài khoản khác
UC#10 Xác nhận lời mời kết bạn Chấp nhận hoặc từ chối yêu cầu kết bạn được gửi đến
UC#11 Tìm kiếm Tìm kiếm người dùng, bài viết theo từ khóa
UC#12 Xem thông báo Hiển thị danh sách thông báo hệ thống gửi cho người dùng
UC#13 Thống kê Quản trị viên xem số lượng người dùng mới, bài viết, tin ngày
UC#14 Quản lý bài viết Quản trị viên xem danh sách, xóa, block/active bài viết
UC#15 Quản lý người dùng Quản trị viên tìm kiếm, block/active tài khoản vi phạm
UC#16 Quản lý báo cáo Quản trị viên xử lý các bài viết bị người dùng báo cáo vi phạm
UC#17 Đăng xuất Thoát tài khoản tạm thời khỏi phiên làm việc
UC#18 Tạo tin ngày Đăng nội dung/hình ảnh tạm thời tồn tại trong vòng 24 giờ
UC#19 Tự động xóa bài vi phạm Hệ thống tự động quét và xóa bài viết chứa hình ảnh vũ khí (súng)
UC#20 Quản lý bài viết cá nhân Người dùng tự chỉnh sửa hoặc xóa bài viết do mình tạo ra
UC#21 Quản lý danh sách bạn bè Xem, thêm hoặc xóa bạn bè khỏi danh sách
UC#22 - UC#28 Gửi thông báo tự động Hệ thống tự động gửi thông báo tương tác, kết bạn, tin nhắn, kiểm duyệt
UC#29 Quên mật khẩu Cấp lại mật khẩu mới qua mã xác nhận số điện thoại/email

Chương này cũng xác lập các yêu cầu phi chức năng bao gồm tính khả dụng (giao diện trực quan, dễ thao tác) và tính mở rộng (khả năng mở rộng quy mô dữ liệu và người dùng).

CHƯƠNG 2. CÔNG NGHỆ SỬ DỤNG VÀ KIẾN TRÚC TỔNG THỂ

Chương 2 phân tích cơ sở công nghệ và kiến trúc giải pháp:

  • Phân tích chi tiết vai trò của các công nghệ: ReactJS, NodeJS, ExpressJS, MongoDB, JSON Web Tokens (JWT), Firebase Cloud Messaging (FCM), Cloudinary, Socket, Redux, NuxtJS, OpenCV, gRPC và Python.
  • Trình bày kiến trúc phần mềm: Phân tích mô hình Client-Server, mô hình MVC, mô hình hướng nghiệp vụ và cấu trúc tổ chức solution của ứng dụng web.

CHƯƠNG 3. PHÂN TÍCH YÊU CẦU

Chương 3 đi sâu vào phân loại yêu cầu và đặc tả chi tiết các trường hợp sử dụng (từ UC#01 đến UC#20 và các use-case thông báo):

  • Xác định độ phức tạp, tác nhân, tiền điều kiện, hậu điều kiện thành công/lỗi cho từng chức năng.
  • Mô tả chi tiết luồng sự kiện chính (Main Flow) và các luồng sự kiện phát sinh (Alternative Flows / Exception Flows) kèm hình ảnh giao diện minh họa và giao diện thông báo lỗi (như lỗi nhập sai định dạng mật khẩu, lỗi đăng nhập, lỗi mất kết nối khi gửi tin nhắn hoặc bình luận).

CHƯƠNG 4. PHÂN TÍCH THIẾT KẾ

Chương 4 thực hiện thiết kế chi tiết hệ thống:

  • Thiết kế cấu trúc cơ sở dữ liệu trên MongoDB.
  • Xây dựng biểu đồ lớp thiết kế (Class Diagram) và xác lập quan hệ kết tập, phụ thuộc giữa các lớp.
  • Xây dựng hệ thống biểu đồ tuần tự (Sequence Diagram) chi tiết cho hơn 20 chức năng trọng yếu, mô tả tuần tự các thông điệp truyền giữa giao diện, bộ điều khiển, dịch vụ xử lý và tầng cơ sở dữ liệu.

CHƯƠNG 5. CÀI ĐẶT VÀ KẾT QUẢ

Chương 5 trình bày các yêu cầu cài đặt ứng dụng, kết quả hiện thực hóa giao diện và đánh giá kết quả đạt được:

  • Trình bày hệ thống mockup và giao diện thực tế hoàn chỉnh: Giao diện trang chủ, Đăng nhập, Đăng ký, Chỉnh sửa thông tin cá nhân, Tương tác bài viết (bình luận, bày tỏ cảm xúc, chia sẻ), Nhắn tin trò chuyện, Tạo bài đăng, Tạo story (tin ngày 24h), Xem thông báo, Quản lý danh sách bạn bè, Tạo nhóm chat và Bảng điều khiển quản trị (Admin Dashboard).
  • Tổng kết mức độ hoàn thành các mục tiêu chức năng và phi chức năng đã đề ra trong bài toán ban đầu.

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

  • Kết quả kỹ thuật đạt được:
    • Hoàn thiện việc phân tích, thiết kế và cài đặt hệ thống mạng xã hội MATA đáp ứng 29 trường hợp sử dụng cho 2 tác nhân Quản trị viên và Người dùng.
    • Triển khai thành công module kiểm duyệt hình ảnh tự động bằng thư viện OpenCV trên Python, kết nối với hệ thống backend qua gRPC để tự động nhận diện và xóa bỏ bài viết chứa hình ảnh súng/vũ khí.
    • Xây dựng thành công kênh giao tiếp thời gian thực hỗ trợ nhắn tin và gửi thông báo đa kênh thông qua cơ chế Web Socket và Firebase Cloud Messaging (FCM).
    • Cài đặt đầy đủ các tính năng mạng xã hội nâng cao: Đăng tin ngày (story tự hủy sau 24 giờ), tách biệt rõ ràng giữa mối quan hệ "Kết bạn" (hai chiều) và "Theo dõi" (một chiều).
  • Giải pháp và cơ chế đề xuất:
    • Kết hợp hai lớp kiểm duyệt nội dung: Kiểm duyệt tự động thời gian thực bằng thị giác máy tính đối với hình ảnh vi phạm ngay khi đăng tải, kết hợp cơ chế tiếp nhận báo cáo vi phạm từ người dùng để quản trị viên xử lý khóa/kích hoạt (Block/Active) nội dung và tài khoản.
    • Tối ưu hóa việc phân phối thông báo tự động (thông báo tương tác, tin nhắn, lời mời kết bạn, kết quả duyệt bài) giúp tăng cường tính kết nối giữa người dùng.
  • Đóng góp của khóa luận: Cung cấp tài liệu hoàn chỉnh về quy trình xây dựng ứng dụng mạng xã hội Full-stack JavaScript (ReactJS, NodeJS, ExpressJS, MongoDB) tích hợp kiến trúc dịch vụ vi mô hỗ trợ AI/Computer Vision (Python, OpenCV, gRPC) trong việc quản lý an toàn nội dung số.

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

  • Hạn chế:
    • Module kiểm duyệt hình ảnh tự động mới chỉ dừng lại ở phạm vi nhận diện một loại đối tượng cụ thể là hình ảnh vũ khí (súng), chưa mở rộng sang các dạng nội dung vi phạm khác như hình ảnh nhạy cảm hoặc xử lý ngôn ngữ tự nhiên để lọc văn bản độc hại.
    • Phạm vi thử nghiệm và cài đặt của đồ án tập trung vào nền tảng Web Application, chưa phát triển ứng dụng di động bản địa (Native Mobile App).
  • Hướng nghiên cứu tiếp:
    • Tiếp tục nâng cấp và tích hợp các mô hình học sâu để mở rộng khả năng kiểm duyệt tự động đối với nhiều dạng vi phạm hình ảnh và văn bản.
    • Mở rộng phát triển ứng dụng trên các nền tảng di động (iOS, Android) và tối ưu hóa hiệu năng mở rộng hệ thống khi quy mô người dùng tăng cao.

Giá trị tham khảo

  • Đối tượng tham khảo: Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm, các lập trình viên Full-stack web và những người đang nghiên cứu thiết kế hệ thống mạng xã hội hoặc tích hợp xử lý ảnh vào ứng dụng web.
  • Nội dung có giá trị tham khảo cao:
    • Tài liệu đặc tả 29 Use Cases chi tiết kèm theo đầy đủ luồng chính và luồng ngoại lệ.
    • Bộ biểu đồ phân tích thiết kế hướng đối tượng (Biểu đồ lớp và biểu đồ tuần tự cho các quy trình nghiệp vụ mạng xã hội).
    • Kiến trúc tích hợp đa công nghệ: Kết hợp NodeJS/ExpressJS với dịch vụ Python/OpenCV qua gRPC và các giải pháp Socket, FCM, Cloudinary.

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

1. Hệ thống mạng xã hội MATA hỗ trợ những tác nhân nào và vai trò của từng tác nhân ra sao?
Hệ thống hỗ trợ 2 tác nhân chính: Quản trị viên (ADMIN) chịu trách nhiệm quản lý thông tin ứng dụng, xem thống kê số liệu (người dùng, bài viết, tin ngày), quản lý bài viết (xóa, xem chi tiết, block/active), quản lý người dùng (tìm kiếm, chặn tài khoản) và quản lý danh sách báo cáo vi phạm. Người dùng (USER) sử dụng các chức năng giao tiếp, nhắn tin, đăng bài, tạo tin ngày (24h), tương tác (like, comment, share, save, report), kết bạn, theo dõi/hủy theo dõi và quản lý trang cá nhân.

2. Cơ chế tự động xóa bài viết vi phạm (UC#19) trong hệ thống hoạt động như thế nào?
Khi người dùng tạo bài đăng có chứa hình ảnh, hệ thống tự động kiểm tra nội dung hình ảnh bằng thư viện OpenCV trên Python (kết nối qua gRPC). Khi phát hiện hình ảnh chứa vũ khí (cụ thể là súng), hệ thống sẽ tự động xóa bài viết khỏi cơ sở dữ liệu và gửi thông báo kiểm duyệt bài đăng vi phạm đến người dùng.

3. Khóa luận sử dụng những công nghệ và kiến trúc nào để phát triển ứng dụng?
Khóa luận sử dụng kiến trúc Client-Server, MVC và kiến trúc hướng nghiệp vụ. Công nghệ Frontend gồm ReactJS, NuxtJS và Redux. Công nghệ Backend gồm NodeJS, ExpressJS, Python (OpenCV). Hệ quản trị cơ sở dữ liệu là MongoDB. Các công nghệ truyền thông và tích hợp gồm Web Socket, gRPC, Firebase Cloud Messaging (FCM), JSON Web Tokens (JWT), Cloudinary và giao thức SMTP.

4. Tính năng "Tạo tin ngày" (UC#18) trong hệ thống MATA có đặc điểm gì?
Chức năng cho phép người dùng chia sẻ bài viết hoặc hình ảnh lên trang cá nhân dưới dạng tin ngày (Story). Điểm đặc thù của tin ngày là nội dung chỉ tồn tại và hiển thị trong vòng 24 giờ kể từ thời điểm đăng bài, sau đó sẽ tự động hết hạn.

5. Cơ chế "Theo dõi" và "Kết bạn" trong hệ thống MATA có gì khác nhau?
Chức năng "Theo dõi" (UC#07) cho phép người dùng xem các bài viết công khai của tài khoản khác trên bảng tin mà không nhất thiết phải là bạn bè. Ngược lại, chức năng "Hủy theo dõi" (UC#08) cho phép người dùng ngừng nhận bài viết của bạn bè trên dòng thời gian nhưng vẫn duy trì trạng thái quan hệ bạn bè trên hệ thống.

Kết luận

Khóa luận tốt nghiệp "Xây dựng hệ thống mạng xã hội" của sinh viên Phạm Văn Nguyên và Nguyễn Thị Tâm Anh (Trường Đại học Thăng Long, 2023) đã giải quyết thành công bài toán xây dựng nền tảng mạng xã hội MATA hoàn chỉnh. Đề tài kết hợp hiệu quả giữa kiến trúc web Client-Server, MVC trên nền tảng Full-stack JavaScript (ReactJS, NodeJS, ExpressJS, MongoDB) với dịch vụ thị giác máy tính OpenCV (Python) để kiểm duyệt tự động hình ảnh vũ khí. Với hệ thống 29 Use Cases được đặc tả chi tiết cùng bộ biểu đồ phân tích thiết kế toàn diện, khóa luận là tài liệu tham khảo kỹ thuật có giá trị cho sinh viên và nhà phát triển ứng dụng phần mềm.