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

Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ, mạng xã hội đã trở thành một phần thiết yếu trong đời sống thường nhật. Tuy nhiên, các mạng xã hội đại chúng hiện nay đang bộc lộ nhiều hạn chế đối với người dùng chuyên môn, đặc biệt là tình trạng thông tin tràn lan, thiếu tính phân loại và không đặc thù cho từng lĩnh vực nghề nghiệp. Người làm kỹ thuật thường gặp nhiều trở ngại trong việc tìm kiếm các nội dung chuyên sâu và giải pháp kỹ thuật chất lượng. Riêng đối với ngành lập trình và phát triển phần mềm, việc thiếu vắng một không gian mạng xã hội đồng nhất, quy tụ cả chuyên gia lẫn người mới bắt đầu để kết nối và hỗ trợ chuyên môn là một vấn đề thực tiễn cần được giải quyết. Đồ án tốt nghiệp "Xây dựng mạng xã hội dành cho lập trình viên" của nhóm tác giả Trần Chí Kiên, Nguyễn Hoàng Hải và Lê Quang Bảo (Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh) được thực hiện nhằm xây dựng một nền tảng chuyên biệt giải quyết các thách thức trên.

Mục tiêu nghiên cứu của đề tài được tác giả xác định cụ thể bao gồm bảy nội dung:

  1. Kết nối lập trình viên: Xây dựng không gian trực tuyến giúp người dùng giao lưu, chia sẻ kinh nghiệm và thiết lập các mối quan hệ nghề nghiệp.
  2. Chia sẻ kiến thức: Cung cấp nền tảng chia sẻ bài viết, hướng dẫn và tài liệu lập trình phong phú nhằm nâng cao trình độ chuyên môn cho cộng đồng.
  3. Hỗ trợ giải đáp thắc mắc: Thiết lập môi trường đặt câu hỏi kỹ thuật, trao đổi thảo luận và tìm kiếm giải pháp trực tiếp từ cộng đồng.
  4. Tạo cơ hội học tập: Cung cấp các chuỗi bài viết (series) đa dạng chủ đề, phục vụ lộ trình học tập cho cả người mới bắt đầu và kỹ sư chuyên nghiệp.
  5. Tạo nhóm trò chuyện (group chat) và gọi video: Hỗ trợ giao tiếp trực tiếp, trao đổi ý tưởng và cộng tác giải quyết vấn đề kỹ thuật theo thời gian thực.
  6. Tạo cộng đồng chuyên sâu: Cho phép người dùng thành lập các không gian riêng biệt xoay quanh từng chủ đề, công nghệ hoặc ngôn ngữ lập trình cụ thể.
  7. Tích hợp hỏi đáp và tra cứu thông tin với trí tuệ nhân tạo (AI): Hỗ trợ phản hồi tức thì các vướng mắc kỹ thuật từ nguồn dữ liệu tin cậy.

Về nhiệm vụ nghiên cứu, đề tài triển khai năm nhóm nhiệm vụ kế tiếp nhau: (1) Tìm hiểu và phân tích nghiệp vụ hệ thống mạng xã hội chuyên ngành; (2) Nghiên cứu chuyên sâu bộ công nghệ MERN Stack; (3) Khảo sát các nền tảng thực trạng tiêu biểu (GitHub, Stack Overflow, Dev.to); (4) Tiến hành thiết kế, lập trình và kiểm thử hệ thống phần mềm; (5) Thu thập phản hồi để đánh giá và định hướng nâng cấp hệ thống.

Đối tượng nghiên cứu của đề tài là mô hình nền tảng mạng xã hội chuyên biệt dành cho cộng đồng công nghệ thông tin. Đối tượng sử dụng mục tiêu được phân chia thành bốn nhóm: sinh viên/học viên ngành công nghệ thông tin; lập trình viên chuyên nghiệp (kỹ sư frontend, backend, full stack, kiến trúc sư phần mềm); nhà nghiên cứu và giảng viên; cùng những cá nhân đam mê công nghệ. Phạm vi nghiên cứu về không gian được thực hiện tại Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh. Phạm vi thời gian thực hiện khóa luận kéo dài từ ngày 04/03/2024 đến ngày 10/07/2024.

Cơ sở lý thuyết và phương pháp nghiên cứu

Về cơ sở lý thuyết, đề tài vận dụng các nền tảng và ngôn ngữ lập trình web hiện đại. Hai ngôn ngữ nền tảng được sử dụng là JavaScript (ngôn ngữ kịch bản hướng đối tượng, dynamic typing) và TypeScript (ngôn ngữ tĩnh mã nguồn mở phát triển bởi Microsoft, bổ sung kiểu dữ liệu tĩnh, lớp, giao diện và kế thừa nhằm giảm thiểu lỗi cho các dự án phức tạp). Bộ công nghệ MERN Stack được chọn làm nền tảng cốt lõi, bao gồm:

  • MongoDB: Hệ quản trị cơ sở dữ liệu phi quan hệ (NoSQL) lưu trữ dữ liệu dạng tài liệu BSON linh hoạt, hỗ trợ replica set, sharding, đánh chỉ mục (indexing) và phân tích dữ liệu map-reduce. Công cụ MongoDB Compass được ứng dụng để trực quan hóa việc quản lý truy vấn.
  • Express.js: Framework backend tối giản xây dựng trên Node.js, cung cấp hệ thống định tuyến (routing) và middleware linh hoạt cho các API RESTful.
  • React.js và Next.js: React.js đóng vai trò xây dựng giao diện người dùng dựa trên thành phần (component-based) và Virtual DOM; Next.js được tích hợp nhằm tận dụng cơ chế dựng trang từ phía máy chủ (Server-Side Rendering - SSR), tạo trang tĩnh (Static Site Generation - SSG), hệ thống định tuyến động và tối ưu hóa hình ảnh.
  • Node.js: Môi trường chạy mã JavaScript phía máy chủ xây dựng trên nền tảng JavaScript Engine V8 của Google, vận hành theo kiến trúc bất đồng bộ, hướng sự kiện và non-blocking I/O.

Phương pháp nghiên cứu được nhóm tác giả xác định là phương pháp nghiên cứu ứng dụng kết hợp quy trình phát triển phần mềm theo mô hình Agile. Quy trình này phân bổ dự án thành các giai đoạn lặp linh hoạt: phân tích yêu cầu người dùng, thiết kế giao diện (UI/UX), xây dựng backend, phát triển chức năng, kiểm thử - sửa lỗi và đóng gói triển khai.

Nguồn dữ liệu thực tiễn của đề tài được tổng hợp từ hoạt động khảo sát, phỏng vấn lập trình viên và phân tích đối sánh ba nền tảng trực tuyến lớn hiện nay: GitHub, Stack Overflow và Dev.to. Kết quả khảo sát thực trạng được tác giả tổng hợp tại bảng đối sánh sau:

Tiêu chí đối sánh GitHub Stack Overflow Dev.to
Kết nối chuyên nghiệp Dựa trên danh tiếng mã nguồn mở và portfolio; ít tập trung vào kết nối cá nhân truyền thống. Tập trung vào trao đổi kỹ thuật; không phù hợp để mở rộng mạng lưới quan hệ việc làm. Môi trường cởi mở, kết nối qua bài viết và bình luận; ít cơ hội việc làm trực tiếp hơn LinkedIn.
Chia sẻ kiến thức Xuất sắc về chia sẻ mã nguồn, quản lý dự án (Issues, Pull Requests); ít bài viết văn bản dài. Tập trung giải đáp câu hỏi kỹ thuật thông qua hệ thống huy hiệu và điểm uy tín (reputation). Nền tảng blog, bài viết kỹ thuật đa dạng; hỗ trợ tính năng gom nhóm bài viết theo "series".
Hỗ trợ giải đáp thắc mắc Hạn chế trong phạm vi từng dự án cụ thể thông qua thẻ Issues; ít hỗ trợ câu hỏi tổng quát. Nền tảng Q&A chuyên sâu nhất; có cơ chế bình chọn và tìm kiếm mạnh mẽ cho các lỗi lập trình. Tương tác giải đáp thân thiện nhưng chất lượng không đồng đều do thiếu cơ chế bình chọn điểm.
Cơ hội học tập Học hỏi qua mã nguồn mở thực tế; thiếu các bài giảng có cấu trúc sư phạm rõ ràng. Dữ liệu khổng lồ nhưng ở dạng rời rạc giữa câu hỏi và câu trả lời, không theo lộ trình bài học. Có nhiều bài hướng dẫn chất lượng, bài viết chia sẻ tài liệu nhưng thiếu cấu trúc khóa học chuẩn.
Giao tiếp nhóm và video Không hỗ trợ trò chuyện trực tiếp (chat) hoặc gọi video trên nền tảng. Không hỗ trợ nhắn tin trực tiếp, nhóm chat hay cuộc gọi video. Không có tính năng tạo nhóm trò chuyện trực tiếp hoặc gọi video.
Hỗ trợ tra cứu với AI Tích hợp công cụ gợi ý mã nguồn GitHub Copilot (giai đoạn phát triển thử nghiệm). Không hỗ trợ mô hình hỏi đáp AI tích hợp trực tiếp trên nền tảng. Không hỗ trợ công cụ hỏi đáp hoặc tra cứu thông tin tự động bằng AI.
Cộng đồng chuyên sâu Nhóm xoay quanh tổ chức (Organizations) và kho mã nguồn; ít nhóm chủ đề chung. Sử dụng thẻ (tags) để phân loại câu hỏi; không tạo thành các cộng đồng riêng biệt. Sử dụng thẻ (tags) phân loại nội dung bài viết; không có không gian cộng đồng độc lập.

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

Hệ thống được thiết kế theo mô hình kiến trúc phân tầng chuyên biệt, tách rời hoàn toàn giữa phía máy khách (Frontend) và máy chủ (Backend):

  • Phía Frontend: Xây dựng bằng framework Next.js chạy độc lập. Để quản lý trạng thái toàn cục (global state), nhóm tác giả tích hợp thư viện Zustand thay vì Redux. Zustand vận hành dựa trên cơ chế Proxy của JavaScript, cho phép chia nhỏ trạng thái thành các slice store độc lập, hạn chế re-render không cần thiết và sở hữu kích thước gói tin tối ưu (~1KB). Thư viện Tailwind CSS được áp dụng để chuẩn hóa giao diện theo mô hình tiện ích (utility-first).
  • Phía Backend: Xây dựng trên nền Node.js và Express.js theo kiến trúc bốn thành phần: Route (tiếp nhận HTTP Request và phân luồng), Controller (xử lý trung gian, kiểm tra dữ liệu và điều hướng nghiệp vụ), Service (thực thi logic nghiệp vụ lõi và tương tác dữ liệu) và Model (định nghĩa cấu trúc lược đồ dữ liệu và ràng buộc thuộc tính). Thư viện Mongoose ODM được sử dụng để xây dựng Schema, xử lý ràng buộc kiểm tra dữ liệu (validation), middleware tiền/hậu xử lý và tối ưu hóa truy vấn tới cơ sở dữ liệu MongoDB.
  • Phân hệ Microservice: Nhằm đảm bảo khả năng mở rộng và hiệu năng phản hồi, đề tài thiết kế ba hệ thống vi dịch vụ độc lập: (1) Hệ thống nhắn tin thời gian thực phục vụ hội thoại cá nhân và nhóm chat; (2) Hệ thống thông báo đẩy tự động cập nhật tương tác của người dùng; (3) Hệ thống gợi ý nội dung phân tích hành vi và mối quan tâm của lập trình viên.
  • Phân quyền và ca sử dụng: Hệ thống phân định thành hai tác nhân (actors):
    • Người dùng (User): 23 use case bao gồm Đăng ký, Đăng nhập, Quên mật khẩu, Đăng xuất, Quản lý thông tin cá nhân, Xem trang cá nhân khác, Quản lý bạn bè, Đăng bài viết, Quản lý bài viết, Tương tác bài viết (Like, Share, Comment), Tạo câu hỏi, Quản lý câu hỏi, Trả lời câu hỏi, Tương tác câu hỏi, Tạo series, Quản lý series, Tương tác series, Tạo post series, Quản lý post series, Tương tác post series, Tạo cộng đồng, Quản lý cộng đồng, Tạo nhóm chat, Quản lý nhóm chat, Tìm kiếm, Nhắn tin, Hỏi đáp với AI.
    • Quản trị viên (Admin): 5 use case quản lý tập trung gồm Quản lý bài viết, Quản lý user, Quản lý cộng đồng, Quản lý series và Quản lý câu hỏi.

Quy trình kiểm thử phần mềm được tiến hành theo phương pháp kiểm thử chức năng (hộp đen). Nhóm tác giả đã lập bảng kịch bản và thực thi kiểm thử trên bảy chức năng trọng yếu của hệ thống: Đăng nhập (Bảng 68), Quản lý thông tin cá nhân (Bảng 69), Quản lý bạn bè (Bảng 70), Tạo bài viết (Bảng 71), Like bài viết (Bảng 72), Tương tác series (Bảng 73) và Trả lời câu hỏi (Bảng 74).

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

Phần mở đầu: Tổng quan đề tài và Khảo sát thực trạng

Phần mở đầu xác lập cơ sở hình thành đề tài thông qua việc phân tích nhu cầu bức thiết về một không gian trực tuyến chuyên biệt cho kỹ sư phần mềm. Tác giả làm rõ mục đích, nhiệm vụ, cách tiếp cận, đối tượng nghiên cứu và phương pháp triển khai dự án dựa trên mô hình phát triển Agile. Đồng thời, phần này cung cấp bảng khảo sát chi tiết ba nền tảng thực trạng gồm GitHub, Stack Overflow và Dev.to, chỉ rõ các điểm mạnh về quản lý mã nguồn hay hỏi đáp kỹ thuật, cùng những khoảng trống chức năng như sự thiếu vắng của kênh giao tiếp trực tiếp (chat/video), trợ lý AI tích hợp và mô hình cộng đồng chuyên đề độc lập.

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

Chương này hệ thống hóa toàn bộ kiến thức kỹ thuật làm nền tảng cho việc hiện thực hóa phần mềm. Nội dung trình bày chi tiết về:

  • Cú pháp và đặc tính động của ngôn ngữ JavaScript kết hợp với cơ chế định kiểu tĩnh an toàn của TypeScript.
  • Cấu trúc bộ công nghệ MERN Stack, phân tích chi tiết vai trò của hệ quản trị cơ sở dữ liệu tài liệu MongoDB và công cụ quản trị MongoDB Compass.
  • Kỹ thuật xây dựng máy chủ backend bằng Node.js và Express.js, nhấn mạnh mô hình xử lý bất đồng bộ non-blocking I/O.
  • Framework Next.js, cơ chế kết xuất giao diện SSR và SSG giúp tối ưu hóa công cụ tìm kiếm và tốc độ tải trang.
  • Thư viện quản lý trạng thái Zustand dựa trên JavaScript Proxy và bộ thư viện giao diện Tailwind CSS.
  • Mô hình kiến trúc backend bốn lớp (Route, Controller, Service, Model) và thư viện quản lý lược đồ Mongoose ODM.

Chương 2: Phân tích và thiết kế hệ thống

Chương 2 là phần cốt lõi về kỹ thuật công nghệ phần mềm của đồ án:

  • Phân tích chi tiết yêu cầu chức năng và phi chức năng của hệ thống.
  • Thiết lập biểu đồ ca sử dụng tổng quát (Use case diagram) và bảng đặc tả chi tiết kèm theo biểu đồ tuần tự (Sequence diagram) cho 23 use case của người dùng và 5 use case của quản trị viên.
  • Trình bày kiến trúc và luồng xử lý dữ liệu của ba hệ thống microservice chuyên biệt gồm: hệ thống nhắn tin, hệ thống thông báo và hệ thống gợi ý.
  • Xây dựng biểu đồ lớp (Class diagram - Hình 75) thể hiện mối quan hệ giữa các thực thể dữ liệu trong toàn bộ hệ thống.

Chương 3: Thiết kế giao diện

Chương 3 trình bày chi tiết việc hiện thực hóa giao diện người dùng (UI/UX) thông qua 28 phân hệ màn hình kèm bảng mô tả chi tiết chức năng thành phần:

  • Nhóm màn hình xác thực và hồ sơ: Giao diện đăng nhập, đăng ký, trang cá nhân, chỉnh sửa thông tin cá nhân, tab bạn bè, tab ảnh (photo), tab kho lưu trữ (repository).
  • Nhóm màn hình bảng tin và bài viết: Giao diện trang chủ, tạo bài viết mới, hiển thị bài viết chi tiết, cập nhật bài viết, danh mục bài viết yêu thích.
  • Nhóm màn hình chuỗi bài học (Series): Giao diện tạo series, xem chi tiết một series, hiển thị bài viết con trong series.
  • Nhóm màn hình diễn đàn hỏi đáp (Q&A): Giao diện tạo câu hỏi, danh sách câu hỏi, chi tiết một câu hỏi, hiển thị câu trả lời và bảng tổng hợp hashtag câu hỏi.
  • Nhóm màn hình cộng đồng và giao tiếp: Giao diện tạo cộng đồng, chi tiết cộng đồng, hộp thoại tin nhắn, trang nhắn tin trực tiếp, trung tâm thông báo và phân hệ màn hình tương tác hỏi đáp với trí tuệ nhân tạo (AI).

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

Chương 4 tập trung vào quy trình triển khai thực tế và kiểm thử độ ổn định của sản phẩm:

  • Liệt kê các yêu cầu phần cứng, môi trường phần mềm và các bước thiết lập cấu hình để khởi chạy ứng dụng.
  • Xây dựng và thực thi các ca kiểm thử chức năng (test cases) có cấu trúc từ Bảng 68 đến Bảng 74, bao gồm: kiểm thử tính hợp lệ khi đăng nhập tài khoản; kiểm thử cập nhật dữ liệu trang cá nhân; kiểm thử kết bạn và hủy kết bạn; kiểm thử đăng tải nội dung bài viết; kiểm thử tương tác bấm thích (like); kiểm thử hành vi tương tác trên chuỗi bài viết (series); và kiểm thử quy trình gửi câu trả lời cho mục hỏi đáp kỹ thuật.

Phần kết luận

Tác giả tổng kết lại các mục tiêu đã hoàn thành của đề tài, đánh giá khách quan các ưu điểm nổi bật về mặt giao diện, tính năng tích hợp và kiến trúc kỹ thuật. Đồng thời, phần kết luận chỉ ra các hạn chế kỹ thuật hiện hữu do điều kiện thời gian triển khai, từ đó đề ra các hướng nghiên cứu, tối ưu hóa và phát triển mở rộng trong tương lai.

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

Về kết quả kỹ thuật, đồ án đã hoàn thành đầy đủ các mục tiêu thiết kế và cài đặt hệ thống phần mềm mạng xã hội chuyên biệt cho lập trình viên với các số liệu cụ thể:

  • Hoàn thành thiết kế và đặc tả chi tiết 28 nhóm ca sử dụng, bao gồm 23 use case phía người dùng (User) và 5 use case dành riêng cho quản trị viên (Admin).
  • Thiết kế và phân tách thành công 3 hệ thống dịch vụ vi mô (microservice) độc lập phục vụ tính năng nhắn tin, thông báo và gợi ý bài viết.
  • Xây dựng hoàn chỉnh 28 nhóm giao diện chức năng và biểu đồ lớp tổng thể phản ánh toàn diện các thực thể nghiệp vụ.
  • Thực thi thành công các kịch bản kiểm thử hộp đen trên 7 phân hệ chức năng cốt lõi (Bảng 68 đến Bảng 74), chứng minh tính đúng đắn của logic nghiệp vụ từ đăng nhập, quản lý tương tác bài viết, bạn bè đến hỏi đáp kỹ thuật.

Về mặt giải pháp, đồ án đã tích hợp đồng bộ các cơ chế tương tác đa dạng trên cùng một nền tảng:

  • Kết hợp đồng thời mạng xã hội chia sẻ nội dung (posts) với diễn đàn hỏi đáp chuyên môn (Q&A) có gắn thẻ hashtag kỹ thuật.
  • Cung cấp tính năng gom nhóm bài viết theo chuỗi học tập (series) có hệ thống, khắc phục nhược điểm thông tin rời rạc của các diễn đàn truyền thống.
  • Thiết lập không gian sinh hoạt học thuật thông qua việc tạo lập cộng đồng theo từng chủ đề công nghệ và các kênh nhắn tin trao đổi trực tiếp.
  • Tích hợp mô-đun hỏi đáp tự động ứng dụng trí tuệ nhân tạo (AI) giúp lập trình viên tra cứu và nhận hỗ trợ kỹ thuật tức thời.

So với các nền tảng đi trước được khảo sát, đồ án đã khắc phục một số điểm hạn chế mà chính các tác giả đã chỉ ra: bổ sung tính năng giao tiếp thời gian thực mà GitHub và Stack Overflow chưa hỗ trợ trực tiếp; tích hợp tính năng hỏi đáp với AI mà Dev.to và Stack Overflow chưa hoàn thiện trên nền tảng; đồng thời tổ chức dữ liệu học tập có cấu trúc tốt hơn so với mô hình câu hỏi đơn lẻ của Stack Overflow.

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

Về mặt hạn chế, văn bản đồ án thẳng thắn chỉ rõ đề tài được hoàn thành trong một khoảng thời gian tương đối ngắn (khoảng 4 tháng, từ tháng 3 đến tháng 7 năm 2024), kinh nghiệm triển khai dự án phần mềm thực tế của nhóm còn hạn chế, dẫn đến việc hệ thống vẫn còn một số thiếu sót về mặt kỹ thuật và hiệu năng xử lý ở các tác vụ phức tạp.

Về hướng nghiên cứu tiếp, nhóm tác giả định hướng ba nhiệm vụ phát triển:

  1. Tiếp tục thu thập ý kiến đóng góp và phân tích phản hồi từ người dùng thực tế để cải tiến giao diện và tối ưu hóa trải nghiệm người dùng.
  2. Nâng cấp hiệu năng hoạt động của ba hệ thống vi dịch vụ (nhắn tin, thông báo, gợi ý) và nâng cao năng lực phản hồi kỹ thuật của phân hệ trí tuệ nhân tạo.
  3. Hoàn thiện tính năng gọi video trực tiếp và duy trì quy trình bảo trì, cập nhật hệ thống để bảo đảm khả năng mở rộng quy mô tải khi cộng đồng lập trình viên gia tăng.

Giá trị tham khảo

Đồ án tốt nghiệp là tài liệu tham khảo thực nghiệm hữu ích cho sinh viên, giảng viên và các nhóm phát triển thuộc ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Khoa học Máy tính. Tài liệu đặc biệt có giá trị đối với những ai đang nghiên cứu triển khai các hệ thống web quy mô lớn sử dụng bộ công nghệ MERN Stack kết hợp framework Next.js.

Các nội dung có giá trị tham khảo chuyên môn cao bao gồm:

  • Quy trình phân tích, xây dựng lược đồ ca sử dụng (Use case) và biểu đồ tuần tự (Sequence diagram) chi tiết cho từng nghiệp vụ mạng xã hội tại Chương 2.
  • Phương pháp tách lớp kiến trúc backend bốn tầng (Route - Controller - Service - Model) kết hợp với Mongoose ODM trong môi trường Node.js/Express.js.
  • Cách tiếp cận tối ưu hóa trạng thái ứng dụng phía client bằng thư viện Zustand kết hợp styling với Tailwind CSS.
  • Bộ kịch bản và bảng biểu thiết kế kiểm thử chức năng (test cases) mẫu tại Chương 4.

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

1. Kiến trúc Backend của hệ thống được tổ chức theo những tầng nào và luồng truyền dữ liệu diễn ra ra sao?
Backend hệ thống được xây dựng trên nền tảng Node.js và Express.js, phân tách thành bốn thành phần chính: Route, Controller, Service và Model. Luồng truyền dữ liệu vận hành theo trình tự: Route tiếp nhận HTTP request từ client và định tuyến đến Controller tương ứng; Controller xử lý dữ liệu đầu vào và gọi Service; Service đảm nhận toàn bộ logic nghiệp vụ và tương tác với cơ sở dữ liệu thông qua Model; sau khi có kết quả từ Model, Service trả dữ liệu về Controller để Controller gửi HTTP response hoàn chỉnh về cho client.

2. Lý do nhóm tác giả lựa chọn thư viện Zustand thay vì Redux trong dự án Next.js là gì?
Nhóm tác giả chọn Zustand vì thư viện này hoạt động dựa trên cơ chế Proxy của JavaScript giúp theo dõi chính xác các thay đổi trạng thái và chỉ kích hoạt re-render cho các component liên quan, loại bỏ các render thừa. Đồng thời, Zustand cho phép chia nhỏ logic thành các slice store độc lập, có thể tái sử dụng dễ dàng, không đòi hỏi cấu hình phức tạp và có kích thước gói tin sau khi nén chỉ khoảng 1KB, giúp giảm tải overhead và tối ưu tốc độ tải trang.

3. Đồ án thiết kế những hệ thống microservice độc lập nào trong Chương 2?
Trong mục 2.3 của Chương 2, nhóm tác giả thiết kế ba hệ thống vi dịch vụ (microservice) độc lập bao gồm: Hệ thống nhắn tin (Messaging Service), Hệ thống thông báo (Notification Service) và Hệ thống gợi ý nội dung (Recommendation Service). Mỗi hệ thống đều được phân tích lựa chọn công nghệ, thiết kế kiến trúc và mô tả luồng hoạt động riêng biệt.

4. Điểm khác biệt cơ bản giữa vai trò User và Admin trong hệ thống được xác định như thế nào?
Vai trò User tập trung vào các hành vi tương tác nghiệp vụ cộng đồng bao gồm 23 nhóm use case (quản lý trang cá nhân, đăng bài, tương tác like/share/comment, kết bạn, tạo và trả lời câu hỏi, tạo series bài học, tạo nhóm chat, tạo cộng đồng và hỏi đáp với AI). Trong khi đó, vai trò Admin nắm quyền kiểm duyệt và điều hành hệ sinh thái thông qua 5 nhóm use case chuyên trách: Quản lý bài viết, Quản lý người dùng (user), Quản lý cộng đồng, Quản lý series bài học và Quản lý câu hỏi kỹ thuật.

5. Những chức năng nào của phần mềm đã được nhóm tác giả thực hiện kiểm thử thực tế trong văn bản?
Tại Chương 4, nhóm tác giả đã xây dựng kịch bản và tiến hành kiểm thử chức năng cho bảy phân hệ nghiệp vụ cụ thể: Chức năng đăng nhập (Bảng 68), Chức năng quản lý thông tin cá nhân (Bảng 69), Chức năng quản lý bạn bè (Bảng 70), Chức năng tạo bài viết (Bảng 71), Chức năng like bài viết (Bảng 72), Chức năng tương tác series (Bảng 73) và Chức năng trả lời câu hỏi (Bảng 74).

Kết luận

Đồ án tốt nghiệp "Xây dựng mạng xã hội dành cho lập trình viên" của nhóm sinh viên Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh đã hoàn thành toàn diện việc nghiên cứu, phân tích, thiết kế và cài đặt một hệ thống phần mềm mạng xã hội chuyên ngành. Bằng việc ứng dụng bộ công nghệ MERN Stack kết hợp Next.js, Zustand và kiến trúc phân lớp chuẩn hóa, sản phẩm đã tích hợp đồng bộ các tính năng chia sẻ bài viết, chuỗi học tập, diễn đàn hỏi đáp kỹ thuật, cộng đồng chuyên đề và tra cứu thông tin với trí tuệ nhân tạo. Công trình phản ánh một quy trình kỹ thuật phần mềm bài bản từ khảo sát thực trạng, đặc tả ca sử dụng, thiết kế giao diện đến kiểm thử chức năng, cung cấp nguồn tư liệu học thuật và thực tiễn có giá trị cho việc phát triển các nền tảng trực tuyến chuyên ngành công nghệ thông tin.