Chúng ta đang sống trong xã hội không ngừng phát triển mỗi ngày với một nền khoa học công nghệ tiên tiến bậc nhất trong lịch sử loài người. Cuối năm 2022, thế giới đã ghi nhận dân số toàn cầu đạt 08 tỷ người. Dân số lớn dẫn đến xu hướng tăng mạnh về nhu cầu tạo ra của cải vật chất và nâng cao chất lượng đời sống người dân, từ đấy, kéo theo đa phần ngành nghề dịch vụ, sản xuất, nông nghiệp, kinh tế, công nghệ thông tin,…đều phát triển. Để đáp ứng việc đẩy mạnh các hoạt động của các lĩnh vực trên thì nhu cầu việc làm, nhu cầu tuyển dụng cũng có xu hướng tăng lên. Việt Nam của chúng ta cũng không ngoại lệ, nhu cầu tuyển dụng, tìm việc làm đang tăng cao trong bối cảnh xã hội ngày càng phát triển hậu đại dịch Covid19. Nhu cầu tìm kiếm việc làm, tìm kiếm nhân sự luôn cấp thiết ở đủ mọi lĩnh vực, nghề nghiệp trong cuộc sống. Theo báo cáo thị trường lao động năm 2022 1, nước ta thống kê có gần 40% lao động chưa có việc làm ổn định và có tới 86,4% doanh nghiệp đang gặp khó khăn trong hoạt động tuyển dụng. Vậy thì làm sao, để người lao động dễ dàng tìm kiếm và lựa chọn cho mình một công việc phù hợp. Đồng thời, nhà tuyển dụng cũng có một nơi để đăng tải tin tuyển dụng, tìm kiếm những ứng viên tài năng cho doanh nghiệp của họ. Chúng ta cần một nền tảng website để giải quyết nhu cầu đấy từ cả hai phía nhà tuyển dụng và người lao động. Đây cũng là một giải pháp công nghệ thông tin thuận lợi, nhanh chóng, tiết kiệm chi phí dành cho con người trong thời đại số hiện nay. Do đó, tôi đã tìm hiểu và xây dựng một trang web để kết nối hai đối tượng trên với nhau và giải quyết nhu cầu về tuyển dụng, việc làm.
NỘI DUNG
1.1 Tìm hiểu về Spring Boot
Spring Boot là một dự án phát triển bởi Java trong hệ sinh thái Spring framework, giúp lập trình viên đơn giản hóa quá trình phát triển ứng dụng Thay vì phải khởi tạo dự án Spring phức tạp với việc khai báo dependency trong file pom.xml và cấu hình bằng XML hoặc annotation, Spring Boot cho phép tạo và cấu hình dễ dàng hơn.
- Sở hữu hầu như đầy đủ các tính năng của Spring Framework
- Thuận tiện phát triển ứng dụng trên Spring với Groovy và Java
- Tiết kiệm thời gian, tăng năng suất làm việc
- Tự động cấu hình là một cách tiếp cận Spring Boot cốt lõi để giảm số lượng hành động mà nhà phát triển phải thực hiện
- Kết nối dễ dàng với Spring JDBC, Spring Sercurity, Spring ORM,.v.v
- Cung cấp công cụ CLI để phát triển và kiểm thử các ứng dụng từ các dòng lệnh một cách dễ dàng và nhanh chóng
- Cung cấp các plugin để phát triển và kiếm thử các công cụ như Maven và Gradle
- Cung cấp các Server như Tomcat, Jetty,… mà không cần đến các file war
- Thiếu kiểm soát Do cấu hình cố định, Spring Boot tạo ra nhiều phụ thuộc không được sử dụng dẫn đến kích thước tệp triển khai lớn
- Quá trình chuyển đổi dự án Spring sang các ứng dụng Spring Boot còn gặp nhiều khó khăn và tốn thời gian.
CƠ SỞ LÝ THUYẾT
Tìm hiểu về PostgreSQL
Chương 2: Phân tích và đặc tả yêu cầu
2.1 Xác định yêu cầu phi chức năng 2.2 Xác định yêu cầu chức năng
2.3 Thiết kế lược đồ lớp
2.4 Thiết kế biểu đồ tuần tự
2.5 Thiết kế lưu đồ hoạt động
3.1 Tổng quan về cơ sở dữ liệu
3.2 Thiết kế chi tiết cơ sở dữ liệu
Chương 4: Thiết kế giao diện
4.1 Giao diện trang chủ quản trị
4.2 Giao diện trang của người tìm việc 4.3 Giao diện trang của nhà tuyển dụng Chương 5: Cài đặt và kiểm thử
Danh mục Tài liệu tham khảo
STT Thời gian Công việc
1 Viết đề cương chi tiết, khảo sát nghiệp vụ thêm một số trang web và viết báo cáo khảo sát
2 Đặc tả usecase cho đề tài, phân tích và thiết kế hệ thống các tính năng mới
3 Điều chỉnh bố cục, giao diện và bổ sung cơ sở dữ liệu, hoàn thiện tính năng từ tiểu luận chuyên ngành
4 Xây dựng nội dung lương, thiết kế trang tìm kiếm, lọc đa thuộc tính
5 Hoàn thành tính năng quản lý bài đăng tuyển cho nhà tuyển dụng
Hoàn thành tính năng gợi ý việc làm cho ứng viên
Tổng hợp tư liệu và viết báo cáo luận văn
8 Điều chỉnh và hoàn thiện đồ án
Hoàn thiện luận văn Ý kiến của GVHD
(Ký & ghi rõ họ tên)
Hình 1.1 Khảo sát nghiệp vụ website CareerBuilder [2] 2
Hình 1.2 Khảo sát nghiệp vụ website VietnamWorks [2] 3
Hình 1.3 Khảo sát nghiệp vụ website LinkedIn [2] 4
Hình 1.4 Giới thiệu về Spring Framework [3] 10
Hình 1.5 Giới thiệu về ReactJS – DOM [4] 11
Hình 1.6 Giới thiệu về REST API [5] 11
Hình 1.7 Giới thiệu về PostgreSQL [6] 12
Hình 2.1 Use case tổng quát 15
Hình 2.2 Use case quản trị viên 16
Hình 2.3 Use case ứng viên 16
Hình 2.4 Use case nhà tuyển dụng 17
Hình 2.5 Lược đồ lớp hệ thống 43
Hình 2.6 Biểu đồ tuần tự đăng nhập của quản trị viên 44
Hình 2.7 Biểu đồ tuần tự quản trị viên xem danh sách một danh mục 45
Hình 2.8 Biểu đồ tuần tự quản trị viên thêm mới thông tin 46
Hình 2.9 Biểu đồ tuần tự quản trị viên chỉnh sửa một thông tin 47
Hình 2.10 Biểu đồ tuần tự quản trị viên xóa một thông tin 48
Hình 2.11 Biểu đồ tuần tự đăng ký của ứng viên 49
Hình 2.12 Biểu đồ tuần tự cập nhật hồ sơ của ứng viên 50
Hình 2.13 Biểu đồ tuần tự ứng tuyển công việc của ứng viên 51
Hình 2.14 Biểu đồ tuần tự tìm kiếm ứng viên của nhà tuyển dụng 52
Hình 2.15 Biểu đồ tuần tự đăng công việc của nhà tuyển dụng 53
Hình 2.16 Biểu đồ tuần tự cập nhật hồ sơ của nhà tuyển dụng 54
Hình 2.17 Lưu đồ hoạt động ứng tuyển công việc 55
Hình 2.18 Lưu đồ hoạt động tìm kiếm công việc 55
Hình 2.19 Lưu đồ hoạt động tìm kiếm ứng viên 56
Hình 2.20 Lưu đồ hoạt động đăng công việc 56
Hình 3.1 Lược đồ thực thể quan hệ trên PostgreSQL 57
Hình 4.1 Giao diện đăng nhập trang quản trị 63
Hình 4.2 Giao diện thanh sidebar trang quản trị 64
Hình 4.3 Giao diện homepage trang quản trị 65
Hình 4.4 Giao diện quản lý người dùng 66
Hình 4.5 Giao diện quản lý nhà tuyển dụng 66
Hình 4.6 Giao diện quản lý công việc 67
Hình 4.7 Giao diện quản lý ngành nghề 67
Hình 4.8 Giao diện quản lý địa điểm 68
Hình 4.9 Giao diện quản lý kỹ năng chuyên môn 68
Hình 4.10 Giao diện tìm kiếm theo từ khóa 69
Hình 4.11 Giao diện thêm mới thông tin một danh mục 69
Hình 4.12 Giao diện phân trang của quản trị viên 69
Hình 4.13 Giao diện đăng nhập 70
Hình 4.14 Giao diện đăng ký 71
Hình 4.15 Giao diện trang chủ 71
Hình 4.16 Giao diện hiển thị danh mục công việc 72
Hình 4.17 Giao diện trang nhà tuyển dụng nổi bật 72
Hình 4.18 Giao diện trang tất cả công việc 73
Hình 4.19 Giao diện trang chi tiết công việc 73
Hình 4.20 Giao diện form ứng tuyển 74
Hình 4.21 Giao diện trang giới thiệu chi tiết nhà tuyển dụng 74
Hình 4.22 Giao diện quản lý thông tin ứng viên 75
Hình 4.23 Giao diện trang quản lý thông tin đã ứng tuyển 75
Hình 4.24 Giao diện trang gợi ý việc làm 76
Hình 4.25 Giao diện trang chủ nhà tuyển dụng 76
Hình 4.26 Giao diện đăng tin tuyển dụng 77
Hình 4.27 Giao diện quản lý thông tin nhà tuyển dụng 77
Hình 4.28 Giao diện trang quản lý công việc đã đăng 78
Hình 4.29 Giao diện quản lý thông tin ứng viên 78
Bảng 2.1 Thiết kế đặc tả yêu cầu website 15
Bảng 2.2.1 Use case Đăng nhập 17
Bảng 2.2.2 Use case Đăng xuất 18
Bảng 2.2.3 Use case Đăng ký 19
Bảng 2.2.4 Use case Tìm kiếm việc làm 20
Bảng 2.2.5 Use case Xem danh sách công việc 21
Bảng 2.2.6 Use case Xem danh sách nhà tuyển dụng 22
Bảng 2.2.7 Use case Quản lý hồ sơ người dùng 23
Bảng 2.2.8 Use case Quản trị viên xem tất cả thông tin 25
Bảng 2.2.9 Use case Quản trị viên thống kê 26
Bảng 2.2.10 Use case Quản trị viên thêm thông tin 27
Bảng 2.2.11 Use case Quản trị viên cập nhật thông tin 28
Bảng 2.2.12 Use case Quản trị viên xóa thông tin 29
Bảng 2.2.13 Use case Quản trị viên xem thông tin chi tiết 30
Bảng 2.2.14 Use case Quản trị viên lọc thuộc tính 31
Bảng 2.2.15 Use case Quản trị viên tìm kiếm 32
Bảng 2.2.16 Use case Quản trị viên phân trang 33
Bảng 2.2 17 Use case Ứng viên ứng tuyển công việc 34
Bảng 2.2.18 Use case Ứng viên xem việc làm ứng tuyển 35
Bảng 2.2.19 Use case Ứng viên xem gợi ý việc làm 36
Bảng 2.2.20 Use case Nhà tuyển dụng đăng tuyển 37
Bảng 2.2.21 Use case Nhà tuyển dụng xem bài đăng tuyển 39
Bảng 2.2.22 Use case Nhà tuyển dụng quản lý bài đăng 40
Bảng 2.2.23 Use case Nhà tuyển dụng xem hồ sơ ứng viên 41
Bảng 3.1 Bảng nhà tuyển dụng “recruiter” 58
Bảng 3.2 Bảng người tìm việc “user” 59
Bảng 3.3 Bảng công việc “job” 59
Bảng 3.4 Bảng thành phố “city” 60
Bảng 3.5 Bảng trạng thái “status” 60
Bảng 3.6 Bảng ngành nghề “profession_job” 60
Bảng 3.7 Bảng kỹ năng “skill” 61
Bảng 3.8 Bảng mô tả quan hệ “user_job” 61
Bảng 3.9 Bảng mô tả quan hệ “user_skill” 61
Bảng 3.10 Bảng mô tả quan hệ “job_require_skill” 62
Bảng 3.11 Bảng mô tả quan hệ “Job _professionJob” 62
Bảng 4.1 Mô tả thành phần giao diện trang quản trị 63
Bảng 4.2 Mô tả thành phần thanh sidebar trang quản trị 64
Bảng 4.3 Mô tả thành phần một danh mục 70
Bảng 5.1 Kiểm thử chức năng đăng nhập của người dùng 80
Bảng 5.2 Kiểm thử chức năng đăng ký của người dùng 80
Bảng 5.3 Kiểm thử chức năng đăng xuất của người dùng 81
Bảng 5.4 Kiểm thử chức năng xem thông tin danh mục của admin 81
Bảng 5.5 Kiểm thử chức năng thêm mới danh mục 82
Bảng 5.6 Kiểm thử chức năng sửa thông tin danh mục 82
Bảng 5.7 Kiểm thử chức năng xoá danh mục 83
Bảng 5.8 Kiểm thử chức năng tìm công việc ở trang chủ 83
Bảng 5.9 Kiểm thử chức năng lọc công việc 84
Bảng 5.10 Kiểm thử chức năng tìm nhà tuyển dụng 85
Bảng 5.11 Kiểm thử chức năng ứng tuyển công việc 85
Bảng 5.12 Kiểm thử chức năng đăng tuyển công việc 86
PHẦN 1: TỔNG QUAN ĐỀ TÀI 1
1 Tính cấp thiết của đề tài 1
3 Đối tượng và phạm vi nghiên cứu 2
5 Kết quả dự kiến đạt được 8
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 9
1.1 Tìm hiểu về Spring Boot 9
1.3 Tìm hiểu về REST API 11
CHƯƠNG 2: PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU 13
2.1 Xác định yêu cầu phi chức năng 13
2.1.1 Yêu cầu về hệ thống 13
2.1.2 Yêu cầu về dữ liệu 13
2.1.3 Yêu cầu về giao diện người dùng 13
2.2 Xác định yêu cầu chức năng 14
2.2.1 Đối tượng tham gia hệ thống 14
2.2.2 Yêu cầu về chức năng của người dùng 17
2.2.3 Yêu cầu về chức năng của quản trị viên 25
2.2.4 Yêu cầu về chức năng của ứng viên 34
2.2.5 Yêu cầu về chức năng của nhà tuyển dụng 37
2.3 Thiết kế lược đồ lớp 43
2.4 Thiết kế biểu đồ tuần tự 44
2.4.1.Biểu đồ tuần tự dành cho admin 44
2.4.2.Biểu đồ tuần tự dành cho ứng viên 48
2.4.3.Biểu đồ tuần tự dành cho nhà tuyển dụng 51
2.5 Thiết kế lưu đồ hoạt động 55
CHƯƠNG 3: THIẾT KẾ CƠ SỞ DỮ LIỆU 57
3.1 Tổng quan về cơ sở dữ liệu 57
3.2 Thiết kế chi tiết cơ sở dữ liệu 58
CHƯƠNG 4: THIẾT KẾ GIAO DIỆN 63
4.1 Giao diện trang chủ quản trị 63
4.1.1 Giao diện trang đăng nhập 63
4.2 Giao diện trang của người tìm việc 70
4.3 Giao diện trang của nhà tuyển dụng 76
CHƯƠNG 5: CÀI ĐẶT VÀ KIỂM THỬ 79
5.1.2 Hướng dẫn chạy ứng dụng 79
5.2.1 Trang của quản trị viên 81
5.2.2 Trang của người tìm việc 83
5.2.3 Trang của nhà tuyển dụng 86
PHẦN 1: TỔNG QUAN ĐỀ TÀI
1 Tính cấp thiết của đề tài
Chúng ta đang sống trong một xã hội phát triển nhanh chóng với nền khoa học công nghệ tiên tiến nhất trong lịch sử Cuối năm 2022, dân số toàn cầu đã đạt 8 tỷ người, dẫn đến nhu cầu tăng cao về tạo ra của cải vật chất và cải thiện chất lượng cuộc sống Sự gia tăng này đã thúc đẩy sự phát triển của nhiều ngành nghề như dịch vụ, sản xuất, nông nghiệp, kinh tế và công nghệ thông tin Do đó, nhu cầu việc làm và tuyển dụng cũng đang gia tăng mạnh mẽ để đáp ứng các hoạt động trong các lĩnh vực này.
Nhu cầu tuyển dụng và tìm việc làm tại Việt Nam đang gia tăng mạnh mẽ sau đại dịch Covid-19 Theo báo cáo thị trường lao động năm 2022, gần 40% lao động vẫn chưa có việc làm ổn định, trong khi 86,4% doanh nghiệp gặp khó khăn trong việc tuyển dụng nhân sự Tình hình này cho thấy sự cần thiết cấp bách trong việc tìm kiếm việc làm và nhân sự ở mọi lĩnh vực, nghề nghiệp.
Để người lao động dễ dàng tìm kiếm và lựa chọn công việc phù hợp, cũng như giúp nhà tuyển dụng đăng tải tin tuyển dụng và tìm kiếm ứng viên tài năng, cần có một nền tảng website đáp ứng nhu cầu của cả hai bên Đây là giải pháp công nghệ thông tin hiệu quả, nhanh chóng và tiết kiệm chi phí trong thời đại số hiện nay Vì vậy, tôi đã nghiên cứu và xây dựng một trang web nhằm kết nối người lao động và nhà tuyển dụng, giải quyết nhu cầu về tuyển dụng và việc làm.
2 Mục tiêu đề tài Đề tài trang web được xây dựng dựa trên các nhu cầu cốt lõi của hai đối tượng chính là nhà tuyển dụng (recruiter) và ứng viên (candidate), để giúp cả hai có thể tìm được một công việc hoặc một ứng viên phù hợp trong thời gian ngắn nhất, hiệu quả nhất và tối ưu chi phí nhất Tôi đã đặt ra các mục tiêu cần phải có trong đề tài khi xây dựng và phát triển, cụ thể như sau:
- Tìm hiểu và phân tích nghiệp vụ về nhu cầu tuyển dụng, việc làm
- Tìm hiểu và phân tích một số nền tảng tuyển dụng hiện nay
- Nghiên cứu và áp dụng các công nghệ mới: Spring Boot, Restful API, ReactJS,
- Xây dựng các chức năng hỗ trợ người dùng nâng cao hiệu quả tìm kiếm
- Nhận định, đánh giá mặt làm được, mặt hạn chế và hướng mở rộng cho đề tài
3 Đối tượng và phạm vi nghiên cứu
Hiện nay, có nhiều trang web tuyển dụng phổ biến trên mạng giúp người dùng tìm kiếm việc làm hiệu quả Để phân tích yêu cầu và triển khai đề tài một cách tốt nhất, tôi đã chọn một số trang web có lượng người dùng cao để khảo sát nghiệp vụ.
Hình 1.1 Khảo sát nghiệp vụ website CareerBuilder [2]
CareerBuilder là một trong những trang web việc làm hàng đầu, hoạt động tại hơn 60 quốc gia và phục vụ hơn 24 triệu người dùng trên toàn cầu Với 300.000 công ty đăng tin tuyển dụng, CareerBuilder cung cấp cho người tìm việc một mạng lưới rộng lớn để khám phá nhiều cơ hội nghề nghiệp khác nhau.
CareerBuilder cho phép người dùng tạo hồ sơ cá nhân và tìm kiếm việc làm theo địa điểm, ngành nghề và mức lương Trang web cung cấp thông tin chi tiết về công việc, bao gồm mô tả, yêu cầu và lợi ích của từng vị trí Ngoài ra, CareerBuilder còn cung cấp các bài viết, tin tức và tư vấn về việc làm, giúp người dùng nắm bắt xu hướng và nâng cao khả năng tự định hình sự nghiệp.
Hình 1.2 Khảo sát nghiệp vụ website VietnamWorks [2]
VietnamWorks là trang web việc làm hàng đầu tại Việt Nam, kết nối hơn 5 triệu người dùng, bao gồm cả người tìm việc và nhà tuyển dụng Nền tảng này hỗ trợ hơn 20.000 công ty đăng tuyển, tạo ra mạng lưới lớn cho việc tìm kiếm và tuyển dụng Ngoài công cụ tìm kiếm việc làm, VietnamWorks còn cung cấp dịch vụ xin việc, tư vấn nghề nghiệp và xây dựng hồ sơ cá nhân, giúp người dùng nắm bắt thông tin thị trường, phát triển kỹ năng và tăng cơ hội tìm việc phù hợp.
Hình 1.3 Khảo sát nghiệp vụ website LinkedIn [2]
LinkedIn là mạng xã hội chuyên ngành hàng đầu với hơn 740 triệu thành viên toàn cầu, cung cấp nền tảng mạnh mẽ để xây dựng mối quan hệ chuyên nghiệp, tương tác với cộng đồng và tìm kiếm cơ hội việc làm.
LinkedIn là nền tảng cho phép người dùng xây dựng hồ sơ cá nhân, thể hiện kinh nghiệm làm việc, kỹ năng, học vấn và thành tựu của mình Hồ sơ này không chỉ giúp tạo dựng hình ảnh chuyên nghiệp mà còn thu hút sự chú ý từ các nhà tuyển dụng và chuyên gia trong ngành.
Sau khi khảo sát nghiệp vụ, nhìn chung các trang web tuyển dụng việc làm hiện nay đã triển khai tốt các nội dung sau như:
- Thiết kế giao diện website trực quan
- Hỗ trợ Đăng tin tuyển dụng
- Có chức năng tìm kiếm việc theo vị trí địa lý, chuyên ngành, mức lương
- Có chức năng quản lý thông tin cá nhân của doanh nghiệp, ứng viên
- Có chức năng tạo CV và đăng tải CV để tìm việc
- Có chức năng tin tức, bài viết, báo liên quan đến chủ đề nghề nghiệp
- Có chức năng nâng cấp, thanh toán tài khoản vip để tăng quyền lợi người dùng
- Tích hợp đăng nhập được với tài khoản mạng xã hội như Google, Facebook
- Hỗ trợ chatbot, message tư vấn trực tuyến, trả lời câu hỏi thường gặp
- Hỗ trợ nền tảng tìm việc trên cả website và mobile app
Tuy nhiên, theo tôi các website được khảo sát vẫn còn có các nhược điểm sau:
Nhiều website tìm việc hiện nay không cung cấp thông tin công việc chính xác, dẫn đến việc đăng tải nhiều quảng cáo không liên quan Điều này gây lãng phí thời gian và nỗ lực của những người tìm kiếm việc làm.
- Website tìm việc chỉ cung cấp danh sách công việc mà không cho phép người tìm việc tương tác hoặc tạo kết nối với nhà tuyển dụng
Dựa trên kết quả khảo sát và phân tích, tôi đã xác định ba đối tượng chính để nghiên cứu cho hệ thống website tìm việc của đề tài.
- Người tìm việc (Ứng viên): Là người tìm kiếm các công việc trên website
- Người đăng việc (Nhà tuyển dụng): Là người đăng tải các thông tin tuyển dụng, việc làm lên website
- Người quản trị hệ thống (Quản trị viên): Là người quản trị hệ thống, kiểm duyệt thông tin
4 Nội dung thực hiện Đề tài được phát triển từ Tiểu luận chuyên ngành
Những nội dung đã thực hiện trong Tiểu luận chuyên ngành:
▪ Trang đăng nhập, trang đăng ký
▪ Giao diện nhà tuyển dụng: Trang chủ, trang tất cả việc làm, trang chi tiết việc làm, trang quản lý thông tin cá nhân
▪ Giao diện người tìm việc: Trang chủ, trang tất cả việc làm, trang chi tiết việc làm, trang quản lý thông tin cá nhân
▪ Giao diện quản trị: Trang quản lý tài khoản, trang quản lý việc làm, trang quản lý thông tin
- Phần chức năng: Đối tượng Mô tả
Nhà tuyển dụng Đăng ký tài khoản Đăng nhập,Đăng xuất Quản lý thông tin cá nhân Thay đổi mật khẩu
Quản lý tin tuyển dụng Xem chi tiết công việc đã đăng
Người tìm việc Đăng ký tài khoản Đăng nhập, Đăng xuất Quản lý thông tin cá nhân Chỉnh sửa, thêm mới thông tin cá nhân Thay đổi mật khẩu
Tìm kiếm việc làm Xem chi tiết việc làm Ứng tuyển việc làm Xem việc làm đã ứng tuyển Xem thông tin nhà tuyển dụng
Quản trị viên Đăng nhập, Đăng xuất Quản lý thông tin Quản lý người dùng Quản lý nhà tuyển dụng
− Nội dung điều chỉnh và thêm mới trong Khóa luận tốt nghiệp:
▪ Chỉnh sửa bố cục cho hài hòa hơn
▪ Thêm trang bị lỗi khi trang mất tín hiệu, gặp sự cố không tải được trang
▪ Thêm giao diện: trang gợi ý việc làm cho ứng viên, trang quản lý bài đăng, trang xem hồ sơ ứng viên ứng tuyển
▪ Bổ sung thêm thuộc tính lương cho đối tượng công việc
▪ Chỉnh sửa chi tiết tin tuyển dụng cho nhà tuyển dụng
▪ Xem hồ sơ ứng viên ứng tuyển của nhà tuyển dụng
▪ Tìm kiếm việc làm theo mức lương
▪ Tìm kiếm việc làm đa thuộc tính
▪ Tính năng quản lý đăng tuyển dành cho nhà tuyển dụng
▪ Tính năng gợi ý việc làm dành cho ứng viên
5 Kết quả dự kiến đạt được
Xây dựng ứng dụng website tìm kiếm việc làm:
- Xây dựng máy chủ (Server) và các service bằng Spring Boot và Restful API
- Thiết kế giao diện web (Front-End) bằng ReactJS
- Thiết kế cơ sở dữ liệu bằng PostgreSQL, kết nối database trên Spring Boot
Cấu trúc khóa luận bao gồm:
Phần 1: Tổng quan đề tài
Chương 1: Cơ sở lý thuyết Chương 2: Phân tích và đặc tả yêu cầu Chương 3: Thiết kế cơ sở dữ liệu Chương 4: Thiết kế giao diện Chương 5: Cài đặt và kiểm thử Phần 3: Kết luận
PHẦN 2: NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Tìm hiểu về Spring Boot
Spring Boot là một dự án phát triển từ ngôn ngữ Java trong hệ sinh thái Spring framework, giúp lập trình viên đơn giản hóa quá trình lập trình ứng dụng Thay vì phải đối mặt với việc khai báo dependency phức tạp trong file pom.xml và cấu hình bằng XML hoặc annotation, Spring Boot cho phép tạo và cấu hình dự án một cách nhanh chóng và dễ dàng hơn.
- Sở hữu hầu như đầy đủ các tính năng của Spring Framework
- Thuận tiện phát triển ứng dụng trên Spring với Groovy và Java
- Tiết kiệm thời gian, tăng năng suất làm việc
- Tự động cấu hình là một cách tiếp cận Spring Boot cốt lõi để giảm số lượng hành động mà nhà phát triển phải thực hiện
- Kết nối dễ dàng với Spring JDBC, Spring Sercurity, Spring ORM,.v.v
- Cung cấp công cụ CLI để phát triển và kiểm thử các ứng dụng từ các dòng lệnh một cách dễ dàng và nhanh chóng
- Cung cấp các plugin để phát triển và kiếm thử các công cụ như Maven và Gradle
- Cung cấp các Server như Tomcat, Jetty,… mà không cần đến các file war
- Thiếu kiểm soát Do cấu hình cố định, Spring Boot tạo ra nhiều phụ thuộc không được sử dụng dẫn đến kích thước tệp triển khai lớn
- Quá trình chuyển đổi dự án Spring sang các ứng dụng Spring Boot còn gặp nhiều khó khăn và tốn thời gian
Spring Boot không phải là lựa chọn lý tưởng cho các dự án quy mô lớn, đặc biệt là trong việc xây dựng các ứng dụng nguyên khối Nhiều nhà phát triển cho rằng việc hoạt động liên tục với các microservices sẽ không phát huy được hết tiềm năng của Spring Boot.
Hình 1.4 Giới thiệu về Spring Framework [3]
PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU
Xác định yêu cầu phi chức năng
2.3 Thiết kế lược đồ lớp
2.4 Thiết kế biểu đồ tuần tự
2.5 Thiết kế lưu đồ hoạt động
3.1 Tổng quan về cơ sở dữ liệu
3.2 Thiết kế chi tiết cơ sở dữ liệu
Chương 4: Thiết kế giao diện
4.1 Giao diện trang chủ quản trị
4.2 Giao diện trang của người tìm việc 4.3 Giao diện trang của nhà tuyển dụng Chương 5: Cài đặt và kiểm thử
Danh mục Tài liệu tham khảo
Thiết kế lưu đồ hoạt động
3.1 Tổng quan về cơ sở dữ liệu
3.2 Thiết kế chi tiết cơ sở dữ liệu
Chương 4: Thiết kế giao diện
4.1 Giao diện trang chủ quản trị
4.2 Giao diện trang của người tìm việc 4.3 Giao diện trang của nhà tuyển dụng Chương 5: Cài đặt và kiểm thử
Danh mục Tài liệu tham khảo
STT Thời gian Công việc
1 Viết đề cương chi tiết, khảo sát nghiệp vụ thêm một số trang web và viết báo cáo khảo sát
2 Đặc tả usecase cho đề tài, phân tích và thiết kế hệ thống các tính năng mới
3 Điều chỉnh bố cục, giao diện và bổ sung cơ sở dữ liệu, hoàn thiện tính năng từ tiểu luận chuyên ngành
4 Xây dựng nội dung lương, thiết kế trang tìm kiếm, lọc đa thuộc tính
5 Hoàn thành tính năng quản lý bài đăng tuyển cho nhà tuyển dụng
Hoàn thành tính năng gợi ý việc làm cho ứng viên
Tổng hợp tư liệu và viết báo cáo luận văn
8 Điều chỉnh và hoàn thiện đồ án
Hoàn thiện luận văn Ý kiến của GVHD
(Ký & ghi rõ họ tên)
Hình 1.1 Khảo sát nghiệp vụ website CareerBuilder [2] 2
Hình 1.2 Khảo sát nghiệp vụ website VietnamWorks [2] 3
Hình 1.3 Khảo sát nghiệp vụ website LinkedIn [2] 4
Hình 1.4 Giới thiệu về Spring Framework [3] 10
Hình 1.5 Giới thiệu về ReactJS – DOM [4] 11
Hình 1.6 Giới thiệu về REST API [5] 11
Hình 1.7 Giới thiệu về PostgreSQL [6] 12
Hình 2.1 Use case tổng quát 15
Hình 2.2 Use case quản trị viên 16
Hình 2.3 Use case ứng viên 16
Hình 2.4 Use case nhà tuyển dụng 17
Hình 2.5 Lược đồ lớp hệ thống 43
Hình 2.6 Biểu đồ tuần tự đăng nhập của quản trị viên 44
Hình 2.7 Biểu đồ tuần tự quản trị viên xem danh sách một danh mục 45
Hình 2.8 Biểu đồ tuần tự quản trị viên thêm mới thông tin 46
Hình 2.9 Biểu đồ tuần tự quản trị viên chỉnh sửa một thông tin 47
Hình 2.10 Biểu đồ tuần tự quản trị viên xóa một thông tin 48
Hình 2.11 Biểu đồ tuần tự đăng ký của ứng viên 49
Hình 2.12 Biểu đồ tuần tự cập nhật hồ sơ của ứng viên 50
Hình 2.13 Biểu đồ tuần tự ứng tuyển công việc của ứng viên 51
Hình 2.14 Biểu đồ tuần tự tìm kiếm ứng viên của nhà tuyển dụng 52
Hình 2.15 Biểu đồ tuần tự đăng công việc của nhà tuyển dụng 53
Hình 2.16 Biểu đồ tuần tự cập nhật hồ sơ của nhà tuyển dụng 54
Hình 2.17 Lưu đồ hoạt động ứng tuyển công việc 55
Hình 2.18 Lưu đồ hoạt động tìm kiếm công việc 55
Hình 2.19 Lưu đồ hoạt động tìm kiếm ứng viên 56
Hình 2.20 Lưu đồ hoạt động đăng công việc 56
Hình 3.1 Lược đồ thực thể quan hệ trên PostgreSQL 57
Hình 4.1 Giao diện đăng nhập trang quản trị 63
Hình 4.2 Giao diện thanh sidebar trang quản trị 64
Hình 4.3 Giao diện homepage trang quản trị 65
Hình 4.4 Giao diện quản lý người dùng 66
Hình 4.5 Giao diện quản lý nhà tuyển dụng 66
Hình 4.6 Giao diện quản lý công việc 67
Hình 4.7 Giao diện quản lý ngành nghề 67
Hình 4.8 Giao diện quản lý địa điểm 68
Hình 4.9 Giao diện quản lý kỹ năng chuyên môn 68
Hình 4.10 Giao diện tìm kiếm theo từ khóa 69
Hình 4.11 Giao diện thêm mới thông tin một danh mục 69
Hình 4.12 Giao diện phân trang của quản trị viên 69
Hình 4.13 Giao diện đăng nhập 70
Hình 4.14 Giao diện đăng ký 71
Hình 4.15 Giao diện trang chủ 71
Hình 4.16 Giao diện hiển thị danh mục công việc 72
Hình 4.17 Giao diện trang nhà tuyển dụng nổi bật 72
Hình 4.18 Giao diện trang tất cả công việc 73
Hình 4.19 Giao diện trang chi tiết công việc 73
Hình 4.20 Giao diện form ứng tuyển 74
Hình 4.21 Giao diện trang giới thiệu chi tiết nhà tuyển dụng 74
Hình 4.22 Giao diện quản lý thông tin ứng viên 75
Hình 4.23 Giao diện trang quản lý thông tin đã ứng tuyển 75
Hình 4.24 Giao diện trang gợi ý việc làm 76
Hình 4.25 Giao diện trang chủ nhà tuyển dụng 76
Hình 4.26 Giao diện đăng tin tuyển dụng 77
Hình 4.27 Giao diện quản lý thông tin nhà tuyển dụng 77
Hình 4.28 Giao diện trang quản lý công việc đã đăng 78
Hình 4.29 Giao diện quản lý thông tin ứng viên 78
Bảng 2.1 Thiết kế đặc tả yêu cầu website 15
Bảng 2.2.1 Use case Đăng nhập 17
Bảng 2.2.2 Use case Đăng xuất 18
Bảng 2.2.3 Use case Đăng ký 19
Bảng 2.2.4 Use case Tìm kiếm việc làm 20
Bảng 2.2.5 Use case Xem danh sách công việc 21
Bảng 2.2.6 Use case Xem danh sách nhà tuyển dụng 22
Bảng 2.2.7 Use case Quản lý hồ sơ người dùng 23
Bảng 2.2.8 Use case Quản trị viên xem tất cả thông tin 25
Bảng 2.2.9 Use case Quản trị viên thống kê 26
Bảng 2.2.10 Use case Quản trị viên thêm thông tin 27
Bảng 2.2.11 Use case Quản trị viên cập nhật thông tin 28
Bảng 2.2.12 Use case Quản trị viên xóa thông tin 29
Bảng 2.2.13 Use case Quản trị viên xem thông tin chi tiết 30
Bảng 2.2.14 Use case Quản trị viên lọc thuộc tính 31
Bảng 2.2.15 Use case Quản trị viên tìm kiếm 32
Bảng 2.2.16 Use case Quản trị viên phân trang 33
Bảng 2.2 17 Use case Ứng viên ứng tuyển công việc 34
Bảng 2.2.18 Use case Ứng viên xem việc làm ứng tuyển 35
Bảng 2.2.19 Use case Ứng viên xem gợi ý việc làm 36
Bảng 2.2.20 Use case Nhà tuyển dụng đăng tuyển 37
Bảng 2.2.21 Use case Nhà tuyển dụng xem bài đăng tuyển 39
Bảng 2.2.22 Use case Nhà tuyển dụng quản lý bài đăng 40
Bảng 2.2.23 Use case Nhà tuyển dụng xem hồ sơ ứng viên 41
Bảng 3.1 Bảng nhà tuyển dụng “recruiter” 58
Bảng 3.2 Bảng người tìm việc “user” 59
Bảng 3.3 Bảng công việc “job” 59
Bảng 3.4 Bảng thành phố “city” 60
Bảng 3.5 Bảng trạng thái “status” 60
Bảng 3.6 Bảng ngành nghề “profession_job” 60
Bảng 3.7 Bảng kỹ năng “skill” 61
Bảng 3.8 Bảng mô tả quan hệ “user_job” 61
Bảng 3.9 Bảng mô tả quan hệ “user_skill” 61
Bảng 3.10 Bảng mô tả quan hệ “job_require_skill” 62
Bảng 3.11 Bảng mô tả quan hệ “Job _professionJob” 62
Bảng 4.1 Mô tả thành phần giao diện trang quản trị 63
Bảng 4.2 Mô tả thành phần thanh sidebar trang quản trị 64
Bảng 4.3 Mô tả thành phần một danh mục 70
Bảng 5.1 Kiểm thử chức năng đăng nhập của người dùng 80
Bảng 5.2 Kiểm thử chức năng đăng ký của người dùng 80
Bảng 5.3 Kiểm thử chức năng đăng xuất của người dùng 81
Bảng 5.4 Kiểm thử chức năng xem thông tin danh mục của admin 81
Bảng 5.5 Kiểm thử chức năng thêm mới danh mục 82
Bảng 5.6 Kiểm thử chức năng sửa thông tin danh mục 82
Bảng 5.7 Kiểm thử chức năng xoá danh mục 83
Bảng 5.8 Kiểm thử chức năng tìm công việc ở trang chủ 83
Bảng 5.9 Kiểm thử chức năng lọc công việc 84
Bảng 5.10 Kiểm thử chức năng tìm nhà tuyển dụng 85
Bảng 5.11 Kiểm thử chức năng ứng tuyển công việc 85
Bảng 5.12 Kiểm thử chức năng đăng tuyển công việc 86
PHẦN 1: TỔNG QUAN ĐỀ TÀI 1
1 Tính cấp thiết của đề tài 1
3 Đối tượng và phạm vi nghiên cứu 2
5 Kết quả dự kiến đạt được 8
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 9
1.1 Tìm hiểu về Spring Boot 9
1.3 Tìm hiểu về REST API 11
CHƯƠNG 2: PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU 13
2.1 Xác định yêu cầu phi chức năng 13
2.1.1 Yêu cầu về hệ thống 13
2.1.2 Yêu cầu về dữ liệu 13
2.1.3 Yêu cầu về giao diện người dùng 13
2.2 Xác định yêu cầu chức năng 14
2.2.1 Đối tượng tham gia hệ thống 14
2.2.2 Yêu cầu về chức năng của người dùng 17
2.2.3 Yêu cầu về chức năng của quản trị viên 25
2.2.4 Yêu cầu về chức năng của ứng viên 34
2.2.5 Yêu cầu về chức năng của nhà tuyển dụng 37
2.3 Thiết kế lược đồ lớp 43
2.4 Thiết kế biểu đồ tuần tự 44
2.4.1.Biểu đồ tuần tự dành cho admin 44
2.4.2.Biểu đồ tuần tự dành cho ứng viên 48
2.4.3.Biểu đồ tuần tự dành cho nhà tuyển dụng 51
2.5 Thiết kế lưu đồ hoạt động 55
CHƯƠNG 3: THIẾT KẾ CƠ SỞ DỮ LIỆU 57
3.1 Tổng quan về cơ sở dữ liệu 57
3.2 Thiết kế chi tiết cơ sở dữ liệu 58
CHƯƠNG 4: THIẾT KẾ GIAO DIỆN 63
4.1 Giao diện trang chủ quản trị 63
4.1.1 Giao diện trang đăng nhập 63
4.2 Giao diện trang của người tìm việc 70
4.3 Giao diện trang của nhà tuyển dụng 76
CHƯƠNG 5: CÀI ĐẶT VÀ KIỂM THỬ 79
5.1.2 Hướng dẫn chạy ứng dụng 79
5.2.1 Trang của quản trị viên 81
5.2.2 Trang của người tìm việc 83
5.2.3 Trang của nhà tuyển dụng 86
PHẦN 1: TỔNG QUAN ĐỀ TÀI
1 Tính cấp thiết của đề tài
Chúng ta đang sống trong một xã hội phát triển nhanh chóng với nền khoa học công nghệ tiên tiến Cuối năm 2022, dân số toàn cầu đã đạt 8 tỷ người, dẫn đến nhu cầu tăng cao về sản xuất của cải vật chất và cải thiện chất lượng cuộc sống Sự gia tăng này đã thúc đẩy sự phát triển của nhiều ngành nghề như dịch vụ, sản xuất, nông nghiệp, kinh tế và công nghệ thông tin Do đó, nhu cầu việc làm và tuyển dụng cũng ngày càng tăng lên để đáp ứng các hoạt động trong các lĩnh vực này.
Nhu cầu tuyển dụng và tìm việc làm tại Việt Nam đang gia tăng mạnh mẽ sau đại dịch Covid-19, với 40% lao động chưa có việc làm ổn định Báo cáo thị trường lao động năm 2022 chỉ ra rằng 86,4% doanh nghiệp gặp khó khăn trong hoạt động tuyển dụng, cho thấy sự cấp thiết trong việc tìm kiếm nhân sự ở nhiều lĩnh vực và nghề nghiệp.
Để giúp người lao động dễ dàng tìm kiếm công việc phù hợp và cho nhà tuyển dụng có nơi đăng tin tuyển dụng, chúng ta cần một nền tảng website kết nối hai bên Giải pháp này không chỉ đáp ứng nhu cầu của cả người lao động và nhà tuyển dụng mà còn mang lại lợi ích về thời gian, chi phí trong thời đại số hiện nay Tôi đã nghiên cứu và xây dựng một trang web nhằm kết nối hai đối tượng này, giải quyết hiệu quả nhu cầu tuyển dụng và việc làm.
2 Mục tiêu đề tài Đề tài trang web được xây dựng dựa trên các nhu cầu cốt lõi của hai đối tượng chính là nhà tuyển dụng (recruiter) và ứng viên (candidate), để giúp cả hai có thể tìm được một công việc hoặc một ứng viên phù hợp trong thời gian ngắn nhất, hiệu quả nhất và tối ưu chi phí nhất Tôi đã đặt ra các mục tiêu cần phải có trong đề tài khi xây dựng và phát triển, cụ thể như sau:
- Tìm hiểu và phân tích nghiệp vụ về nhu cầu tuyển dụng, việc làm
- Tìm hiểu và phân tích một số nền tảng tuyển dụng hiện nay
- Nghiên cứu và áp dụng các công nghệ mới: Spring Boot, Restful API, ReactJS,
- Xây dựng các chức năng hỗ trợ người dùng nâng cao hiệu quả tìm kiếm
- Nhận định, đánh giá mặt làm được, mặt hạn chế và hướng mở rộng cho đề tài
3 Đối tượng và phạm vi nghiên cứu
Hiện nay, có nhiều trang web tuyển dụng và tìm kiếm việc làm phổ biến trên mạng Để phân tích yêu cầu và triển khai đề tài hiệu quả, tôi đã chọn một số trang web có lượng người dùng đông đảo để khảo sát nghiệp vụ.
Hình 1.1 Khảo sát nghiệp vụ website CareerBuilder [2]
CareerBuilder là một trong những trang web việc làm hàng đầu trên thế giới, hoạt động tại hơn 60 quốc gia và phục vụ hơn 24 triệu người dùng Với hơn 300.000 công ty đăng tin tuyển dụng, CareerBuilder cung cấp cho người tìm việc một mạng lưới phong phú để khám phá nhiều cơ hội nghề nghiệp khác nhau.
CareerBuilder cho phép người dùng tạo hồ sơ cá nhân và tìm kiếm việc làm theo địa điểm, ngành nghề và mức lương Trang web cung cấp thông tin chi tiết về công việc, bao gồm mô tả, yêu cầu và lợi ích của từng vị trí Ngoài ra, CareerBuilder còn cung cấp các bài viết, tin tức và tư vấn việc làm, giúp người dùng nắm bắt xu hướng và nâng cao khả năng tự định hình sự nghiệp.
Hình 1.2 Khảo sát nghiệp vụ website VietnamWorks [2]
VietnamWorks là trang web việc làm hàng đầu tại Việt Nam, kết nối hơn 5 triệu người dùng, bao gồm cả người tìm việc và nhà tuyển dụng Nền tảng này thu hút trên 20.000 công ty đăng tuyển, tạo ra một mạng lưới rộng lớn cho việc tìm kiếm và tuyển dụng Ngoài công cụ tìm kiếm việc làm, VietnamWorks còn cung cấp dịch vụ xin việc, tư vấn nghề nghiệp và hỗ trợ xây dựng hồ sơ cá nhân, giúp người dùng nắm bắt thông tin thị trường, phát triển kỹ năng và nâng cao cơ hội tìm việc phù hợp.
Hình 1.3 Khảo sát nghiệp vụ website LinkedIn [2]
LinkedIn là mạng xã hội hàng đầu cho việc kết nối chuyên nghiệp và tìm kiếm việc làm, với hơn 740 triệu thành viên trên toàn cầu Nền tảng này giúp người dùng xây dựng mối quan hệ, tương tác với cộng đồng và khám phá nhiều cơ hội nghề nghiệp.
LinkedIn là nền tảng cho phép người dùng xây dựng hồ sơ cá nhân, nơi họ có thể giới thiệu kinh nghiệm làm việc, kỹ năng, học vấn và thành tựu của mình Hồ sơ cá nhân này không chỉ giúp người dùng tạo dựng ấn tượng chuyên nghiệp mà còn thu hút sự chú ý của các nhà tuyển dụng và chuyên gia trong ngành.
Sau khi khảo sát nghiệp vụ, nhìn chung các trang web tuyển dụng việc làm hiện nay đã triển khai tốt các nội dung sau như:
- Thiết kế giao diện website trực quan
- Hỗ trợ Đăng tin tuyển dụng
- Có chức năng tìm kiếm việc theo vị trí địa lý, chuyên ngành, mức lương
- Có chức năng quản lý thông tin cá nhân của doanh nghiệp, ứng viên
- Có chức năng tạo CV và đăng tải CV để tìm việc
- Có chức năng tin tức, bài viết, báo liên quan đến chủ đề nghề nghiệp
- Có chức năng nâng cấp, thanh toán tài khoản vip để tăng quyền lợi người dùng
- Tích hợp đăng nhập được với tài khoản mạng xã hội như Google, Facebook
- Hỗ trợ chatbot, message tư vấn trực tuyến, trả lời câu hỏi thường gặp
- Hỗ trợ nền tảng tìm việc trên cả website và mobile app
Tuy nhiên, theo tôi các website được khảo sát vẫn còn có các nhược điểm sau:
Nhiều website tìm việc hiện nay không cung cấp thông tin công việc chính xác, thường xuyên đăng tải các quảng cáo không liên quan, dẫn đến việc lãng phí thời gian và nỗ lực của người tìm việc.
- Website tìm việc chỉ cung cấp danh sách công việc mà không cho phép người tìm việc tương tác hoặc tạo kết nối với nhà tuyển dụng
Dựa trên kết quả khảo sát và phân tích, tôi đã xác định ba đối tượng chính để nghiên cứu cho hệ thống website tìm việc của đề tài.
- Người tìm việc (Ứng viên): Là người tìm kiếm các công việc trên website
- Người đăng việc (Nhà tuyển dụng): Là người đăng tải các thông tin tuyển dụng, việc làm lên website
- Người quản trị hệ thống (Quản trị viên): Là người quản trị hệ thống, kiểm duyệt thông tin
4 Nội dung thực hiện Đề tài được phát triển từ Tiểu luận chuyên ngành
Những nội dung đã thực hiện trong Tiểu luận chuyên ngành:
▪ Trang đăng nhập, trang đăng ký
▪ Giao diện nhà tuyển dụng: Trang chủ, trang tất cả việc làm, trang chi tiết việc làm, trang quản lý thông tin cá nhân
▪ Giao diện người tìm việc: Trang chủ, trang tất cả việc làm, trang chi tiết việc làm, trang quản lý thông tin cá nhân
▪ Giao diện quản trị: Trang quản lý tài khoản, trang quản lý việc làm, trang quản lý thông tin
- Phần chức năng: Đối tượng Mô tả
Nhà tuyển dụng Đăng ký tài khoản Đăng nhập,Đăng xuất Quản lý thông tin cá nhân Thay đổi mật khẩu
Quản lý tin tuyển dụng Xem chi tiết công việc đã đăng
Người tìm việc Đăng ký tài khoản Đăng nhập, Đăng xuất Quản lý thông tin cá nhân Chỉnh sửa, thêm mới thông tin cá nhân Thay đổi mật khẩu
Tìm kiếm việc làm Xem chi tiết việc làm Ứng tuyển việc làm Xem việc làm đã ứng tuyển Xem thông tin nhà tuyển dụng
Quản trị viên Đăng nhập, Đăng xuất Quản lý thông tin Quản lý người dùng Quản lý nhà tuyển dụng
− Nội dung điều chỉnh và thêm mới trong Khóa luận tốt nghiệp:
▪ Chỉnh sửa bố cục cho hài hòa hơn
▪ Thêm trang bị lỗi khi trang mất tín hiệu, gặp sự cố không tải được trang
▪ Thêm giao diện: trang gợi ý việc làm cho ứng viên, trang quản lý bài đăng, trang xem hồ sơ ứng viên ứng tuyển
▪ Bổ sung thêm thuộc tính lương cho đối tượng công việc
▪ Chỉnh sửa chi tiết tin tuyển dụng cho nhà tuyển dụng
▪ Xem hồ sơ ứng viên ứng tuyển của nhà tuyển dụng
▪ Tìm kiếm việc làm theo mức lương
▪ Tìm kiếm việc làm đa thuộc tính
▪ Tính năng quản lý đăng tuyển dành cho nhà tuyển dụng
▪ Tính năng gợi ý việc làm dành cho ứng viên
5 Kết quả dự kiến đạt được
Xây dựng ứng dụng website tìm kiếm việc làm:
- Xây dựng máy chủ (Server) và các service bằng Spring Boot và Restful API
- Thiết kế giao diện web (Front-End) bằng ReactJS
- Thiết kế cơ sở dữ liệu bằng PostgreSQL, kết nối database trên Spring Boot
Cấu trúc khóa luận bao gồm:
Phần 1: Tổng quan đề tài
Chương 1: Cơ sở lý thuyết Chương 2: Phân tích và đặc tả yêu cầu Chương 3: Thiết kế cơ sở dữ liệu Chương 4: Thiết kế giao diện Chương 5: Cài đặt và kiểm thử Phần 3: Kết luận
PHẦN 2: NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Tìm hiểu về Spring Boot
Spring Boot là một dự án phát triển của ngôn ngữ Java trong hệ sinh thái Spring framework, giúp lập trình viên đơn giản hóa quá trình lập trình ứng dụng Thay vì phải đối mặt với việc khai báo các dependency phức tạp trong file pom.xml và cấu hình bằng XML hay annotation, Spring Boot cho phép tạo và cấu hình dự án một cách nhanh chóng và dễ dàng hơn, giúp các lập trình viên tập trung vào việc phát triển business cho ứng dụng.
- Sở hữu hầu như đầy đủ các tính năng của Spring Framework
- Thuận tiện phát triển ứng dụng trên Spring với Groovy và Java
- Tiết kiệm thời gian, tăng năng suất làm việc
- Tự động cấu hình là một cách tiếp cận Spring Boot cốt lõi để giảm số lượng hành động mà nhà phát triển phải thực hiện
- Kết nối dễ dàng với Spring JDBC, Spring Sercurity, Spring ORM,.v.v
- Cung cấp công cụ CLI để phát triển và kiểm thử các ứng dụng từ các dòng lệnh một cách dễ dàng và nhanh chóng
- Cung cấp các plugin để phát triển và kiếm thử các công cụ như Maven và Gradle
- Cung cấp các Server như Tomcat, Jetty,… mà không cần đến các file war
- Thiếu kiểm soát Do cấu hình cố định, Spring Boot tạo ra nhiều phụ thuộc không được sử dụng dẫn đến kích thước tệp triển khai lớn
- Quá trình chuyển đổi dự án Spring sang các ứng dụng Spring Boot còn gặp nhiều khó khăn và tốn thời gian
Spring Boot không thích hợp cho các dự án quy mô lớn, đặc biệt là trong việc xây dựng các ứng dụng nguyên khối Nhiều nhà phát triển cho rằng việc hoạt động liên tục với các microservices khiến Spring Boot không phải là lựa chọn tối ưu cho các ứng dụng phức tạp và quy mô lớn.
Hình 1.4 Giới thiệu về Spring Framework [3]
THIẾT KẾ CƠ SỞ DỮ LIỆU
Thiết kế chi tiết cơ sở dữ liệu
Chương 4: Thiết kế giao diện
4.1 Giao diện trang chủ quản trị
4.2 Giao diện trang của người tìm việc 4.3 Giao diện trang của nhà tuyển dụng Chương 5: Cài đặt và kiểm thử
Danh mục Tài liệu tham khảo
STT Thời gian Công việc
1 Viết đề cương chi tiết, khảo sát nghiệp vụ thêm một số trang web và viết báo cáo khảo sát
2 Đặc tả usecase cho đề tài, phân tích và thiết kế hệ thống các tính năng mới
3 Điều chỉnh bố cục, giao diện và bổ sung cơ sở dữ liệu, hoàn thiện tính năng từ tiểu luận chuyên ngành
4 Xây dựng nội dung lương, thiết kế trang tìm kiếm, lọc đa thuộc tính
5 Hoàn thành tính năng quản lý bài đăng tuyển cho nhà tuyển dụng
Hoàn thành tính năng gợi ý việc làm cho ứng viên
Tổng hợp tư liệu và viết báo cáo luận văn
8 Điều chỉnh và hoàn thiện đồ án
Hoàn thiện luận văn Ý kiến của GVHD
(Ký & ghi rõ họ tên)
Hình 1.1 Khảo sát nghiệp vụ website CareerBuilder [2] 2
Hình 1.2 Khảo sát nghiệp vụ website VietnamWorks [2] 3
Hình 1.3 Khảo sát nghiệp vụ website LinkedIn [2] 4
Hình 1.4 Giới thiệu về Spring Framework [3] 10
Hình 1.5 Giới thiệu về ReactJS – DOM [4] 11
Hình 1.6 Giới thiệu về REST API [5] 11
Hình 1.7 Giới thiệu về PostgreSQL [6] 12
Hình 2.1 Use case tổng quát 15
Hình 2.2 Use case quản trị viên 16
Hình 2.3 Use case ứng viên 16
Hình 2.4 Use case nhà tuyển dụng 17
Hình 2.5 Lược đồ lớp hệ thống 43
Hình 2.6 Biểu đồ tuần tự đăng nhập của quản trị viên 44
Hình 2.7 Biểu đồ tuần tự quản trị viên xem danh sách một danh mục 45
Hình 2.8 Biểu đồ tuần tự quản trị viên thêm mới thông tin 46
Hình 2.9 Biểu đồ tuần tự quản trị viên chỉnh sửa một thông tin 47
Hình 2.10 Biểu đồ tuần tự quản trị viên xóa một thông tin 48
Hình 2.11 Biểu đồ tuần tự đăng ký của ứng viên 49
Hình 2.12 Biểu đồ tuần tự cập nhật hồ sơ của ứng viên 50
Hình 2.13 Biểu đồ tuần tự ứng tuyển công việc của ứng viên 51
Hình 2.14 Biểu đồ tuần tự tìm kiếm ứng viên của nhà tuyển dụng 52
Hình 2.15 Biểu đồ tuần tự đăng công việc của nhà tuyển dụng 53
Hình 2.16 Biểu đồ tuần tự cập nhật hồ sơ của nhà tuyển dụng 54
Hình 2.17 Lưu đồ hoạt động ứng tuyển công việc 55
Hình 2.18 Lưu đồ hoạt động tìm kiếm công việc 55
Hình 2.19 Lưu đồ hoạt động tìm kiếm ứng viên 56
Hình 2.20 Lưu đồ hoạt động đăng công việc 56
Hình 3.1 Lược đồ thực thể quan hệ trên PostgreSQL 57
Hình 4.1 Giao diện đăng nhập trang quản trị 63
Hình 4.2 Giao diện thanh sidebar trang quản trị 64
Hình 4.3 Giao diện homepage trang quản trị 65
Hình 4.4 Giao diện quản lý người dùng 66
Hình 4.5 Giao diện quản lý nhà tuyển dụng 66
Hình 4.6 Giao diện quản lý công việc 67
Hình 4.7 Giao diện quản lý ngành nghề 67
Hình 4.8 Giao diện quản lý địa điểm 68
Hình 4.9 Giao diện quản lý kỹ năng chuyên môn 68
Hình 4.10 Giao diện tìm kiếm theo từ khóa 69
Hình 4.11 Giao diện thêm mới thông tin một danh mục 69
Hình 4.12 Giao diện phân trang của quản trị viên 69
Hình 4.13 Giao diện đăng nhập 70
Hình 4.14 Giao diện đăng ký 71
Hình 4.15 Giao diện trang chủ 71
Hình 4.16 Giao diện hiển thị danh mục công việc 72
Hình 4.17 Giao diện trang nhà tuyển dụng nổi bật 72
Hình 4.18 Giao diện trang tất cả công việc 73
Hình 4.19 Giao diện trang chi tiết công việc 73
Hình 4.20 Giao diện form ứng tuyển 74
Hình 4.21 Giao diện trang giới thiệu chi tiết nhà tuyển dụng 74
Hình 4.22 Giao diện quản lý thông tin ứng viên 75
Hình 4.23 Giao diện trang quản lý thông tin đã ứng tuyển 75
Hình 4.24 Giao diện trang gợi ý việc làm 76
Hình 4.25 Giao diện trang chủ nhà tuyển dụng 76
Hình 4.26 Giao diện đăng tin tuyển dụng 77
Hình 4.27 Giao diện quản lý thông tin nhà tuyển dụng 77
Hình 4.28 Giao diện trang quản lý công việc đã đăng 78
Hình 4.29 Giao diện quản lý thông tin ứng viên 78
Bảng 2.1 Thiết kế đặc tả yêu cầu website 15
Bảng 2.2.1 Use case Đăng nhập 17
Bảng 2.2.2 Use case Đăng xuất 18
Bảng 2.2.3 Use case Đăng ký 19
Bảng 2.2.4 Use case Tìm kiếm việc làm 20
Bảng 2.2.5 Use case Xem danh sách công việc 21
Bảng 2.2.6 Use case Xem danh sách nhà tuyển dụng 22
Bảng 2.2.7 Use case Quản lý hồ sơ người dùng 23
Bảng 2.2.8 Use case Quản trị viên xem tất cả thông tin 25
Bảng 2.2.9 Use case Quản trị viên thống kê 26
Bảng 2.2.10 Use case Quản trị viên thêm thông tin 27
Bảng 2.2.11 Use case Quản trị viên cập nhật thông tin 28
Bảng 2.2.12 Use case Quản trị viên xóa thông tin 29
Bảng 2.2.13 Use case Quản trị viên xem thông tin chi tiết 30
Bảng 2.2.14 Use case Quản trị viên lọc thuộc tính 31
Bảng 2.2.15 Use case Quản trị viên tìm kiếm 32
Bảng 2.2.16 Use case Quản trị viên phân trang 33
Bảng 2.2 17 Use case Ứng viên ứng tuyển công việc 34
Bảng 2.2.18 Use case Ứng viên xem việc làm ứng tuyển 35
Bảng 2.2.19 Use case Ứng viên xem gợi ý việc làm 36
Bảng 2.2.20 Use case Nhà tuyển dụng đăng tuyển 37
Bảng 2.2.21 Use case Nhà tuyển dụng xem bài đăng tuyển 39
Bảng 2.2.22 Use case Nhà tuyển dụng quản lý bài đăng 40
Bảng 2.2.23 Use case Nhà tuyển dụng xem hồ sơ ứng viên 41
Bảng 3.1 Bảng nhà tuyển dụng “recruiter” 58
Bảng 3.2 Bảng người tìm việc “user” 59
Bảng 3.3 Bảng công việc “job” 59
Bảng 3.4 Bảng thành phố “city” 60
Bảng 3.5 Bảng trạng thái “status” 60
Bảng 3.6 Bảng ngành nghề “profession_job” 60
Bảng 3.7 Bảng kỹ năng “skill” 61
Bảng 3.8 Bảng mô tả quan hệ “user_job” 61
Bảng 3.9 Bảng mô tả quan hệ “user_skill” 61
Bảng 3.10 Bảng mô tả quan hệ “job_require_skill” 62
Bảng 3.11 Bảng mô tả quan hệ “Job _professionJob” 62
Bảng 4.1 Mô tả thành phần giao diện trang quản trị 63
Bảng 4.2 Mô tả thành phần thanh sidebar trang quản trị 64
Bảng 4.3 Mô tả thành phần một danh mục 70
Bảng 5.1 Kiểm thử chức năng đăng nhập của người dùng 80
Bảng 5.2 Kiểm thử chức năng đăng ký của người dùng 80
Bảng 5.3 Kiểm thử chức năng đăng xuất của người dùng 81
Bảng 5.4 Kiểm thử chức năng xem thông tin danh mục của admin 81
Bảng 5.5 Kiểm thử chức năng thêm mới danh mục 82
Bảng 5.6 Kiểm thử chức năng sửa thông tin danh mục 82
Bảng 5.7 Kiểm thử chức năng xoá danh mục 83
Bảng 5.8 Kiểm thử chức năng tìm công việc ở trang chủ 83
Bảng 5.9 Kiểm thử chức năng lọc công việc 84
Bảng 5.10 Kiểm thử chức năng tìm nhà tuyển dụng 85
Bảng 5.11 Kiểm thử chức năng ứng tuyển công việc 85
Bảng 5.12 Kiểm thử chức năng đăng tuyển công việc 86
PHẦN 1: TỔNG QUAN ĐỀ TÀI 1
1 Tính cấp thiết của đề tài 1
3 Đối tượng và phạm vi nghiên cứu 2
5 Kết quả dự kiến đạt được 8
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 9
1.1 Tìm hiểu về Spring Boot 9
1.3 Tìm hiểu về REST API 11
CHƯƠNG 2: PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU 13
2.1 Xác định yêu cầu phi chức năng 13
2.1.1 Yêu cầu về hệ thống 13
2.1.2 Yêu cầu về dữ liệu 13
2.1.3 Yêu cầu về giao diện người dùng 13
2.2 Xác định yêu cầu chức năng 14
2.2.1 Đối tượng tham gia hệ thống 14
2.2.2 Yêu cầu về chức năng của người dùng 17
2.2.3 Yêu cầu về chức năng của quản trị viên 25
2.2.4 Yêu cầu về chức năng của ứng viên 34
2.2.5 Yêu cầu về chức năng của nhà tuyển dụng 37
2.3 Thiết kế lược đồ lớp 43
2.4 Thiết kế biểu đồ tuần tự 44
2.4.1.Biểu đồ tuần tự dành cho admin 44
2.4.2.Biểu đồ tuần tự dành cho ứng viên 48
2.4.3.Biểu đồ tuần tự dành cho nhà tuyển dụng 51
2.5 Thiết kế lưu đồ hoạt động 55
CHƯƠNG 3: THIẾT KẾ CƠ SỞ DỮ LIỆU 57
3.1 Tổng quan về cơ sở dữ liệu 57
3.2 Thiết kế chi tiết cơ sở dữ liệu 58
CHƯƠNG 4: THIẾT KẾ GIAO DIỆN 63
4.1 Giao diện trang chủ quản trị 63
4.1.1 Giao diện trang đăng nhập 63
4.2 Giao diện trang của người tìm việc 70
4.3 Giao diện trang của nhà tuyển dụng 76
CHƯƠNG 5: CÀI ĐẶT VÀ KIỂM THỬ 79
5.1.2 Hướng dẫn chạy ứng dụng 79
5.2.1 Trang của quản trị viên 81
5.2.2 Trang của người tìm việc 83
5.2.3 Trang của nhà tuyển dụng 86
PHẦN 1: TỔNG QUAN ĐỀ TÀI
1 Tính cấp thiết của đề tài
Chúng ta đang sống trong một xã hội phát triển nhanh chóng với công nghệ tiên tiến Cuối năm 2022, dân số toàn cầu đã đạt 8 tỷ người, dẫn đến nhu cầu tăng cao về sản xuất và cải thiện chất lượng cuộc sống Điều này thúc đẩy sự phát triển của nhiều ngành nghề như dịch vụ, sản xuất, nông nghiệp, kinh tế và công nghệ thông tin Do đó, nhu cầu việc làm và tuyển dụng cũng gia tăng mạnh mẽ.
Nhu cầu tuyển dụng và tìm việc làm tại Việt Nam đang gia tăng mạnh mẽ trong bối cảnh phát triển xã hội sau đại dịch Covid-19 Cụ thể, báo cáo thị trường lao động năm 2022 cho thấy gần 40% lao động vẫn chưa có việc làm ổn định, trong khi 86,4% doanh nghiệp gặp khó khăn trong hoạt động tuyển dụng Điều này cho thấy sự cấp thiết trong việc tìm kiếm nhân sự ở nhiều lĩnh vực và nghề nghiệp khác nhau.
Để giúp người lao động dễ dàng tìm kiếm và lựa chọn công việc phù hợp, cũng như tạo điều kiện cho nhà tuyển dụng đăng tải tin tuyển dụng và tìm kiếm ứng viên tài năng, chúng ta cần một nền tảng website kết nối hai bên Đây là giải pháp công nghệ thông tin thuận lợi, nhanh chóng và tiết kiệm chi phí trong thời đại số hiện nay Vì vậy, tôi đã nghiên cứu và xây dựng một trang web nhằm đáp ứng nhu cầu tuyển dụng và việc làm cho cả người lao động lẫn nhà tuyển dụng.
2 Mục tiêu đề tài Đề tài trang web được xây dựng dựa trên các nhu cầu cốt lõi của hai đối tượng chính là nhà tuyển dụng (recruiter) và ứng viên (candidate), để giúp cả hai có thể tìm được một công việc hoặc một ứng viên phù hợp trong thời gian ngắn nhất, hiệu quả nhất và tối ưu chi phí nhất Tôi đã đặt ra các mục tiêu cần phải có trong đề tài khi xây dựng và phát triển, cụ thể như sau:
- Tìm hiểu và phân tích nghiệp vụ về nhu cầu tuyển dụng, việc làm
- Tìm hiểu và phân tích một số nền tảng tuyển dụng hiện nay
- Nghiên cứu và áp dụng các công nghệ mới: Spring Boot, Restful API, ReactJS,
- Xây dựng các chức năng hỗ trợ người dùng nâng cao hiệu quả tìm kiếm
- Nhận định, đánh giá mặt làm được, mặt hạn chế và hướng mở rộng cho đề tài
3 Đối tượng và phạm vi nghiên cứu
Hiện nay, có nhiều trang web tuyển dụng và tìm kiếm việc làm phổ biến trên mạng Để phân tích yêu cầu và triển khai đề tài hiệu quả, tôi đã chọn một số trang web có lượng người dùng cao để khảo sát nghiệp vụ.
Hình 1.1 Khảo sát nghiệp vụ website CareerBuilder [2]
CareerBuilder là một trong những trang web việc làm uy tín và phổ biến trên toàn cầu, hoạt động tại hơn 60 quốc gia Với hơn 24 triệu người dùng và 300.000 công ty đăng tin tuyển dụng, CareerBuilder cung cấp cho người tìm việc một mạng lưới rộng lớn để khám phá nhiều cơ hội nghề nghiệp.
CareerBuilder cho phép người dùng tạo hồ sơ cá nhân và tìm kiếm việc làm theo địa điểm, ngành nghề và mức lương Trang web cung cấp thông tin chi tiết về công việc, bao gồm mô tả, yêu cầu và lợi ích của từng vị trí Bên cạnh đó, CareerBuilder còn cung cấp các bài viết, tin tức và tư vấn về việc làm, giúp người dùng nắm bắt xu hướng và nâng cao khả năng tự định hình sự nghiệp.
Hình 1.2 Khảo sát nghiệp vụ website VietnamWorks [2]
VietnamWorks là trang web việc làm hàng đầu tại Việt Nam, kết nối hơn 5 triệu người dùng, bao gồm cả người tìm việc và nhà tuyển dụng Với hơn 20.000 công ty đăng tuyển, nền tảng này tạo ra mạng lưới lớn cho cơ hội việc làm VietnamWorks không chỉ cung cấp công cụ tìm kiếm việc làm mà còn hỗ trợ người dùng qua dịch vụ xin việc, tư vấn nghề nghiệp và xây dựng hồ sơ cá nhân, giúp họ nắm bắt thông tin thị trường, phát triển kỹ năng và tăng cơ hội tìm việc phù hợp.
Hình 1.3 Khảo sát nghiệp vụ website LinkedIn [2]
LinkedIn là mạng xã hội chuyên nghiệp hàng đầu với hơn 740 triệu thành viên toàn cầu, cung cấp nền tảng mạnh mẽ cho việc kết nối, xây dựng mối quan hệ và tìm kiếm cơ hội việc làm.
LinkedIn là nền tảng cho phép người dùng xây dựng hồ sơ cá nhân, thể hiện kinh nghiệm làm việc, kỹ năng, học vấn và thành tựu Hồ sơ này không chỉ giúp người dùng tạo dựng hình ảnh chuyên nghiệp mà còn thu hút sự chú ý từ nhà tuyển dụng và các chuyên gia trong ngành.
Sau khi khảo sát nghiệp vụ, nhìn chung các trang web tuyển dụng việc làm hiện nay đã triển khai tốt các nội dung sau như:
- Thiết kế giao diện website trực quan
- Hỗ trợ Đăng tin tuyển dụng
- Có chức năng tìm kiếm việc theo vị trí địa lý, chuyên ngành, mức lương
- Có chức năng quản lý thông tin cá nhân của doanh nghiệp, ứng viên
- Có chức năng tạo CV và đăng tải CV để tìm việc
- Có chức năng tin tức, bài viết, báo liên quan đến chủ đề nghề nghiệp
- Có chức năng nâng cấp, thanh toán tài khoản vip để tăng quyền lợi người dùng
- Tích hợp đăng nhập được với tài khoản mạng xã hội như Google, Facebook
- Hỗ trợ chatbot, message tư vấn trực tuyến, trả lời câu hỏi thường gặp
- Hỗ trợ nền tảng tìm việc trên cả website và mobile app
Tuy nhiên, theo tôi các website được khảo sát vẫn còn có các nhược điểm sau:
Nhiều website tìm việc hiện nay không cung cấp thông tin công việc chính xác, dẫn đến việc đăng tải nhiều quảng cáo không liên quan Điều này gây lãng phí thời gian và nỗ lực của người tìm việc, khiến họ gặp khó khăn trong quá trình tìm kiếm cơ hội nghề nghiệp phù hợp.
- Website tìm việc chỉ cung cấp danh sách công việc mà không cho phép người tìm việc tương tác hoặc tạo kết nối với nhà tuyển dụng
Dựa trên kết quả khảo sát và phân tích, tôi đã xác định ba đối tượng chính để nghiên cứu cho hệ thống website tìm việc của đề tài.
- Người tìm việc (Ứng viên): Là người tìm kiếm các công việc trên website
- Người đăng việc (Nhà tuyển dụng): Là người đăng tải các thông tin tuyển dụng, việc làm lên website
- Người quản trị hệ thống (Quản trị viên): Là người quản trị hệ thống, kiểm duyệt thông tin
4 Nội dung thực hiện Đề tài được phát triển từ Tiểu luận chuyên ngành
Những nội dung đã thực hiện trong Tiểu luận chuyên ngành:
▪ Trang đăng nhập, trang đăng ký
▪ Giao diện nhà tuyển dụng: Trang chủ, trang tất cả việc làm, trang chi tiết việc làm, trang quản lý thông tin cá nhân
▪ Giao diện người tìm việc: Trang chủ, trang tất cả việc làm, trang chi tiết việc làm, trang quản lý thông tin cá nhân
▪ Giao diện quản trị: Trang quản lý tài khoản, trang quản lý việc làm, trang quản lý thông tin
- Phần chức năng: Đối tượng Mô tả
Nhà tuyển dụng Đăng ký tài khoản Đăng nhập,Đăng xuất Quản lý thông tin cá nhân Thay đổi mật khẩu
Quản lý tin tuyển dụng Xem chi tiết công việc đã đăng
Người tìm việc Đăng ký tài khoản Đăng nhập, Đăng xuất Quản lý thông tin cá nhân Chỉnh sửa, thêm mới thông tin cá nhân Thay đổi mật khẩu
Tìm kiếm việc làm Xem chi tiết việc làm Ứng tuyển việc làm Xem việc làm đã ứng tuyển Xem thông tin nhà tuyển dụng
Quản trị viên Đăng nhập, Đăng xuất Quản lý thông tin Quản lý người dùng Quản lý nhà tuyển dụng
− Nội dung điều chỉnh và thêm mới trong Khóa luận tốt nghiệp:
▪ Chỉnh sửa bố cục cho hài hòa hơn
▪ Thêm trang bị lỗi khi trang mất tín hiệu, gặp sự cố không tải được trang
▪ Thêm giao diện: trang gợi ý việc làm cho ứng viên, trang quản lý bài đăng, trang xem hồ sơ ứng viên ứng tuyển
▪ Bổ sung thêm thuộc tính lương cho đối tượng công việc
▪ Chỉnh sửa chi tiết tin tuyển dụng cho nhà tuyển dụng
▪ Xem hồ sơ ứng viên ứng tuyển của nhà tuyển dụng
▪ Tìm kiếm việc làm theo mức lương
▪ Tìm kiếm việc làm đa thuộc tính
▪ Tính năng quản lý đăng tuyển dành cho nhà tuyển dụng
▪ Tính năng gợi ý việc làm dành cho ứng viên
5 Kết quả dự kiến đạt được
Xây dựng ứng dụng website tìm kiếm việc làm:
- Xây dựng máy chủ (Server) và các service bằng Spring Boot và Restful API
- Thiết kế giao diện web (Front-End) bằng ReactJS
- Thiết kế cơ sở dữ liệu bằng PostgreSQL, kết nối database trên Spring Boot
Cấu trúc khóa luận bao gồm:
Phần 1: Tổng quan đề tài
Chương 1: Cơ sở lý thuyết Chương 2: Phân tích và đặc tả yêu cầu Chương 3: Thiết kế cơ sở dữ liệu Chương 4: Thiết kế giao diện Chương 5: Cài đặt và kiểm thử Phần 3: Kết luận
PHẦN 2: NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Tìm hiểu về Spring Boot
Spring Boot là một dự án phát triển từ ngôn ngữ Java trong hệ sinh thái Spring framework, giúp lập trình viên đơn giản hóa quá trình xây dựng ứng dụng Thay vì phải khởi tạo dự án Spring với nhiều công đoạn phức tạp như khai báo dependency trong file pom.xml và cấu hình bằng XML hoặc annotation, Spring Boot cho phép tạo và cấu hình nhanh chóng và dễ dàng hơn.
- Sở hữu hầu như đầy đủ các tính năng của Spring Framework
- Thuận tiện phát triển ứng dụng trên Spring với Groovy và Java
- Tiết kiệm thời gian, tăng năng suất làm việc
- Tự động cấu hình là một cách tiếp cận Spring Boot cốt lõi để giảm số lượng hành động mà nhà phát triển phải thực hiện
- Kết nối dễ dàng với Spring JDBC, Spring Sercurity, Spring ORM,.v.v
- Cung cấp công cụ CLI để phát triển và kiểm thử các ứng dụng từ các dòng lệnh một cách dễ dàng và nhanh chóng
- Cung cấp các plugin để phát triển và kiếm thử các công cụ như Maven và Gradle
- Cung cấp các Server như Tomcat, Jetty,… mà không cần đến các file war
- Thiếu kiểm soát Do cấu hình cố định, Spring Boot tạo ra nhiều phụ thuộc không được sử dụng dẫn đến kích thước tệp triển khai lớn
- Quá trình chuyển đổi dự án Spring sang các ứng dụng Spring Boot còn gặp nhiều khó khăn và tốn thời gian
Spring Boot không phải là lựa chọn lý tưởng cho các dự án quy mô lớn, đặc biệt khi cần hoạt động liên tục với các microservices Nhiều nhà phát triển cho rằng Spring Boot không phù hợp để xây dựng các ứng dụng nguyên khối.
Hình 1.4 Giới thiệu về Spring Framework [3]
THIẾT KẾ GIAO DIỆN
Giao diện trang của người tìm việc
Danh mục Tài liệu tham khảo
Giao diện trang của nhà tuyển dụng
Danh mục Tài liệu tham khảo
STT Thời gian Công việc
1 Viết đề cương chi tiết, khảo sát nghiệp vụ thêm một số trang web và viết báo cáo khảo sát
2 Đặc tả usecase cho đề tài, phân tích và thiết kế hệ thống các tính năng mới
3 Điều chỉnh bố cục, giao diện và bổ sung cơ sở dữ liệu, hoàn thiện tính năng từ tiểu luận chuyên ngành
4 Xây dựng nội dung lương, thiết kế trang tìm kiếm, lọc đa thuộc tính
5 Hoàn thành tính năng quản lý bài đăng tuyển cho nhà tuyển dụng
Hoàn thành tính năng gợi ý việc làm cho ứng viên
Tổng hợp tư liệu và viết báo cáo luận văn
8 Điều chỉnh và hoàn thiện đồ án
Hoàn thiện luận văn Ý kiến của GVHD
(Ký & ghi rõ họ tên)
Hình 1.1 Khảo sát nghiệp vụ website CareerBuilder [2] 2
Hình 1.2 Khảo sát nghiệp vụ website VietnamWorks [2] 3
Hình 1.3 Khảo sát nghiệp vụ website LinkedIn [2] 4
Hình 1.4 Giới thiệu về Spring Framework [3] 10
Hình 1.5 Giới thiệu về ReactJS – DOM [4] 11
Hình 1.6 Giới thiệu về REST API [5] 11
Hình 1.7 Giới thiệu về PostgreSQL [6] 12
Hình 2.1 Use case tổng quát 15
Hình 2.2 Use case quản trị viên 16
Hình 2.3 Use case ứng viên 16
Hình 2.4 Use case nhà tuyển dụng 17
Hình 2.5 Lược đồ lớp hệ thống 43
Hình 2.6 Biểu đồ tuần tự đăng nhập của quản trị viên 44
Hình 2.7 Biểu đồ tuần tự quản trị viên xem danh sách một danh mục 45
Hình 2.8 Biểu đồ tuần tự quản trị viên thêm mới thông tin 46
Hình 2.9 Biểu đồ tuần tự quản trị viên chỉnh sửa một thông tin 47
Hình 2.10 Biểu đồ tuần tự quản trị viên xóa một thông tin 48
Hình 2.11 Biểu đồ tuần tự đăng ký của ứng viên 49
Hình 2.12 Biểu đồ tuần tự cập nhật hồ sơ của ứng viên 50
Hình 2.13 Biểu đồ tuần tự ứng tuyển công việc của ứng viên 51
Hình 2.14 Biểu đồ tuần tự tìm kiếm ứng viên của nhà tuyển dụng 52
Hình 2.15 Biểu đồ tuần tự đăng công việc của nhà tuyển dụng 53
Hình 2.16 Biểu đồ tuần tự cập nhật hồ sơ của nhà tuyển dụng 54
Hình 2.17 Lưu đồ hoạt động ứng tuyển công việc 55
Hình 2.18 Lưu đồ hoạt động tìm kiếm công việc 55
Hình 2.19 Lưu đồ hoạt động tìm kiếm ứng viên 56
Hình 2.20 Lưu đồ hoạt động đăng công việc 56
Hình 3.1 Lược đồ thực thể quan hệ trên PostgreSQL 57
Hình 4.1 Giao diện đăng nhập trang quản trị 63
Hình 4.2 Giao diện thanh sidebar trang quản trị 64
Hình 4.3 Giao diện homepage trang quản trị 65
Hình 4.4 Giao diện quản lý người dùng 66
Hình 4.5 Giao diện quản lý nhà tuyển dụng 66
Hình 4.6 Giao diện quản lý công việc 67
Hình 4.7 Giao diện quản lý ngành nghề 67
Hình 4.8 Giao diện quản lý địa điểm 68
Hình 4.9 Giao diện quản lý kỹ năng chuyên môn 68
Hình 4.10 Giao diện tìm kiếm theo từ khóa 69
Hình 4.11 Giao diện thêm mới thông tin một danh mục 69
Hình 4.12 Giao diện phân trang của quản trị viên 69
Hình 4.13 Giao diện đăng nhập 70
Hình 4.14 Giao diện đăng ký 71
Hình 4.15 Giao diện trang chủ 71
Hình 4.16 Giao diện hiển thị danh mục công việc 72
Hình 4.17 Giao diện trang nhà tuyển dụng nổi bật 72
Hình 4.18 Giao diện trang tất cả công việc 73
Hình 4.19 Giao diện trang chi tiết công việc 73
Hình 4.20 Giao diện form ứng tuyển 74
Hình 4.21 Giao diện trang giới thiệu chi tiết nhà tuyển dụng 74
Hình 4.22 Giao diện quản lý thông tin ứng viên 75
Hình 4.23 Giao diện trang quản lý thông tin đã ứng tuyển 75
Hình 4.24 Giao diện trang gợi ý việc làm 76
Hình 4.25 Giao diện trang chủ nhà tuyển dụng 76
Hình 4.26 Giao diện đăng tin tuyển dụng 77
Hình 4.27 Giao diện quản lý thông tin nhà tuyển dụng 77
Hình 4.28 Giao diện trang quản lý công việc đã đăng 78
Hình 4.29 Giao diện quản lý thông tin ứng viên 78
Bảng 2.1 Thiết kế đặc tả yêu cầu website 15
Bảng 2.2.1 Use case Đăng nhập 17
Bảng 2.2.2 Use case Đăng xuất 18
Bảng 2.2.3 Use case Đăng ký 19
Bảng 2.2.4 Use case Tìm kiếm việc làm 20
Bảng 2.2.5 Use case Xem danh sách công việc 21
Bảng 2.2.6 Use case Xem danh sách nhà tuyển dụng 22
Bảng 2.2.7 Use case Quản lý hồ sơ người dùng 23
Bảng 2.2.8 Use case Quản trị viên xem tất cả thông tin 25
Bảng 2.2.9 Use case Quản trị viên thống kê 26
Bảng 2.2.10 Use case Quản trị viên thêm thông tin 27
Bảng 2.2.11 Use case Quản trị viên cập nhật thông tin 28
Bảng 2.2.12 Use case Quản trị viên xóa thông tin 29
Bảng 2.2.13 Use case Quản trị viên xem thông tin chi tiết 30
Bảng 2.2.14 Use case Quản trị viên lọc thuộc tính 31
Bảng 2.2.15 Use case Quản trị viên tìm kiếm 32
Bảng 2.2.16 Use case Quản trị viên phân trang 33
Bảng 2.2 17 Use case Ứng viên ứng tuyển công việc 34
Bảng 2.2.18 Use case Ứng viên xem việc làm ứng tuyển 35
Bảng 2.2.19 Use case Ứng viên xem gợi ý việc làm 36
Bảng 2.2.20 Use case Nhà tuyển dụng đăng tuyển 37
Bảng 2.2.21 Use case Nhà tuyển dụng xem bài đăng tuyển 39
Bảng 2.2.22 Use case Nhà tuyển dụng quản lý bài đăng 40
Bảng 2.2.23 Use case Nhà tuyển dụng xem hồ sơ ứng viên 41
Bảng 3.1 Bảng nhà tuyển dụng “recruiter” 58
Bảng 3.2 Bảng người tìm việc “user” 59
Bảng 3.3 Bảng công việc “job” 59
Bảng 3.4 Bảng thành phố “city” 60
Bảng 3.5 Bảng trạng thái “status” 60
Bảng 3.6 Bảng ngành nghề “profession_job” 60
Bảng 3.7 Bảng kỹ năng “skill” 61
Bảng 3.8 Bảng mô tả quan hệ “user_job” 61
Bảng 3.9 Bảng mô tả quan hệ “user_skill” 61
Bảng 3.10 Bảng mô tả quan hệ “job_require_skill” 62
Bảng 3.11 Bảng mô tả quan hệ “Job _professionJob” 62
Bảng 4.1 Mô tả thành phần giao diện trang quản trị 63
Bảng 4.2 Mô tả thành phần thanh sidebar trang quản trị 64
Bảng 4.3 Mô tả thành phần một danh mục 70
Bảng 5.1 Kiểm thử chức năng đăng nhập của người dùng 80
Bảng 5.2 Kiểm thử chức năng đăng ký của người dùng 80
Bảng 5.3 Kiểm thử chức năng đăng xuất của người dùng 81
Bảng 5.4 Kiểm thử chức năng xem thông tin danh mục của admin 81
Bảng 5.5 Kiểm thử chức năng thêm mới danh mục 82
Bảng 5.6 Kiểm thử chức năng sửa thông tin danh mục 82
Bảng 5.7 Kiểm thử chức năng xoá danh mục 83
Bảng 5.8 Kiểm thử chức năng tìm công việc ở trang chủ 83
Bảng 5.9 Kiểm thử chức năng lọc công việc 84
Bảng 5.10 Kiểm thử chức năng tìm nhà tuyển dụng 85
Bảng 5.11 Kiểm thử chức năng ứng tuyển công việc 85
Bảng 5.12 Kiểm thử chức năng đăng tuyển công việc 86
PHẦN 1: TỔNG QUAN ĐỀ TÀI 1
1 Tính cấp thiết của đề tài 1
3 Đối tượng và phạm vi nghiên cứu 2
5 Kết quả dự kiến đạt được 8
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 9
1.1 Tìm hiểu về Spring Boot 9
1.3 Tìm hiểu về REST API 11
CHƯƠNG 2: PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU 13
2.1 Xác định yêu cầu phi chức năng 13
2.1.1 Yêu cầu về hệ thống 13
2.1.2 Yêu cầu về dữ liệu 13
2.1.3 Yêu cầu về giao diện người dùng 13
2.2 Xác định yêu cầu chức năng 14
2.2.1 Đối tượng tham gia hệ thống 14
2.2.2 Yêu cầu về chức năng của người dùng 17
2.2.3 Yêu cầu về chức năng của quản trị viên 25
2.2.4 Yêu cầu về chức năng của ứng viên 34
2.2.5 Yêu cầu về chức năng của nhà tuyển dụng 37
2.3 Thiết kế lược đồ lớp 43
2.4 Thiết kế biểu đồ tuần tự 44
2.4.1.Biểu đồ tuần tự dành cho admin 44
2.4.2.Biểu đồ tuần tự dành cho ứng viên 48
2.4.3.Biểu đồ tuần tự dành cho nhà tuyển dụng 51
2.5 Thiết kế lưu đồ hoạt động 55
CHƯƠNG 3: THIẾT KẾ CƠ SỞ DỮ LIỆU 57
3.1 Tổng quan về cơ sở dữ liệu 57
3.2 Thiết kế chi tiết cơ sở dữ liệu 58
CHƯƠNG 4: THIẾT KẾ GIAO DIỆN 63
4.1 Giao diện trang chủ quản trị 63
4.1.1 Giao diện trang đăng nhập 63
4.2 Giao diện trang của người tìm việc 70
4.3 Giao diện trang của nhà tuyển dụng 76
CHƯƠNG 5: CÀI ĐẶT VÀ KIỂM THỬ 79
5.1.2 Hướng dẫn chạy ứng dụng 79
5.2.1 Trang của quản trị viên 81
5.2.2 Trang của người tìm việc 83
5.2.3 Trang của nhà tuyển dụng 86
PHẦN 1: TỔNG QUAN ĐỀ TÀI
1 Tính cấp thiết của đề tài
Chúng ta đang sống trong một xã hội phát triển nhanh chóng với nền khoa học công nghệ tiên tiến nhất trong lịch sử Đến cuối năm 2022, dân số toàn cầu đã đạt 8 tỷ người, dẫn đến nhu cầu tăng cao về tạo ra của cải vật chất và nâng cao chất lượng cuộc sống Sự gia tăng này đã thúc đẩy sự phát triển của nhiều ngành nghề như dịch vụ, sản xuất, nông nghiệp, kinh tế và công nghệ thông tin Do đó, nhu cầu việc làm và tuyển dụng cũng đang gia tăng mạnh mẽ để đáp ứng các hoạt động trong các lĩnh vực này.
Nhu cầu tuyển dụng và tìm việc làm tại Việt Nam đang gia tăng mạnh mẽ sau đại dịch Covid-19, phản ánh sự phát triển của xã hội Theo báo cáo thị trường lao động năm 2022, gần 40% lao động vẫn chưa có việc làm ổn định, trong khi 86,4% doanh nghiệp gặp khó khăn trong việc tuyển dụng nhân sự Điều này cho thấy sự cấp thiết trong việc tìm kiếm việc làm và nhân sự ở mọi lĩnh vực và nghề nghiệp.
Để giúp người lao động dễ dàng tìm kiếm công việc phù hợp và cho nhà tuyển dụng có nơi đăng tải tin tuyển dụng, chúng ta cần một nền tảng website kết nối hai bên Giải pháp này không chỉ đáp ứng nhu cầu của cả nhà tuyển dụng và người lao động mà còn là công nghệ thông tin tiết kiệm chi phí và nhanh chóng trong thời đại số hiện nay Tôi đã nghiên cứu và xây dựng một trang web nhằm kết nối hai đối tượng này và giải quyết nhu cầu về tuyển dụng và việc làm.
2 Mục tiêu đề tài Đề tài trang web được xây dựng dựa trên các nhu cầu cốt lõi của hai đối tượng chính là nhà tuyển dụng (recruiter) và ứng viên (candidate), để giúp cả hai có thể tìm được một công việc hoặc một ứng viên phù hợp trong thời gian ngắn nhất, hiệu quả nhất và tối ưu chi phí nhất Tôi đã đặt ra các mục tiêu cần phải có trong đề tài khi xây dựng và phát triển, cụ thể như sau:
- Tìm hiểu và phân tích nghiệp vụ về nhu cầu tuyển dụng, việc làm
- Tìm hiểu và phân tích một số nền tảng tuyển dụng hiện nay
- Nghiên cứu và áp dụng các công nghệ mới: Spring Boot, Restful API, ReactJS,
- Xây dựng các chức năng hỗ trợ người dùng nâng cao hiệu quả tìm kiếm
- Nhận định, đánh giá mặt làm được, mặt hạn chế và hướng mở rộng cho đề tài
3 Đối tượng và phạm vi nghiên cứu
Hiện nay, có nhiều trang web tuyển dụng phổ biến trên mạng, giúp người dùng tìm kiếm việc làm hiệu quả Để phân tích yêu cầu và triển khai đề tài một cách tốt nhất, tôi đã chọn khảo sát một số trang web có lượng người dùng đông đảo.
Hình 1.1 Khảo sát nghiệp vụ website CareerBuilder [2]
CareerBuilder là một trong những trang web việc làm hàng đầu thế giới, hoạt động tại hơn 60 quốc gia với hơn 24 triệu người dùng và 300.000 công ty đăng tin tuyển dụng Điều này tạo ra một mạng lưới rộng lớn cho người tìm việc, giúp họ dễ dàng tìm kiếm cơ hội nghề nghiệp phù hợp.
CareerBuilder cho phép người dùng tạo hồ sơ cá nhân và tìm kiếm việc làm theo địa điểm, ngành nghề và mức lương Trang web cung cấp thông tin chi tiết về các vị trí công việc, bao gồm mô tả, yêu cầu và lợi ích Ngoài ra, CareerBuilder còn cung cấp bài viết, tin tức và tư vấn về việc làm, giúp người dùng nắm bắt xu hướng và nâng cao khả năng tự định hình sự nghiệp.
Hình 1.2 Khảo sát nghiệp vụ website VietnamWorks [2]
VietnamWorks là trang web việc làm hàng đầu tại Việt Nam, kết nối hơn 5 triệu người dùng, bao gồm cả người tìm việc và nhà tuyển dụng Nền tảng này thu hút hơn 20.000 công ty đăng tuyển, tạo ra mạng lưới rộng lớn cho cơ hội việc làm Ngoài việc cung cấp công cụ tìm kiếm việc làm, VietnamWorks còn hỗ trợ người dùng với các dịch vụ như tư vấn nghề nghiệp, xin việc và xây dựng hồ sơ cá nhân, giúp họ nắm bắt thông tin thị trường, phát triển kỹ năng và tăng cơ hội tìm việc phù hợp.
Hình 1.3 Khảo sát nghiệp vụ website LinkedIn [2]
LinkedIn là mạng xã hội chuyên ngành hàng đầu dành cho việc làm và kết nối chuyên nghiệp, với hơn 740 triệu thành viên toàn cầu Nền tảng này cung cấp cơ hội mạnh mẽ để xây dựng mối quan hệ, tương tác với cộng đồng và tìm kiếm việc làm.
LinkedIn là nền tảng cho phép người dùng xây dựng hồ sơ cá nhân, thể hiện kinh nghiệm làm việc, kỹ năng, học vấn và thành tựu Hồ sơ này không chỉ giúp người dùng tạo dựng hình ảnh chuyên nghiệp mà còn thu hút sự quan tâm từ nhà tuyển dụng và các chuyên gia trong ngành.
Sau khi khảo sát nghiệp vụ, nhìn chung các trang web tuyển dụng việc làm hiện nay đã triển khai tốt các nội dung sau như:
- Thiết kế giao diện website trực quan
- Hỗ trợ Đăng tin tuyển dụng
- Có chức năng tìm kiếm việc theo vị trí địa lý, chuyên ngành, mức lương
- Có chức năng quản lý thông tin cá nhân của doanh nghiệp, ứng viên
- Có chức năng tạo CV và đăng tải CV để tìm việc
- Có chức năng tin tức, bài viết, báo liên quan đến chủ đề nghề nghiệp
- Có chức năng nâng cấp, thanh toán tài khoản vip để tăng quyền lợi người dùng
- Tích hợp đăng nhập được với tài khoản mạng xã hội như Google, Facebook
- Hỗ trợ chatbot, message tư vấn trực tuyến, trả lời câu hỏi thường gặp
- Hỗ trợ nền tảng tìm việc trên cả website và mobile app
Tuy nhiên, theo tôi các website được khảo sát vẫn còn có các nhược điểm sau:
Nhiều website tìm việc hiện nay không cung cấp thông tin công việc chính xác, dẫn đến việc đăng tải nhiều quảng cáo không liên quan Điều này gây lãng phí thời gian và nỗ lực của người tìm việc, khiến họ khó khăn trong việc tìm kiếm cơ hội phù hợp.
- Website tìm việc chỉ cung cấp danh sách công việc mà không cho phép người tìm việc tương tác hoặc tạo kết nối với nhà tuyển dụng
Dựa trên kết quả khảo sát và phân tích, tôi đã xác định 03 nhóm đối tượng chính để nghiên cứu cho hệ thống website tìm việc của đề tài.
- Người tìm việc (Ứng viên): Là người tìm kiếm các công việc trên website
- Người đăng việc (Nhà tuyển dụng): Là người đăng tải các thông tin tuyển dụng, việc làm lên website
- Người quản trị hệ thống (Quản trị viên): Là người quản trị hệ thống, kiểm duyệt thông tin
4 Nội dung thực hiện Đề tài được phát triển từ Tiểu luận chuyên ngành
Những nội dung đã thực hiện trong Tiểu luận chuyên ngành:
▪ Trang đăng nhập, trang đăng ký
▪ Giao diện nhà tuyển dụng: Trang chủ, trang tất cả việc làm, trang chi tiết việc làm, trang quản lý thông tin cá nhân
▪ Giao diện người tìm việc: Trang chủ, trang tất cả việc làm, trang chi tiết việc làm, trang quản lý thông tin cá nhân
▪ Giao diện quản trị: Trang quản lý tài khoản, trang quản lý việc làm, trang quản lý thông tin
- Phần chức năng: Đối tượng Mô tả
Nhà tuyển dụng Đăng ký tài khoản Đăng nhập,Đăng xuất Quản lý thông tin cá nhân Thay đổi mật khẩu
Quản lý tin tuyển dụng Xem chi tiết công việc đã đăng
Người tìm việc Đăng ký tài khoản Đăng nhập, Đăng xuất Quản lý thông tin cá nhân Chỉnh sửa, thêm mới thông tin cá nhân Thay đổi mật khẩu
Tìm kiếm việc làm Xem chi tiết việc làm Ứng tuyển việc làm Xem việc làm đã ứng tuyển Xem thông tin nhà tuyển dụng
Quản trị viên Đăng nhập, Đăng xuất Quản lý thông tin Quản lý người dùng Quản lý nhà tuyển dụng
− Nội dung điều chỉnh và thêm mới trong Khóa luận tốt nghiệp:
▪ Chỉnh sửa bố cục cho hài hòa hơn
▪ Thêm trang bị lỗi khi trang mất tín hiệu, gặp sự cố không tải được trang
▪ Thêm giao diện: trang gợi ý việc làm cho ứng viên, trang quản lý bài đăng, trang xem hồ sơ ứng viên ứng tuyển
▪ Bổ sung thêm thuộc tính lương cho đối tượng công việc
▪ Chỉnh sửa chi tiết tin tuyển dụng cho nhà tuyển dụng
▪ Xem hồ sơ ứng viên ứng tuyển của nhà tuyển dụng
▪ Tìm kiếm việc làm theo mức lương
▪ Tìm kiếm việc làm đa thuộc tính
▪ Tính năng quản lý đăng tuyển dành cho nhà tuyển dụng
▪ Tính năng gợi ý việc làm dành cho ứng viên
5 Kết quả dự kiến đạt được
Xây dựng ứng dụng website tìm kiếm việc làm:
- Xây dựng máy chủ (Server) và các service bằng Spring Boot và Restful API
- Thiết kế giao diện web (Front-End) bằng ReactJS
- Thiết kế cơ sở dữ liệu bằng PostgreSQL, kết nối database trên Spring Boot
Cấu trúc khóa luận bao gồm:
Phần 1: Tổng quan đề tài
Chương 1: Cơ sở lý thuyết Chương 2: Phân tích và đặc tả yêu cầu Chương 3: Thiết kế cơ sở dữ liệu Chương 4: Thiết kế giao diện Chương 5: Cài đặt và kiểm thử Phần 3: Kết luận
PHẦN 2: NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Tìm hiểu về Spring Boot
Spring Boot là một dự án phát triển bởi ngôn ngữ Java trong hệ sinh thái Spring framework, giúp lập trình viên đơn giản hóa quá trình phát triển ứng dụng Thay vì phải khai báo các dependency trong file pom.xml và cấu hình phức tạp bằng XML hoặc annotation, giờ đây, việc tạo và cấu hình dự án trở nên nhanh chóng và dễ dàng hơn với Spring Boot.
- Sở hữu hầu như đầy đủ các tính năng của Spring Framework
- Thuận tiện phát triển ứng dụng trên Spring với Groovy và Java
- Tiết kiệm thời gian, tăng năng suất làm việc
- Tự động cấu hình là một cách tiếp cận Spring Boot cốt lõi để giảm số lượng hành động mà nhà phát triển phải thực hiện
- Kết nối dễ dàng với Spring JDBC, Spring Sercurity, Spring ORM,.v.v
- Cung cấp công cụ CLI để phát triển và kiểm thử các ứng dụng từ các dòng lệnh một cách dễ dàng và nhanh chóng
- Cung cấp các plugin để phát triển và kiếm thử các công cụ như Maven và Gradle
- Cung cấp các Server như Tomcat, Jetty,… mà không cần đến các file war
- Thiếu kiểm soát Do cấu hình cố định, Spring Boot tạo ra nhiều phụ thuộc không được sử dụng dẫn đến kích thước tệp triển khai lớn
- Quá trình chuyển đổi dự án Spring sang các ứng dụng Spring Boot còn gặp nhiều khó khăn và tốn thời gian
Spring Boot không được khuyến nghị cho các dự án quy mô lớn vì nó hoạt động liên tục với các microservices Nhiều nhà phát triển cho rằng Spring Boot không phù hợp để xây dựng các ứng dụng nguyên khối.
Hình 1.4 Giới thiệu về Spring Framework [3]
CÀI ĐẶT VÀ KIỂM THỬ
Kiểm thử
Danh mục Tài liệu tham khảo
STT Thời gian Công việc
1 Viết đề cương chi tiết, khảo sát nghiệp vụ thêm một số trang web và viết báo cáo khảo sát
2 Đặc tả usecase cho đề tài, phân tích và thiết kế hệ thống các tính năng mới
3 Điều chỉnh bố cục, giao diện và bổ sung cơ sở dữ liệu, hoàn thiện tính năng từ tiểu luận chuyên ngành
4 Xây dựng nội dung lương, thiết kế trang tìm kiếm, lọc đa thuộc tính
5 Hoàn thành tính năng quản lý bài đăng tuyển cho nhà tuyển dụng
Hoàn thành tính năng gợi ý việc làm cho ứng viên
Tổng hợp tư liệu và viết báo cáo luận văn
8 Điều chỉnh và hoàn thiện đồ án
Hoàn thiện luận văn Ý kiến của GVHD
(Ký & ghi rõ họ tên)
Hình 1.1 Khảo sát nghiệp vụ website CareerBuilder [2] 2
Hình 1.2 Khảo sát nghiệp vụ website VietnamWorks [2] 3
Hình 1.3 Khảo sát nghiệp vụ website LinkedIn [2] 4
Hình 1.4 Giới thiệu về Spring Framework [3] 10
Hình 1.5 Giới thiệu về ReactJS – DOM [4] 11
Hình 1.6 Giới thiệu về REST API [5] 11
Hình 1.7 Giới thiệu về PostgreSQL [6] 12
Hình 2.1 Use case tổng quát 15
Hình 2.2 Use case quản trị viên 16
Hình 2.3 Use case ứng viên 16
Hình 2.4 Use case nhà tuyển dụng 17
Hình 2.5 Lược đồ lớp hệ thống 43
Hình 2.6 Biểu đồ tuần tự đăng nhập của quản trị viên 44
Hình 2.7 Biểu đồ tuần tự quản trị viên xem danh sách một danh mục 45
Hình 2.8 Biểu đồ tuần tự quản trị viên thêm mới thông tin 46
Hình 2.9 Biểu đồ tuần tự quản trị viên chỉnh sửa một thông tin 47
Hình 2.10 Biểu đồ tuần tự quản trị viên xóa một thông tin 48
Hình 2.11 Biểu đồ tuần tự đăng ký của ứng viên 49
Hình 2.12 Biểu đồ tuần tự cập nhật hồ sơ của ứng viên 50
Hình 2.13 Biểu đồ tuần tự ứng tuyển công việc của ứng viên 51
Hình 2.14 Biểu đồ tuần tự tìm kiếm ứng viên của nhà tuyển dụng 52
Hình 2.15 Biểu đồ tuần tự đăng công việc của nhà tuyển dụng 53
Hình 2.16 Biểu đồ tuần tự cập nhật hồ sơ của nhà tuyển dụng 54
Hình 2.17 Lưu đồ hoạt động ứng tuyển công việc 55
Hình 2.18 Lưu đồ hoạt động tìm kiếm công việc 55
Hình 2.19 Lưu đồ hoạt động tìm kiếm ứng viên 56
Hình 2.20 Lưu đồ hoạt động đăng công việc 56
Hình 3.1 Lược đồ thực thể quan hệ trên PostgreSQL 57
Hình 4.1 Giao diện đăng nhập trang quản trị 63
Hình 4.2 Giao diện thanh sidebar trang quản trị 64
Hình 4.3 Giao diện homepage trang quản trị 65
Hình 4.4 Giao diện quản lý người dùng 66
Hình 4.5 Giao diện quản lý nhà tuyển dụng 66
Hình 4.6 Giao diện quản lý công việc 67
Hình 4.7 Giao diện quản lý ngành nghề 67
Hình 4.8 Giao diện quản lý địa điểm 68
Hình 4.9 Giao diện quản lý kỹ năng chuyên môn 68
Hình 4.10 Giao diện tìm kiếm theo từ khóa 69
Hình 4.11 Giao diện thêm mới thông tin một danh mục 69
Hình 4.12 Giao diện phân trang của quản trị viên 69
Hình 4.13 Giao diện đăng nhập 70
Hình 4.14 Giao diện đăng ký 71
Hình 4.15 Giao diện trang chủ 71
Hình 4.16 Giao diện hiển thị danh mục công việc 72
Hình 4.17 Giao diện trang nhà tuyển dụng nổi bật 72
Hình 4.18 Giao diện trang tất cả công việc 73
Hình 4.19 Giao diện trang chi tiết công việc 73
Hình 4.20 Giao diện form ứng tuyển 74
Hình 4.21 Giao diện trang giới thiệu chi tiết nhà tuyển dụng 74
Hình 4.22 Giao diện quản lý thông tin ứng viên 75
Hình 4.23 Giao diện trang quản lý thông tin đã ứng tuyển 75
Hình 4.24 Giao diện trang gợi ý việc làm 76
Hình 4.25 Giao diện trang chủ nhà tuyển dụng 76
Hình 4.26 Giao diện đăng tin tuyển dụng 77
Hình 4.27 Giao diện quản lý thông tin nhà tuyển dụng 77
Hình 4.28 Giao diện trang quản lý công việc đã đăng 78
Hình 4.29 Giao diện quản lý thông tin ứng viên 78
Bảng 2.1 Thiết kế đặc tả yêu cầu website 15
Bảng 2.2.1 Use case Đăng nhập 17
Bảng 2.2.2 Use case Đăng xuất 18
Bảng 2.2.3 Use case Đăng ký 19
Bảng 2.2.4 Use case Tìm kiếm việc làm 20
Bảng 2.2.5 Use case Xem danh sách công việc 21
Bảng 2.2.6 Use case Xem danh sách nhà tuyển dụng 22
Bảng 2.2.7 Use case Quản lý hồ sơ người dùng 23
Bảng 2.2.8 Use case Quản trị viên xem tất cả thông tin 25
Bảng 2.2.9 Use case Quản trị viên thống kê 26
Bảng 2.2.10 Use case Quản trị viên thêm thông tin 27
Bảng 2.2.11 Use case Quản trị viên cập nhật thông tin 28
Bảng 2.2.12 Use case Quản trị viên xóa thông tin 29
Bảng 2.2.13 Use case Quản trị viên xem thông tin chi tiết 30
Bảng 2.2.14 Use case Quản trị viên lọc thuộc tính 31
Bảng 2.2.15 Use case Quản trị viên tìm kiếm 32
Bảng 2.2.16 Use case Quản trị viên phân trang 33
Bảng 2.2 17 Use case Ứng viên ứng tuyển công việc 34
Bảng 2.2.18 Use case Ứng viên xem việc làm ứng tuyển 35
Bảng 2.2.19 Use case Ứng viên xem gợi ý việc làm 36
Bảng 2.2.20 Use case Nhà tuyển dụng đăng tuyển 37
Bảng 2.2.21 Use case Nhà tuyển dụng xem bài đăng tuyển 39
Bảng 2.2.22 Use case Nhà tuyển dụng quản lý bài đăng 40
Bảng 2.2.23 Use case Nhà tuyển dụng xem hồ sơ ứng viên 41
Bảng 3.1 Bảng nhà tuyển dụng “recruiter” 58
Bảng 3.2 Bảng người tìm việc “user” 59
Bảng 3.3 Bảng công việc “job” 59
Bảng 3.4 Bảng thành phố “city” 60
Bảng 3.5 Bảng trạng thái “status” 60
Bảng 3.6 Bảng ngành nghề “profession_job” 60
Bảng 3.7 Bảng kỹ năng “skill” 61
Bảng 3.8 Bảng mô tả quan hệ “user_job” 61
Bảng 3.9 Bảng mô tả quan hệ “user_skill” 61
Bảng 3.10 Bảng mô tả quan hệ “job_require_skill” 62
Bảng 3.11 Bảng mô tả quan hệ “Job _professionJob” 62
Bảng 4.1 Mô tả thành phần giao diện trang quản trị 63
Bảng 4.2 Mô tả thành phần thanh sidebar trang quản trị 64
Bảng 4.3 Mô tả thành phần một danh mục 70
Bảng 5.1 Kiểm thử chức năng đăng nhập của người dùng 80
Bảng 5.2 Kiểm thử chức năng đăng ký của người dùng 80
Bảng 5.3 Kiểm thử chức năng đăng xuất của người dùng 81
Bảng 5.4 Kiểm thử chức năng xem thông tin danh mục của admin 81
Bảng 5.5 Kiểm thử chức năng thêm mới danh mục 82
Bảng 5.6 Kiểm thử chức năng sửa thông tin danh mục 82
Bảng 5.7 Kiểm thử chức năng xoá danh mục 83
Bảng 5.8 Kiểm thử chức năng tìm công việc ở trang chủ 83
Bảng 5.9 Kiểm thử chức năng lọc công việc 84
Bảng 5.10 Kiểm thử chức năng tìm nhà tuyển dụng 85
Bảng 5.11 Kiểm thử chức năng ứng tuyển công việc 85
Bảng 5.12 Kiểm thử chức năng đăng tuyển công việc 86
PHẦN 1: TỔNG QUAN ĐỀ TÀI 1
1 Tính cấp thiết của đề tài 1
3 Đối tượng và phạm vi nghiên cứu 2
5 Kết quả dự kiến đạt được 8
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 9
1.1 Tìm hiểu về Spring Boot 9
1.3 Tìm hiểu về REST API 11
CHƯƠNG 2: PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU 13
2.1 Xác định yêu cầu phi chức năng 13
2.1.1 Yêu cầu về hệ thống 13
2.1.2 Yêu cầu về dữ liệu 13
2.1.3 Yêu cầu về giao diện người dùng 13
2.2 Xác định yêu cầu chức năng 14
2.2.1 Đối tượng tham gia hệ thống 14
2.2.2 Yêu cầu về chức năng của người dùng 17
2.2.3 Yêu cầu về chức năng của quản trị viên 25
2.2.4 Yêu cầu về chức năng của ứng viên 34
2.2.5 Yêu cầu về chức năng của nhà tuyển dụng 37
2.3 Thiết kế lược đồ lớp 43
2.4 Thiết kế biểu đồ tuần tự 44
2.4.1.Biểu đồ tuần tự dành cho admin 44
2.4.2.Biểu đồ tuần tự dành cho ứng viên 48
2.4.3.Biểu đồ tuần tự dành cho nhà tuyển dụng 51
2.5 Thiết kế lưu đồ hoạt động 55
CHƯƠNG 3: THIẾT KẾ CƠ SỞ DỮ LIỆU 57
3.1 Tổng quan về cơ sở dữ liệu 57
3.2 Thiết kế chi tiết cơ sở dữ liệu 58
CHƯƠNG 4: THIẾT KẾ GIAO DIỆN 63
4.1 Giao diện trang chủ quản trị 63
4.1.1 Giao diện trang đăng nhập 63
4.2 Giao diện trang của người tìm việc 70
4.3 Giao diện trang của nhà tuyển dụng 76
CHƯƠNG 5: CÀI ĐẶT VÀ KIỂM THỬ 79
5.1.2 Hướng dẫn chạy ứng dụng 79
5.2.1 Trang của quản trị viên 81
5.2.2 Trang của người tìm việc 83
5.2.3 Trang của nhà tuyển dụng 86
PHẦN 1: TỔNG QUAN ĐỀ TÀI
1 Tính cấp thiết của đề tài
Chúng ta đang sống trong một xã hội phát triển nhanh chóng với nền khoa học công nghệ tiên tiến nhất trong lịch sử Cuối năm 2022, dân số toàn cầu đã đạt 8 tỷ người, dẫn đến nhu cầu tăng cao về sản xuất và nâng cao chất lượng đời sống Sự gia tăng này đã thúc đẩy sự phát triển của nhiều ngành nghề như dịch vụ, sản xuất, nông nghiệp, kinh tế và công nghệ thông tin Do đó, nhu cầu việc làm và tuyển dụng cũng đang gia tăng mạnh mẽ để đáp ứng các hoạt động trong các lĩnh vực này.
Nhu cầu tuyển dụng và tìm việc làm tại Việt Nam đang gia tăng mạnh mẽ trong bối cảnh xã hội phát triển sau đại dịch Covid-19 Việc tìm kiếm nhân sự trở nên cấp thiết ở nhiều lĩnh vực và nghề nghiệp khác nhau Theo báo cáo thị trường lao động năm 2022, gần 40% lao động vẫn chưa có việc làm ổn định, trong khi 86,4% doanh nghiệp gặp khó khăn trong hoạt động tuyển dụng.
Để người lao động dễ dàng tìm kiếm và lựa chọn công việc phù hợp, đồng thời giúp nhà tuyển dụng đăng tải tin tuyển dụng và tìm kiếm ứng viên tài năng, cần một nền tảng website kết nối hai bên Giải pháp này không chỉ thuận lợi và nhanh chóng mà còn tiết kiệm chi phí trong thời đại số hiện nay Vì vậy, tôi đã nghiên cứu và xây dựng một trang web nhằm kết nối người lao động và nhà tuyển dụng, đáp ứng nhu cầu về tuyển dụng và việc làm.
2 Mục tiêu đề tài Đề tài trang web được xây dựng dựa trên các nhu cầu cốt lõi của hai đối tượng chính là nhà tuyển dụng (recruiter) và ứng viên (candidate), để giúp cả hai có thể tìm được một công việc hoặc một ứng viên phù hợp trong thời gian ngắn nhất, hiệu quả nhất và tối ưu chi phí nhất Tôi đã đặt ra các mục tiêu cần phải có trong đề tài khi xây dựng và phát triển, cụ thể như sau:
- Tìm hiểu và phân tích nghiệp vụ về nhu cầu tuyển dụng, việc làm
- Tìm hiểu và phân tích một số nền tảng tuyển dụng hiện nay
- Nghiên cứu và áp dụng các công nghệ mới: Spring Boot, Restful API, ReactJS,
- Xây dựng các chức năng hỗ trợ người dùng nâng cao hiệu quả tìm kiếm
- Nhận định, đánh giá mặt làm được, mặt hạn chế và hướng mở rộng cho đề tài
3 Đối tượng và phạm vi nghiên cứu
Hiện nay, có nhiều trang web tuyển dụng và tìm kiếm việc làm phổ biến trên mạng Để phân tích yêu cầu và triển khai đề tài hiệu quả, tôi đã chọn một số trang web có lượng người dùng cao để khảo sát nghiệp vụ.
Hình 1.1 Khảo sát nghiệp vụ website CareerBuilder [2]
CareerBuilder là một nền tảng việc làm uy tín và phổ biến trên toàn cầu, hoạt động tại hơn 60 quốc gia Với hơn 24 triệu người dùng và 300.000 công ty đăng tin tuyển dụng, CareerBuilder cung cấp cho người tìm việc một mạng lưới rộng lớn để khám phá các cơ hội nghề nghiệp.
CareerBuilder cho phép người dùng tạo hồ sơ cá nhân và tìm kiếm việc làm theo địa điểm, ngành nghề và mức lương Trang web cung cấp thông tin chi tiết về công việc, bao gồm mô tả, yêu cầu và lợi ích của từng vị trí Bên cạnh đó, CareerBuilder còn cung cấp các bài viết, tin tức và tư vấn về việc làm, giúp người dùng nắm bắt xu hướng và nâng cao khả năng tự định hình sự nghiệp.
Hình 1.2 Khảo sát nghiệp vụ website VietnamWorks [2]
VietnamWorks là trang web việc làm hàng đầu tại Việt Nam, kết nối hơn 5 triệu người tìm việc và nhà tuyển dụng Với hơn 20.000 công ty đăng tuyển, nền tảng này tạo ra mạng lưới rộng lớn cho cơ hội việc làm Bên cạnh công cụ tìm kiếm việc làm, VietnamWorks còn cung cấp dịch vụ xin việc, tư vấn nghề nghiệp và hỗ trợ xây dựng hồ sơ cá nhân, giúp người dùng nắm bắt thông tin thị trường và phát triển kỹ năng, từ đó tăng cường khả năng tìm kiếm việc làm phù hợp.
Hình 1.3 Khảo sát nghiệp vụ website LinkedIn [2]
LinkedIn là mạng xã hội chuyên nghiệp hàng đầu với hơn 740 triệu thành viên toàn cầu, cung cấp nền tảng mạnh mẽ để xây dựng mối quan hệ, tương tác với cộng đồng và tìm kiếm cơ hội việc làm.
LinkedIn là nền tảng cho phép người dùng xây dựng hồ sơ cá nhân, thể hiện kinh nghiệm làm việc, kỹ năng, học vấn và thành tựu Hồ sơ này không chỉ giúp người dùng tạo ấn tượng chuyên nghiệp mà còn thu hút sự chú ý từ các nhà tuyển dụng và chuyên gia trong ngành.
Sau khi khảo sát nghiệp vụ, nhìn chung các trang web tuyển dụng việc làm hiện nay đã triển khai tốt các nội dung sau như:
- Thiết kế giao diện website trực quan
- Hỗ trợ Đăng tin tuyển dụng
- Có chức năng tìm kiếm việc theo vị trí địa lý, chuyên ngành, mức lương
- Có chức năng quản lý thông tin cá nhân của doanh nghiệp, ứng viên
- Có chức năng tạo CV và đăng tải CV để tìm việc
- Có chức năng tin tức, bài viết, báo liên quan đến chủ đề nghề nghiệp
- Có chức năng nâng cấp, thanh toán tài khoản vip để tăng quyền lợi người dùng
- Tích hợp đăng nhập được với tài khoản mạng xã hội như Google, Facebook
- Hỗ trợ chatbot, message tư vấn trực tuyến, trả lời câu hỏi thường gặp
- Hỗ trợ nền tảng tìm việc trên cả website và mobile app
Tuy nhiên, theo tôi các website được khảo sát vẫn còn có các nhược điểm sau:
Nhiều website tìm việc hiện nay không cung cấp thông tin chính xác về công việc, thường xuyên đăng tải các quảng cáo không liên quan Điều này gây lãng phí thời gian và nỗ lực của người tìm kiếm việc làm.
- Website tìm việc chỉ cung cấp danh sách công việc mà không cho phép người tìm việc tương tác hoặc tạo kết nối với nhà tuyển dụng
Dựa trên kết quả khảo sát và phân tích, tôi đã xác định ba đối tượng chính để nghiên cứu cho hệ thống website tìm việc trong đề tài này.
- Người tìm việc (Ứng viên): Là người tìm kiếm các công việc trên website
- Người đăng việc (Nhà tuyển dụng): Là người đăng tải các thông tin tuyển dụng, việc làm lên website
- Người quản trị hệ thống (Quản trị viên): Là người quản trị hệ thống, kiểm duyệt thông tin
4 Nội dung thực hiện Đề tài được phát triển từ Tiểu luận chuyên ngành
Những nội dung đã thực hiện trong Tiểu luận chuyên ngành:
▪ Trang đăng nhập, trang đăng ký
▪ Giao diện nhà tuyển dụng: Trang chủ, trang tất cả việc làm, trang chi tiết việc làm, trang quản lý thông tin cá nhân
▪ Giao diện người tìm việc: Trang chủ, trang tất cả việc làm, trang chi tiết việc làm, trang quản lý thông tin cá nhân
▪ Giao diện quản trị: Trang quản lý tài khoản, trang quản lý việc làm, trang quản lý thông tin
- Phần chức năng: Đối tượng Mô tả
Nhà tuyển dụng Đăng ký tài khoản Đăng nhập,Đăng xuất Quản lý thông tin cá nhân Thay đổi mật khẩu
Quản lý tin tuyển dụng Xem chi tiết công việc đã đăng
Người tìm việc Đăng ký tài khoản Đăng nhập, Đăng xuất Quản lý thông tin cá nhân Chỉnh sửa, thêm mới thông tin cá nhân Thay đổi mật khẩu
Tìm kiếm việc làm Xem chi tiết việc làm Ứng tuyển việc làm Xem việc làm đã ứng tuyển Xem thông tin nhà tuyển dụng
Quản trị viên Đăng nhập, Đăng xuất Quản lý thông tin Quản lý người dùng Quản lý nhà tuyển dụng
− Nội dung điều chỉnh và thêm mới trong Khóa luận tốt nghiệp:
▪ Chỉnh sửa bố cục cho hài hòa hơn
▪ Thêm trang bị lỗi khi trang mất tín hiệu, gặp sự cố không tải được trang
▪ Thêm giao diện: trang gợi ý việc làm cho ứng viên, trang quản lý bài đăng, trang xem hồ sơ ứng viên ứng tuyển
▪ Bổ sung thêm thuộc tính lương cho đối tượng công việc
▪ Chỉnh sửa chi tiết tin tuyển dụng cho nhà tuyển dụng
▪ Xem hồ sơ ứng viên ứng tuyển của nhà tuyển dụng
▪ Tìm kiếm việc làm theo mức lương
▪ Tìm kiếm việc làm đa thuộc tính
▪ Tính năng quản lý đăng tuyển dành cho nhà tuyển dụng
▪ Tính năng gợi ý việc làm dành cho ứng viên
5 Kết quả dự kiến đạt được
Xây dựng ứng dụng website tìm kiếm việc làm:
- Xây dựng máy chủ (Server) và các service bằng Spring Boot và Restful API
- Thiết kế giao diện web (Front-End) bằng ReactJS
- Thiết kế cơ sở dữ liệu bằng PostgreSQL, kết nối database trên Spring Boot
Cấu trúc khóa luận bao gồm:
Phần 1: Tổng quan đề tài
Chương 1: Cơ sở lý thuyết Chương 2: Phân tích và đặc tả yêu cầu Chương 3: Thiết kế cơ sở dữ liệu Chương 4: Thiết kế giao diện Chương 5: Cài đặt và kiểm thử Phần 3: Kết luận
PHẦN 2: NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Tìm hiểu về Spring Boot
Spring Boot là một dự án phát triển từ ngôn ngữ Java trong hệ sinh thái Spring framework, giúp lập trình viên đơn giản hóa quá trình xây dựng ứng dụng Thay vì phải đối mặt với việc khai báo dependency phức tạp trong file pom.xml và cấu hình XML hoặc annotation, Spring Boot cho phép tạo và cấu hình dự án một cách nhanh chóng và dễ dàng hơn, giúp lập trình viên tập trung vào phát triển business cho ứng dụng.
- Sở hữu hầu như đầy đủ các tính năng của Spring Framework
- Thuận tiện phát triển ứng dụng trên Spring với Groovy và Java
- Tiết kiệm thời gian, tăng năng suất làm việc
- Tự động cấu hình là một cách tiếp cận Spring Boot cốt lõi để giảm số lượng hành động mà nhà phát triển phải thực hiện
- Kết nối dễ dàng với Spring JDBC, Spring Sercurity, Spring ORM,.v.v
- Cung cấp công cụ CLI để phát triển và kiểm thử các ứng dụng từ các dòng lệnh một cách dễ dàng và nhanh chóng
- Cung cấp các plugin để phát triển và kiếm thử các công cụ như Maven và Gradle
- Cung cấp các Server như Tomcat, Jetty,… mà không cần đến các file war
- Thiếu kiểm soát Do cấu hình cố định, Spring Boot tạo ra nhiều phụ thuộc không được sử dụng dẫn đến kích thước tệp triển khai lớn
- Quá trình chuyển đổi dự án Spring sang các ứng dụng Spring Boot còn gặp nhiều khó khăn và tốn thời gian
Spring Boot không phải là lựa chọn lý tưởng cho các dự án quy mô lớn, đặc biệt là trong việc phát triển các ứng dụng nguyên khối Theo nhiều nhà phát triển, việc hoạt động liên tục với các microservices cho thấy rằng Spring Boot không đáp ứng tốt cho nhu cầu của các ứng dụng phức tạp và quy mô lớn.
Hình 1.4 Giới thiệu về Spring Framework [3]