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

Trong bối cảnh nền kinh tế phát triển, nhu cầu kết nối nhân lực giữa các doanh nghiệp tuyển dụng và người tìm việc tại Việt Nam gia tăng đáng kể. Tuy nhiên, các phương thức tuyển dụng truyền thống như nộp hồ sơ giấy trực tiếp hoặc đăng bài tìm việc trên các diễn đàn chuyên môn bộc lộ nhiều hạn chế về mặt thời gian, chi phí và hiệu quả quản lý cơ sở dữ liệu ứng viên quy mô lớn.

Vấn đề thực tiễn được tác giả đặt ra trong đồ án gồm ba khía cạnh then chốt:

  1. Thiếu hiệu quả trong quản lý nội dung: Các website tuyển dụng tự xây dựng của doanh nghiệp thường không cập nhật dữ liệu thường xuyên, nội dung thiếu đa dạng, dẫn đến giảm sút lượng người dùng tương tác.
  2. Năng lực quản lý và quảng bá hạn chế: Nhiều doanh nghiệp thiếu kinh nghiệm và năng lực chuyên sâu để vận hành một nền tảng tuyển dụng số hiệu quả, gây lãng phí nguồn lực đầu tư.
  3. Quy trình tuyển dụng thủ công kéo dài: Khối lượng dữ liệu ứng viên gia tăng khiến doanh nghiệp gặp trở ngại trong việc sàng lọc hồ sơ, phản hồi qua thư điện tử thủ công, dẫn đến lãng phí thời gian và làm giảm hiệu suất vận hành.

Mục tiêu tổng quát của đề tài là xây dựng hoàn chỉnh hệ thống website tuyển dụng PandaJob (Job Panda) nhằm kết nối trực tuyến giữa nhà tuyển dụng và ứng viên trên một nền tảng hỗ trợ đa người dùng và quy trình vận hành toàn diện. Các nhiệm vụ nghiên cứu được phân định thành 7 phần cụ thể theo đề cương luận văn:

  1. Nghiên cứu và phân tích yêu cầu: Thu thập yêu cầu thực tế của hệ thống quản lý tuyển dụng, xác định danh mục tính năng cần thiết, phân tích phương án triển khai bằng ReactJS và Spring Boot.
  2. Thiết kế cơ sở dữ liệu: Xác định cấu trúc dữ liệu quan hệ phục vụ lưu trữ thông tin việc làm, hồ sơ và quản lý người dùng.
  3. Phát triển giao diện Front-end với ReactJS: Xây dựng các trang hiển thị danh sách công việc, quản lý ứng viên và các mô-đun tương tác người dùng.
  4. Phát triển Back-end với Spring Boot: Xây dựng và triển khai hệ thống API quản lý dữ liệu, tiếp nhận yêu cầu từ client và tương tác với cơ sở dữ liệu.
  5. Tích hợp và kiểm thử: Kết hợp hai khối Front-end và Back-end, tiến hành kiểm thử tích hợp nhằm đảm bảo hệ thống vận hành đồng bộ, chính xác.
  6. Bảo mật và tối ưu hóa: Thiết lập cơ chế bảo mật dữ liệu, xác thực người dùng và tối ưu hiệu suất xử lý hệ thống.
  7. Tài liệu hóa và báo cáo: Lập tài liệu kỹ thuật, hướng dẫn sử dụng và báo cáo chi tiết về tiến trình phát triển, thử nghiệm và triển khai.
  • Đối tượng nghiên cứu: Quy trình quản lý tuyển dụng lao động và các phương pháp kỹ thuật xây dựng ứng dụng web phân tán.
  • Phạm vi nghiên cứu: Triển khai mô hình website tuyển dụng thương mại điện tử; thời gian thực hiện đề tài từ ngày 10/08/2024 đến ngày 10/12/2024 tại Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.

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

Đồ án được thực hiện dựa trên các nguyên lý kỹ thuật phần mềm hiện đại và khảo sát thực nghiệm hệ thống:

  • Khung kiến trúc và mô hình lý thuyết: Ứng dụng mô hình kiến trúc phân tầng (Tiered Architecture), mô hình MVC (Model - View - Controller), các nguyên tắc cốt lõi của Spring Framework như Dependency Injection (DI) và Lập trình hướng khía cạnh (Aspect Oriented Programming - AOP). Phía giao diện ứng dụng cơ chế ảo hóa Virtual DOM, ràng buộc dữ liệu một chiều (One-Way Data Binding), kiến trúc quản lý trạng thái tập trung (Flux/Redux) và chuẩn ngôn ngữ JSX.
  • Phương pháp nghiên cứu thực tế:
    • Phương pháp phân tích và so sánh đối sánh (Benchmarking): Tiến hành khảo sát, phân tích ưu nhược điểm, tính năng và lưu lượng truy cập của 4 website tuyển dụng đang vận hành tại Việt Nam và quốc tế (TopCV, LinkedIn, Indeed, VietnamWorks).
    • Phương pháp kỹ nghệ yêu cầu (Requirements Engineering): Xây dựng hồ sơ người dùng đại diện (User Persona) và thiết lập kịch bản tương tác (Scenarios) chi tiết cho từng nhóm tác nhân trong hệ thống.
    • Phương pháp mô hình hóa hướng đối tượng: Ứng dụng ngôn ngữ mô hình hóa UML để xây dựng biểu đồ use case, đặc tả use case, sơ đồ lớp (Class Diagram) và sơ đồ tuần tự (Sequence Diagram).
  • Nguồn dữ liệu: Dữ liệu đặc tả chức năng từ khảo sát thực tế, dữ liệu thông số hoạt động của các hệ thống tuyển dụng đối chiếu, và cơ sở dữ liệu mô phỏng việc làm - ứng viên lưu trữ trên hệ quản trị cơ sở dữ liệu quan hệ MySQL tuân thủ tiêu chuẩn ANSI SQL.

Thiết kế và triển khai

Hệ thống PandaJob được xây dựng theo kiến trúc ba tầng độc lập (3-tier architecture): Tầng giao diện người dùng (Front-end), tầng logic nghiệp vụ (Back-end) và tầng cơ sở dữ liệu (Database).

Tầng kiến trúc Công nghệ sử dụng Thành phần / Vai trò kỹ thuật chính
Front-end ReactJS, JavaScript (JSX), Redux, HTML/CSS Chia thành các components độc lập có thể tái sử dụng: Header, Footer, SideBar, NavBar, Home, JobList, JobDetail, Event, CompanyList, CompanyDetail, Profile, Login, SignUp, Logout, CVBuild, Job-recruiter, Google Calendar, Interview. Khởi tạo bằng create-react-app.
Back-end Java Spring Boot Cấu trúc phân lớp: Controller (tiếp nhận HTTP Request, xác thực, chuyển đổi JSON - Java Object), Service (xử lý logic nghiệp vụ), Repository (truy vấn, thao tác dữ liệu qua JPA), Database Layer.
Cơ sở dữ liệu MySQL (RDBMS) Lưu trữ quan hệ, quản lý các bảng người dùng, bài đăng tuyển dụng, hồ sơ ứng viên, phòng phỏng vấn; hỗ trợ đa nền tảng và tối ưu hóa truy vấn SQL.
Tích hợp ngoại vi Google Calendar API, Google Meet Tự động hóa lịch phỏng vấn, tạo phòng họp trực tuyến và gửi thông tin qua thư điện tử.
Kiểm thử & CI/CD JUnit (Unit Test), GitHub Actions Kiểm thử đơn vị các hàm xử lý logic và thiết lập quy trình tự động hóa tích hợp/triển khai liên tục (CI/CD) qua GitHub.

Luồng xử lý dữ liệu (Workflow) của hệ thống: Khi có yêu cầu HTTP gửi từ Client, tầng Controller tiếp nhận, thực hiện tiền xử lý và xác thực, sau đó chuyển giao cho Service Layer để thực hiện logic nghiệp vụ. Service Layer tương tác với cơ sở dữ liệu thông qua Repository Layer bằng cơ chế JPA để ánh xạ dữ liệu quan hệ thành các thực thể (Model/Entity class). Kết quả xử lý được phản hồi ngược về Controller, chuyển đổi thành định dạng JSON và truyền trả lại cho giao diện người dùng ReactJS.

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

Chương 1: Cơ sở lý thuyết và các công nghệ được sử dụng

Chương này hệ thống hóa các nền tảng kỹ thuật nền tảng của hệ thống:

  • Kiến trúc tổng quan: Phân tích mô hình tương tác giữa ReactJS, Spring Boot và MySQL, quy định rõ trách nhiệm xử lý của từng tầng.
  • Phân tích chi tiết các module của ReactJS: Cơ chế tối ưu hóa tốc độ cập nhật giao diện bằng Virtual DOM, phân biệt giữa State và Props, phương thức vòng đời (Lifecycle Methods), cũng như việc quản lý trạng thái tập trung thông qua luồng dữ liệu một chiều của Redux/Flux.
  • Kiến trúc Spring Boot: Trình bày cấu trúc 4 tầng (Controller, Service, Repository, Database), các module chính trong Spring Framework Runtime (Core Container, Data Access/Integration, Web, AOP) và quy trình xử lý luồng yêu cầu (Request workflow).
  • Hệ quản trị cơ sở dữ liệu quan hệ MySQL: Trình bày các đặc tính về tính mở, độ tin cậy, chuẩn truy vấn SQL ANSI và khả năng mở rộng trong môi trường phân tán.

Chương 2: Khảo sát hiện trạng và xác định yêu cầu

Tác giả tiến hành khảo sát và đánh giá 4 nền tảng tuyển dụng tiêu biểu trên thị trường:

  1. TopCV: Nền tảng có lưu lượng truy cập lớn (khoảng 2 đến 3,45 triệu lượt/tháng), sở hữu công cụ tạo mẫu CV trực tuyến đa dạng, ứng dụng công nghệ Big Data và AI trong đề xuất việc làm; nhược điểm là chi phí đăng tin của nhà tuyển dụng cao và tệp ứng viên tập trung phần lớn vào nhóm mới tốt nghiệp.
  2. LinkedIn: Mạng xã hội nghề nghiệp quốc tế với hơn 300 triệu thành viên trên 200 quốc gia thuộc 170 ngành nghề; ưu thế lớn về kết nối mạng lưới chuyên nghiệp và tuyển dụng B2B; nhược điểm là mức độ cạnh tranh cao, nhiều tính năng chuyên sâu yêu cầu tài khoản trả phí.
  3. Indeed: Nền tảng toàn cầu thành lập năm 2005 với hơn 3 triệu nhà tuyển dụng và khoảng 3,45 triệu lượt truy cập/tháng tại Việt Nam; hệ thống tìm kiếm việc làm và đánh giá doanh nghiệp phong phú; nhược điểm là công việc chủ yếu đòi hỏi chuyên môn cao, chưa tối ưu cho sinh viên mới ra trường và thiếu chức năng thống kê thị trường định kỳ.
  4. VietnamWorks: Đơn vị thành lập từ năm 2002 thuộc Navigos Group, đạt khoảng 600.000 đến 3,1 triệu lượt truy cập/tháng; có các tiện ích như WowCV, Nhân số học, Lộ trình sự nghiệp; nhược điểm là nguồn việc làm ngành công nghệ thông tin chưa phong phú và chính sách thu phí đối với nhà tuyển dụng.

Dựa trên khảo sát, tác giả xây dựng 3 kịch bản người dùng (User Persona) cụ thể nhằm định hình yêu cầu hệ thống:

  • Kịch bản 1 - Nguyễn Vũ Minh Quân (23 tuổi, lập trình viên Front-end, TP.HCM): Nhu cầu tìm việc làm phù hợp với các từ khóa kỹ thuật (ReactJS, HTML, CSS, JavaScript); cần bộ lọc tìm kiếm theo lương và địa điểm; sử dụng công cụ tạo CV trực tuyến (Build MyCV) ngay trên website để nộp hồ sơ trực tiếp mà không cần đến công ty.
  • Kịch bản 2 - Nguyễn Lê Quốc Khánh (24 tuổi, Quản lý tuyển dụng tại công ty Hasaki, TP.HCM): Nhu cầu tuyển dụng 2 nhân sự phòng nhân sự toàn thời gian (lương khởi điểm 10 triệu đồng); yêu cầu hệ thống hỗ trợ đăng bài tuyển dụng, đăng tải sự kiện công ty, tạo tài khoản cho người phỏng vấn (Interviewer), thiết lập phòng phỏng vấn trực tuyến và liên kết Google Calendar để gửi thông báo tự động.
  • Kịch bản 3 - Lê Đình Anh Khoa (24 tuổi, Quản lý nhân sự phụ trách phỏng vấn và đào tạo tại Hasaki, Quảng Ngãi): Nhu cầu tiếp nhận danh sách phòng phỏng vấn đã được phân công; truy cập thông tin CV của ứng viên; sử dụng đường dẫn Google Meet tích hợp sẵn; khởi tạo danh sách tiêu chí/câu hỏi phỏng vấn trực tiếp trên giao diện để chấm điểm và để hệ thống tự động tính điểm trung bình; cho phép điều chỉnh lịch phỏng vấn linh hoạt và tự động đồng bộ qua Google Calendar của các bên liên quan.

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

Chương 3 tập trung chuyển hóa các yêu cầu người dùng thành các mô hình kỹ thuật chi tiết:

  • Thiết kế giao diện: Xây dựng bản mẫu màn hình phân chia theo ba nhóm người dùng: giao diện công cộng (dành cho người tìm việc: xem danh sách, lọc việc làm, tạo CV), giao diện quản lý tuyển dụng (dành cho nhà tuyển dụng và người phỏng vấn: quản lý tin tuyển dụng, phòng họp, chấm điểm) và giao diện quản trị viên (Admin: quản lý tài khoản, kiểm duyệt nội dung).
  • Mô hình hóa chức năng: Xây dựng biểu đồ use case tổng quát và các use case chi tiết; thiết lập bảng đặc tả use case cho từng hành vi (đăng ký, nộp hồ sơ, tạo phòng phỏng vấn, chấm điểm).
  • Thiết kế tĩnh và động: Xây dựng biểu đồ lớp (Class Diagram) định nghĩa các thực thể và mối quan hệ phương thức; thiết lập lược đồ cơ sở dữ liệu quan hệ (Entity-Relationship Database Schema); xây dựng các biểu đồ tuần tự (Sequence Diagram) mô tả tiến trình truyền nhận thông điệp giữa client, server và database trong các tác vụ then chốt.

Chương 4: Kiểm thử và triển khai hệ thống

  • Kiểm thử đơn vị (Unit Test): Sử dụng các công cụ kiểm thử đơn vị tự động để kiểm tra tính chính xác của các hàm xử lý dữ liệu và logic nghiệp vụ phía Back-end.
  • Tự động hóa triển khai: Thiết lập quy trình CI/CD tích hợp qua nền tảng GitHub nhằm kiểm tra mã nguồn tự động, hợp nhất các nhánh phát triển và tự động hóa các bước triển khai phần mềm lên môi trường máy chủ.

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

Đồ án đã hoàn thành các mục tiêu kỹ thuật đề ra, cung cấp một nền tảng tuyển dụng hoạt động đồng bộ với các kết quả cụ thể:

  1. Xây dựng thành công hệ sinh thái chức năng phân quyền hoàn chỉnh cho 4 vai trò tác nhân:
    • Ứng viên: Tra cứu việc làm bằng bộ lọc đa tiêu chí (địa điểm, mức lương, ngành nghề); trực tiếp tạo và tải hồ sơ xin việc thông qua mô-đun CVBuild; nộp hồ sơ trực tuyến và theo dõi lịch phỏng vấn.
    • Nhà tuyển dụng: Đăng tải và chỉnh sửa tin tuyển dụng; tạo hồ sơ công ty và sự kiện; quản lý danh sách ứng viên nộp hồ sơ; phân quyền và khởi tạo tài khoản cho chuyên viên phỏng vấn (Interviewer).
    • Chuyên viên phỏng vấn (Interviewer): Quản lý các phòng phỏng vấn được giao; sử dụng liên kết Google Meet tích hợp; tạo bảng câu hỏi đánh giá theo tiêu chí riêng; chấm điểm trực tiếp trên hệ thống với cơ chế tự động tính điểm trung bình.
    • Quản trị viên (Admin): Giám sát hệ thống, kiểm duyệt nội dung tin tuyển dụng và quản lý tài khoản người dùng.
  2. Tích hợp các dịch vụ bên ngoài nhằm tự động hóa quy trình: Đồng bộ lịch biểu phỏng vấn trực tiếp vào Google Calendar và gửi thư điện tử thông báo tự động đến ứng viên và người phỏng vấn.
  3. Đóng góp kỹ thuật: So với các nghiên cứu và sản phẩm đơn lẻ thông thường chỉ tập trung vào khâu đăng tin và nộp hồ sơ, đồ án đã giải quyết khép kín chu trình tuyển dụng trực tuyến—từ bước tìm kiếm, tạo CV, nộp hồ sơ, đến khâu phân chia phòng phỏng vấn, kết nối phòng họp trực tuyến và tính điểm đánh giá ứng viên tập trung.

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

Căn cứ trên phạm vi thiết kế và nội dung văn bản luận văn, đồ án tồn tại một số điểm giới hạn và các hướng phát triển mở:

  • Hạn chế:
    • Hệ thống mới dừng lại ở việc xử lý dữ liệu theo các tiêu chí lọc cơ bản, chưa tích hợp các thuật toán trí tuệ nhân tạo (AI) học sâu để gợi ý công việc dựa trên ngữ nghĩa của CV hoặc phân tích dữ liệu lớn (Big Data) như các nền tảng thương mại quy mô lớn (TopCV, Indeed).
    • Chưa mở rộng tích hợp các cổng thanh toán điện tử trực tuyến phục vụ việc thu phí dịch vụ đăng tin tuyển dụng cao cấp.
  • Hướng nghiên cứu tiếp theo:
    • Bổ sung công nghệ AI nhằm tự động phân tích kỹ năng trong CV và chấm điểm độ tương thích giữa hồ sơ ứng viên với bản mô tả công việc (JD).
    • Xây dựng mô-đun phân tích và thống kê nhu cầu tuyển dụng của thị trường lao động theo từng chu kỳ hàng tháng để cung cấp thông tin định hướng nghề nghiệp cho người tìm việc.
    • Tối ưu hóa giao diện ứng dụng trên nền tảng thiết bị di động (Mobile Application) độc lập.

Giá trị tham khảo

Đồ án tốt nghiệp này mang lại giá trị tham khảo hữu ích cho các đối tượng sau:

  • Sinh viên chuyên ngành Công nghệ phần mềm và Công nghệ thông tin: Đồ án là tài liệu tham khảo thực tế về mô hình xây dựng ứng dụng web phân tán sử dụng kiến trúc Full-stack với Spring Boot và ReactJS, cung cấp mẫu thiết kế cơ sở dữ liệu quan hệ và mô hình phân tầng Controller - Service - Repository.
  • Nhà phát triển hệ thống quản lý nhân sự/tuyển dụng: Tham khảo giải pháp thiết kế luồng quy trình đánh giá ứng viên, đặc biệt là cơ chế phân tách giữa tài khoản nhà quản trị tuyển dụng và người phỏng vấn (Interviewer), cùng giải pháp tích hợp Google Calendar và Google Meet vào chu trình phỏng vấn trực tuyến.
  • Phần có giá trị tham khảo cao nhất trong tài liệu: Kịch bản người dùng (User Personas) tại Chương 2 mô tả tường minh hành vi, kỳ vọng và khó khăn của từng vai trò, cùng các biểu đồ phân tích thiết kế hệ thống (Use Case, Class Diagram, Sequence Diagram) tại Chương 3.

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

1. Hệ thống PandaJob phân quyền cho những nhóm người dùng nào và chức năng của người phỏng vấn (Interviewer) có điểm gì đặc thù?

Hệ thống phân quyền cho 4 nhóm tác nhân: Ứng viên (Candidate), Nhà tuyển dụng (Recruiter/Employer), Người phỏng vấn (Interviewer) và Quản trị viên (Admin). Điểm đặc thù của vai trò Interviewer là không cần tự thiết lập bảng câu hỏi bên ngoài; hệ thống cho phép người phỏng vấn truy cập danh sách phòng họp được phân công, lấy đường dẫn Google Meet, tạo bộ câu hỏi riêng cho từng ứng viên, chấm điểm trực tiếp trên web và hệ thống sẽ tự động tính điểm trung bình cộng để báo cáo lại cho người quản lý tuyển dụng.

2. Các công nghệ nền tảng nào được lựa chọn để xây dựng hai khối Front-end và Back-end của đồ án?

Khối Front-end được phát triển bằng thư viện ReactJS (sử dụng cấu trúc component, JSX, Virtual DOM và Redux để quản lý trạng thái). Khối Back-end được phát triển bằng Java Spring Boot dựa trên kiến trúc phân tầng (Controller, Service, Repository, Database Layer) kết hợp cơ chế Spring Data JPA để tương tác với hệ quản trị cơ sở dữ liệu quan hệ MySQL.

3. Tác giả đã tiến hành khảo sát và đánh giá những nền tảng tuyển dụng nào trước khi thiết kế hệ thống?

Tác giả đã tiến hành khảo sát chi tiết 4 website tuyển dụng gồm: TopCV (nổi bật về mẫu CV và ứng dụng AI/Big Data), LinkedIn (mạng xã hội việc làm doanh nghiệp với hơn 300 triệu người dùng), Indeed (nền tảng tìm kiếm việc làm toàn cầu thành lập năm 2005) và VietnamWorks (website tuyển dụng lâu năm tại Việt Nam từ năm 2002 thuộc Navigos Group).

4. Quy trình tích hợp lịch phỏng vấn và họp trực tuyến trên website PandaJob được thực hiện như thế nào?

Khi nhà tuyển dụng hoặc người phỏng vấn tạo phòng phỏng vấn và thêm ứng viên, hệ thống sẽ liên kết với tài khoản Google để thiết lập lịch hẹn qua Google Calendar và tạo đường dẫn phòng họp Google Meet. Thông tin chi tiết về buổi phỏng vấn sẽ được gửi tự động qua thư điện tử đến email của ứng viên và các bên liên quan, đồng thời đồng bộ cập nhật nếu có thay đổi lịch trình.

5. Những phương pháp kiểm thử và quy trình vận hành nào được đề xuất áp dụng trong đồ án?

Đồ án áp dụng phương pháp kiểm thử đơn vị (Unit Test) cho các thành phần xử lý logic nghiệp vụ và thiết lập đường ống tích hợp/triển khai liên tục (CI/CD) tự động hóa thông qua nền tảng GitHub.

Kết luận

Đồ án tốt nghiệp "Xây dựng website quản lý tuyển dụng" của sinh viên Nguyễn Vũ Minh Quân đã hoàn thành việc nghiên cứu, phân tích và hiện thực hóa một hệ thống web tuyển dụng hoàn chỉnh sử dụng công nghệ ReactJS, Spring Boot và MySQL. Đề tài giải quyết hiệu quả bài toán quản lý và kết nối tuyển dụng thông qua việc chuẩn hóa quy trình phân quyền đa tác nhân, cung cấp công cụ tạo CV trực tuyến và tự động hóa khâu phỏng vấn đánh giá ứng viên. Mặc dù cần tiếp tục hoàn thiện về mặt ứng dụng thuật toán học máy và mở rộng thanh toán trực tuyến, đồ án đáp ứng đầy đủ các chuẩn mực kỹ thuật phần mềm và mang giá trị thực tiễn cao cho công tác tuyển dụng nhân sự hiện đại.