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

Trong bối cảnh đời sống hiện đại với áp lực công việc và học tập ngày càng gia tăng, nhu cầu tìm kiếm không gian trực tuyến để giải tỏa căng thẳng, thư giãn trở nên thiết yếu. Các nền tảng mạng xã hội chuyên biệt cho việc chia sẻ nội dung đa phương tiện hài hước như hình ảnh, video ngắn và "meme" đóng vai trò quan trọng trong việc tạo dựng môi trường giải trí, kết nối các cá nhân có cùng sở thích và thúc đẩy sự sáng tạo nội dung trong cộng đồng.

Đề tài "Xây dựng Website mạng xã hội" được thực hiện bởi sinh viên Nguyễn Quốc Danh (MSSV: 19110333) và Phan Gia Huy (MSSV: 19110369), dưới sự hướng dẫn của ThS. Lê Thị Minh Châu tại Bộ môn Hệ thống thông tin, Khoa Công nghệ Thông tin – Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (thời gian thực hiện từ ngày 01/03/2024 đến ngày 10/07/2024).

Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể như sau:

  1. Mục tiêu tổng quát: Xây dựng hoàn chỉnh một website mạng xã hội cho phép người dùng chia sẻ suy nghĩ, hình ảnh, video, meme và tương tác với cộng đồng.
  2. Mục tiêu kỹ thuật: Nghiên cứu lý thuyết và ứng dụng thực tế các công nghệ bao gồm: Java Spring Boot, hệ quản trị cơ sở dữ liệu SQL Server 2019, thư viện ReactJS, cơ chế xác thực JSON Web Token (JWT), giao thức truyền thông thời gian thực Socket.IO và các dịch vụ đám mây Amazon Web Services (AWS).
  3. Nhiệm vụ phát triển nâng cao trong khóa luận tốt nghiệp:
    • Tối ưu hóa hệ thống giao diện lập trình ứng dụng (RESTful API) và xử lý ngoại lệ phát sinh.
    • Xây dựng tính năng nhắn tin thời gian thực (hỗ trợ gửi văn bản, tệp tin, hình ảnh, âm thanh, video) và gọi video.
    • Tích hợp phương thức xác thực người dùng thông qua bên thứ ba (Google OAuth).
    • Thiết lập tính năng khôi phục mật khẩu tài khoản tự động qua thư điện tử (email).
    • Ứng dụng dịch vụ trí tuệ nhân tạo Amazon Rekognition nhằm tự động kiểm duyệt và lọc bài viết vi phạm tiêu chuẩn cộng đồng (hình ảnh, video phản cảm).
    • Xây dựng phân hệ quản trị (Admin Dashboard) phục vụ quản lý người dùng, quản lý bài viết và tiếp nhận báo cáo vi phạm.
  • Đối tượng nghiên cứu: Quy trình phân tích, thiết kế và xây dựng hệ thống website mạng xã hội tương tác đa phương tiện, tích hợp mô hình kiểm duyệt nội dung tự động.
  • Phạm vi nghiên cứu: Ứng dụng web hoạt động trên trình duyệt, lưu trữ và xử lý dữ liệu với SQL Server 2019 kết hợp dịch vụ AWS, thực hiện trong khuôn khổ khóa luận tốt nghiệp ngành Hệ thống thông tin khóa 2019–2023.

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

Khóa luận dựa trên nền tảng lý thuyết kỹ thuật phần mềm, kiến trúc phân tầng web service và các công nghệ phát triển ứng dụng hiện đại:

  • Khung kiến trúc và backend: Sử dụng Java Spring Boot để cung cấp hệ thống RESTful API, kết hợp Hibernate làm tầng ánh xạ quan hệ - đối tượng (ORM) giúp thao tác với cơ sở dữ liệu quan hệ.
  • Frontend và giao diện người dùng: Ứng dụng ReactJS với cơ chế Virtual DOM và luồng dữ liệu một chiều (one-way data flow), kết hợp TypeScript, HTML, CSS và thư viện thành phần giao diện Ant Design.
  • Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2019 quản lý dữ liệu quan hệ, hỗ trợ tính toàn vẹn dữ liệu, các thủ tục lưu trữ và phân quyền truy cập.
  • Xác thực và phân quyền: Triển khai JSON Web Token (JWT) gồm 3 phần (Header, Payload, Signature) cho cơ chế xác thực không trạng thái (stateless) và giao thức Google OAuth.
  • Giao tiếp thời gian thực: Thư viện Socket.IO hoạt động trên nền tảng WebSocket và kỹ thuật dự phòng (long-polling) để xử lý tính năng chat trực tiếp.
  • Dịch vụ đám mây và thị giác máy tính: Nền tảng Amazon Web Services (AWS) với các dịch vụ Amazon EC2, Amazon S3, Amazon RDS, Amazon Lambda, Amazon API Gateway và đặc biệt là Amazon Rekognition để nhận diện nội dung hình ảnh, video.

Phương pháp nghiên cứu và thực hiện bao gồm:

  • Phương pháp khảo sát hiện trạng: Phân tích, so sánh ưu điểm và hạn chế của hai nền tảng mạng xã hội thực tế là 9GAG và Instagram.
  • Phương pháp mô hình hóa hướng đối tượng: Đặc tả yêu cầu người dùng, xây dựng biểu đồ ca sử dụng (Use Case Diagram), biểu đồ tuần tự (Sequence Diagram) và thiết kế sơ đồ cơ sở dữ liệu quan hệ.
  • Phương pháp kiểm thử phần mềm: Kiểm thử chức năng hệ thống theo kịch bản tương tác người dùng và quản trị viên.

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình kiến trúc Web Service phân tách độc lập giữa Client và Server:

[ Client: ReactJS + Ant Design ] 
[ Server Backend: Java Spring Boot + Hibernate ]
[ CSDL: SQL Server 2019 ]   [ AWS Cloud: S3 & Amazon Rekognition ]

Kiến trúc công nghệ và tích hợp

  • Tầng Client (Frontend): Xây dựng bằng ReactJS và TypeScript, định dạng bằng Ant Design, chịu trách nhiệm kết xuất giao diện động, quản lý trạng thái và giao tiếp với máy chủ thông qua các yêu cầu HTTP không đồng bộ (Axios/Fetch) và kết nối Socket.IO Client.
  • Tầng Server (Backend): Java Spring Boot đóng vai trò trung tâm tiếp nhận yêu cầu, xác thực token JWT, kiểm tra quyền hạn tác nhân, thực thi logic nghiệp vụ và định tuyến dữ liệu.
  • Tầng Dữ liệu (Database): Lưu trữ tập trung trên SQL Server 2019, quản lý bảng người dùng, bài đăng, bình luận, tin nhắn, tương tác (thích, lưu, theo dõi, chặn).
  • Tích hợp kiểm duyệt nội dung (AWS Rekognition): Khi người dùng tải lên hình ảnh hoặc video trong bài viết, tập tin phương tiện được chuyển tới dịch vụ Amazon Rekognition để phân tích nhãn (label detection) và nội dung không phù hợp (moderation labels). Dựa trên kết quả phân tích, hệ thống tự động ẩn, làm mờ (che) hoặc xóa bỏ bài viết vi phạm tiêu chuẩn cộng đồng trước khi phân phối tới bảng tin chung.

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

Phần Mở đầu

Trình bày tính cấp thiết của đề tài xuất phát từ nhu cầu giải trí bằng hình ảnh, meme trên mạng xã hội; xác định mục tiêu nghiên cứu, các nội dung nâng cấp so với tiểu luận chuyên ngành trước đó và phân công lộ trình thực hiện từ 01/03/2024 đến 10/07/2024.

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

Tổng hợp cơ sở lý thuyết về các công nghệ cốt lõi:

  • Java Spring Boot: Nêu rõ các đặc tính tự cấu hình (auto-configuration), hỗ trợ kết nối cơ sở dữ liệu mạnh mẽ, khả năng tích hợp linh hoạt với Hibernate/JPA và hỗ trợ quy trình DevOps.
  • SQL Server 2019: Khả năng quản lý dữ liệu bảng, ngôn ngữ truy vấn SQL, hỗ trợ truy vấn JSON và các cơ chế bảo mật, sao lưu.
  • HTML, CSS và Ant Design: Nguyên lý xây dựng cấu trúc, định dạng trang web và việc áp dụng bộ thành phần giao diện sẵn có của Ant Design để tối ưu hóa trải nghiệm người dùng.
  • ReactJS: Khái niệm Virtual DOM, JSX và nguyên tắc luồng dữ liệu một chiều giúp tối ưu tốc độ cập nhật giao diện.
  • JSON Web Token (JWT): Cấu trúc 3 phần (Header, Payload, Signature) trong truyền thông tin an toàn giữa client và server.
  • Socket.IO: Cơ chế truyền thông hai chiều thời gian thực giữa máy khách và máy chủ.
  • Amazon Web Services (AWS): Giới thiệu các dịch vụ đám mây bao gồm EC2, S3, RDS, Lambda, API Gateway và Rekognition.

Chương 2. Khảo sát và phân tích

Khảo sát hiện trạng dựa trên hai nền tảng mạng xã hội tiêu biểu là 9GAG và Instagram:

Nền tảng Chức năng nổi bật Hạn chế ghi nhận
9GAG Giao diện đơn giản, dễ nhìn; đáp ứng đầy đủ đăng bài, thích, bình luận, chia sẻ; tìm kiếm bài viết theo chủ đề thuận tiện. Chưa tích hợp tính năng nhắn tin trực tiếp (chat) giữa người dùng với nhau.
Instagram Giao diện tối giản; hỗ trợ đầy đủ đăng bài, tương tác xã hội; tích hợp tính năng nhắn tin trực tiếp. Khó tìm kiếm bài đăng theo từng chủ đề cụ thể; nội dung phân tán, không chuyên biệt cho mục đích giải trí hình ảnh/meme.

Từ khảo sát, nhóm tác giả tổng hợp danh sách yêu cầu chức năng cho hệ thống mới:

  • Chức năng hệ thống: Hiển thị bài viết theo thời gian, tìm kiếm bài viết/người dùng, lọc bài viết vi phạm tiêu chuẩn.
  • Chức năng người dùng: Đăng ký, đăng nhập (bao gồm Google OAuth), quản lý thông tin cá nhân, quên mật khẩu, đăng bài, bình luận, thích, chia sẻ, lưu bài viết, chặn người dùng, chat thời gian thực.

Chương 3. Mô hình hóa yêu cầu

Xác định quyền hạn và ca sử dụng của ba nhóm tác nhân chính:

Tác nhân Quyền hạn và Chức năng thực hiện
Người dùng vãng lai Đăng ký tài khoản, xem bài viết công khai, tìm kiếm bài viết theo chủ đề, tìm kiếm người dùng.
Người dùng đã đăng ký Đăng nhập/Đăng xuất, quản lý thông tin cá nhân, đổi mật khẩu, quên mật khẩu, đăng bài viết, thích, bình luận, chia sẻ, lưu bài viết, ẩn bài viết, xem trang cá nhân, nhắn tin (chat), gọi video, theo dõi, chặn người dùng khác.
Quản trị viên (Admin) Đăng nhập hệ thống quản trị, quản lý tài khoản người dùng (khóa tài khoản, hạn chế quyền đăng bài/tương tác), quản lý bài viết (xóa bài viết vi phạm), xem danh sách báo cáo vi phạm.

Chương này cũng chi tiết hóa các kịch bản ca sử dụng (luồng sự kiện chính, luồng ngoại lệ), xây dựng các biểu đồ tuần tự cho các chức năng đăng ký, đăng nhập, tìm kiếm bài đăng, đăng bài, xóa/ẩn bài đăng, theo dõi người dùng, chặn người dùng, và thiết kế lược đồ cơ sở dữ liệu quan hệ.

Chương 4. Hệ thống lọc bài viết vi phạm tiêu chuẩn cộng đồng

Trình bày cơ chế hoạt động của Amazon Rekognition trong việc phát hiện các nội dung nhạy cảm, bạo lực hoặc không phù hợp trong hình ảnh và video tải lên. Nội dung phân tích được đối chiếu với ngưỡng an toàn quy định của hệ thống để tự động đưa ra hành động: che mờ nội dung cảnh báo, gắn cờ kiểm duyệt hoặc xóa bỏ bài viết vi phạm.

Chương 5. Thiết kế phần mềm

Hiện thực hóa các giao diện chức năng chính của website:

  • Giao diện đăng nhập, đăng ký và xác thực Google.
  • Giao diện trang chủ (Newsfeed) hiển thị danh sách bài đăng theo thời gian thực.
  • Giao diện trang thông tin cá nhân và chỉnh sửa hồ sơ người dùng.
  • Giao diện bài viết và khu vực bình luận tương tác.
  • Giao diện hộp thoại nhắn tin (chat) đa phương tiện và chức năng gọi video trực tuyến.
  • Phân hệ quản trị viên: Trang quản lý người dùng, trang xem danh sách người dùng bị khóa/hạn chế, trang quản lý bài viết và tiếp nhận báo cáo.

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

Triển khai mã nguồn ứng dụng trên môi trường phát triển (Visual Studio Code). Thực hiện kiểm thử chức năng chi tiết qua các nhóm ca kiểm thử:

  • Bảng kiểm thử chức năng quản lý tài khoản (Đăng nhập, đăng ký, quên mật khẩu, đổi thông tin).
  • Bảng kiểm thử chức năng quản lý bài viết (Đăng tải bài viết, tương tác thích, bình luận, lưu, chia sẻ, lọc vi phạm).
  • Bảng kiểm thử chức năng chat và gọi video thời gian thực.
  • Bảng kiểm thử các chức năng quản trị và kiểm soát vi phạm.

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

Kết quả đạt được

  • Xây dựng hoàn thiện website mạng xã hội chuyên biệt cho việc chia sẻ hình ảnh, video và meme với giao diện trực quan bằng ReactJS và Ant Design.
  • Xây dựng hệ thống RESTful API bằng Java Spring Boot kết nối cơ sở dữ liệu SQL Server 2019, đáp ứng các luồng xử lý nghiệp vụ.
  • Tích hợp thành công cơ chế xác thực JWT và đăng nhập nhanh bằng tài khoản Google.
  • Triển khai tính năng nhắn tin thời gian thực đa phương tiện (văn bản, tệp tin, hình ảnh, âm thanh, video) và gọi video bằng Socket.IO.
  • Ứng dụng thành công dịch vụ Amazon Rekognition trong việc tự động lọc và xử lý bài viết có hình ảnh, video vi phạm tiêu chuẩn cộng đồng.
  • Cung cấp phân hệ Admin với các công cụ kiểm soát vi phạm, khóa/hạn chế tài khoản và quản lý nội dung bài đăng.

Giải pháp và đóng góp

  • Kết hợp giải pháp kiểm duyệt tự động dựa trên dịch vụ đám mây (AWS Rekognition) với quy trình quản lý thủ công của Quản trị viên, giúp giảm thiểu nội dung độc hại trên nền tảng mạng xã hội giải trí.
  • Khắc phục các nhược điểm được chỉ ra từ khảo sát thực tế: bổ sung tính năng chat trực tiếp (điểm hạn chế của 9GAG) và tối ưu hóa việc phân loại, tìm kiếm nội dung giải trí theo chủ đề (điểm hạn chế của Instagram).

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

Hạn chế

  • Hệ thống kiểm duyệt nội dung vi phạm tiêu chuẩn cộng đồng phụ thuộc vào dịch vụ bên thứ ba (AWS Rekognition), chưa tự huấn luyện mô hình học máy cục bộ riêng biệt cho các ngữ cảnh đặc thù tiếng Việt.
  • Cơ sở dữ liệu và hạ tầng ứng dụng chủ yếu được cấu hình, thử nghiệm trên môi trường phát triển cục bộ kết hợp dịch vụ lưu trữ đám mây cơ bản, chưa đánh giá tải trọng trong điều kiện lượng người dùng truy cập đồng thời lớn.

Hướng phát triển

  • Tối ưu hóa hiệu năng hệ thống backend và phân tán cơ sở dữ liệu để đáp ứng lưu lượng truy cập lớn hơn.
  • Nghiên cứu và huấn luyện các mô hình học máy (Machine Learning/Deep Learning) riêng biệt để phát hiện văn bản và ngôn từ vi phạm tiêu chuẩn cộng đồng bằng tiếng Việt.
  • Phát triển ứng dụng trên nền tảng thiết bị di động (Mobile Application) để đồng bộ trải nghiệm người dùng đa nền tảng.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo thiết thực cho:

  • Sinh viên chuyên ngành Công nghệ thông tin, Hệ thống thông tin hoặc Kỹ thuật phần mềm đang thực hiện đồ án tốt nghiệp, đồ án môn học liên quan đến phát triển ứng dụng web full-stack.
  • Các nhà phát triển muốn tham khảo mô hình kết hợp giữa ReactJS, Java Spring Boot, SQL Server 2019 và Socket.IO trong xây dựng ứng dụng tương tác thời gian thực.
  • Tài liệu mẫu về quy trình phân tích ca sử dụng, vẽ lược đồ tuần tự, thiết kế cơ sở dữ liệu quan hệ và tích hợp dịch vụ kiểm duyệt thị giác máy tính từ AWS Rekognition.

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

1. Khóa luận sử dụng công nghệ nào để xử lý tính năng lọc bài viết vi phạm tiêu chuẩn cộng đồng?
Tác giả sử dụng dịch vụ Amazon Rekognition thuộc nền tảng điện toán đám mây Amazon Web Services (AWS) để phân tích hình ảnh và video tải lên, từ đó phát hiện các nội dung phản cảm hoặc vi phạm tiêu chuẩn để tự động che mờ, gắn cờ hoặc xóa bỏ.

2. Điểm khác biệt chính giữa hệ thống xây dựng trong khóa luận so với hai nền tảng 9GAG và Instagram được khảo sát là gì?
Hệ thống giải quyết đồng thời hai hạn chế được phát hiện qua khảo sát: tích hợp tính năng nhắn tin trực tiếp đa phương tiện (tính năng 9GAG chưa có) và tập trung phân loại, tìm kiếm nội dung giải trí/meme theo chủ đề chuyên biệt (tính năng Instagram còn hạn chế).

3. Cơ chế xác thực và bảo mật tài khoản người dùng trong hệ thống được thực hiện bằng cách nào?
Hệ thống sử dụng tiêu chuẩn JSON Web Token (JWT) với 3 phần (Header, Payload, Signature) để quản lý phiên làm việc và phân quyền người dùng/quản trị viên, đồng thời tích hợp thêm phương thức đăng nhập qua bên thứ ba bằng tài khoản Google (OAuth) và chức năng cấp lại mật khẩu qua email.

4. Quản trị viên (Admin) có những quyền hạn can thiệp nào đối với các tài khoản vi phạm?
Quản trị viên có thể đăng nhập vào trang quản trị riêng để xem danh sách báo cáo, thực hiện thao tác xóa bài viết vi phạm, khóa tài khoản hoàn toàn hoặc áp dụng trạng thái hạn chế tài khoản (ngăn người dùng đăng bài, thích, bình luận và chia sẻ).

5. Công nghệ nào được lựa chọn để phát triển tính năng nhắn tin thời gian thực và gọi video?
Hệ thống tích hợp thư viện Socket.IO dựa trên giao thức WebSocket để thiết lập giao tiếp hai chiều thời gian thực giữa máy khách (ReactJS) và máy chủ, hỗ trợ trao đổi văn bản, hình ảnh, tệp tin, âm thanh, video và cuộc gọi video trực tiếp.


Kết luận

Khóa luận tốt nghiệp "Xây dựng Website mạng xã hội" của sinh viên Nguyễn Quốc Danh và Phan Gia Huy đã hoàn thành đầy đủ các mục tiêu nghiên cứu và phát triển phần mềm đề ra. Đề tài ứng dụng thành công kiến trúc Web Service với sự kết hợp giữa ReactJS, Java Spring Boot, SQL Server 2019, Socket.IO và dịch vụ AI của AWS. Sản phẩm đáp ứng tốt các nghiệp vụ mạng xã hội giải trí, nhắn tin đa phương tiện thời gian thực và cung cấp cơ chế tự động hóa trong việc kiểm duyệt nội dung vi phạm tiêu chuẩn cộng đồng.