Bối cảnh và vấn đề nghiên cứu
Sự phát triển nhanh chóng của nền kinh tế và công nghệ thông tin đã thúc đẩy nhu cầu tuyển dụng và tìm kiếm việc làm gia tăng, dẫn đến xu hướng số hóa toàn diện quy trình kết nối nhân sự qua các nền tảng trực tuyến. Thông qua các website tuyển dụng, người tìm việc có thể khởi tạo hồ sơ và thiết lập các tiêu chí tìm kiếm một lần để ứng tuyển đến nhiều đơn vị, trong khi các nhà tuyển dụng có thể dễ dàng đăng tải thông tin, quản lý hồ sơ ứng viên và theo dõi tiến trình tuyển dụng. Tuy nhiên, qua khảo sát thực tế các nền tảng tuyển dụng phổ biến tại Việt Nam và trên thế giới như Vieclam24h, TopCV, vLance, LinkedIn và Glints, tác giả nhận thấy hầu hết các hệ thống hiện hữu vẫn duy trì phương thức tìm kiếm và đánh giá ứng viên mang tính thủ công, khiến quy trình chọn lọc mất nhiều thời gian và công sức.
Từ thực trạng trên, đề tài khóa luận tốt nghiệp "Xây dựng website hỗ trợ tìm kiếm việc làm Puzzle.tk" được thực hiện nhằm xây dựng một nền tảng hỗ trợ đề xuất công việc phù hợp cho người tìm việc và cung cấp công cụ hỗ trợ nhà tuyển dụng đánh giá sơ bộ hồ sơ ứng viên.
Theo đề cương và văn bản khóa luận, các nhiệm vụ nghiên cứu và phát triển cụ thể được xác định bao gồm:
- Tìm hiểu các công nghệ nền tảng: ReactJS, Gatsby framework, RESTful API, JSON Web Token (JWT) và Spring Boot.
- Ứng dụng Spring Boot để xây dựng hệ thống Back-End, thiết kế và phát triển hệ thống RESTful API cho các phân hệ nghiệp vụ.
- Sử dụng ReactJS kết hợp Gatsby framework để xây dựng, tối ưu hóa và xử lý giao diện người dùng phía Front-End.
- Triển khai hệ quản trị cơ sở dữ liệu quan hệ PostgreSQL để tổ chức và lưu trữ dữ liệu người dùng, hồ sơ tuyển dụng và giao dịch.
- Tích hợp chuẩn JSON Web Token (JWT) kết hợp cơ chế lưu trữ bộ nhớ đệm để xác thực, phân quyền và bảo mật cho toàn bộ hệ thống API.
- Tích hợp các dịch vụ bên thứ ba bao gồm cổng thanh toán trực tuyến PayPal và xác thực đăng nhập qua tài khoản Google.
Đối tượng nghiên cứu của đề tài bao gồm:
- Công nghệ thư viện ReactJS, Gatsby framework và Redux-saga.
- Framework Spring Boot, cơ chế Spring WebClient và thư viện bảo mật dữ liệu Jasypt.
- Hệ quản trị cơ sở dữ liệu quan hệ PostgreSQL và hệ thống lưu trữ in-memory Redis.
- Dịch vụ lưu trữ đám mây Amazon Web Services S3 (AWS S3) và API đánh giá nhân sự Hirize.
- Môi trường phát triển tích hợp (IDE): IntelliJ IDEA, Visual Studio Code.
- Mô hình hoạt động và chức năng của các nền tảng tuyển dụng thực tế (TopCV, LinkedIn, vLance, Vieclam24h, Glints).
Phạm vi nghiên cứu của đề tài tập trung vào việc phân tích, thiết kế và hiện thực hóa các chức năng cốt lõi của một hệ thống tuyển dụng trực tuyến; xử lý các quy trình nghiệp vụ quản lý hồ sơ, tối ưu hóa tìm kiếm dựa trên thông tin việc làm và năng lực ứng viên; đồng thời chú trọng đến các tiêu chí công việc phù hợp cho nhiều đối tượng lao động (bao gồm cả các công việc phù hợp với người khuyết tật như công nghệ thông tin hoặc công việc thủ công ít di chuyển). Thời gian triển khai đồ án kéo dài từ ngày 14/03/2023 đến ngày 07/07/2023 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
Khóa luận áp dụng mô hình kiến trúc ứng dụng web hướng dịch vụ kết hợp phân tầng Front-End và Back-End độc lập, giao tiếp thông qua giao thức truyền tải trạng thái đại diện (RESTful API). Hệ thống được xây dựng trên các nền tảng lý thuyết và công nghệ chuyên ngành kỹ thuật phần mềm:
- Kiến trúc giao diện người dùng (Front-End): Sử dụng thư viện ReactJS hoạt động theo mô hình ứng dụng đơn trang (Single Page Application - SPA). Cơ chế Virtual DOM (DOM ảo) của ReactJS được ứng dụng để tối ưu hóa hiệu năng kết xuất giao diện bằng cách tính toán sự khác biệt giữa các trạng thái và cập nhật tối thiểu lên DOM thật. Quản lý luồng dữ liệu một chiều (one-way data binding) thông qua Props và State. Thư viện Redux được triển khai dựa trên ba nguyên lý: nguồn dữ liệu tin cậy duy nhất (Single Source of Truth trong Store), trạng thái chỉ đọc (State is read-only), và biến đổi trạng thái qua các hàm thuần túy (Reducers). Middleware Redux-saga chịu trách nhiệm xử lý các tác vụ bất đồng bộ (side effects) như điều phối lời gọi API.
- Kiến trúc xử lý máy chủ (Back-End): Framework Spring Boot (thuộc nền tảng Java) với cơ chế tự động cấu hình (auto-configuration), loại bỏ việc thiết lập phức tạp bằng XML, tích hợp sẵn các web server như Tomcat, Undertow hoặc Jetty. Cơ chế Spring WebClient (từ module Spring WebFlux) được ứng dụng để khởi tạo các yêu cầu HTTP bất đồng bộ, phi khóa (non-blocking) nhằm tích hợp với các API bên thứ ba.
- Hệ thống dữ liệu và bộ nhớ đệm: Hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở PostgreSQL đảm bảo các tính chất ACID (Atomicity, Consistency, Isolation, Durability), hỗ trợ lưu trữ dữ liệu có cấu trúc và truy vấn mở rộng. Hệ thống lưu trữ in-memory Redis được ứng dụng để lưu trữ và quản lý trạng thái token JWT hợp lệ, kiểm soát thời gian hết hạn của phiên đăng nhập và giảm tải truy vấn cho PostgreSQL.
- Bảo mật và tích hợp: Thư viện Jasypt (Java Simplified Encryption) được sử dụng để mã hóa các thông tin nhạy cảm trong tệp cấu hình (mật khẩu database, mã secret, token bên thứ ba) kết hợp khóa giải mã cung cấp khi chạy hệ thống. Cơ chế JSON Web Token (JWT) được áp dụng để xác thực phân quyền không trạng thái. Dịch vụ AWS S3 lưu trữ các tệp tĩnh như hình ảnh và CV định dạng PDF. Cổng thanh toán quốc tế PayPal SDK được tích hợp để xử lý giao dịch nạp đơn vị tiền tệ ảo (coin).
Phương pháp nghiên cứu thực tế bao gồm:
- Phương pháp khảo sát và phân tích hiện trạng: Tiến hành khảo sát định tính và đánh giá tính năng trên 5 hệ thống tuyển dụng trực tuyến (Vieclam24h, TopCV, vLance, LinkedIn, Glints) về quy trình đăng tuyển, giao diện, khả năng gợi ý và nghiệp vụ xác thực.
- Phương pháp phân tích và thiết kế phần mềm hướng đối tượng: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng biểu đồ ca sử dụng (Use Case Diagram), đặc tả chi tiết các use case, thiết kế biểu đồ tuần tự (Sequence Diagram) và thiết kế mô hình dữ liệu quan hệ logic/vật lý.
- Phương pháp kiểm thử phần mềm: Áp dụng phương pháp kiểm thử chức năng (functional testing) theo kịch bản cho từng phân hệ tác nhân (Khách vãng lai, Ứng viên, Nhà tuyển dụng và Quản trị viên).
Nguồn dữ liệu sử dụng trong nghiên cứu bao gồm tài liệu đặc tả kỹ thuật chính thức của ReactJS, Spring Boot, PostgreSQL, Redis, PayPal Developer, AWS S3 Documentation, cùng các số liệu khảo sát hiện trạng người dùng và thông tin tuyển dụng từ các nền tảng trực tuyến tại Việt Nam.
Thiết kế và triển khai
Hệ thống được thiết kế theo cấu trúc tách biệt giữa giao diện và logic xử lý nghiệp vụ, tối ưu hóa tính mở rộng và khả năng bảo trì.
| Tầng kiến trúc / Phân hệ |
Công nghệ / Nền tảng triển khai |
Vai trò và chức năng kỹ thuật |
| Front-End Client |
ReactJS, Gatsby framework |
Xây dựng giao diện ứng dụng đơn trang (SPA), quản lý thành phần hiển thị (component-based) |
| Quản lý trạng thái UI |
Redux, Redux-saga |
Lưu trữ cây trạng thái duy nhất, xử lý các tác vụ bất đồng bộ và gọi API |
| Thư viện hỗ trợ UI |
Material UI, Formik, Yup, Axios |
Chuẩn hóa phong cách thiết kế Material Design, xác thực form nhập liệu, gửi yêu cầu HTTP |
| Soạn thảo & Đọc tài liệu |
Froala Editor, react-pdf-viewer |
Trình soạn thảo nội dung tin tuyển dụng, hiển thị trực tiếp CV dạng file PDF |
| Back-End Server |
Spring Boot Framework |
Xây dựng hệ thống RESTful API, tiếp nhận và điều phối luồng dữ liệu, xử lý nghiệp vụ |
| Tích hợp dịch vụ ngoài |
Spring WebClient (WebFlux) |
Giao tiếp bất đồng bộ với Google API, detectlanguage.com và Hirize.hr API |
| Cơ sở dữ liệu chính |
PostgreSQL |
Lưu trữ dữ liệu quan hệ, bảng người dùng, tin tuyển dụng, hồ sơ ứng tuyển, hóa đơn |
| Bộ nhớ đệm & Xác thực |
Redis, JSON Web Token (JWT) |
Lưu trữ danh sách JWT token hợp lệ, quản lý phiên làm việc, tăng tốc độ kiểm tra quyền |
| Bảo mật cấu hình |
Jasypt |
Mã hóa các chuỗi kết nối database và secret key trong tệp cấu hình ứng dụng |
| Lưu trữ đám mây |
Amazon Web Services S3 (AWS S3) |
Lưu trữ phi cấu trúc các tệp tin tĩnh, hình ảnh doanh nghiệp và hồ sơ CV của ứng viên |
| Cổng thanh toán |
PayPal SDK |
Tích hợp giao dịch thanh toán trực tuyến, phục vụ tính năng nạp coin của người dùng |
Cơ sở dữ liệu của hệ thống được chuẩn hóa logic với 23 bảng quan hệ, bao gồm:
users: Lưu trữ thông tin tài khoản người dùng, email, mật khẩu đã mã hóa băm.
token: Quản lý các mã xác thực và phiên làm việc.
role: Lưu trữ các vai trò phân quyền người dùng trong hệ thống.
user_role: Bảng kết hợp thể hiện mối quan hệ giữa người dùng và vai trò.
document: Quản lý các chứng từ, hồ sơ xác thực công ty hoặc người dùng.
candidate: Lưu trữ thông tin hồ sơ chi tiết của ứng viên tìm việc.
employer: Lưu trữ thông tin chi tiết về nhà tuyển dụng.
job_alert: Quản lý thiết lập đăng ký nhận thông báo việc làm mới của ứng viên.
package: Danh mục các gói dịch vụ tuyển dụng và gói coin.
subscribe: Quản lý thông tin đăng ký dịch vụ của người dùng.
application: Lưu trữ các đơn nộp hồ sơ ứng tuyển của ứng viên vào các bài đăng.
follow_employer: Quản lý dữ liệu người lao động theo dõi nhà tuyển dụng.
notification: Lưu trữ danh sách thông báo gửi đến các tài khoản người dùng.
viewed_user: Ghi nhận nhật ký lượt xem hồ sơ ứng viên hoặc trang cá nhân.
extra_info: Lưu trữ các thông tin bổ sung, kỹ năng hoặc thông số tùy chỉnh.
evaluate: Lưu thông tin đánh giá ứng viên, kết quả phân tích hồ sơ từ dịch vụ Hirize.
company: Lưu trữ hồ sơ thông tin pháp lý, mô tả của các doanh nghiệp.
following_company: Lưu trữ thông tin người dùng theo dõi doanh nghiệp.
image: Quản lý đường dẫn hình ảnh đại diện, ảnh doanh nghiệp tải lên AWS S3.
invoice: Quản lý thông tin hóa đơn giao dịch và thanh toán qua PayPal.
experience: Lưu trữ thông tin lịch sử kinh nghiệm làm việc của ứng viên.
save_job: Quản lý danh sách các tin tuyển dụng được người tìm việc lưu lại.
job_post: Lưu trữ chi tiết nội dung các bài đăng thông báo tuyển dụng việc làm.
Hệ thống tiến hành phân chia rõ rệt thành hai phân hệ người dùng (Ứng viên và Nhà tuyển dụng) cùng trang quản trị (Admin Dashboard). Quá trình kiểm thử được triển khai trên bản beta sau khi đóng gói hệ thống, thực hiện kiểm thử chức năng cho toàn bộ các quy trình nghiệp vụ của bốn nhóm tác nhân: quản trị viên, người dùng vãng lai, ứng viên và nhà tuyển dụng.
Nội dung chính theo từng chương
Phần mở đầu
Phần mở đầu trình bày tính cấp thiết của việc xây dựng hệ thống website tuyển dụng thông minh nhằm khắc phục hạn chế đánh giá thủ công của các website việc làm hiện nay. Tác giả xác định rõ ràng mục tiêu, đối tượng, phạm vi nghiên cứu, ý nghĩa khoa học và thực tiễn của đề tài. Đồng thời, văn bản đưa ra bảng phân công nhiệm vụ chi tiết giữa hai thành viên: sinh viên Lê Thị Ngọc Diễm phụ trách thiết kế giao diện, xử lý Front-End, vẽ biểu đồ và viết báo cáo phần Front-End; sinh viên Lê Vũ Hảo phụ trách thiết kế cơ sở dữ liệu, xử lý Back-End, vẽ biểu đồ và viết báo cáo phần Back-End cùng các phần liên quan. Kế hoạch thực hiện đề tài được xây dựng theo 8 giai đoạn từ tháng 03/2023 đến tháng 07/2023.
Chương 1: Khảo sát hiện trạng và mô hình hoá yêu cầu
Chương này tập trung khảo sát chi tiết 5 website việc làm phổ biến trên thị trường:
- Vieclam24h.com: Đạt dữ liệu hơn 1,3 triệu CV và 25.000 đầu việc; ưu điểm có hỗ trợ tạo CV, công cụ tính lương, trắc nghiệm tính cách; nhược điểm còn mang tính chất rao vặt cao làm giảm sút chất lượng tuyển dụng, ít hỗ trợ đa ngôn ngữ.
- Topcv.vn: Doanh nghiệp HR Tech thành lập năm 2014, lưu lượng truy cập đạt 3,3 triệu lượt/tháng; ưu điểm mẫu CV đẹp miễn phí, có công cụ tính lương Gross - Net và tính lãi suất kép; nhược điểm phân loại hình thức làm việc (bán thời gian, toàn thời gian) chưa thực sự chi tiết, ít ngôn ngữ.
- vLance.vn: Quy tụ hơn 400.000 freelancer; ưu điểm có hệ thống trao đổi tin nhắn trực tiếp, thông báo việc làm tự động, hỗ trợ song ngữ Anh - Việt, cho phép đăng tin không bắt buộc xác thực công ty; nhược điểm tải trang chậm khi đổi bộ lọc tìm kiếm, màu sắc giao diện chưa thu hút.
- Linkedin.com: Mạng xã hội tuyển dụng toàn cầu; ưu điểm thuật toán gợi ý chính xác cao, quản lý hồ sơ chi tiết, tương tác mạng xã hội tốt; nhược điểm cấu trúc phức tạp đòi hỏi nhiều thời gian làm quen, nhiều tính năng chuyên sâu yêu cầu mua gói trả phí.
- Glints.com: Ra mắt năm 2020 tại Đông Nam Á và Việt Nam; ưu điểm tách biệt rõ ràng chức năng ứng viên và nhà tuyển dụng, giao diện thân thiện; nhược điểm bộ lọc tìm kiếm còn giới hạn ở các thành phố lớn, chức năng tìm kiếm còn thủ công chưa tự động đề xuất tối ưu.
Trên cơ sở khảo sát, chương 1 xác định yêu cầu hệ thống:
- Yêu cầu chức năng: Phân quyền cho Khách (chỉ xem bài đăng, xem blog, đăng ký); Thành viên (Ứng viên có chức năng tạo hồ sơ, tìm kiếm, lưu tin, nộp đơn ứng tuyển; Nhà tuyển dụng có chức năng đăng bài, duyệt hồ sơ, xem thống kê lượt xem/tỷ lệ ứng tuyển, xác thực công ty bằng mã số thuế, nạp coin qua dịch vụ để dùng tính năng gợi ý); Quản trị viên (quản lý người dùng, duyệt tin đăng, xem thống kê hệ thống, quản lý đơn hàng dịch vụ).
- Yêu cầu phi chức năng: Băm mật khẩu người dùng trước khi lưu trữ vào cơ sở dữ liệu để bảo mật, đảm bảo tính khả dụng và khả năng mở rộng dung lượng của cơ sở dữ liệu.
Chương 2: Cơ sở lý thuyết
Chương 2 trình bày chi tiết về kiến trúc tổng thể ReactJS + Spring Boot + PostgreSQL. Tác giả phân tích sâu các cơ sở lý thuyết công nghệ:
- Nguyên lý hoạt động của ReactJS, cơ chế Virtual DOM, luồng dữ liệu 1 chiều (one-way data binding), hệ thống quản lý trạng thái Redux với 3 nguyên lý cốt lõi và middleware Redux-saga.
- Các thư viện bổ trợ phía client: Axios, Material UI, Froala Editor, react-pdf-viewer, Formik và Yup.
- Cấu trúc Spring Boot, cơ chế Spring WebClient kết nối API từ bên thứ ba (Google API, Hirize.hr, detectlanguage).
- Đặc tính hệ quản trị cơ sở dữ liệu PostgreSQL tuân thủ tiêu chuẩn SQL và đảm bảo tính toàn vẹn ACID.
- Ứng dụng Redis trong việc lưu trữ và tra cứu mã JSON Web Token (JWT) để xác thực người dùng.
- Thư viện Jasypt mã hóa thông tin nhạy cảm trong file cấu hình.
- Dịch vụ đám mây AWS S3 dùng lưu trữ CV và hình ảnh tĩnh, cùng cơ chế tích hợp cổng thanh toán trực tuyến PayPal SDK để nạp coin.
Chương 3: Phân tích và thiết kế phần mềm
Chương 3 trình bày toàn bộ mô hình hóa chức năng và thiết kế kỹ thuật của hệ thống:
- Xây dựng sơ đồ Use Case tổng thể cho các tác nhân (Khách, Người lao động, Nhà tuyển dụng, Quản trị viên).
- Lập bảng đặc tả chi tiết và vẽ biểu đồ tuần tự (Sequence Diagram) cho 33 ca sử dụng tiêu biểu: Đăng nhập, Đăng ký, Xem thông tin tuyển dụng, Đổi mật khẩu, Chỉnh sửa thông tin cá nhân, Xem trang cá nhân, Thêm/Sửa/Xóa thông báo tuyển dụng, Theo dõi nhà tuyển dụng/công ty, Ứng tuyển, Thêm thông báo công việc, Xử lý yêu cầu ứng tuyển, Thêm/Xóa tài khoản, Reset mật khẩu, Thêm/Sửa/Xóa ExtraInfo, Thống kê số lượng Job/Tài khoản, Xem profile ứng viên, Thêm thông tin công ty, Lưu thông tin tuyển dụng, Xem đơn ứng tuyển, Xem đánh giá và gợi ý từ Hirize cho đơn ứng tuyển, Thêm/Sửa/Xóa bình luận, Thêm/Sửa/Xóa bài chia sẻ.
- Thiết kế chi tiết cấu trúc 23 bảng cơ sở dữ liệu quan hệ kèm các khóa chính, khóa ngoại và kiểu dữ liệu.
- Thiết kế giao diện chi tiết: bao gồm 21 màn hình chức năng chính cho các phân hệ Trang chủ, Đăng nhập, Đăng ký, Tìm kiếm Job, Chi tiết Job, Dashboard Employer, Quản lý ứng viên, Quản lý và tạo CV của Candidate, Dashboard Admin, Quản lý công ty, Quản lý ExtraInfo.
Chương 4: Cài đặt và kiểm thử
Chương 4 mô tả quá trình cài đặt phần mềm và kiểm thử hệ thống:
- Cài đặt và triển khai website trên môi trường chạy thử nghiệm (phiên bản beta đã deploy).
- Xây dựng kế hoạch và quy trình thiết kế, thực thi bộ kiểm thử chức năng.
- Thực hiện kiểm thử chi tiết cho 4 phân hệ chức năng:
- Kiểm thử các chức năng trên trang quản trị (Admin).
- Kiểm thử các chức năng dành cho người dùng chưa có tài khoản (Khách).
- Kiểm thử các chức năng của ứng viên (Candidate).
- Kiểm thử các chức năng của nhà tuyển dụng (Employer).
Phần kết luận
Tác giả tổng kết các kết quả đã đạt được trong quá trình nghiên cứu và phát triển phần mềm, đồng thời nhìn nhận các nhược điểm còn tồn tại của hệ thống và đề xuất định hướng phát triển trong tương lai.
Kết quả và đóng góp
Khóa luận đã hoàn thành các mục tiêu nghiên cứu và kỹ thuật đặt ra theo kế hoạch:
- Xây dựng thành công hệ thống website tìm kiếm việc làm Puzzle.tk với cấu trúc phân tầng hoàn chỉnh, đáp ứng đầy đủ các yêu cầu chức năng nghiệp vụ của 4 nhóm tác nhân (Khách, Ứng viên, Nhà tuyển dụng, Quản trị viên).
- Thiết kế và triển khai 33 ca sử dụng thực tế được mô hình hóa bằng sơ đồ tuần tự và bảng đặc tả chi tiết.
- Hiện thực hóa hệ thống cơ sở dữ liệu quan hệ với 23 bảng dữ liệu được chuẩn hóa, quản lý chặt chẽ các thông tin từ người dùng, hồ sơ cá nhân, bài đăng tuyển dụng, lịch sử ứng tuyển, tương tác công ty, cho đến hóa đơn dịch vụ.
- Tích hợp thành công các công nghệ chuyên sâu:
- Ứng dụng Redis làm bộ nhớ đệm phục vụ lưu trữ và đối soát JSON Web Token (JWT), nâng cao tốc độ xác thực người dùng và giảm thiểu tải cho cơ sở dữ liệu PostgreSQL.
- Sử dụng Jasypt kết hợp khóa bí mật để mã hóa toàn bộ dữ liệu cấu hình nhạy cảm.
- Tích hợp dịch vụ lưu trữ đám mây AWS S3 để quản lý tệp tĩnh và CV ứng viên.
- Tích hợp cổng thanh toán quốc tế PayPal SDK cho nghiệp vụ nạp coin, xây dựng mô hình thu phí dịch vụ đăng tin và gợi ý hồ sơ.
- Tích hợp dịch vụ Hirize.hr thông qua Spring WebClient để hỗ trợ nhà tuyển dụng đánh giá sơ bộ chất lượng hồ sơ ứng viên và chuẩn bị nội dung phỏng vấn.
- Đóng gói và triển khai thành công phiên bản beta của website để tiến hành kiểm thử theo kịch bản thực tế.
Về mặt đóng góp khoa học và thực tiễn, đề tài đã:
- Cung cấp mô hình tham khảo về giải pháp kết hợp dịch vụ phân tích từ bên thứ ba (Hirize) vào quy trình tuyển dụng trực tuyến, giúp tự động hóa khâu đánh giá ứng viên thay vì xử lý hoàn toàn thủ công.
- Tách biệt rõ ràng không gian làm việc giữa ứng viên và nhà tuyển dụng thành hai giao diện chuyên biệt, kết hợp yêu cầu giấy tờ pháp lý/mã số thuế đối với việc tạo mới công ty nhằm tăng cường độ tin cậy của thông tin tuyển dụng.
- Đặt ra hướng tiếp cận hỗ trợ các nhóm đối tượng lao động đặc thù (người khuyết tật) thông qua việc phân loại và tối ưu tìm kiếm các nhóm ngành nghề phù hợp với khả năng vận động.
Hạn chế và hướng nghiên cứu tiếp
Khóa luận đã thẳng thắn chỉ ra các nhược điểm và hạn chế trong quá trình triển khai hệ thống:
- Hệ thống vẫn phụ thuộc vào các dịch vụ và API của bên thứ ba (như Hirize.hr để phân tích đơn ứng tuyển, API dịch thuật/ngôn ngữ), chưa tự xây dựng được mô hình trí tuệ nhân tạo hoặc thuật toán phân tích hồ sơ nội bộ.
- Một số chức năng nghiệp vụ mở rộng (như mạng xã hội tuyển dụng kết nối sâu, nhắn tin trực tuyến thời gian thực) chưa được hoàn thiện toàn diện.
- Quy mô kiểm thử dừng lại ở mức kiểm thử chức năng trên bản thử nghiệm beta, chưa triển khai kiểm thử tải lớn (load testing), kiểm thử bảo mật nâng cao hoặc đánh giá trải nghiệm thực tế với số lượng người dùng lớn đồng thời.
Hướng phát triển tiếp theo được tác giả xác định bao gồm:
- Nghiên cứu và xây dựng thuật toán đề xuất, gợi ý việc làm thông minh nội bộ dựa trên dữ liệu hành vi và hồ sơ ứng viên để giảm sự phụ thuộc vào các dịch vụ API bên ngoài.
- Phát triển hoàn thiện hệ thống tương tác mạng xã hội nghề nghiệp, cho phép trao đổi, bình luận, kết nối chuyên sâu và tích hợp tin nhắn trực tiếp giữa nhà tuyển dụng và ứng viên.
- Mở rộng các phương thức thanh toán nội địa bên cạnh cổng thanh toán quốc tế PayPal để tăng tính tiện dụng cho người dùng trong nước.
- Nâng cấp quy trình xác thực tự động thông tin doanh nghiệp qua các cổng dữ liệu công khai và tối ưu hóa hệ thống kiểm thử tự động, kiểm thử hiệu năng.
Giá trị tham khảo
Tài liệu khóa luận tốt nghiệp này có giá trị ứng dụng và tham khảo thiết thực đối với:
- Sinh viên chuyên ngành Công nghệ thông tin và Công nghệ phần mềm: Là tài liệu mẫu hữu ích trong việc xây dựng đồ án tốt nghiệp ứng dụng web phân tầng hiện đại; cung cấp quy trình bài bản từ khảo sát hiện trạng, mô hình hóa nghiệp vụ bằng UML (Use Case, Sequence Diagram), thiết kế cơ sở dữ liệu quan hệ đến triển khai kiểm thử phần mềm.
- Các nhà phát triển hệ thống web full-stack: Cung cấp giải pháp triển khai thực tế mô hình kết hợp ReactJS (SPA, Redux-saga) và Spring Boot RESTful API; kỹ thuật tối ưu hóa xác thực JWT qua Redis; phương thức bảo mật thông tin cấu hình bằng Jasypt; và cách thức tích hợp các dịch vụ đám mây như AWS S3 cùng cổng thanh toán trực tuyến PayPal.
- Những người nghiên cứu về nền tảng công nghệ nhân sự (HR Tech): Cung cấp dữ liệu phân tích, so sánh ưu nhược điểm của các hệ thống tuyển dụng hàng đầu hiện nay (TopCV, Vieclam24h, vLance, LinkedIn, Glints) cùng giải pháp tích hợp công cụ đánh giá ứng viên tự động trong quy trình tuyển dụng.
Câu hỏi thường gặp
1. Khóa luận sử dụng kiến trúc phần mềm nào và các thành phần giao tiếp với nhau bằng phương thức gì?
Khóa luận sử dụng kiến trúc phân tầng kết hợp ReactJS (Front-End) + Spring Boot (Back-End) + PostgreSQL (Database). Phần Front-End được xây dựng dưới dạng ứng dụng đơn trang (SPA), trong khi Back-End cung cấp các dịch vụ xử lý nghiệp vụ thông qua giao thức chuẩn RESTful API. Cơ chế Spring WebClient được sử dụng để giao tiếp bất đồng bộ với các dịch vụ bên thứ ba.
2. Cơ chế xác thực và bảo mật thông tin đăng nhập trong hệ thống được hiện thực hóa như thế nào?
Hệ thống sử dụng cơ chế xác thực phân quyền qua JSON Web Token (JWT). Mật khẩu người dùng được băm (hash) trước khi lưu vào cơ sở dữ liệu PostgreSQL. Để tối ưu hóa hiệu năng kiểm tra tính hợp lệ của token và quản lý phiên mà không làm quá tải cơ sở dữ liệu, hệ thống sử dụng cơ sở dữ liệu in-memory Redis để lưu trữ danh sách JWT token hợp lệ cùng thời gian hết hạn. Ngoài ra, các thông tin cấu hình nhạy cảm được mã hóa an toàn bằng thư viện Jasypt.
3. Dịch vụ Hirize được tích hợp vào hệ thống nhằm mục đích gì?
Dịch vụ Hirize (qua Hirize.hr API) được tích hợp vào Back-End thông qua Spring WebClient nhằm hỗ trợ nhà tuyển dụng trong việc tự động đánh giá đơn ứng tuyển, phân tích hồ sơ CV của ứng viên và gợi ý nội dung, câu hỏi phục vụ cho quá trình phỏng vấn.
4. Dữ liệu khảo sát hiện trạng của khóa luận đã chỉ ra nhược điểm chính của các nền tảng tuyển dụng như TopCV, Vieclam24h và vLance là gì?
Văn bản khóa luận chỉ ra: Vieclam24h còn mang tính chất rao vặt cao làm giảm sút chất lượng tuyển dụng và ít ngôn ngữ; TopCV chưa phân chia chi tiết hình thức làm việc (toàn thời gian/bán thời gian) và hỗ trợ ít ngôn ngữ; vLance gặp tình trạng tải lại trang chậm sau khi thay đổi bộ lọc tìm kiếm và giao diện thiếu thu hút. Cả ba nền tảng này đều phụ thuộc chủ yếu vào việc tìm kiếm và đánh giá hồ sơ thủ công.
5. Cơ sở dữ liệu của hệ thống Puzzle.tk bao gồm bao nhiêu bảng và các tệp tin media/CV được lưu trữ ở đâu?
Cơ sở dữ liệu của hệ thống gồm 23 bảng quan hệ để quản trị thông tin người dùng, tin tuyển dụng, tương tác và thanh toán. Các tệp dữ liệu phi cấu trúc dung lượng lớn như hình ảnh tĩnh và tệp CV của ứng viên định dạng PDF được lưu trữ riêng biệt trên dịch vụ lưu trữ đám mây Amazon Web Services S3 (AWS S3), thay vì lưu trực tiếp trong cơ sở dữ liệu quan hệ.
Kết luận
Khóa luận tốt nghiệp "Xây dựng website hỗ trợ tìm kiếm việc làm Puzzle.tk" của nhóm tác giả Lê Thị Ngọc Diễm và Lê Vũ Hảo đã giải quyết thành công bài toán số hóa quy trình tuyển dụng và hỗ trợ đánh giá ứng viên thông qua việc kết hợp các công nghệ phần mềm hiện đại như ReactJS, Spring Boot, PostgreSQL, Redis và AWS S3. Đề tài không chỉ hoàn thành việc khảo sát, thiết kế và xây dựng một hệ thống website hoàn chỉnh với 33 use case và 23 bảng cơ sở dữ liệu, mà còn đóng góp giải pháp tích hợp dịch vụ đánh giá hồ sơ tự động nhằm tiết kiệm thời gian cho nhà tuyển dụng. Toàn bộ quy trình thiết kế, triển khai và kiểm thử chức năng được trình bày khoa học, chặt chẽ, tạo nên một tài liệu tham khảo kỹ thuật có giá trị thực tiễn cao cho sinh viên và các lập trình viên chuyên ngành công nghệ phần mềm.