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

Trong thị trường lao động hiện đại, các nền tảng trực tuyến chuyên biệt đóng vai trò thiết yếu trong việc kết nối giữa người lao động và các đơn vị tuyển dụng. Tác giả chỉ ra rằng quá trình tìm kiếm cơ hội nghề nghiệp và tuyển dụng nhân sự hiện nay đang đối mặt với ba thách thức lớn:

  1. Người lao động thiếu một nền tảng chuyên nghiệp để xây dựng hồ sơ cá nhân hoàn chỉnh, tìm kiếm vị trí phù hợp, cũng như thiết lập kết nối và học hỏi kiến thức từ cộng đồng chuyên gia trong ngành.
  2. Doanh nghiệp gặp khó khăn trong việc xây dựng thương hiệu nhà tuyển dụng, quản lý nguồn ứng viên tiềm năng và mở rộng cơ hội tiếp cận các đối tác kinh doanh.
  3. Thị trường thiếu hụt một môi trường tương tác an toàn, minh bạch và đáng tin cậy để người dùng vừa có thể cập nhật các xu hướng kỹ năng mới thông qua các bài viết chuyên môn, vừa thực hiện quy trình ứng tuyển hiệu quả.

Từ những vấn đề thực tiễn trên, tác giả Nguyễn Quốc Toản đã thực hiện khóa luận tốt nghiệp kỹ sư ngành Công nghệ Thông tin (chuyên ngành Công nghệ Phần mềm) tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh với đề tài: "Xây dựng mạng xã hội cho người đi làm và kiếm việc làm", dưới sự hướng dẫn của ThS. Nguyễn Hữu Trung.

Mục tiêu tổng quát của đề tài là xây dựng một nền tảng mạng xã hội chuyên nghiệp tích hợp các tính năng phục vụ người đi làm và người tìm việc. Về mặt nhiệm vụ nghiên cứu, đồ án được phân chia thành hai nhóm nội dung chính:

  1. Nhiệm vụ lý thuyết: Tìm hiểu và tổng hợp các công nghệ nền tảng bao gồm React, React Native, ExpressJS, kiến trúc RESTful API, cơ chế bảo mật JSON Web Token (JWT), và cơ sở dữ liệu MongoDB.
  2. Nhiệm vụ thực hành:
    • Ứng dụng RESTful API và ExpressJS để xây dựng hệ thống API cho các mô-đun chức năng.
    • Sử dụng cơ sở dữ liệu MongoDB để quản lý và lưu trữ dữ liệu người dùng cùng các thực thể liên quan.
    • Áp dụng JSON Web Token cho cơ chế xác thực và ủy quyền truy cập hệ thống.
    • Ứng dụng thư viện React và React Native để thiết kế, xây dựng giao diện ứng dụng phục vụ người dùng cuối.

Đối tượng nghiên cứu của đồ án là quy trình quản lý thông tin tuyển dụng, tương tác mạng xã hội nghề nghiệp và kiến trúc hệ thống ứng dụng web/di động. Phạm vi nghiên cứu tập trung vào các chức năng cốt lõi của mạng xã hội nghề nghiệp (tương tác bài đăng, kết nối bạn bè, nhắn tin trực tuyến, đăng tuyển và ứng tuyển việc làm), được triển khai thực hiện trong thời gian 4 tháng, từ ngày 20/02/2025 đến ngày 20/06/2025.


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

Khóa luận thiết lập nền tảng kỹ thuật dựa trên các công nghệ và tiêu chuẩn công nghệ thông tin hiện hành:

  • ExpressJS: Framework tối giản xây dựng trên nền tảng Node.js, cung cấp hệ thống định tuyến (routing) và cơ chế phần mềm trung gian (middleware) để xử lý các yêu cầu HTTP, nén dữ liệu, ghi nhật ký (log) và kiểm soát lỗi đồng thời với hiệu suất cao.
  • MongoDB: Hệ quản trị cơ sở dữ liệu phân tán mã nguồn mở thuộc nhóm NoSQL (document-oriented). Cấu trúc hệ thống phân chia rõ hai lớp gồm tầng ứng dụng (Application Layer - chứa Frontend và Backend) và tầng dữ liệu (Data Layer - nơi MongoDB server chuyển truy vấn đến công cụ lưu trữ storage engine để ghi dữ liệu vào tệp hoặc bộ nhớ). Hệ thống hỗ trợ cơ chế phân mảnh tự động (auto-sharding) và lưu trữ tệp tin GridFS.
  • Kiến trúc RESTful API: Chuẩn thiết kế dịch vụ web phi trạng thái (stateless) dựa trên các phương thức HTTP tiêu chuẩn gồm GET (truy vấn tài nguyên), POST (tạo mới tài nguyên), PUT (cập nhật tài nguyên) và DELETE (xóa tài nguyên) tương ứng với các tác vụ CRUD. Dữ liệu truyền tải giữa các thành phần được định dạng bằng cấu trúc JSON.
  • React Native: Framework mã nguồn mở hỗ trợ phát triển ứng dụng di động đa nền tảng (iOS và Android) dựa trên kiến trúc cầu nối ("Bridge"), cho phép chuyển đổi các thành phần React Component sang Native Component tương ứng trên hệ điều hành di động.
  • Tailwind CSS: Khung giao diện lớp tiện ích (utility-first CSS framework), hoạt động theo cơ chế quét các tệp mã nguồn để sinh mã CSS tĩnh tương ứng, hỗ trợ bố cục linh hoạt thông qua Flexbox.
  • JSON Web Token (JWT - RFC 7519): Chuẩn mở định nghĩa phương thức truyền tin an toàn dưới dạng đối tượng JSON có chữ ký số (sử dụng thuật toán HMAC SHA256 hoặc mã hóa bất đối xứng RSA). Cấu trúc token gồm ba phần phân tách bằng dấu chấm: <Header>.<Payload>.<Signature>. Payload chứa ba loại claims: Registered claims (như iss, exp, sub, aud), Public claims và Private claims.

Phương pháp nghiên cứu được tác giả ứng dụng bao gồm:

  • Phương pháp khảo sát, phân tích so sánh hiện trạng: Khảo sát thực tế các tính năng, ưu điểm và hạn chế của hai nền tảng tiêu biểu là LinkedIn và Facebook.
  • Phương pháp mô hình hóa hướng đối tượng: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để thiết kế biểu đồ ca sử dụng (Use Case Diagram), đặc tả chi tiết kịch bản sử dụng và xây dựng các biểu đồ tuần tự (Sequence Diagram).
  • Phương pháp thiết kế cơ sở dữ liệu NoSQL: Xác định và chuẩn hóa các bộ sưu tập (collections/tables) tương ứng với các thực thể vận hành trong hệ thống.
  • Phương pháp kiểm thử phần mềm: Xây dựng bộ ca kiểm thử (test case) chức năng nhằm đánh giá tính chính xác của các luồng nghiệp vụ.

Nguồn dữ liệu của nghiên cứu bao gồm các chuẩn kỹ thuật quốc tế (RFC 7519), tài liệu đặc tả kỹ thuật từ nhà phát triển công nghệ (Node.js, ExpressJS, MongoDB, React) và các dữ liệu khảo sát nghiệp vụ mạng xã hội thực tế.


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 kết hợp giữa Backend cung cấp dịch vụ dữ liệu và Frontend tương tác người dùng:

  • Kiến trúc phần mềm: Backend đóng vai trò máy chủ xử lý trung gian, tiếp nhận các yêu cầu HTTP/HTTPS thông qua cổng giao tiếp RESTful API do ExpressJS thiết lập. Hệ thống xác thực danh tính người dùng bằng chuỗi mã hóa JWT gửi kèm trong phần tiêu đề (HTTP Header) của mỗi yêu cầu truy cập tài nguyên được bảo vệ. Tầng dữ liệu tương tác trực tiếp với cơ sở dữ liệu MongoDB thông qua các trình điều khiển (drivers), quản lý các thao tác đọc/ghi vào bộ nhớ và tệp tin qua storage engine.
  • Thiết kế cơ sở dữ liệu: Đồ án xây dựng cơ cấu lưu trữ dữ liệu phi quan hệ gồm 10 bảng/bộ sưu tập (collection) chính để đảm bảo đầy đủ các mối quan hệ nghiệp vụ:
Tên bảng / Bộ sưu tập Khóa / Nhận diện Mô tả chức năng dữ liệu trong đồ án
user Bảng 21 Lưu trữ thông tin tài khoản người dùng, mật khẩu, hồ sơ cá nhân và trạng thái hoạt động
job Bảng 22 Lưu trữ thông tin tin tuyển dụng, tiêu đề công việc, mô tả, yêu cầu và thông tin doanh nghiệp đăng tuyển
emailToken Bảng 23 Quản lý chuỗi mã xác thực (mã OTP) phục vụ quy trình xác thực email khi đăng ký tài khoản
connection Bảng 24 Ghi nhận các liên kết mạng lưới quan hệ công việc giữa các người dùng trong hệ thống
comment Bảng 25 Quản lý các phản hồi, bình luận của người dùng trên các bài viết chuyên môn
post Bảng 26 Lưu trữ nội dung bài đăng (bài viết, hình ảnh, bài chia sẻ kiến thức nghề nghiệp) trên dòng thời gian
authToken Bảng 27 Quản lý mã phiên đăng nhập và mã làm mới để duy trì trạng thái xác thực người dùng an toàn
chat Bảng 28 Thiết lập các phòng hội thoại, định danh phiên trao đổi tin nhắn giữa các người dùng
message Bảng 29 Chi tiết nội dung tin nhắn văn bản, tệp đính kèm và thời gian gửi trong các đoạn chat
relationship Bảng 30 Quản lý trạng thái quan hệ tương tác mở rộng (trạng thái gửi lời mời kết nối, chấp thuận, từ chối)
  • Thiết kế giao diện và xử lý luồng thao tác:

    • Quy trình đăng ký tài khoản mới được chia thành quy trình chuẩn hóa gồm 5 bước (Hình 25 đến Hình 30), hỗ trợ phân loại người dùng theo đối tượng "học sinh/sinh viên" hoặc người "đã có kinh nghiệm làm việc", kích hoạt tài khoản thông qua xác thực mã OTP gửi về email.
    • Quy trình khôi phục mật khẩu gồm 3 bước (Hình 32 đến Hình 34) sử dụng mã OTP để kiểm tra tính sở hữu tài khoản trước khi cho phép thiết lập mật khẩu mới.
    • Hệ thống cung cấp giao diện quản lý hồ sơ cá nhân (Profile và Edit Profile), bảng tin dòng thời gian (Post, Like, Comment), phòng trò chuyện trực tiếp (Chat), giao diện tìm kiếm người dùng và tìm kiếm việc làm, cùng giao diện đăng tin tuyển dụng (Post Job qua 3 bước) và nộp hồ sơ ứng tuyển (Apply Job).
  • Kiểm thử hệ thống: Tác giả xây dựng bảng kiểm thử chi tiết (Bảng 31) tập trung xác minh tính đúng đắn của các ca sử dụng then chốt: kiểm tra hợp lệ dữ liệu đầu vào khi đăng ký/đăng nhập, kiểm tra tính toàn vẹn của mã OTP, kiểm tra các thao tác tạo bài đăng, tải tệp, bình luận, tương tác kết nối và xử lý luồng ứng tuyển tin việc làm.


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

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

Chương 1 cung cấp tổng quan kỹ thuật về các công cụ và framework được lựa chọn để xây dựng nền tảng:

  • Phân tích cơ chế hoạt động, ưu điểm và hạn chế của ExpressJS; nhấn mạnh khả năng hỗ trợ middleware xử lý xác thực và hiệu năng đáp ứng yêu cầu đồng thời, đồng thời nêu rõ nhược điểm thiếu cấu trúc mặc định khắt khe dẫn đến khó khăn trong quản lý mã nguồn khi quy mô ứng dụng mở rộng.
  • Làm rõ cấu trúc phân tầng của MongoDB (Application Layer và Data Layer) và cơ chế auto-sharding. Tác giả chỉ ra ưu điểm truy vấn nhanh của mô hình tài liệu (document-oriented) so với cơ sở dữ liệu quan hệ, nhưng ghi nhận nhược điểm tiêu tốn bộ nhớ và việc không hỗ trợ các phép nối (JOIN) phức tạp có thể gây dư thừa dữ liệu.
  • Định nghĩa kiến trúc RESTful API, nguyên lý sử dụng các phương thức HTTP tương ứng với các tác vụ CRUD.
  • Mô tả nguyên lý hoạt động của React Native thông qua cơ chế "Bridge" để chuyển đổi mã JavaScript thành thành phần giao diện gốc (Native Component) trên hệ điều hành di động, cùng việc ứng dụng Tailwind CSS để tối ưu hóa thiết kế giao diện bằng các lớp tiện ích.
  • Trình bày chi tiết chuẩn bảo mật JSON Web Token (JWT) theo tiêu chuẩn RFC 7519, phân tích cấu tạo 3 phần (Header, Payload, Signature) và các cơ chế xác thực danh tính người dùng trong hệ thống.

Chương 2: Khảo sát hiện trạng

Chương này thực hiện phân tích đối chuẩn thực tế hai nền tảng mạng xã hội đang dẫn đầu thị trường nhằm xác định yêu cầu nghiệp vụ cho đề tài:

Tiêu chí khảo sát Nền tảng LinkedIn (Trang Job) Nền tảng Facebook (Trang chủ)
Chức năng chính Xây dựng profile cá nhân; tìm kiếm và kết nối network; gửi tin nhắn LinkedIn Messaging; tìm kiếm và ứng tuyển việc làm; hỗ trợ hoạt động bán hàng (Sales) và tuyển dụng (Hiring). Trò chuyện, nhắn tin; chia sẻ hình ảnh, video, tin (story); tìm kiếm bạn bè qua email/số điện thoại/bạn chung; bán hàng online (Fanpage, trang cá nhân); gắn thẻ nhận diện khuôn mặt; tạo khảo sát biểu quyết.
Ưu điểm Dễ dàng tìm kiếm thông tin cá nhân; hỗ trợ mở rộng quan hệ nghề nghiệp; hỗ trợ xây dựng thương hiệu cá nhân; giao diện chuyên nghiệp và thân thiện. Giao diện hiện đại, dễ thao tác; hoàn toàn miễn phí; khả năng kết nối cộng đồng người dùng rộng lớn, xúc tiến cơ hội kinh doanh đa dạng.
Nhược điểm Người dùng bắt buộc phải sử dụng tài khoản trả phí mới có thể khai thác toàn bộ các tính năng nâng cao. Tiềm ẩn nguy cơ xâm phạm quyền riêng tư dữ liệu cá nhân; xuất hiện tình trạng lừa đảo, giả mạo thông tin.

Từ khảo sát trên, chương 2 phân loại chi tiết các yêu cầu hệ thống:

  • Yêu cầu chức năng:
    • Phân hệ cơ bản: Đăng nhập, đăng ký, chỉnh sửa thông tin người dùng, đăng xuất, quên mật khẩu.
    • Phân hệ mạng xã hội: Bình luận, thích bài post, đăng bài viết (article), nhắn tin trao đổi, báo cáo bài post vi phạm, thêm lời mời kết nối, phản hồi kết nối, hủy kết nối, xem danh sách mạng lưới kết nối cá nhân, quản trị viên xử lý báo cáo bài viết.
    • Phân hệ việc làm (Job): Đăng tin tuyển dụng, nộp hồ sơ ứng tuyển, đăng ký thông tin công ty, quản lý danh sách việc làm đã đăng, quản trị viên xử lý báo cáo tin tuyển dụng vi phạm.
    • Phân hệ tìm kiếm: Tìm kiếm thông tin người dùng, tìm kiếm cơ hội việc làm theo tiêu chí.
  • Yêu cầu phi chức năng: Đảm bảo giao diện người dùng thân thiện, dễ thao tác; tốc độ xử lý nghiệp vụ nhanh và chính xác; hệ thống đạt mức độ bảo mật thông tin cao; mã nguồn được tổ chức để thuận tiện cho công tác bảo trì, nâng cấp về sau.

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

Chương 3 trình bày lược đồ Use Case tổng quát (Hình 6) và đặc tả chi tiết luồng sự kiện cho từng ca sử dụng, phân chia theo các nhóm tác nhân:

  • Ca sử dụng đăng ký (UC-1.1 Register): Mô tả luồng cơ bản gồm 9 bước, xử lý việc nhập thông tin ban đầu, khai báo hồ sơ (profile theo diện có kinh nghiệm hoặc sinh viên), hệ thống sinh và gửi mã OTP, người dùng xác thực OTP trước khi chuyển sang trạng thái tài khoản hợp lệ. Đặt ra quy định nghiệp vụ: không được để trống thông tin, mật khẩu phải có độ dài lớn hơn 8 ký tự.
  • Ca sử dụng đăng nhập (UC-1.2 Sign in): Khách nhập thông tin định danh (email đúng định dạng và mật khẩu). Hệ thống kiểm tra thông tin, thực hiện phân quyền và cấp mã phiên hoạt động.
  • Ca sử dụng quên mật khẩu (UC-1.3 Forgot Password): Luồng cơ bản gồm 10 bước xử lý xác thực email qua mã OTP, cho phép thiết lập và xác nhận mật khẩu mới khi dữ liệu nhập vào trùng khớp.
  • Ca sử dụng tìm kiếm người dùng (UC-1.7 Search User) và tìm kiếm công việc (UC-1.7 Search Job): Tiếp nhận từ khóa từ thanh tìm kiếm, truy vấn dữ liệu theo tên người dùng, tên công việc hoặc vị trí tuyển dụng và trả về danh sách kết quả phù hợp.
  • Ca sử dụng đăng xuất (UC-1.2 Sign out): Xóa bỏ trạng thái phiên đăng nhập của người dùng khỏi hệ thống.
  • Ca sử dụng cập nhật thông tin cá nhân (UC-1.4 Edit Profile): Cho phép người dùng chỉnh sửa và cập nhật các thông tin mô tả bản thân trên giao diện profile cá nhân.
  • Ca sử dụng kết nối (UC-1.8 Add Connection): Người dùng tìm kiếm đối tượng, truy cập trang cá nhân và gửi yêu cầu thiết lập mối quan hệ trong mạng lưới.
  • Ca sử dụng đăng bài (UC-1.10 Post Article): Tiếp nhận nội dung văn bản, tệp đính kèm và kiểm tra tính hợp lệ trước khi hiển thị bài viết lên trang chính.
  • Các ca sử dụng khác được lập bảng đặc tả bao gồm: Bình luận bài viết (UC-1.10 Comment Post), Thích bài viết (UC-1.11 Like Post), Trò chuyện (UC-1.12 Chat), Xem danh sách kết nối (UC-1.13 View Connection), Hủy kết nối (UC-1.14 Remove Connection), Đăng tin tuyển dụng (UC-1.15 Post Job), Ứng tuyển công việc (UC-1.16 Apply Job), Quản lý tin tuyển dụng (UC-1.17 Manage Job), Quản lý người dùng (UC-1.18 Manage User), Quản lý báo cáo công việc (UC-1.19 Manage Report Job), và Quản lý báo cáo bài đăng (UC-1.20 Manage Report Post).

Chương 4: Thiết kế phần mềm

Chương 4 cụ thể hóa kiến trúc tĩnh và động của hệ thống:

  • Thiết kế động: Xây dựng 17 lược đồ tuần tự (Sequence Diagram) tương ứng với các luồng nghiệp vụ chính của hệ thống từ Hình 7 đến Hình 23 (Register, Sign in, Sign out, Edit Profile, Forgot Password, Search User, Search Job, Add Connection, Post Article, Comment Post, Like Post, Chat, View Connection, Remove Connection, Post Job, Apply Job, Manage Job). Mỗi lược đồ chỉ rõ sự tương tác giữa tác nhân người dùng, lớp giao diện (Boundary/View), lớp điều khiển logic (Controller) và lớp cơ sở dữ liệu (Model/Database).
  • Thiết kế tĩnh: Trình bày lược đồ cơ sở dữ liệu tổng thể (Hình 24) và chi tiết cấu trúc dữ liệu của 10 bảng/bộ sưu tập (từ Bảng 21 đến Bảng 30) phục vụ việc lưu trữ thực thể người dùng, công việc, tin nhắn, bài đăng và các token xác thực.

Chương 5: Thiết kế giao diện và xử lý

Chương 5 minh họa cấu trúc và cách bố trí của hệ thống giao diện người dùng thông qua 28 màn hình chức năng (từ Hình 25 đến Hình 52):

  • Bộ giao diện đăng ký tài khoản (Hình 25 đến Hình 30): Phân tách các bước nhập dữ liệu cơ bản, chọn trạng thái học vấn/nghề nghiệp, nhập mã xác thực OTP.
  • Giao diện đăng nhập và quy trình đổi mật khẩu 3 bước qua mã OTP (Hình 31 đến Hình 34).
  • Giao diện bảng tin trang chủ (Hình 36), giao diện đăng bài viết (Hình 51), giao diện bình luận và thích bài viết (Hình 52).
  • Giao diện phòng hội thoại nhắn tin cá nhân (Hình 35).
  • Giao diện tìm kiếm việc làm (Hình 37), tìm kiếm người dùng (Hình 38), danh sách kết nối (Hình 39), trang hồ sơ cá nhân và bảng chỉnh sửa thông tin (Hình 40, 41).
  • Giao diện quy trình đăng tin tuyển dụng qua 3 bước (Hình 42 đến Hình 45), giao diện xem chi tiết công việc (Hình 46), và quy trình nộp hồ sơ ứng tuyển theo từng bước (Hình 47 đến Hình 50).

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

Chương 6 tập trung vào công tác tích hợp hệ thống và kiểm thử chất lượng:

  • Tích hợp các thành phần mã nguồn giao diện (React, React Native), bộ khung định tuyến và xử lý logic (ExpressJS), cùng cơ sở dữ liệu (MongoDB).
  • Bảng kiểm thử (Bảng 31) ghi nhận các ca thử nghiệm chức năng, kiểm tra các trường dữ liệu bắt buộc, tính chính xác của cơ chế xác thực OTP, tính đúng đắn khi thực hiện kết nối mạng lưới bạn bè, kiểm soát hiển thị bài đăng và quy trình nộp hồ sơ xin việc của ứng viên.

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

Về mặt kết quả thực tế, đề tài đã hoàn thành các mục tiêu đề ra theo đề cương nghiên cứu:

  • Xây dựng thành công hệ thống mạng xã hội nghề nghiệp tích hợp đầy đủ hai mảng nghiệp vụ: tương tác mạng xã hội (đăng bài, thích, bình luận, kết nối quan hệ, nhắn tin trực tuyến) và tìm kiếm việc làm (đăng tin tuyển dụng, tìm kiếm cơ hội nghề nghiệp, nộp hồ sơ ứng tuyển).
  • Triển khai thành công kiến trúc Backend dựa trên ExpressJS và RESTful API, liên kết cơ sở dữ liệu MongoDB thông qua 10 bảng dữ liệu được chuẩn hóa.
  • Ứng dụng thành công cơ chế xác thực bảo mật tài khoản sử dụng JSON Web Token kết hợp quy trình gửi mã OTP phục vụ đăng ký và lấy lại mật khẩu.
  • Thiết kế hệ thống giao diện người dùng trực quan gồm 28 màn hình chức năng, đáp ứng các luồng thao tác từ cơ bản đến nâng cao.

Về mặt đóng góp:

  • So với nền tảng LinkedIn: Đề tài hướng tới việc cung cấp giải pháp miễn phí các tính năng kết nối và tìm việc cơ bản cho đối tượng người đi làm và người tìm việc, hạn chế sự phụ thuộc vào các gói tài khoản trả phí đắt đỏ.
  • So với nền tảng Facebook: Đề tài xây dựng một không gian mạng xã hội chuyên biệt, tập trung vào môi trường nghề nghiệp, giảm thiểu rủi ro giả mạo thông tin và bảo vệ quyền riêng tư người dùng thông qua các luồng xác minh tài khoản rõ ràng.

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

Về mặt hạn chế:

  • Thời gian thực hiện đồ án bị giới hạn trong khoảng 4 tháng, dẫn đến việc hệ thống mới chỉ hiện thực hóa được các chức năng nền tảng cơ bản.
  • Tác giả tự đánh giá kiến thức và kỹ năng lập trình của bản thân còn một số điểm hạn chế, hệ thống khó tránh khỏi những thiếu sót trong quá trình triển khai thực tế.
  • Các hạn chế mang tính kỹ thuật được văn bản chỉ ra trong quá trình lựa chọn công nghệ: ExpressJS không quy định cấu trúc mã nguồn chặt chẽ, dễ gây khó khăn khi mở rộng dự án ở quy mô lớn; MongoDB không hỗ trợ phép nối phức tạp dẫn đến việc tồn tại một số dữ liệu dư thừa và tiêu tốn nhiều dung lượng bộ nhớ; React Native có thể gặp hiện tượng suy giảm hiệu năng khi xử lý các tác vụ đồ họa chuyên sâu hoặc xử lý qua lại quá nhiều tương tác phức tạp qua cầu nối (Bridge).

Về hướng phát triển tiếp:

  • Hoàn thiện và mở rộng các mô-đun chức năng nâng cao phục vụ việc quản lý doanh nghiệp và quản lý báo cáo sai phạm bài viết/tin tuyển dụng dành cho Quản trị viên (Admin).
  • Tối ưu hóa cấu trúc mã nguồn Backend và cấu trúc dữ liệu NoSQL để cải thiện hiệu suất xử lý truy vấn và tiết kiệm bộ nhớ lưu trữ.
  • Nghiên cứu khắc phục các hạn chế về hiệu năng giao tiếp của cầu nối trong ứng dụng di động khi tích hợp thêm các tính năng tương tác đa phương tiện phức tạp.

Giá trị tham khảo

Đồ án tốt nghiệp là tài liệu tham khảo hữu ích cho:

  • Sinh viên chuyên ngành Công nghệ phần mềm và Công nghệ thông tin: Có thể sử dụng đồ án làm tài liệu mẫu cho quy trình thực hiện một khóa luận tốt nghiệp kỹ sư, từ khâu khảo sát hiện trạng, lập đề cương, phân tích yêu cầu bằng UML đến thiết kế cơ sở dữ liệu và triển khai mã nguồn.
  • Lập trình viên phát triển ứng dụng Fullstack (JavaScript/MERN Stack): Tài liệu cung cấp cơ sở lý thuyết và quy trình triển khai chi tiết cho việc kết hợp ExpressJS, MongoDB, RESTful API và React/React Native, đặc biệt là cơ chế quản lý xác thực bằng JSON Web Token (JWT) và mã OTP.
  • Người nghiên cứu các hệ thống mạng xã hội tích hợp tuyển dụng: Tham khảo được bản đặc tả Use Case chi tiết gồm luồng cơ bản, luồng thay thế, luồng ngoại lệ và quy định nghiệp vụ cho các tính năng liên quan đến việc làm (Post Job, Apply Job) và kết nối xã hội (Add Connection, Chat, Post Article).

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

1. Đồ án áp dụng quy trình xác thực người dùng như thế nào khi đăng ký tài khoản mới?
Theo ca sử dụng UC-1.1 (Register), quy trình đăng ký gồm 5 bước màn hình. Khách nhập thông tin cá nhân và thiết lập thông tin hồ sơ (phân loại là người đã có kinh nghiệm hoặc học sinh/sinh viên). Hệ thống sẽ tạo tài khoản, sinh mã OTP lưu tại bảng emailToken và gửi về email người dùng. Sau khi người dùng nhập đúng mã OTP, hệ thống mới chính thức xác thực tài khoản và cho phép đăng nhập.

2. Cơ chế bảo mật và phân quyền sau khi đăng nhập được hệ thống hiện thực bằng công nghệ gì?
Hệ thống sử dụng tiêu chuẩn JSON Web Token (JWT - RFC 7519) kết hợp cùng bảng authToken. Khi người dùng đăng nhập thành công với email và mật khẩu hợp lệ, máy chủ tạo một JWT có chữ ký số (sử dụng thuật toán HMAC SHA256 hoặc RSA). Trong các yêu cầu truy cập tài nguyên tiếp theo qua RESTful API, phía máy khách gửi kèm JWT này trong tiêu đề HTTP để máy chủ xác minh tính toàn vẹn và cấp quyền thao tác.

3. Khảo sát hiện trạng trong đồ án đã chỉ ra những điểm hạn chế lớn nhất của LinkedIn và Facebook là gì?
Tác giả xác định nhược điểm chính của LinkedIn là người dùng phải nâng cấp lên tài khoản trả phí mới có thể khai thác được toàn bộ các tính năng hữu ích. Trong khi đó, nhược điểm của Facebook là môi trường thiếu tính chuyên biệt cho nghề nghiệp, dễ phát sinh các vấn đề xâm phạm quyền riêng tư dữ liệu cá nhân, cũng như xuất hiện các hành vi lừa đảo và mạo danh.

4. Cơ sở dữ liệu MongoDB của hệ thống được thiết kế gồm những bảng/bộ sưu tập (collection) nào?
Đồ án thiết kế 10 bộ sưu tập dữ liệu cụ thể từ Bảng 21 đến Bảng 30 gồm: user (thông tin người dùng), job (thông tin tuyển dụng), emailToken (mã OTP xác thực email), connection (liên kết bạn bè), comment (bình luận bài viết), post (bài viết trên mạng xã hội), authToken (mã phiên làm việc), chat (phòng hội thoại), message (nội dung tin nhắn), và relationship (trạng thái tương tác quan hệ).

5. Thời gian thực hiện và lộ trình các mốc công việc của khóa luận diễn ra như thế nào?
Đồ án được thực hiện trong 4 tháng (từ ngày 20/02/2025 đến ngày 20/06/2025), chia thành 7 mốc công việc: khảo sát hiện trạng và thiết kế Use Case/CSDL (19/02 - 05/03/2025); nghiên cứu công nghệ React, React Native, ExpressJS (06/03 - 13/03/2025); tìm hiểu JWT, MongoDB, RESTful API (14/03 - 21/03/2025); phát triển API và xây dựng giao diện (22/03 - 22/04/2025); kết hợp các phân hệ và tinh chỉnh (23/04 - 23/05/2025); kiểm thử và sửa lỗi (23/05 - 30/05/2025); hoàn thiện báo cáo tốt nghiệp (31/05 - 09/06/2025).


Kết luận

Khóa luận tốt nghiệp của sinh viên Nguyễn Quốc Toản đã giải quyết trọn vẹn mục tiêu nghiên cứu thông qua việc thiết kế và xây dựng thành công mạng xã hội nghề nghiệp tích hợp tính năng tìm kiếm việc làm cho người lao động. Đề tài áp dụng bài bản quy trình kỹ thuật phần mềm chuẩn mực từ khảo sát hiện trạng, phân tích mô hình hóa bằng ngôn ngữ UML đến thiết kế kiến trúc hệ thống phân tầng trên nền tảng ExpressJS, MongoDB và React Native. Các kết quả thực nghiệm và hệ thống giao diện chức năng trong khóa luận cung cấp nguồn tư liệu học thuật và kỹ thuật có giá trị tham khảo thiết thực cho các nghiên cứu và ứng dụng phát triển phần mềm Fullstack tương tự.