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

Sự phát triển của khoa học công nghệ và sự bùng nổ của mạng Internet đã tạo nền tảng cho các hình thức truyền thông trực tuyến phát triển mạnh mẽ. Người dùng Internet, đặc biệt là giới trẻ, có nhu cầu ngày càng cao về một không gian số tích hợp nhằm phục vụ các hoạt động tìm kiếm thông tin, giải trí và kết nối xã hội. Trong bối cảnh các nền tảng mạng xã hội lớn trên thế giới như Facebook, YouTube, Twitter và Instagram đã định hình thói quen tương tác vượt qua các rào cản về không gian và thời gian, việc nghiên cứu kiến trúc vận hành và phát triển các tính năng công nghệ mới trên nền tảng mạng xã hội trở thành một yêu cầu thực tiễn trong ngành công nghệ thông tin.

Đề tài khóa luận tốt nghiệp "Xây dựng mạng xã hội bằng MERN Stack" do nhóm sinh viên Nguyễn Hoàng Huy (MSSV: 18110294) và Phạm Nhựt Trường (MSSV: 18110385), chuyên ngành Hệ thống thông tin, Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh thực hiện dưới sự hướng dẫn của TS. Nguyễn Thành Sơn. Mục đích chính của đề tài là vận dụng các kết quả nghiên cứu từ học phần Tiểu luận chuyên ngành về bộ công nghệ MERN Stack để hoàn thiện và phát triển bổ sung các tính năng nâng cao cho một website mạng xã hội, bao gồm tìm kiếm bằng giọng nói, chặn nội dung tiêu cực bằng trí tuệ nhân tạo, nhắn tin nhóm, gọi thoại/video trực tiếp và thống kê tương tác.

Nhiệm vụ nghiên cứu của khóa luận được xác định cụ thể theo đề cương gồm hai nhóm công việc:

  1. Tiếp tục tìm hiểu, nghiên cứu về công nghệ MERN Stack (MongoDB, ExpressJS, ReactJS, NodeJS); tiến hành kiểm tra, sửa lỗi và hoàn thiện các chức năng cùng giao diện đã phát triển từ giai đoạn Tiểu luận chuyên ngành.
  2. Tìm hiểu, phân tích các công nghệ và giao diện lập trình ứng dụng (API) mới để triển khai vào website mạng xã hội, bao gồm:
    • Phát triển tính năng chặn từ ngữ tiêu cực bằng việc ứng dụng mô hình trí tuệ nhân tạo.
    • Phát triển tính năng tìm kiếm người dùng và dữ liệu bằng giọng nói.
    • Thống kê lượt xem của hình ảnh, video và các bài đăng trên hệ thống.
    • Bổ sung tính năng trò chuyện nhóm (chat group).
    • Bổ sung tính năng gọi điện thoại (audio call) và gọi video (video call) giữa các người dùng theo thời gian thực.

Về đối tượng nghiên cứu, đề tài tập trung vào hai phương diện: thứ nhất là những tác động hai chiều (tích cực và tiêu cực) của mạng xã hội đối với thói quen tiếp nhận, trao đổi và truyền phát thông tin của giới trẻ; thứ hai là các công nghệ, thành phần kiến trúc và phương thức vận hành của một hệ thống website mạng xã hội. Phạm vi nghiên cứu về mô hình thực tiễn giới hạn ở việc khảo sát năm nền tảng mạng xã hội điển hình gồm Facebook, Twitter, Instagram, TikTok và YouTube. Phạm vi kỹ thuật tập trung vào việc thiết kế và lập trình hoàn chỉnh một hệ thống ứng dụng web ba thành phần (Server, Client, Admin) bằng JavaScript end-to-end, được triển khai thực hiện từ ngày 15/08/2022 đến ngày 23/12/2022.

Cơ sở lý thuyết và công nghệ nền tảng

Hệ thống được xây dựng dựa trên ngăn xếp công nghệ MERN Stack kết hợp cùng các giao thức truyền thông thời gian thực và mô hình học máy:

  • NodeJS: Môi trường thực thi JavaScript phía máy chủ mã nguồn mở được Ryan Dahl phát triển từ năm 2009, sử dụng bộ máy V8 của Google và kiến trúc điều khiển sự kiện bất đồng bộ không chặn (event-driven, non-blocking I/O). Trong đề tài, NodeJS đóng vai trò máy chủ trung tâm để điều phối các dịch vụ: hệ thống thông báo (Notification), máy chủ WebSocket phục vụ truyền dữ liệu hai chiều có độ trễ thấp cho chức năng trò chuyện, xử lý tải tập tin tốc độ cao (Fast File Upload Client) và kết nối với cơ sở dữ liệu.
  • ExpressJS: Khung ứng dụng web tối giản chạy trên NodeJS, cung cấp hệ thống định tuyến (router) cho các phương thức HTTP và cơ chế trung gian (middleware) để xử lý các yêu cầu (request), phản hồi (response) và cung cấp các dịch vụ RESTful API phục vụ giao tiếp với phía giao diện.
  • ReactJS và Redux: Thư viện giao diện người dùng do Facebook công bố năm 2014, sử dụng cú pháp JSX và cơ chế Document Object Model ảo (Virtual DOM) để tối ưu hiệu năng hiển thị trên mô hình ứng dụng đơn trang (Single Page Application - SPA). Thư viện Redux được tích hợp để quản lý trạng thái tập trung (state management) trong toàn bộ ứng dụng front-end.
  • MongoDB và MongoDB Atlas: Hệ quản trị cơ sở dữ liệu NoSQL hướng tài liệu (document-oriented), lưu trữ bản ghi dưới định dạng tương tự JSON (BSON). Dữ liệu được cấu trúc linh hoạt theo các tập hợp (collections) và tài liệu (documents), trường định danh _id được tự động đánh chỉ mục nhằm tăng tốc độ truy vấn trên bộ nhớ đệm RAM. Toàn bộ cơ sở dữ liệu được triển khai lưu trữ trên nền tảng đám mây MongoDB Atlas.
  • Mô hình xử lý ngôn từ tiêu cực (Toxicity Model): Sử dụng thư viện @tensorflow-models/toxicity và react-text-toxicity được phát triển dựa trên mô hình Universal Sentence Encoder (Cer và cộng sự, 2018). Mô hình được huấn luyện trên tập dữ liệu Civil Comments gồm khoảng 2 triệu bình luận trực tuyến được gán nhãn, cho phép phân loại văn bản theo 6 thuộc tính: nhục mạ (insult), tục tĩu (obscene), nhạy cảm tình dục (sexual explicit), đe dọa (threat), độc hại/thù ghét (toxicity), và tấn công danh tính (identity attack). Ngưỡng phát hiện vi phạm được xác lập khi độ tin cậy dự đoán vượt quá 0.9 (tương đương 90%).
  • Công nghệ nhận dạng giọng nói (Voice Recognition): Ứng dụng Web Speech API thông qua thư viện react-speech-recognition trên nền tảng React. Quá trình xử lý tín hiệu dựa trên nguyên lý lấy mẫu âm thanh tương tự sang kỹ thuật số, đo biên độ và phân tích phổ sóng âm. Cơ sở lý thuyết của hệ thống tham chiếu mô hình mạng nơ-ron tích chập (CNN) và kỹ thuật học chuyển giao (Transfer Learning) từ công cụ Teachable Machine của Google dựa trên thư viện TensorFlow.js, cho phép nhận diện đầu vào giọng nói bằng cả tiếng Việt và tiếng Anh.
  • Công nghệ truyền thông thời gian thực (WebRTC và PeerJS): Ứng dụng chuẩn WebRTC thông qua ba giao diện lập trình lõi: getUserMedia (thu nhận luồng hình ảnh từ camera và âm thanh từ microphone), RTCPeerConnection (thiết lập kênh truyền tải cuộc gọi điểm-điểm), và RTCDataChannel (truyền dữ liệu nhị phân giữa các trình duyệt). Thư viện PeerJS (@peerjs) được sử dụng nhằm đơn giản hóa việc khởi tạo phiên kết nối điểm-điểm thông qua cơ chế trao đổi mã nhận diện kết nối (peer ID).

Phương pháp nghiên cứu được nhóm tác giả áp dụng bao gồm: phương pháp phân tích - tổng hợp tài liệu chuyên ngành; phương pháp phân tích trường hợp thực tiễn thông qua việc so sánh các mạng xã hội hiện hành; phương pháp phân tích và thiết kế hệ thống theo ngôn ngữ mô hình hóa thống nhất (UML); và phương pháp thực nghiệm phát triển phần mềm để xây dựng, cài đặt và kiểm thử chức năng ứng dụng trên môi trường cục bộ.

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

Hệ thống mạng xã hội được thiết kế theo kiến trúc ba tầng (3-tier architecture) khép kín bằng ngôn ngữ JavaScript và dữ liệu JSON:

[ReactJS Client / Admin (Tầng giao diện)]
          HTTP REST API / WebSocket / WebRTC
[NodeJS & ExpressJS (Tầng logic máy chủ)]
        Mongoose / MongoDB Driver
[MongoDB Atlas (Tầng lưu trữ dữ liệu NoSQL)]

Cấu trúc mã nguồn của đồ án được phân chia thành ba phân hệ độc lập:

  • Phân hệ Máy chủ (Server): Chứa các tệp cấu hình biến môi trường kết nối cơ sở dữ liệu MongoDB Atlas, cấu hình máy chủ ExpressJS, hệ thống tệp định tuyến (routes), các bộ điều khiển logic (controllers) và dịch vụ xử lý sự kiện WebSocket.
  • Phân hệ Người dùng (Client): Xây dựng bằng ReactJS, cấu trúc bao gồm các thư mục chứa thành phần giao diện dùng chung (components), các trang hiển thị (pages), cấu hình định tuyến trình duyệt (React Router), kho quản lý trạng thái Redux (actions, reducers) và các dịch vụ tích hợp API cuộc gọi PeerJS, nhận dạng giọng nói và kiểm duyệt nội dung.
  • Phân hệ Quản trị (Admin): Xây dựng riêng biệt để phục vụ công tác giám sát, phân quyền quản lý người dùng và duyệt/xóa các bài viết vi phạm trên toàn hệ thống.

Về thiết kế chức năng, đồ án đặc tả hệ thống thông qua các sơ đồ ca sử dụng (Use Case Diagram) tổng quan và chi tiết:

  • Phân hệ người dùng hỗ trợ các ca sử dụng: Đăng ký tài khoản, Đăng nhập, Quản lý thông tin cá nhân, Đăng tải bài viết (hỗ trợ đính kèm hình ảnh và video), Tương tác bài viết (bày tỏ cảm xúc, bình luận có kiểm duyệt từ ngữ), Quản lý quan hệ bạn bè, Tìm kiếm người dùng bằng văn bản hoặc giọng nói đa ngôn ngữ, Nhắn tin trực tiếp, Nhắn tin nhóm thời gian thực, Gọi thoại và Gọi video hai chiều.
  • Phân hệ quản trị hỗ trợ các ca sử dụng: Đăng nhập quản trị viên, Quản lý danh sách người dùng (khóa/mở khóa tài khoản), Xem chi tiết hoạt động của người dùng, Quản lý danh sách bài đăng và Gỡ bỏ nội dung vi phạm.

Luồng xử lý dữ liệu của các chức năng trọng yếu (đăng nhập, đăng ký, quản lý bài viết, tương tác và quản lý bạn bè) được mô hình hóa chi tiết bằng các sơ đồ tuần tự (Sequence Diagram), thể hiện tương tác giữa các thực thể Client, Redux Store, Express Controller và cơ sở dữ liệu MongoDB.

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

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

Chương này tập trung trình bày nền tảng lý thuyết và chi tiết các công nghệ được lựa chọn trong ngăn xếp MERN Stack, đồng thời thuyết minh nguyên lý của các giải pháp kỹ thuật ngoại vi:

  • Giới thiệu lịch sử, ưu điểm và nhược điểm của NodeJS, ExpressJS, ReactJS và cơ sở dữ liệu NoSQL MongoDB. Nhóm tác giả nhấn mạnh ưu điểm xử lý I/O không chặn của NodeJS, khả năng tái sử dụng component của ReactJS và tính linh hoạt trong lưu trữ của MongoDB.
  • So sánh cú pháp thao tác dữ liệu giữa hệ quản trị cơ sở dữ liệu quan hệ (RDBMS - MySQL) và cơ sở dữ liệu phi quan hệ (NoSQL - MongoDB):
Thao tác dữ liệu Cú pháp trên MySQL Cú pháp trên MongoDB
Tạo cơ sở dữ liệu CREATE DATABASE test; use test;
Tạo bảng / tập hợp CREATE TABLE students (ten_cot kieu_du_lieu); db.createCollection('students');
Tạo bản ghi / tài liệu INSERT INTO students ('name', 'gender') VALUES ('thanh', 'male'); db.insert({name: 'thanh', gender: 'male'});
Cập nhật dữ liệu UPDATE students SET name = 'thanh update' WHERE id = 1; db.update({_id: 1}, {$set: {name: 'thanh update'}});
Xóa bản ghi / tài liệu DELETE FROM students WHERE id = 1; db.remove({_id: 1});
Truy vấn toàn bộ SELECT * FROM students; db.find({});
Truy vấn có điều kiện SELECT * FROM students WHERE name = 'thanh'; db.find({name: 'thanh'});
  • Thuyết minh cơ sở lý thuyết xử lý âm thanh, nguyên lý nhận diện giọng nói dựa trên mạng nơ-ron học sâu, kỹ thuật học chuyển giao (Transfer Learning) bằng cách giữ lại các lớp trích xuất đặc trưng cơ sở (base layers) và tái cấu hình lớp phân loại kết xuất (top dense layer). Trình bày cách thức cấu hình thư viện react-speech-recognition và việc tích hợp tìm kiếm bằng giọng nói tiếng Việt và tiếng Anh.
  • Phân tích cơ chế phát hiện nội dung tiêu cực dựa trên mô hình Toxicity Model và tập dữ liệu Civil Comments (~2 triệu mẫu), phân loại các hành vi vi phạm thành 6 nhóm từ ngữ và thiết lập ngưỡng xử lý xác suất vi phạm.
  • Trình bày kiến trúc chuẩn truyền thông WebRTC, cơ chế kết nối ngang hàng (Peer-to-Peer) và cách ứng dụng thư viện PeerJS để thực hiện cuộc gọi thoại, gọi video và chia sẻ dữ liệu trực tiếp giữa hai trình duyệt.

Chương 2: Tìm hiểu về các mạng xã hội đang hoạt động

Chương 2 dành toàn bộ nội dung để khảo sát, phân tích các đặc trưng kỹ thuật, nghiệp vụ, cùng ưu và nhược điểm của 5 mạng xã hội phổ biến trên thế giới nhằm rút ra kinh nghiệm thiết kế giao diện và chức năng cho hệ thống:

  • Facebook: Thành lập năm 2005 bởi Mark Zuckerberg, sở hữu hơn 1.500 triệu người dùng tích cực. Điểm mạnh là khả năng kết nối đa dạng, chia sẻ hình ảnh, hỗ trợ thăm dò ý kiến, truyền thông và marketing trực tuyến. Nhược điểm là tình trạng lạm dụng không gian ảo gây xao nhãng công việc, nguy cơ trầm cảm và suy giảm tương tác đời thực.
  • Twitter: Thành lập năm 2006 tại San Francisco. Điểm mạnh nằm ở tính năng theo dõi (Follow), tốc độ truyền tin tức nhanh, khả năng lan truyền cao nhờ nút chia sẻ lại (Retweet) phục vụ hiệu quả cho mô hình quảng bá ngắn gọn. Nhược điểm là mật độ quảng cáo dày đặc, thông điệp dễ bị trôi và giới hạn ký tự truyền thống (140 ký tự).
  • Instagram: Phát hành chính thức trên App Store năm 2010, đạt mốc hơn 300 triệu người dùng vào tháng 5/2014. Tập trung hoàn toàn vào nội dung trực quan là hình ảnh và video nghệ thuật, hỗ trợ kinh doanh thương mại điện tử và thiết lập quyền riêng tư nghiêm ngặt. Nhược điểm là hệ thống được tối ưu riêng cho thiết bị di động, phiên bản web hạn chế tính năng và nguy cơ bị đánh cắp bản quyền hình ảnh.
  • TikTok: Nền tảng chia sẻ video ngắn 15 giây phát triển nhanh nhất thế giới, đạt lượng tải về cao nhất toàn cầu trong quý 1 năm 2018. Sở hữu công cụ biên tập video trực quan, tích hợp kho nhạc nền và hiệu ứng trí tuệ nhân tạo. Nhược điểm lớn là việc kiểm duyệt nội dung chưa triệt để, để xuất hiện các trào lưu nguy hiểm, phản cảm và nguy cơ bảo mật thông tin cá nhân.
  • YouTube: Nền tảng video trực tuyến ra đời tháng 2/2005 bởi ba cựu nhân viên PayPal, chuyển đổi công nghệ sang chuẩn HTML5. Cung cấp các tính năng: kênh cấp tin RSS, chia sẻ video theo mốc thời gian cụ thể (Copy URL at current time), báo cáo chất lượng băng thông và khả năng kiếm tiền cho nhà sáng tạo nội dung.

Chương 3: Phân tích và thiết kế hệ thống thông tin dự án website mạng xã hội

Chương này trình bày các nội dung thiết kế kỹ thuật phục vụ việc xây dựng ứng dụng:

  • Đặc tả yêu cầu bài toán mạng xã hội dành cho đối tượng người dùng phổ thông và quản trị viên hệ thống.
  • Thiết kế hệ thống mô hình Use Case tổng quan và 5 mô hình Use Case thành phần: Đăng nhập, Quản lý người dùng, Quản lý bài đăng, Tương tác bài đăng, Quản lý bạn bè.
  • Thiết kế sơ đồ tuần tự (Sequence Diagram) chuẩn hóa các bước gửi yêu cầu, xác thực token, kiểm tra cơ sở dữ liệu và kết xuất dữ liệu cho các tác vụ đăng ký tài khoản, đăng nhập, quản lý người dùng, duyệt bài viết và tương tác xã hội.
  • Thiết kế mô hình cơ sở dữ liệu NoSQL với cấu trúc các bộ tài liệu (documents) phi quan hệ, tối ưu hóa cho các thao tác đọc ghi nhanh trên MongoDB Atlas.
  • Thiết kế bố cục giao diện người dùng (UI/UX) chi tiết cho cả hai phân hệ: giao diện Client (trang chủ, hộp thoại tạo bài viết, trang cá nhân, danh sách bạn bè, hộp thoại tìm kiếm giọng nói, khung chat đơn/nhóm, màn hình cuộc gọi video) và giao diện Admin (bảng điều khiển quản lý tài khoản, danh sách bài đăng vi phạm).

Chương 4: Cài đặt demo

Chương 4 mô tả quá trình thiết lập môi trường và cấu trúc triển khai mã nguồn trên thực tế:

  • Yêu cầu cấu hình phần mềm: Cài đặt môi trường thực thi NodeJS phiên bản phù hợp, trình quản lý gói thư viện npm.
  • Cấu hình tệp môi trường máy chủ (.env), thiết lập chuỗi kết nối (connection string) tới cụm cơ sở dữ liệu MongoDB Atlas trên đám mây.
  • Hướng dẫn chi tiết các bước cài đặt gói phụ thuộc cho từng thư mục bằng lệnh npm install, cấu hình các biến cục bộ cho Client, Server và Admin.
  • Tổ chức các mô-đun tệp tin mã nguồn rõ ràng, phân định các thư mục chứa controllers, models, routes tại Server và components, pages, redux slices tại Client.
  • Hướng dẫn vận hành ứng dụng trên máy cục bộ (Localhost) để phục vụ quá trình chạy thử nghiệm và đánh giá chức năng.

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

Về kết quả thực nghiệm, đề tài đã xây dựng thành công một hệ thống mạng xã hội hoạt động ổn định trên nền tảng web với đầy đủ ba phân hệ Server, Client và Admin bằng ngăn xếp MERN Stack:

  • Xây dựng hoàn chỉnh các tính năng cơ bản của một mạng xã hội: đăng ký, xác thực đăng nhập, quản lý thông tin hồ sơ cá nhân, kết bạn, đăng bài viết hỗ trợ tệp đa phương tiện (hình ảnh, video) và tương tác thích/bình luận.
  • Tích hợp thành công mô hình học máy phát hiện nội dung tiêu cực (react-text-toxicity) trên giao diện bình luận và bài viết, tự động phân tích 6 thuộc tính vi phạm ngôn từ dựa trên ngưỡng xác suất tin cậy lớn hơn 90% (0.9).
  • Tích hợp tính năng nhận diện giọng nói hỗ trợ song ngữ (tiếng Việt và tiếng Anh) thông qua Web Speech API phục vụ việc tìm kiếm người dùng và bài viết nhanh chóng trên trình duyệt.
  • Xây dựng thành công tính năng truyền thông thời gian thực: trò chuyện trực tiếp hai người, tạo phòng trò chuyện nhóm (chat group) qua WebSocket, và thiết lập cuộc gọi thoại, gọi video hai chiều thông qua chuẩn WebRTC/PeerJS.
  • Triển khai chức năng thống kê lượt xem (views) của hình ảnh, video và bài đăng.

Về giải pháp và kiến nghị, nhóm tác giả đề xuất:

  • Khuyến nghị ứng dụng các mô hình lọc nội dung tự động dựa trên trí tuệ nhân tạo vào các hệ thống mạng xã hội nhằm chủ động ngăn chặn vấn nạn bạo lực mạng, ngôn từ thù ghét và thông tin độc hại ảnh hưởng đến tâm lý người dùng trẻ tuổi.
  • Đề xuất mô hình kiến trúc phần mềm phân tầng tách biệt giữa tầng cung cấp API và tầng hiển thị SPA, tận dụng tối đa lợi thế của ngôn ngữ JavaScript đồng nhất giúp tối ưu hóa thời gian và nguồn lực lập trình.

Về mặt đóng góp học thuật và thực tiễn, đề tài đã hệ thống hóa quy trình áp dụng công nghệ MERN Stack kết hợp các công nghệ trình duyệt hiện đại (Web Speech API, WebRTC) và mô hình học máy phân loại văn bản trực tiếp ở phía giao diện người dùng. Đồng thời, khóa luận cung cấp một bản phân tích đối sánh chi tiết về ưu, nhược điểm của 5 mạng xã hội phổ biến trên thế giới, làm tư liệu tham khảo có giá trị cho việc phân tích nghiệp vụ các hệ thống tương tự.

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 đề ra, khóa luận ghi nhận một số điểm hạn chế kỹ thuật dựa trên phạm vi nghiên cứu:

  • Tính năng kiểm duyệt ngôn từ tiêu cực sử dụng mô hình Toxicity được huấn luyện trên tập dữ liệu tiếng Anh (Civil Comments dataset gồm ~2 triệu bản ghi), do đó khả năng xử lý và độ chính xác phân loại đối với các ngữ cảnh từ lóng, tiếng lóng viết tắt hoặc câu từ tiếng Việt còn hạn chế.
  • Cơ chế nhận dạng giọng nói phụ thuộc vào giao diện Web Speech API tích hợp sẵn của từng trình duyệt, dẫn đến việc hỗ trợ nhận diện tiếng Việt có thể không đồng nhất giữa các nền tảng trình duyệt khác nhau.
  • Tính năng gọi điện thoại và gọi video bằng WebRTC qua thư viện PeerJS mới dừng lại ở kết nối điểm-điểm cơ bản, chưa cấu hình các máy chủ TURN chuyên biệt để xử lý triệt để bài toán truyền gói tin khi người dùng nằm sau các lớp tường lửa hoặc hệ thống mạng NAT phức tạp.
  • Cơ sở dữ liệu MongoDB do đặc thù lưu trữ key-value lặp lại giữa các tài liệu và không hỗ trợ ràng buộc toàn vẹn khóa ngoại chặt chẽ như RDBMS nên dễ dẫn đến hiện tượng dư thừa dữ liệu và đòi hỏi sự cẩn trọng cao trong khâu xử lý logic nghiệp vụ.

Hướng phát triển tiếp theo được nhóm tác giả nêu trong văn bản bao gồm: tiếp tục tối ưu hóa hiệu năng các tính năng hiện có, nghiên cứu mở rộng kiến trúc hệ thống để đáp ứng khả năng xử lý dữ liệu quy mô lớn hơn, hoàn thiện thêm các tính năng nâng cao của mạng xã hội và nâng cấp hạ tầng kết nối máy chủ.

Giá trị tham khảo

Khóa luận là nguồn tài liệu hữu ích cho sinh viên các ngành Công nghệ thông tin, Kỹ thuật phần mềm và Hệ thống thông tin đang thực hiện đồ án chuyên ngành hoặc khóa luận tốt nghiệp có định hướng xây dựng ứng dụng web hướng dịch vụ.

Những nội dung có giá trị tham khảo cao nhất trong tài liệu gồm:

  • Phương pháp tổ chức cấu trúc mã nguồn một dự án MERN Stack phân chia độc lập ba phân hệ Client, Server và Admin.
  • Kỹ thuật tích hợp WebRTC và thư viện PeerJS để thiết lập tính năng gọi thoại và gọi video trực tiếp trên nền tảng web.
  • Quy trình nhúng các mô hình học máy xử lý ngôn ngữ tự nhiên (Toxicity Model) và nhận dạng giọng nói (Web Speech API) trực tiếp vào các component giao diện ReactJS.
  • Hệ thống sơ đồ phân tích nghiệp vụ UML (Use Case, Sequence Diagram) chuẩn mực cho một ứng dụng mạng xã hội hoàn chỉnh.

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

1. Khóa luận sử dụng mô hình trí tuệ nhân tạo và tập dữ liệu nào để phát hiện, ngăn chặn nội dung tiêu cực?
Khóa luận sử dụng mô hình Toxicity Model xây dựng trên nền tảng Universal Sentence Encoder (Cer và cộng sự, 2018), được tích hợp qua thư viện @tensorflow-models/toxicity hoặc react-text-toxicity. Mô hình được huấn luyện trên tập dữ liệu Civil Comments gồm khoảng 2 triệu bình luận trực tuyến được gán nhãn độc tính, đánh giá văn bản theo 6 tiêu chí: nhục mạ (insult), tục tĩu (obscene), nhạy cảm tình dục (sexual explicit), đe dọa (threat), độc hại (toxicity), và tấn công danh tính (identity attack). Hệ thống xác định vi phạm khi mức độ dự đoán khớp (match) đạt ngưỡng xác suất trên 0.9 (tức trên 90%).

2. Tính năng tìm kiếm bằng giọng nói trong hệ thống hoạt động như thế nào và hỗ trợ những ngôn ngữ nào?
Tính năng này được triển khai bằng thư viện react-speech-recognition dựa trên giao diện Web Speech API của trình duyệt. Hệ thống thu âm thanh từ micro của người dùng, chuyển đổi tín hiệu tương tự sang kỹ thuật số bằng phương pháp lấy mẫu biên độ theo thời gian để tạo dạng sóng âm, sau đó phân tích và chuyển đổi thành văn bản hiển thị trong biến transcript. Giao diện tìm kiếm của hệ thống cho phép người dùng tùy chọn nhận dạng bằng hai ngôn ngữ: tiếng Việt và tiếng Anh.

3. Công nghệ nào được tác giả lựa chọn để xây dựng tính năng gọi thoại và gọi video trực tiếp giữa người dùng?
Tác giả sử dụng chuẩn WebRTC kết hợp cùng thư viện PeerJS (@peerjs). WebRTC cung cấp ba giao diện lập trình nòng cốt gồm getUserMedia (truy cập camera và microphone), RTCPeerConnection (thiết lập kết nối âm thanh và hình ảnh điểm-điểm), và RTCDataChannel (truyền tải dữ liệu P2P). Thư viện PeerJS đóng vai trò trung gian giúp khởi tạo định danh (peer ID), phát tín hiệu gọi (peer.call) và phản hồi cuộc gọi (call.answer) để kết xuất luồng video/audio trực tiếp lên thẻ <video> của trình duyệt HTML.

4. Cơ sở dữ liệu MongoDB có những ưu điểm và nhược điểm kỹ thuật nào được tác giả phân tích trong báo cáo?
Theo phân tích của nhóm tác giả, MongoDB có ưu điểm là lưu trữ dữ liệu dạng tài liệu JSON linh hoạt, không cần kiểm tra ràng buộc chặt chẽ như RDBMS, trường _id tự động đánh chỉ mục giúp truy vấn nhanh, bản ghi được tải lên bộ nhớ đệm RAM và hệ thống dễ dàng mở rộng theo chiều ngang (Horizontal Scalability) qua các cụm node. Ngược lại, MongoDB có nhược điểm là dữ liệu dễ bị trùng lặp key gây tốn dung lượng bộ nhớ, không hỗ trợ liên kết bảng (join), thiếu ràng buộc toàn vẹn dữ liệu và cơ chế đồng bộ ghi dữ liệu từ RAM xuống ổ đĩa định kỳ 60 giây có thể tiềm ẩn rủi ro mất dữ liệu nếu xảy ra sự cố đột ngột.

5. Khóa luận đã tiến hành khảo sát và đánh giá ưu nhược điểm của những nền tảng mạng xã hội nào?
Trong Chương 2 của khóa luận, nhóm tác giả đã tiến hành khảo sát và phân tích chi tiết đặc trưng kỹ thuật, nghiệp vụ cùng ưu và nhược điểm của 5 nền tảng mạng xã hội lớn đang hoạt động trên toàn cầu, bao gồm: Facebook (mạng xã hội chia sẻ hình ảnh và kết nối cộng đồng), Twitter (mạng xã hội truyền tin ngắn và theo dõi thông tin nhanh), Instagram (mạng xã hội chuyên về hình ảnh và video nghệ thuật), TikTok (mạng xã hội chia sẻ video ngắn sáng tạo) và YouTube (mạng xã hội lưu trữ và chia sẻ video trực tuyến chuẩn HTML5).

Kết luận

Khóa luận tốt nghiệp "Xây dựng mạng xã hội bằng MERN Stack" của sinh viên Nguyễn Hoàng Huy và Phạm Nhựt Trường đã giải quyết trọn vẹn mục tiêu nghiên cứu và phát triển một hệ thống mạng xã hội full-stack hoàn chỉnh trên nền tảng JavaScript. Đề tài thể hiện năng lực tổng hợp kiến trúc công nghệ web hiện đại khi tích hợp thành công các giải pháp thời gian thực (WebSocket, WebRTC) và các mô hình học máy (Toxicity Model, Web Speech API) vào ứng dụng thực tế. Đây là công trình kỹ thuật có tính ứng dụng cao, cung cấp quy trình thiết kế và mã nguồn tham khảo rõ ràng cho sinh viên và các lập trình viên theo đuổi chuyên ngành phát triển hệ thống thông tin.