
Job Portal
Thông tin chung
Website tuyển dụng nhân sự tích hợp gợi ý việc làm bằng máy học
Môn học: Lập trình WWW với công nghệ Java
Thực hiện
- Lê Hoàng Khang (bài tập cá nhân) · iamhoangkhang@icloud.com
Mã nguồn
| Thành phần | Chức năng | Công nghệ | |
|---|---|---|---|
| spring-recruitment | Website tuyển dụng: tìm việc, đăng tin, gợi ý việc làm và kỹ năng bằng machine learning | Spring Boot, Thymeleaf, MariaDB | GitHub |
Tài khoản demo
| Vai trò | Mật khẩu | |
|---|---|---|
| Ứng viên | iamhoangkhang@icloud.com | khang2003 |
| Doanh nghiệp | fptsoftware@gmail.com | khang2003 |
Giới thiệu
Job Portal là website tuyển dụng nhân sự, cho phép người dùng tìm kiếm việc làm, đăng tin tuyển dụng, xem thông tin công ty. Điểm khác biệt so với một website tuyển dụng thông thường là hệ thống áp dụng thuật toán máy học để gợi ý việc làm phù hợp với từng ứng viên dựa trên kỹ năng đã khai báo, đồng thời gợi ý luôn những kỹ năng nên học thêm để tăng cơ hội trúng tuyển.
Hệ thống chia người dùng thành ba loại với quyền hạn khác nhau: khách, ứng viên và doanh nghiệp, mỗi loại có khu vực và tính năng riêng, kiểm soát bằng Spring Security.
Kiến trúc hệ thống
Ứng dụng tổ chức theo kiến trúc Spring MVC phân lớp cổ điển: Controller nhận request và trả view Thymeleaf, gọi xuống Service xử lý nghiệp vụ, Service gọi Repository (Spring Data JPA) để đọc/ghi MariaDB. Dữ liệu qua lại giữa các tầng dùng các lớp DTO riêng thay vì truyền thẳng entity.
7 lớp *Controller (Home, Job, Candidate, Employer, Account, Statistics...) nhận request, trả về Thymeleaf template. Spring Security chặn trước theo vai trò: công khai trang chủ/danh sách việc làm, /candidates/** cần role CANDIDATE, /employer/** cần role EMPLOYER.
10 lớp *Service xử lý nghiệp vụ: tài khoản, hồ sơ ứng viên, công ty, ứng tuyển, lưu trữ file CV, và hai dịch vụ gợi ý thông minh bên dưới.
JobMatchingService
Gợi ý việc làm cho ứng viên: so khớp từng kỹ năng ứng viên có với kỹ năng job yêu cầu, nhân trọng số theo cấp độ (Beginner → Master, hệ số 1–5) của cả hai bên, cộng dồn thành điểm phù hợp rồi xếp hạng giảm dần.
SkillRecommendationService
Gợi ý kỹ năng nên học: huấn luyện RandomForest (thư viện Weka) từ tập các job và kỹ năng của chúng, dự đoán xác suất "thành công" cho từng kỹ năng ứng viên chưa có, chỉ đề xuất kỹ năng có độ tin cậy > 50%.
10 interface *Repository kế thừa JpaRepository, ánh xạ tới các entity trong gói models (Account, Candidate, Company, Job, Skill, Experience...).
Tính năng
Người dùng khách
- Xem danh sách tin tuyển dụng
- Tìm kiếm việc làm
- Xem thông tin công ty
- Xem thống kê tình hình việc làm
Tài khoản ứng viên
- Tìm kiếm việc làm, xem thông tin công ty
- Cập nhật hồ sơ cá nhân, kinh nghiệm, kỹ năng
- Ứng tuyển tin tuyển dụng
- Xem gợi ý việc làm phù hợp với kỹ năng bản thân
- Xem thống kê tình hình việc làm
Tài khoản doanh nghiệp
- Đăng, cập nhật, xem tin tuyển dụng
- Xem thông tin ứng viên đã ứng tuyển
- Cập nhật hồ sơ công ty
- Xem thống kê tình hình việc làm
Công nghệ sử dụng
Spring Boot
Nền tảng backend: Spring MVC xử lý request, Spring Data JPA thao tác dữ liệu.
Spring Security
Xác thực bằng form login, mã hóa mật khẩu BCrypt, phân quyền theo vai trò CANDIDATE/EMPLOYER.
Thymeleaf
Template engine render HTML phía server, gắn trực tiếp dữ liệu từ controller.
Bootstrap
Framework CSS cho giao diện, kết hợp HTML/CSS/JavaScript thuần.
MariaDB
Cơ sở dữ liệu quan hệ, dữ liệu khởi tạo tự động bằng DataInitializer.
Gradle
Công cụ build và quản lý dependency của dự án.
Weka (RandomForest)
Thư viện machine learning, huấn luyện RandomForest để gợi ý kỹ năng nên học cho ứng viên.
Chart.js
Vẽ biểu đồ ở trang thống kê: kỹ năng hot, loại công việc, xu hướng đăng tuyển, nhân khẩu học ứng viên.
Lombok
Giảm code lặp cho getter/setter, constructor trên các entity, DTO.
Sơ đồ thiết kế
Giao diện ứng dụng
Trang chủ
Số liệu tổng quan, tính năng nổi bật và danh sách việc làm mới nhất.

Đăng nhập

Đăng ký tài khoản ứng viên

Đăng ký tài khoản doanh nghiệp

Danh sách công việc

Chi tiết công việc

Gợi ý việc làm
Danh sách việc làm phù hợp với kỹ năng ứng viên, kèm điểm phù hợp tính từ JobMatchingService.

Hồ sơ ứng viên

Thống kê tuyển dụng
Kỹ năng hot, loại công việc tuyển nhiều nhất, xu hướng đăng tuyển theo thời gian, nhân khẩu học ứng viên.

Dashboard doanh nghiệp

Quản lý tin tuyển dụng

Đăng tin tuyển dụng

Quản lý chi tiết tin tuyển dụng
Xem thông tin ứng viên đã ứng tuyển vào tin tuyển dụng.


