Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN
CHƯƠNG 1 KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.2 Các công nghệ áp dụng
CHƯƠNG 3 THIẾT KẾ PHẦN MỀM
3.1 Mô hình hoá yêu cầu
CHƯƠNG 4 CÀI ĐẶT VÀ KIỂM THỬ
STT Thời gian Công việc Ghi chú
- Thiết kế usecase và mô hình hóa yêu cầu
- Thiết kế cơ sở dữ liệu
- Tìm hiểu về thư viện ReactJS, HTML, SCSS
- Tìm hiểu về Spring boot
- Điều chỉnh cơ sở dữ liệu
- Tìm hiểu về JSON Web Token để ứng dụng vào xác thực và phân quyền API của hệ thống
- Tìm hiểu cách xây dựng RESTful API
- Tìm hiểu về PostgresSQL để áp dụng vào lưu trữ dữ liệu
- Tiến hành phát triển API dựa trên các kiến thức đã tìm hiểu được và các tài liệu
- Tiến hành xây dựng giao diện người dùng cho hệ thống
- Tích hợp xử lý giao diện với các chức năng của API
- Điều chỉnh và hoàn thiện các chức năng của hệ thống
6 09/06/2023 – 20/06/2023 - Tích hợp thêm sdk, api của bên thứ
3 hỗ trợ xử lý các logic nghiệp vụ
- Kiểm thử chương trình và tiến hành sửa lỗi
- Tìm hiểu và thực hành deploy
- Viết và hoàn thiện báo cáo
(Ký và ghi rõ họ tên)
Tp Hồ Chí Minh, ngày tháng 7 năm 2023
(Ký và ghi rõ họ tên)
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1
5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN 2
CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HOÁ YÊU CẦU 4
1.2.2 Yêu cầu phi chức năng 14
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 15
2.2 CÁC CÔNG NGHỆ SỬ DỤNG 16
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ PHẦN MỀM 31
3.1 MÔ HÌNH HOÁ YÊU CẦU PHÍA KHÁCH, NGƯỜI LAO ĐỘNG VÀ NHÀ
3.1.3 Usecase “Xem thông tin tuyển dụng” 35
3.1.5 Usecase “Chỉnh sửa thông tin cá nhân” 37
3.1.6 Usecase “Xem trang cá nhân thành viên” 39
3.1.7 Usecase “Thêm thông báo tuyển dụng” 40
3.1.8 Usecase “Chỉnh sửa thông báo tuyển dụng” 41
3.1.9 Usecase “Xóa thông báo tuyển dụng” 42
3.1.10 Usecase “Theo dõi nhà tuyển dụng” 43
3.1.11 Usecase “Theo dõi công ty” 45
3.1.13 Usecase “Thêm thông báo công việc” 47
3.1.14 Usecase “Phản hồi yêu cầu ứng tuyển” 49
3.1.21 Usecase “Thống kê số lượng Job được tạo” 57
3.1.22 Usecase “Thống kê số lượng tài khoản được tạo” 58
3.1.23 Usecase “Xem profile ứng viên” 59
3.1.24 Usecase “Thêm thông tin công ty” 60
3.1.25 Usecase “Lưu thông tin tuyển dụng” 62
3.1.26 Usecase “Xem đơn ứng tuyển” 63
3.1.27 Usecase “Xem đánh giá, gợi ý từ Hirize cho đơn ứng tuyển” 64
3.1.31 Usecase “Thêm bài chia sẻ mới” 70
3.1.32 Usecase “Chỉnh sửa thông tin bài chia sẻ” 71
3.1.33 Usecase “Xóa thông tin bài chia sẻ” 72
3.3 THIẾT KẾ CƠ SỞ DỮ LIỆU 75
3.3.1 Lược đồ sơ sở dữ liệu 75
3.3.2 Chi tiết bảng dữ liệu 75
3.4.1 Giao diện chính phía người dùng 86
CHƯƠNG 4: CÀI ĐẶT VÀ KIỂM THỬ 106
4.1.2 Kiểm thử bản beta đã deploy 106
4.2.2 Quy trình thiết kế kiểm thử 107
4.2.3 Quy trình chạy bộ kiểm thử 108
4.2.4 Kiểm thử một số chức năng của hệ thống 109
1 KẾT QUẢ ĐÃ ĐẠT ĐƯỢC 116
Hình 2.1 Kiến trúc hệ thống 15
Hình 2.2 Virtual DOM trong ReactJS 17
Hình 2.3 One-way binding trong ReactJS 18
Hình 2.4 Luồng hoạt động của Redux-saga 20
Hình 2.5 Các thành phần cấu thành Spring Boot 21
Hình 2.7 Sơ đồ ứng dụng WebClient vào hệ thống 23
Hình 2.9 Hệ thống sử dụng hệ cơ sở dữ liệu PostgresSQL 24
Hình 2.10 Ứng dụng Redis trong hệ thống 26
Hình 2.12 Ứng dụng Jasypt mã hoá thông tin nhạy cảm 27
Hình 2.13 Ứng dụng Jasypt mã hoá thông tin nhạy cảm 27
Hình 2.15 Ứng dụng AWS trong hệ thống 29
Hình 2.17 Tích hợp thanh toán Paypal trong hệ thống 30
Hình 3.1 Usecase phía khách, người lao động và nhà tuyển dụng 31
Hình 3.2 Usecase phía quản trị viên và phần chung 32
Hình 3.3 Lược đồ tuần tự “Đăng nhập” 33
Hình 3.4 Lược đồ tuần tự “Đăng ký” 35
Hình 3.5 Lược đồ tuần tự “Xem thông tin tuyển dụng” 36
Hình 3.6 Lược đồ tuần tự “Đổi mật khẩu” 37
Hình 3.7 Lược đồ tuần tự “Chỉnh sửa thông tin cá nhân” 39
Hình 3.8 Lược đồ tuần tự “Xem trang cá nhân thành viên” 40
Hình 3.9 Lược đồ tuần tự “Thêm thông báo tuyển dụng” 41
Hình 3.10 Lược đồ tuần tự “Chỉnh sửa thông báo tuyển dụng” 42
Hình 3.11 Lược đồ tuần tự “Xóa thông báo tuyển dụng” 43
Hình 3.12 Lược đồ tuần tự “Theo dõi nhà tuyển dụng” 45
Hình 3.13 Lược đồ tuần tự “Theo dõi công ty” 46
Hình 3.14 Lược đồ tuần tự “Ứng tuyển” 47
Hình 3.15 Lược đồ tuần tự “Thêm thông báo công việc” 48
Hình 3.16 Lược đồ tuần tự “Xử lý các yêu cầu ứng tuyển” 50
Hình 3.17 Lược đồ tuần tự “Thêm tài khoản” 51
Hình 3.18 Lược đồ tuần tự “Xoá tài khoản” 52
Hình 3.19 Lược đồ tuần tự “Reset mật khẩu” 54
Hình 3.20 Lược đồ tuần tự “Thêm ExtraInfo” 55
Hình 3.21 Lược đồ tuần tự “Sửa ExtraInfo” 56
Hình 3.22 Lược đồ tuần tự “Xoá ExtraInfo” 57
Hình 3.23 Lược đồ tuần tự “Thống kê Job” 58
Hình 3.24 Lược đồ tuần tự “Thống kê tài khoản” 59
Hình 3.25 Lược đồ tuần tự “Xem profile ứng viên” 60
Hình 3.26 Lược đồ tuần tự “Thêm thông tin công ty” 61
Hình 3.27 Lược đồ tuần tự “Lưu thông tin tuyển dụng” 63
Hình 3.28 Lược đồ tuần tự “Xem đơn ứng tuyển” 64
Hình 3.29 Lược đồ tuần tự “Xem đánh giá từ Hirize cho đơn ứng tuyển” 65
Hình 3.30 Lược đồ tuần tự “Thêm bình luận” 67
Hình 3.31 Lược đồ usecase sửa bình luận 68
Hình 3.32 Lược đồ tuần tự “Xoá bình luận” 69
Hình 3.33 Lược đồ tuần tự “Thêm bài chia sẻ mới” 71
Hình 3.34 Lược đồ tuần tự “Chỉnh sửa thông tin bài chia sẻ” 72
Hình 3.35 Lược đồ tuần tự “Xóa thông tin bài chia sẻ” 73
Hình 3.37 Lược đồ cơ sở dữ liệu 75
Hình 3.38 Giao diện Trang đăng nhập 86
Hình 3.39 Giao diện Trang đăng ký 87
Hình 3.40 Giao diện Trang tìm kiếm Job 88
Hình 3.41 Giao diện Trang thông tin liên hệ 89
Hình 3.42 Giao diện Trang chủ 90
Hình 3.43 Giao diện Chi tiết Job 91
Hình 3.44 Giao diện Dashboard Employer 92
Hình 3.45 Giao diện List các job đã đăng của Employer 93
Hình 3.46 Giao diện List các applicant của Employer 94
Hình 3.47 Giao diện My Account của Candidate 95
Hình 3.48 Giao diện My Account của Candidate 96
Hình 3.49 Giao diện Chỉnh sửa thông tin cá nhân 97
Hình 3.50 Giao diện Quản lí CV 97
Hình 3.51 Giao diện tạo CV 98
Hình 3.52 Giao diện Trang Dashboard 99
Hình 3.53 Giao diện Trang List All Job 100
Hình 3.54 Giao diện Trang List All Company 101
Hình 3.55 Giao diện Trang thêm Company 102
Hình 3.56 Giao diện Trang List All Extra Info 103
Hình 3.57 Giao diện Trang thêm Extra Info 104
Hình 3.58 Giao diện Trang cập nhật thông tin tài khoản admin 104
Hình 4.1 Quy trình thiết kế kiểm thử 107
Hình 4.2 Quy trình chạy bộ kiểm thử 108
Bảng 0.1 Bảng phân công công việc 3
Bảng 3.1 Đặc tả usecase “Đăng nhập” 32
Bảng 3.2 Đặc tả usecase “Đăng ký” 34
Bảng 3.3 Đặc tả usecase “Xem thông tin tuyển dụng” 35
Bảng 3.4 Đặc tả usecase “Đổi mật khẩu” 36
Bảng 3.5 Đặc tả usecase “Chỉnh sửa thông tin cá nhân” 38
Bảng 3.6 Đặc tả usecase “Xem trang cá nhân thành viên” 39
Bảng 3.7 Đặc tả usecase “Thêm thông báo tuyển dụng” 40
Bảng 3.8 Đặc tả usecase “Chỉnh sửa thông báo tuyển dụng” 41
Bảng 3.9 Đặc tả usecase “Xóa thông báo tuyển dụng” 42
Bảng 3.10 Đặc tả usecase “Theo dõi nhà tuyển dụng” 44
Bảng 3.11 Đặc tả usecase “Theo dõi nhà tuyển dụng” 45
Bảng 3.12 Đặc tả usecase “Ứng tuyển” 46
Bảng 3.13 Đặc tả usecase “Thêm thông báo công việc” 47
Bảng 3.14 Đặc tả usecase “Xử lý các yêu cầu ứng tuyển” 49
Bảng 3.15 Đặc tả usecase “Thêm tài khoản” 50
Bảng 3.16 Đặc tả usecase “Xoá tài khoản” 52
Bảng 3.17 Đặc tả usecase “Reset mật khẩu” 53
Bảng 3.18 Đặc tả usecase “Thêm ExtraInfo” 54
Bảng 3.19 Đặc tả usecase “Sửa ExtraInfo” 55
Bảng 3.20 Đặc tả usecase “Xoá ExtraInfo” 56
Bảng 3.21 Đặc tả usecase “Thống kê số lượng Job được tạo” 57
Bảng 3.22 Đặc tả usecase “Thống kê số lượng tài khoản được tạo” 58
Bảng 3.23 Đặc tả usecase “Xem profile ứng viên” 59
Bảng 3.24 Đặc tả usecase “Thêm thông tin công ty” 60
Bảng 3.25 Đặc tả usecase “Lưu thông tin tuyển dụng” 62
Bảng 3.26 Đặc tả usecase “Xem đơn ứng tuyển” 63
Bảng 3.27 Đặc tả usecase “Xem đánh giá, gợi ý từ Hirize cho đơn ứng tuyển”64 Bảng 3.28 Đặc tả usecase “Xem đánh giá từ Hirize cho đơn ứng tuyển” 66
Bảng 3.29 Đặc tả usecase “Sửa bình luận” 67
Bảng 3.30 Đặc tả usecase “Xoá bình luận” 68
Bảng 3.31 Đặc tả usecase “Thêm bài chia sẻ mới” 70
Bảng 3.32 Đặc tả usecase “Chỉnh sửa thông tin bài chia sẻ” 71
Bảng 3.33 Đặc tả usecase “Xóa thông tin bài chia sẻ” 72
Bảng 3.34 Chi tiết bảng dữ liệu “users” 75
Bảng 3.35 Chi tiết dữ liệu bảng “token” 76
Bảng 3.36 Chi tiết bảng “role” 76
Bảng 3.37 Chi tiết bảng “user_role” 76
Bảng 3.38 Chi tiết bảng “document” 77
Bảng 3.39 Chi tiết bảng “candidate” 77
Bảng 3.40 Chi tiết bảng “employer” 78
Bảng 3.41 Chi tiết bảng “job_alert” 78
Bảng 3.42 Chi tiết bảng “package” 79
Bảng 3.43 Chi tiết bảng “subscribe” 79
Bảng 3.44 Chi tiết bảng “application” 80
Bảng 3.45 Chi tiết bảng “follow_employer” 80
Bảng 3.46 Chi tiết bảng “notification” 80
Bảng 3.47 Chi tiết bảng “viewed_user” 81
Bảng 3.48 Chi tiết bảng “extra_info” 81
Bảng 3.49 Chi tiết bảng “evaluate” 81
Bảng 3.50 Chi tiết bảng “company” 82
Bảng 3.51 Chi tiết bảng “following_company” 82
Bảng 3.52 Chi tiết bảng “image” 82
Bảng 3.53 Chi tiết bảng “invoice” 83
Bảng 3.54Chi tiết bảng “experience” 83
Bảng 3.55 Chi tiết bảng “save_job” 84
Bảng 3.56 Chi tiết bảng “job_post” 84
Bảng 3.57 Mô tả giao diện Trang đăng nhập 86
Bảng 3.58 Mô tả giao diện Trang đăng ký 87
Bảng 3.59 Mô tả giao diện Trang tìm kiếm Job 88
Bảng 3.60 Mô tả giao diện Trang thông tin liên hệ 89
Bảng 3.61 Mô tả giao diện Trang chủ 90
Bảng 3.62 Mô tả giao diện Chi tiết Job 92
Bảng 3.63 Mô tả giao diện Dashboard Employer 92
Bảng 3.64 Mô tả giao diện List các job đã đăng của Employer 93
Bảng 3.65 Mô tả giao diện List các applicant của Employer 94
Bảng 3.66 Mô tả giao diện My Account của Candidate 95
Bảng 3.67 Mô tả giao diện My Account của Candidate 96
Bảng 3.68 Mô tả giao diện Chỉnh sửa thông tin cá nhân 97
Bảng 3.69 Mô tả giao diện quản lý CV 97
Bảng 3.70 Mô tả giao diện tạo CV 98
Bảng 3.71 Mô tả giao diện Trang Dashboard 99
Bảng 3.72 Mô tả giao diện Trang List All Job 100
Bảng 3.73 Mô tả giao diện Trang List All Company 101
Bảng 3.74 Mô tả giao diện Trang thêm Company 102
Bảng 3.75 Mô tả giao diện Trang List All Extra Info 103
Bảng 3.76 Mô tả giao diện Trang thêm Extra Info 104
Bảng 3.77 Mô tả giao diện Trang cập nhật thông tin tài khoản admin 105
Bảng 4.1 Kiểm thử các chức năng trang quản trị 109
Bảng 4.2 Kiểm thử các chức năng người dùng không có tài khoản 111
Bảng 4.3 Kiểm thử các chức năng của ứng viên 112
Bảng 4.4 Kiểm thử các chức năng của nhà tuyển dụng 113
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Trong bối cảnh xã hội ngày càng phát triển, nhu cầu tìm kiếm việc làm và tuyển dụng nhân viên ngày càng gia tăng Công nghệ đã giúp số hoá quy trình này, với sự xuất hiện của các website tìm kiếm việc làm trở nên thiết yếu Người tìm việc có thể tạo hồ sơ cá nhân và thiết lập tiêu chí tìm kiếm chỉ một lần, từ đó dễ dàng ứng tuyển vào nhiều vị trí Đồng thời, nhà tuyển dụng cũng thuận tiện trong việc đăng tin tuyển dụng, quản lý thông tin ứng viên và theo dõi quy trình tuyển dụng hiệu quả Những tiện ích này đã dẫn đến sự ra đời của nhiều website hỗ trợ việc làm như TopCV, Linkedin, Glint, và Vlance.
Các website hỗ trợ việc làm thường tập trung vào việc tìm kiếm và đánh giá thủ công, dẫn đến việc theo dõi và đánh giá công việc cũng như chất lượng ứng viên mất nhiều thời gian Để giải quyết vấn đề này, nhóm thực hiện đã đề xuất giải pháp hỗ trợ tìm kiếm công việc phù hợp, giúp người tìm việc dễ dàng hơn Đồng thời, công cụ này cũng hỗ trợ nhà tuyển dụng trong việc đánh giá sơ bộ các ứng viên, từ đó tiết kiệm thời gian và tìm kiếm ứng viên phù hợp một cách hiệu quả hơn.
Nhóm đã phát triển website puzzleute.tk nhằm hỗ trợ ứng viên tìm kiếm việc làm hiệu quả hơn và giúp nhà tuyển dụng dễ dàng chọn lựa ứng viên phù hợp, tiết kiệm thời gian và công sức.
Sau khi nghiên cứu thông tin liên quan đến đề tài và áp dụng kiến thức đã học, nhóm đã xác định các đối tượng nghiên cứu cần thiết cho đề tài này.
• Quản lý dữ liệu PostgresSQL
• IDE: intellij, Visual studio code
• Các nền tảng tuyển dụng phổ biến như TopCV, Linkin, Vlance,…
• Và một số công nghệ liên quan khác
Nhóm phát triển ứng dụng này tập trung vào việc nghiên cứu và triển khai các chức năng cốt lõi của nền tảng tuyển dụng, nhằm hỗ trợ người dùng tìm kiếm việc làm hiệu quả Ứng dụng cũng giúp quản lý hồ sơ ứng viên và tối ưu hóa quá trình tìm kiếm dựa trên thông tin công việc, khả năng và tình trạng của ứng viên.
Xây dựng một nền tảng website tuyển dụng với các chức năng cơ bản như hỗ trợ ứng viên tìm kiếm việc làm, cho phép nhà tuyển dụng đăng tin tuyển dụng, quản lý các công việc đã đăng, quản lý hồ sơ ứng viên và gợi ý các công việc phù hợp với khả năng của ứng viên.
Thông qua việc thực hiện đề tài này, nhóm sẽ có cơ hội tiếp xúc và học hỏi các nghiệp vụ liên quan đến tối ưu hóa sắp xếp, tìm kiếm và quản lý quá trình tuyển dụng Đồng thời, nhóm cũng sẽ tiếp thu các kiến thức chuyên môn về công nghệ hiện đại như React và Spring Boot.
5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN
Sau khi hoàn thành đề tài, nhóm chúng em đã tích lũy được nhiều kỹ năng và kiến thức quý giá, đặc biệt về các công nghệ mới hiện nay Đồng thời, chúng em cũng nâng cao tinh thần nghiên cứu, sáng tạo và cống hiến cho cộng đồng.
Khi đề tài nhóm được áp dụng vào thực tế, hoạt động tuyển dụng sẽ trở nên thuận tiện hơn cho các nhà tuyển dụng Với khả năng tối ưu hóa tìm kiếm và phân loại công việc cùng ứng viên, nền tảng này giúp ứng viên dễ dàng tiếp cận các cơ hội việc làm phù hợp, đồng thời hỗ trợ cộng đồng và mang lại tiềm năng cho nhà tuyển dụng.
PHÂN CÔNG
Bảng 0.1 Bảng phân công công việc
THÀNH VIÊN CÔNG VIỆC HOÀN THÀNH
- Viết báo cáo phần Front-End và Giao diện
- Thiết kế cơ sở dữ liệu
- Viết báo cáo phần Back-End và các phần còn lại
KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HOÁ YÊU CẦU
CƠ SỞ LÝ THUYẾT
KIẾN TRÚC HỆ THỐNG
2.2 Các công nghệ áp dụng
CHƯƠNG 3 THIẾT KẾ PHẦN MỀM
3.1 Mô hình hoá yêu cầu
CHƯƠNG 4 CÀI ĐẶT VÀ KIỂM THỬ
STT Thời gian Công việc Ghi chú
- Thiết kế usecase và mô hình hóa yêu cầu
- Thiết kế cơ sở dữ liệu
- Tìm hiểu về thư viện ReactJS, HTML, SCSS
- Tìm hiểu về Spring boot
- Điều chỉnh cơ sở dữ liệu
- Tìm hiểu về JSON Web Token để ứng dụng vào xác thực và phân quyền API của hệ thống
- Tìm hiểu cách xây dựng RESTful API
- Tìm hiểu về PostgresSQL để áp dụng vào lưu trữ dữ liệu
- Tiến hành phát triển API dựa trên các kiến thức đã tìm hiểu được và các tài liệu
- Tiến hành xây dựng giao diện người dùng cho hệ thống
- Tích hợp xử lý giao diện với các chức năng của API
- Điều chỉnh và hoàn thiện các chức năng của hệ thống
6 09/06/2023 – 20/06/2023 - Tích hợp thêm sdk, api của bên thứ
3 hỗ trợ xử lý các logic nghiệp vụ
- Kiểm thử chương trình và tiến hành sửa lỗi
- Tìm hiểu và thực hành deploy
- Viết và hoàn thiện báo cáo
(Ký và ghi rõ họ tên)
Tp Hồ Chí Minh, ngày tháng 7 năm 2023
(Ký và ghi rõ họ tên)
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1
5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN 2
CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HOÁ YÊU CẦU 4
1.2.2 Yêu cầu phi chức năng 14
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 15
2.2 CÁC CÔNG NGHỆ SỬ DỤNG 16
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ PHẦN MỀM 31
3.1 MÔ HÌNH HOÁ YÊU CẦU PHÍA KHÁCH, NGƯỜI LAO ĐỘNG VÀ NHÀ
3.1.3 Usecase “Xem thông tin tuyển dụng” 35
3.1.5 Usecase “Chỉnh sửa thông tin cá nhân” 37
3.1.6 Usecase “Xem trang cá nhân thành viên” 39
3.1.7 Usecase “Thêm thông báo tuyển dụng” 40
3.1.8 Usecase “Chỉnh sửa thông báo tuyển dụng” 41
3.1.9 Usecase “Xóa thông báo tuyển dụng” 42
3.1.10 Usecase “Theo dõi nhà tuyển dụng” 43
3.1.11 Usecase “Theo dõi công ty” 45
3.1.13 Usecase “Thêm thông báo công việc” 47
3.1.14 Usecase “Phản hồi yêu cầu ứng tuyển” 49
3.1.21 Usecase “Thống kê số lượng Job được tạo” 57
3.1.22 Usecase “Thống kê số lượng tài khoản được tạo” 58
3.1.23 Usecase “Xem profile ứng viên” 59
3.1.24 Usecase “Thêm thông tin công ty” 60
3.1.25 Usecase “Lưu thông tin tuyển dụng” 62
3.1.26 Usecase “Xem đơn ứng tuyển” 63
3.1.27 Usecase “Xem đánh giá, gợi ý từ Hirize cho đơn ứng tuyển” 64
3.1.31 Usecase “Thêm bài chia sẻ mới” 70
3.1.32 Usecase “Chỉnh sửa thông tin bài chia sẻ” 71
3.1.33 Usecase “Xóa thông tin bài chia sẻ” 72
3.3 THIẾT KẾ CƠ SỞ DỮ LIỆU 75
3.3.1 Lược đồ sơ sở dữ liệu 75
3.3.2 Chi tiết bảng dữ liệu 75
3.4.1 Giao diện chính phía người dùng 86
CHƯƠNG 4: CÀI ĐẶT VÀ KIỂM THỬ 106
4.1.2 Kiểm thử bản beta đã deploy 106
4.2.2 Quy trình thiết kế kiểm thử 107
4.2.3 Quy trình chạy bộ kiểm thử 108
4.2.4 Kiểm thử một số chức năng của hệ thống 109
1 KẾT QUẢ ĐÃ ĐẠT ĐƯỢC 116
Hình 2.1 Kiến trúc hệ thống 15
Hình 2.2 Virtual DOM trong ReactJS 17
Hình 2.3 One-way binding trong ReactJS 18
Hình 2.4 Luồng hoạt động của Redux-saga 20
Hình 2.5 Các thành phần cấu thành Spring Boot 21
Hình 2.7 Sơ đồ ứng dụng WebClient vào hệ thống 23
Hình 2.9 Hệ thống sử dụng hệ cơ sở dữ liệu PostgresSQL 24
Hình 2.10 Ứng dụng Redis trong hệ thống 26
Hình 2.12 Ứng dụng Jasypt mã hoá thông tin nhạy cảm 27
Hình 2.13 Ứng dụng Jasypt mã hoá thông tin nhạy cảm 27
Hình 2.15 Ứng dụng AWS trong hệ thống 29
Hình 2.17 Tích hợp thanh toán Paypal trong hệ thống 30
Hình 3.1 Usecase phía khách, người lao động và nhà tuyển dụng 31
Hình 3.2 Usecase phía quản trị viên và phần chung 32
Hình 3.3 Lược đồ tuần tự “Đăng nhập” 33
Hình 3.4 Lược đồ tuần tự “Đăng ký” 35
Hình 3.5 Lược đồ tuần tự “Xem thông tin tuyển dụng” 36
Hình 3.6 Lược đồ tuần tự “Đổi mật khẩu” 37
Hình 3.7 Lược đồ tuần tự “Chỉnh sửa thông tin cá nhân” 39
Hình 3.8 Lược đồ tuần tự “Xem trang cá nhân thành viên” 40
Hình 3.9 Lược đồ tuần tự “Thêm thông báo tuyển dụng” 41
Hình 3.10 Lược đồ tuần tự “Chỉnh sửa thông báo tuyển dụng” 42
Hình 3.11 Lược đồ tuần tự “Xóa thông báo tuyển dụng” 43
Hình 3.12 Lược đồ tuần tự “Theo dõi nhà tuyển dụng” 45
Hình 3.13 Lược đồ tuần tự “Theo dõi công ty” 46
Hình 3.14 Lược đồ tuần tự “Ứng tuyển” 47
Hình 3.15 Lược đồ tuần tự “Thêm thông báo công việc” 48
Hình 3.16 Lược đồ tuần tự “Xử lý các yêu cầu ứng tuyển” 50
Hình 3.17 Lược đồ tuần tự “Thêm tài khoản” 51
Hình 3.18 Lược đồ tuần tự “Xoá tài khoản” 52
Hình 3.19 Lược đồ tuần tự “Reset mật khẩu” 54
Hình 3.20 Lược đồ tuần tự “Thêm ExtraInfo” 55
Hình 3.21 Lược đồ tuần tự “Sửa ExtraInfo” 56
Hình 3.22 Lược đồ tuần tự “Xoá ExtraInfo” 57
Hình 3.23 Lược đồ tuần tự “Thống kê Job” 58
Hình 3.24 Lược đồ tuần tự “Thống kê tài khoản” 59
Hình 3.25 Lược đồ tuần tự “Xem profile ứng viên” 60
Hình 3.26 Lược đồ tuần tự “Thêm thông tin công ty” 61
Hình 3.27 Lược đồ tuần tự “Lưu thông tin tuyển dụng” 63
Hình 3.28 Lược đồ tuần tự “Xem đơn ứng tuyển” 64
Hình 3.29 Lược đồ tuần tự “Xem đánh giá từ Hirize cho đơn ứng tuyển” 65
Hình 3.30 Lược đồ tuần tự “Thêm bình luận” 67
Hình 3.31 Lược đồ usecase sửa bình luận 68
Hình 3.32 Lược đồ tuần tự “Xoá bình luận” 69
Hình 3.33 Lược đồ tuần tự “Thêm bài chia sẻ mới” 71
Hình 3.34 Lược đồ tuần tự “Chỉnh sửa thông tin bài chia sẻ” 72
Hình 3.35 Lược đồ tuần tự “Xóa thông tin bài chia sẻ” 73
Hình 3.37 Lược đồ cơ sở dữ liệu 75
Hình 3.38 Giao diện Trang đăng nhập 86
Hình 3.39 Giao diện Trang đăng ký 87
Hình 3.40 Giao diện Trang tìm kiếm Job 88
Hình 3.41 Giao diện Trang thông tin liên hệ 89
Hình 3.42 Giao diện Trang chủ 90
Hình 3.43 Giao diện Chi tiết Job 91
Hình 3.44 Giao diện Dashboard Employer 92
Hình 3.45 Giao diện List các job đã đăng của Employer 93
Hình 3.46 Giao diện List các applicant của Employer 94
Hình 3.47 Giao diện My Account của Candidate 95
Hình 3.48 Giao diện My Account của Candidate 96
Hình 3.49 Giao diện Chỉnh sửa thông tin cá nhân 97
Hình 3.50 Giao diện Quản lí CV 97
Hình 3.51 Giao diện tạo CV 98
Hình 3.52 Giao diện Trang Dashboard 99
Hình 3.53 Giao diện Trang List All Job 100
Hình 3.54 Giao diện Trang List All Company 101
Hình 3.55 Giao diện Trang thêm Company 102
Hình 3.56 Giao diện Trang List All Extra Info 103
Hình 3.57 Giao diện Trang thêm Extra Info 104
Hình 3.58 Giao diện Trang cập nhật thông tin tài khoản admin 104
Hình 4.1 Quy trình thiết kế kiểm thử 107
Hình 4.2 Quy trình chạy bộ kiểm thử 108
Bảng 0.1 Bảng phân công công việc 3
Bảng 3.1 Đặc tả usecase “Đăng nhập” 32
Bảng 3.2 Đặc tả usecase “Đăng ký” 34
Bảng 3.3 Đặc tả usecase “Xem thông tin tuyển dụng” 35
Bảng 3.4 Đặc tả usecase “Đổi mật khẩu” 36
Bảng 3.5 Đặc tả usecase “Chỉnh sửa thông tin cá nhân” 38
Bảng 3.6 Đặc tả usecase “Xem trang cá nhân thành viên” 39
Bảng 3.7 Đặc tả usecase “Thêm thông báo tuyển dụng” 40
Bảng 3.8 Đặc tả usecase “Chỉnh sửa thông báo tuyển dụng” 41
Bảng 3.9 Đặc tả usecase “Xóa thông báo tuyển dụng” 42
Bảng 3.10 Đặc tả usecase “Theo dõi nhà tuyển dụng” 44
Bảng 3.11 Đặc tả usecase “Theo dõi nhà tuyển dụng” 45
Bảng 3.12 Đặc tả usecase “Ứng tuyển” 46
Bảng 3.13 Đặc tả usecase “Thêm thông báo công việc” 47
Bảng 3.14 Đặc tả usecase “Xử lý các yêu cầu ứng tuyển” 49
Bảng 3.15 Đặc tả usecase “Thêm tài khoản” 50
Bảng 3.16 Đặc tả usecase “Xoá tài khoản” 52
Bảng 3.17 Đặc tả usecase “Reset mật khẩu” 53
Bảng 3.18 Đặc tả usecase “Thêm ExtraInfo” 54
Bảng 3.19 Đặc tả usecase “Sửa ExtraInfo” 55
Bảng 3.20 Đặc tả usecase “Xoá ExtraInfo” 56
Bảng 3.21 Đặc tả usecase “Thống kê số lượng Job được tạo” 57
Bảng 3.22 Đặc tả usecase “Thống kê số lượng tài khoản được tạo” 58
Bảng 3.23 Đặc tả usecase “Xem profile ứng viên” 59
Bảng 3.24 Đặc tả usecase “Thêm thông tin công ty” 60
Bảng 3.25 Đặc tả usecase “Lưu thông tin tuyển dụng” 62
Bảng 3.26 Đặc tả usecase “Xem đơn ứng tuyển” 63
Bảng 3.27 Đặc tả usecase “Xem đánh giá, gợi ý từ Hirize cho đơn ứng tuyển”64 Bảng 3.28 Đặc tả usecase “Xem đánh giá từ Hirize cho đơn ứng tuyển” 66
Bảng 3.29 Đặc tả usecase “Sửa bình luận” 67
Bảng 3.30 Đặc tả usecase “Xoá bình luận” 68
Bảng 3.31 Đặc tả usecase “Thêm bài chia sẻ mới” 70
Bảng 3.32 Đặc tả usecase “Chỉnh sửa thông tin bài chia sẻ” 71
Bảng 3.33 Đặc tả usecase “Xóa thông tin bài chia sẻ” 72
Bảng 3.34 Chi tiết bảng dữ liệu “users” 75
Bảng 3.35 Chi tiết dữ liệu bảng “token” 76
Bảng 3.36 Chi tiết bảng “role” 76
Bảng 3.37 Chi tiết bảng “user_role” 76
Bảng 3.38 Chi tiết bảng “document” 77
Bảng 3.39 Chi tiết bảng “candidate” 77
Bảng 3.40 Chi tiết bảng “employer” 78
Bảng 3.41 Chi tiết bảng “job_alert” 78
Bảng 3.42 Chi tiết bảng “package” 79
Bảng 3.43 Chi tiết bảng “subscribe” 79
Bảng 3.44 Chi tiết bảng “application” 80
Bảng 3.45 Chi tiết bảng “follow_employer” 80
Bảng 3.46 Chi tiết bảng “notification” 80
Bảng 3.47 Chi tiết bảng “viewed_user” 81
Bảng 3.48 Chi tiết bảng “extra_info” 81
Bảng 3.49 Chi tiết bảng “evaluate” 81
Bảng 3.50 Chi tiết bảng “company” 82
Bảng 3.51 Chi tiết bảng “following_company” 82
Bảng 3.52 Chi tiết bảng “image” 82
Bảng 3.53 Chi tiết bảng “invoice” 83
Bảng 3.54Chi tiết bảng “experience” 83
Bảng 3.55 Chi tiết bảng “save_job” 84
Bảng 3.56 Chi tiết bảng “job_post” 84
Bảng 3.57 Mô tả giao diện Trang đăng nhập 86
Bảng 3.58 Mô tả giao diện Trang đăng ký 87
Bảng 3.59 Mô tả giao diện Trang tìm kiếm Job 88
Bảng 3.60 Mô tả giao diện Trang thông tin liên hệ 89
Bảng 3.61 Mô tả giao diện Trang chủ 90
Bảng 3.62 Mô tả giao diện Chi tiết Job 92
Bảng 3.63 Mô tả giao diện Dashboard Employer 92
Bảng 3.64 Mô tả giao diện List các job đã đăng của Employer 93
Bảng 3.65 Mô tả giao diện List các applicant của Employer 94
Bảng 3.66 Mô tả giao diện My Account của Candidate 95
Bảng 3.67 Mô tả giao diện My Account của Candidate 96
Bảng 3.68 Mô tả giao diện Chỉnh sửa thông tin cá nhân 97
Bảng 3.69 Mô tả giao diện quản lý CV 97
Bảng 3.70 Mô tả giao diện tạo CV 98
Bảng 3.71 Mô tả giao diện Trang Dashboard 99
Bảng 3.72 Mô tả giao diện Trang List All Job 100
Bảng 3.73 Mô tả giao diện Trang List All Company 101
Bảng 3.74 Mô tả giao diện Trang thêm Company 102
Bảng 3.75 Mô tả giao diện Trang List All Extra Info 103
Bảng 3.76 Mô tả giao diện Trang thêm Extra Info 104
Bảng 3.77 Mô tả giao diện Trang cập nhật thông tin tài khoản admin 105
Bảng 4.1 Kiểm thử các chức năng trang quản trị 109
Bảng 4.2 Kiểm thử các chức năng người dùng không có tài khoản 111
Bảng 4.3 Kiểm thử các chức năng của ứng viên 112
Bảng 4.4 Kiểm thử các chức năng của nhà tuyển dụng 113
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Trong bối cảnh xã hội phát triển mạnh mẽ, nhu cầu tìm kiếm việc làm và thuê nhân viên ngày càng gia tăng Sự phát triển công nghệ đã dẫn đến việc số hóa nhu cầu việc làm, với các website tìm kiếm việc làm trở nên thiết yếu Những nền tảng này cho phép người tìm việc tạo hồ sơ cá nhân và thiết lập tiêu chí tìm kiếm một cách thuận tiện, giúp họ dễ dàng ứng tuyển vào nhiều vị trí Đồng thời, nhà tuyển dụng cũng có thể dễ dàng đăng tuyển, quản lý thông tin ứng viên và theo dõi quá trình tuyển dụng hiệu quả Chính những tiện ích này đã thúc đẩy sự ra đời của các website hỗ trợ việc làm như TopCV, Linkedin, Glint, Vlance, và nhiều nền tảng khác.
Các website hỗ trợ việc làm thường tập trung vào việc tìm kiếm và đánh giá thủ công, dẫn đến việc theo dõi và đánh giá công việc cũng như chất lượng ứng viên tốn nhiều thời gian Để giải quyết vấn đề này, nhóm thực hiện đã đề xuất giải pháp hỗ trợ tìm kiếm công việc phù hợp, giúp ứng viên dễ dàng hơn trong quá trình tìm việc Đồng thời, công cụ này cũng giúp nhà tuyển dụng có khả năng đánh giá sơ bộ các ứng viên, từ đó tiết kiệm thời gian và tìm kiếm ứng viên phù hợp cho công việc hiệu quả hơn.
Nhằm giải quyết vấn đề tìm kiếm việc làm, nhóm đã phát triển website puzzleute.tk, giúp ứng viên dễ dàng tìm kiếm công việc phù hợp Đồng thời, nền tảng này cũng hỗ trợ nhà tuyển dụng trong việc lựa chọn ứng viên một cách nhanh chóng và hiệu quả hơn.
Sau khi nghiên cứu thông tin liên quan đến đề tài và áp dụng kiến thức đã học, nhóm đã xác định các đối tượng cần được khảo sát trong nghiên cứu này.
• Quản lý dữ liệu PostgresSQL
• IDE: intellij, Visual studio code
• Các nền tảng tuyển dụng phổ biến như TopCV, Linkin, Vlance,…
• Và một số công nghệ liên quan khác
Nhóm phát triển ứng dụng tập trung vào việc nghiên cứu và thực hiện các chức năng cơ bản của nền tảng tuyển dụng, nhằm hỗ trợ tìm kiếm việc làm và quản lý hồ sơ ứng viên Ứng dụng tối ưu hóa quá trình tìm kiếm dựa trên thông tin công việc, khả năng và tình trạng của ứng viên.
Xây dựng một nền tảng website tuyển dụng cần có các chức năng cơ bản như hỗ trợ ứng viên tìm kiếm việc làm, cho phép nhà tuyển dụng đăng tin tuyển dụng, quản lý các công việc đã đăng, quản lý hồ sơ ứng viên và gợi ý những công việc phù hợp với khả năng của ứng viên.
Thông qua việc thực hiện đề tài này, nhóm sẽ có cơ hội tiếp xúc và học hỏi các nghiệp vụ liên quan đến tối ưu hóa sắp xếp, tìm kiếm và quản lý quá trình tuyển dụng Đồng thời, nhóm cũng sẽ nắm bắt được các kiến thức chuyên môn về công nghệ xu hướng hiện nay như React và Spring Boot.
5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN
Sau khi hoàn thiện đề tài, nhóm chúng em đã tích lũy nhiều kỹ năng và kiến thức quý giá, đặc biệt về các công nghệ mới hiện nay Đồng thời, chúng em cũng nâng cao tinh thần nghiên cứu, sáng tạo và cống hiến cho cộng đồng.
Khi đề tài nhóm chúng em được áp dụng, hoạt động tuyển dụng sẽ trở nên thuận tiện và dễ dàng hơn cho các nhà tuyển dụng Với khả năng tối ưu hóa tìm kiếm và phân loại công việc, ứng viên có thể dễ dàng tiếp cận những cơ hội việc làm phù hợp Nền tảng tuyển dụng này không chỉ hỗ trợ cộng đồng mà còn mang lại tiềm năng lớn cho nhà tuyển dụng.
Bảng 0.1 Bảng phân công công việc
THÀNH VIÊN CÔNG VIỆC HOÀN THÀNH
- Viết báo cáo phần Front-End và Giao diện
- Thiết kế cơ sở dữ liệu
- Viết báo cáo phần Back-End và các phần còn lại
CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HOÁ
Vieclam24h.com, một phần của báo điện tử 24h.com.vn, hiện sở hữu hơn 1,3 triệu hồ sơ xin việc và 25,000 vị trí tuyển dụng đang chờ ứng viên Trang web cung cấp nhiều loại hình công việc đa dạng, từ lao động phổ thông đến các vị trí quản lý cấp cao trong doanh nghiệp.
• Có hỗ trợ tạo CV và một số công cụ như công cụ tính lương, có các bài trắc nghiệm tính cách,…
• Việc làm được chia theo các lĩnh vực rất chi tiết, có bộ lọc nâng cao giúp việc tìm kiếm hiệu quả hơn
• Có mục lịch sử công việc, nhà tuyển dụng quan tâm,…
So với các trang web tuyển dụng khác, Việc làm 24h vẫn chủ yếu hoạt động như một nền tảng rao vặt, dẫn đến chất lượng tuyển dụng không cao Điều này là nguyên nhân chính khiến website này sụt hạng trong danh sách các trang web tuyển dụng uy tín.
• Hỗ trợ ít ngôn ngữ
Topcv.vn là một công ty công nghệ nhân sự (HR Tech) được thành lập vào năm 2014, nổi bật với lượng truy cập website 3,3 triệu lượt mỗi tháng Được xem là đối tác tin cậy của nhiều tập đoàn công nghệ lớn như Samsung, FPT và Viettel, Topcv khẳng định vị thế vững mạnh trong lĩnh vực nhân sự.
• Các ngành nghề được chia ra từng mục riêng từng lĩnh vực
• Lượt truy cập khủng với số lượng đầu việc lớn và vô cùng đa dạng
• Có mẫu thiết kế CV đẹp mắt và hoàn toàn miễn phí
• Có hỗ trợ một số công cụ như công cụ tính lương GROSS-NET, tính lãi suất kép,…
• Giao diện website bắt mắt
• Hỗ trợ ít ngôn ngữ
• Phân chia các công việc chưa đủ chi tiết (bán thời gian, toàn thời gian,…)
vLance hiện có hơn 400.000 thành viên, bao gồm nhiều freelancer đa lĩnh vực với năng lực chuyên môn và kỹ năng cao Nền tảng này cung cấp giải pháp nhân sự chất lượng và uy tín cho doanh nghiệp trên toàn quốc, đặc biệt trong các lĩnh vực như Marketing online, lập trình web và ứng dụng, thiết kế đồ họa, viết lách, tài chính – kế toán, dịch thuật, phiên dịch và luật.
Các ngành nghề được phân loại theo từng mục riêng, giúp ứng viên dễ dàng chọn lĩnh vực phù hợp để tìm kiếm việc làm, trong khi đó, nhà tuyển dụng cũng có thể tìm kiếm các ứng viên thích hợp cho vị trí cần tuyển.
• Nhà tuyển dụng và ứng viên dễ dàng trao đổi với nhau thông qua hệ thống tin nhắn trực tuyến trên web
Khi đăng ký tại vLance, hệ thống tự động sẽ gửi thông báo về các công việc phù hợp với từng ứng viên, giúp họ chủ động tìm kiếm việc làm Tất cả khách hàng đều được đảm bảo quyền lợi và thanh toán đúng hạn sau khi hoàn thành dự án.
• Hồ sơ ứng viên đa dạng về lĩnh vực và trải rộng về trình độ, cho phép nhà tuyển dụng có thêm rất nhiều sự lựa chọn
• Có ngôn ngữ tiếng Việt và tiếng Anh
• Cần xác minh thông tin trước khi làm
• Sau mỗi lần thay đổi lựa ở phần tìm kiếm trang web sẽ mất 1 khoảng thời gian khá lâu để tải lại nội dung trang
• Màu sắc trang thiếu thu hút
CÁC CÔNG NGHỆ SỬ DỤNG
ReactJS là một thư viện JavaScript hiệu quả và linh hoạt, cho phép xây dựng các thành phần giao diện người dùng có thể tái sử dụng Thư viện này giúp phân chia các UI phức tạp thành các component nhỏ hơn Được phát triển bởi Jordan Walke, một kỹ sư phần mềm tại Facebook, ReactJS đã được Facebook duy trì và áp dụng trong nhiều sản phẩm của mình, bao gồm WhatsApp và Instagram.
ReactJS là một thư viện JavaScript mạnh mẽ được sử dụng để phát triển các ứng dụng một trang (SPA) Một trong những đặc điểm nổi bật của ReactJS là khả năng hoạt động không chỉ ở phía máy khách mà còn có thể tích hợp dễ dàng với các công nghệ khác để tối ưu hóa hiệu suất và trải nghiệm người dùng.
ReactJS allows for efficient client-server interactions by enabling multiple clients to connect and communicate seamlessly It optimizes rendering by comparing changes between the current and previous render, ensuring that only minimal updates are made to the DOM.
Công nghệ Virtual DOM giúp cải thiện hiệu suất ứng dụng bằng cách chỉ định node gốc có trạng thái, và khi trạng thái này thay đổi, toàn bộ cấu trúc sẽ được tái tạo lại, ảnh hưởng đến tốc độ xử lý ReactJS áp dụng Virtual DOM, một đối tượng JavaScript chứa thông tin cần thiết để tạo ra DOM Khi dữ liệu thay đổi, Virtual DOM sẽ tính toán sự khác biệt giữa đối tượng và cây DOM thật, từ đó tối ưu hóa quá trình re-render cây DOM thật.
Hình 2.2 Virtual DOM trong ReactJS
ReactJS áp dụng cơ chế one-way data binding, cho phép dữ liệu được truyền từ component cha (parent) đến component con (child) thông qua props Luồng dữ liệu một chiều này giúp việc kiểm soát và sửa lỗi trở nên dễ dàng hơn.
ReactJS là công cụ lý tưởng để phát triển các ứng dụng lớn với dữ liệu thay đổi liên tục theo thời gian Khi dữ liệu thay đổi, giao diện người dùng cũng cần được cập nhật tương ứng Chẳng hạn, trên Newsfeed của Facebook, các trạng thái khác nhau cùng với số lượng like, share và comment luôn biến động, do đó, ReactJS rất hữu ích trong việc quản lý và hiển thị những thay đổi này một cách hiệu quả.
Hình 2.3 One-way binding trong ReactJS Ưu điểm
Các ưu điểm nổi bật khi sử dụng ReactJS thay cho các framework khác:
ReactJS cho phép các Developer phát triển ứng dụng trực tiếp bằng JavaScript, kết hợp với JSX – một tính năng thú vị giúp quá trình lập trình trở nên dễ dàng hơn Nhờ vào JSX, Developer có thể tạo ra các tính năng mới và xem chúng xuất hiện ngay lập tức trong thời gian thực, cho phép tích hợp trực tiếp các đoạn HTML vào mã JavaScript.
ReactJS nổi bật với khả năng giúp Developer phân tách các cấu trúc UI phức tạp thành những component độc lập Nhờ đó, Developer không cần phải lo lắng về toàn bộ ứng dụng web, mà có thể dễ dàng chia nhỏ các cấu trúc UI/UX phức tạp thành những component đơn giản hơn.
Thông qua Props, các component có khả năng kết nối và truyền tải dữ liệu tùy biến, giúp chuyển giao thông tin đến một UI component cụ thể một cách hiệu quả.
Tính năng State trong ReactJS cho phép điều chỉnh trạng thái cho các component con (child) nhận dữ liệu từ component gốc (parent) Nhà phát triển có thể thay đổi trạng thái cho nhiều component con mà không làm ảnh hưởng đến component gốc đang ở trạng thái Stateful, giúp việc quản lý và điều chỉnh ứng dụng trở nên dễ dàng hơn.
DOM ảo (Virtual DOM) giúp tăng tốc độ ứng dụng bằng cách tối ưu hóa việc cập nhật giao diện người dùng (UI) để phản ứng nhanh chóng với các thay đổi, từ đó nâng cao trải nghiệm người dùng Khi phát triển ReactJS, các nhà thiết kế đã nhận thức rõ tầm quan trọng của việc cập nhật HTML cũ, mặc dù điều này thường tốn kém Ý tưởng sử dụng DOM ảo cho phép ReactJS xác định chính xác thời điểm cần render lại hoặc loại bỏ các phần tử trong DOM, nhờ vào khả năng phát hiện thay đổi dữ liệu Do đó, ReactJS được đánh giá cao trong môi trường doanh nghiệp.
Ứng dụng phát triển bằng ReactJS mang lại cấu trúc giao diện người dùng (UI) tối ưu, từ đó cải thiện trải nghiệm người dùng (UX) Nhờ vào đó, các doanh nghiệp có thể dễ dàng nâng cao mức độ tương tác của người dùng, tăng tỷ lệ nhấp chuột và tỷ lệ chuyển đổi trên trang web của họ.
Sử dụng ứng dụng ReactJS mang lại hiệu suất kinh doanh vượt trội so với các framework khác, nhờ vào khả năng hạn chế cập nhật DOM Điều này không chỉ tăng tốc độ truy cập ứng dụng mà còn cải thiện trải nghiệm người dùng (UX) một cách đáng kể.
ReactJS được phát triển nhằm cải thiện số lượng trang render từ phía server và tối ưu hóa quá trình render trên client-side Công cụ này cho phép tùy chỉnh tốt, giúp giảm thiểu chi phí bảo trì hệ thống, từ đó nâng cao hiệu quả sử dụng của ReactJS.
Redux là thư viện JavaScript chuyên dụng cho việc quản lý trạng thái ứng dụng, giúp người dùng phát triển ứng dụng một cách nhất quán Nó hỗ trợ chạy trên nhiều môi trường khác nhau như client, server và native, đồng thời dễ dàng kiểm thử.
Redux được xây dựng dựa trên 3 nguyên lý:
- Nguồn dữ liệu tin cậy duy nhất: State của toàn bộ ứng được chứa trong một object tree nằm trong Store duy nhất
- Trạng thái chỉ được phép đọc: Cách duy nhất để thay đổi State của ứng dụng là phát một Action (là 1 object mô tả những gì xảy ra)
- Thay đổi chỉ bằng hàm thuần túy: Để chỉ ra cách mà State được biến đổi bởi Action chúng ta dùng các pure function gọi là Reducer
PHÂN TÍCH VÀ THIẾT KẾ PHẦN MỀM
Usecase “Đăng nhập”
Bảng 3.1 Đặc tả usecase “Đăng nhập”
Tất cả người dùng cần đăng nhập vào hệ thống để sử dụng các chức năng phù hợp với quyền hạn của mình.
Actor(s) Người lao động, Nhà tuyển dụng, Admin
Tiền điều kiện Người dùng đã có tài khoản trong hệ thống
Nếu người dùng đăng nhập thành công, họ sẽ được xác thực và có quyền truy cập vào các chức năng của tài khoản Ngược lại, nếu đăng nhập không thành công, hệ thống sẽ không xác thực người dùng và họ sẽ không thể đăng nhập.
Use case bắt đầu khi người dùng chọn chức năng đăng nhập:
2 Người dùng nhập email và password và ấn đăng nhập
3 Hệ thống xác thực username và password
4 Hệ thống xác định vai trò của người dùng Hệ thống mở màn hình trang chủ
Nếu người dùng nhập sai username hay/và password Những công việc sau được thực hiện:
1 Hệ thống mô tả lý do xác thực bị sai
2 Khi người dùng nhập lại username và password, bước 3 ở Luồng cơ bản được thực hiện Điểm mở rộng Không có
Hình 3.3 Lược đồ tuần tự “Đăng nhập”
Usecase “Đăng ký”
Bảng 3.2 Đặc tả usecase “Đăng ký”
Mô tả ngắn gọn Khách thực hiện đăng ký tài khoản để trở thành User
Tiền điều kiện Các trường đăng ký hợp lệ
Nếu các trường đăng ký hợp lệ, người dùng sẽ đăng nhập thành công vào hệ thống bằng tài khoản đã đăng ký Ngược lại, nếu các trường đăng ký không hợp lệ, quá trình đăng ký sẽ thất bại.
Use case bắt đầu khi người dùng chọn chức năng đăng ký:
2 Nhập vào các trường cần thiết
3 Ấn nút đăng ký Luồng thay thế
Nếu người dùng nhập các trường không hợp lệ Những công việc sau được thực hiện:
1 Hệ thống mô tả lý do không thể đăng ký
2 Người dùng quay lại bước 2 ở Luồng cơ bản được thực hiện Điểm mở rộng Không có
Lược đồ tuần tự “Đăng ký”
Hình 3.4 Lược đồ tuần tự “Đăng ký”
Usecase “Xem thông tin tuyển dụng”
Bảng 3.3 Đặc tả usecase “Xem thông tin tuyển dụng”
Tên Usecase Xem thông tin tuyển dụng
Mô tả ngắn gọn Khách, Người lao động, Nhà tuyển dụng vào xem thông tin tuyển dụng
Actor(s) Khách, Người lao động, Nhà tuyển dụng
Hậu điều kiện Xem được thông tin cơ bản thông tin tuyển dụng
Luồng cơ bản Use case bắt đầu khi người dùng vào trang xem thông tin tuyển dụng:
(Thành công) 1 Vào trang xem thông tin tuyển dụng
2 Chọn thông báo tuyển dụng muốn xem chi tiết
3 Xem nội dung chi tiết của thông báo tuyển dụng Điểm mở rộng Không có
Lược đồ tuần tự “Xem thông tin tuyển dụng”
Hình 3.5 Lược đồ tuần tự “Xem thông tin tuyển dụng”
Usecase “Đổi mật khẩu”
Bảng 3.4 Đặc tả usecase “Đổi mật khẩu”
Tên Usecase Đổi mật khẩu
Mô tả ngắn gọn Người lao động, nhà tuyển dụng muốn đổi mật khẩu hiện tại của mình
Actor(s) Người lao động, nhà tuyển dụng
Tiền điều kiện Nhớ mật khẩu hiện tại
Hậu điều kiện Đổi thành công mật khẩu mới tài khoản
Use case bắt đầu khi người dùng chọn chức năng đổi mật khẩu:
3 Nhập mật khẩu hiện tại và nhập mật khẩu muốn đổi
4 Chọn cập nhật Luồng thay thế
Nếu người dùng nhập mật khẩu hiện tại không đúng thì quay lại bước 3 ở Luồng cơ bản Điểm mở rộng Không có
Lược đồ tuần tự “Đổi mật khẩu”
Hình 3.6 Lược đồ tuần tự “Đổi mật khẩu”
Usecase “Chỉnh sửa thông tin cá nhân”
Bảng 3.5 Đặc tả usecase “Chỉnh sửa thông tin cá nhân”
Tên Usecase Chỉnh sửa thông tin cá nhân
Mô tả ngắn gọn Người lao động, nhà tuyển dụng chỉnh sửa thông tin cá nhân của tài khoản
Actor(s) Người lao động, nhà tuyển dụng
Tiền điều kiện Có tài khoản trong hệ thống
Hậu điều kiện Chỉnh sửa được thông tin cá nhân của tài khoản
Use case bắt đầu khi người dùng chọn chức năng chỉnh sửa thông tin cá nhân:
2 Chọn chỉnh sửa thông tin cá nhân
3 Nhập thông tin cá nhân cần chỉnh sửa
Nếu các trường thay đổi không hợp lệ, quay lại bước 3 của Luồng cơ bản Điểm mở rộng Không có
Lược đồ tuần tự “Chỉnh sửa thông tin cá nhân”
Hình 3.7 Lược đồ tuần tự “Chỉnh sửa thông tin cá nhân”
Usecase “Xem trang cá nhân thành viên”
Bảng 3.6 Đặc tả usecase “Xem trang cá nhân thành viên”
Tên Usecase Xem trang cá nhân thành viên
Mô tả ngắn gọn Xem thông tin cá nhân của tài khoản
Actor(s) Khách, Người lao động, Nhà tuyển dụng
Hậu điều kiện Xem được thông tin cá nhân của tài khoản
Use case bắt đầu khi người dùng vào trang thông tin cá nhân:
1 Chọn vào avatar cá nhân
2 Chọn Trang cá nhân Điểm mở rộng Không có
Lược đồ tuần tự “Xem trang cá nhân thành viên”
Hình 3.8 Lược đồ tuần tự “Xem trang cá nhân thành viên”
Usecase “Thêm thông báo tuyển dụng”
Bảng 3.7 Đặc tả usecase “Thêm thông báo tuyển dụng”
Tên Usecase Thêm thông báo tuyển dụng
Mô tả ngắn gọn Nhà tuyển dụng thêm mới thông báo tuyển dụng
Tiền điều kiện Đã đăng nhập
Hậu điều kiện Thông báo tuyển dụng mới được tạo
Usecase bắt đầu khi người dùng chọn chức năng tạo thông báo tuyển dụng:
1 Vào trang tạo thông báo tuyển dụng
2 Nhập thông tin tuyển dụng
4 Hiện thông báo thành công
5 Điều hướng đến trang chi tiết tuyển dụng Luồng thay thế
Thông báo đăng tải thất bại Điểm mở rộng Không có
Lược đồ tuần tự “Thêm thông báo tuyển dụng”
Hình 3.9 Lược đồ tuần tự “Thêm thông báo tuyển dụng”
Usecase “Chỉnh sửa thông báo tuyển dụng”
Bảng 3.8 Đặc tả usecase “Chỉnh sửa thông báo tuyển dụng”
Tên Usecase Chỉnh sửa thông báo tuyển dụng
Mô tả ngắn gọn Nhà tuyển dụng sửa đổi thông báo tuyển dụng
Tiền điều kiện Đã đăng nhập và thông báo tuyển dụng do chính Nhà tuyển dụng đó tạo
Hậu điều kiện Thông báo tuyển dụng được chỉnh sửa
Usecase bắt đầu khi nhà tuyển dụng chọn chức năng chỉnh thông báo tuyển dụng:
1 Vào trang chi tiết thông báo tuyển dụng
3 Hiển thị modal chỉnh sửa thông báo tuyển dụng
4 Chỉnh sửa các thông tin
6 Hiện thông báo thành công và đóng modal
Thông báo chỉnh sửa thất bại Điểm mở rộng Không có
Lược đồ tuần tự “Chỉnh sửa thông báo tuyển dụng”
Hình 3.10 Lược đồ tuần tự “Chỉnh sửa thông báo tuyển dụng”
Usecase “Xóa thông báo tuyển dụng”
Bảng 3.9 Đặc tả usecase “Xóa thông báo tuyển dụng”
Tên Usecase Xóa thông báo tuyển dụng
Mô tả ngắn gọn Nhà tuyển dụng xóa thông báo tuyển dụng
Tiền điều kiện Đã đăng nhập và thông báo tuyển dụng do chính nhà tuyển dụng đó tạo
Hậu điều kiện Thông báo tuyển dụng được xóa
Usecase bắt đầu khi nhà tuyển dụng chọn chức năng xóa thông báo tuyển dụng:
1 Vào trang chi tiết thông báo tuyển dụng
3 Hiển thị dialog xác nhận xóa
5 Hiện thông báo thành công và đóng dialog
6 Điều hướng về trang danh sách thông báo tuyển dụng Luồng thay thế
Thông báo xóa thất bại Điểm mở rộng Không có
Lược đồ tuần tự “Xóa thông báo tuyển dụng”
Hình 3.11 Lược đồ tuần tự “Xóa thông báo tuyển dụng”
Usecase “Theo dõi nhà tuyển dụng”
Bảng 3.10 Đặc tả usecase “Theo dõi nhà tuyển dụng”
Tên Usecase Theo dõi nhà tuyển dụng
Mô tả ngắn gọn Người lao động nhấn chọn theo dõi nhà tuyển dụng
Tiền điều kiện Người lao động đã đăng nhập vào hệ thống và chưa theo dõi nhà tuyển dụng
Hậu điều kiện Theo dõi nhà tuyển dụng thành công
Use case bắt đầu khi người dùng nhấn chọn theo dõi nhà tuyển dụng:
1 Chọn nhà tuyển dụng muốn theo dõi
2 Nhấp chọn trang cá nhân
Thông báo theo dõi nhà tuyển dụng thất bại Mô tả lý do thất bại Điểm mở rộng Không có
Lược đồ tuần tự “Theo dõi nhà tuyển dụng”
Hình 3.12 Lược đồ tuần tự “Theo dõi nhà tuyển dụng”
Usecase “Theo dõi công ty”
Bảng 3.11 Đặc tả usecase “Theo dõi nhà tuyển dụng”
Tên Usecase Theo dõi nhà tuyển dụng
Mô tả ngắn gọn Người lao động theo dõi công ty
Tiền điều kiện Đã đăng nhập
Hậu điều kiện Theo dõi công ty thành công
Use case bắt đầu khi người dùng nhấn chọn theo dõi công ty:
1 Chọn công ty muốn theo dõi
2 Nhấn xem thông tin chi tiết
3 Nhấp theo dõi Luồng thay thế Thông báo theo dõi công ty thất bại
(Thất bại) Điểm mở rộng Không có
Lược đồ tuần tự “Theo dõi công ty”
Hình 3.13 Lược đồ tuần tự “Theo dõi công ty”
Usecase “Ứng tuyển”
Bảng 3.12 Đặc tả usecase “Ứng tuyển”
Mô tả ngắn gọn Người lao động ứng tuyển
Hậu điều kiện Ứng tuyển thành công
Use case bắt đầu khi người dùng vào trang xem thông tin tuyển dụng và chọn ứng tuyển:
1 Vào trang xem thông tin tuyển dụng
2 Chọn thông báo tuyển dụng muốn ứng tuyển
3 Xem nội dung chi tiết của thông báo tuyển dụng
5 Nhấn ứng tuyển Điểm mở rộng Không có
Lược đồ tuần tự “Ứng tuyển”
Hình 3.14 Lược đồ tuần tự “Ứng tuyển”
Usecase “Thêm thông báo công việc”
Bảng 3.13 Đặc tả usecase “Thêm thông báo công việc”
Tên Usecase Thêm thông báo công việc
Mô tả ngắn gọn Người lao động thêm JobAlert
Hậu điều kiện Thêm JobAlert thành công
Use case bắt đầu khi người dùng vào trang JobAlert và thêm, chỉnh sửa nội dung:
3 Nhấn cập nhật Điểm mở rộng Không có
Lược đồ tuần tự “Thêm thông báo công việc”
Hình 3.15 Lược đồ tuần tự “Thêm thông báo công việc”
Usecase “Phản hồi yêu cầu ứng tuyển”
Bảng 3.14 Đặc tả usecase “Xử lý các yêu cầu ứng tuyển”
Tên Usecase Xử lý các yêu cầu ứng tuyển
Mô tả ngắn gọn Nhà tuyển dụng xử lý các yêu cầu ứng tuyển
Tiền điều kiện Đã đăng nhập và thông báo tuyển dụng do chính Nhà tuyển dụng đó tạo
Hậu điều kiện Các yêu cầu ứng tuyển được xử lý
Usecase bắt đầu khi nhà tuyển dụng chọn chức năng xử lý yêu cầu ứng tuyển:
1 Vào trang quản lý Application cho một JobPost
2 Hiển thị danh sách ứng viên và tùy chọn chấp nhận hoặc từ chối trên từng dòng (Chọn nút “Chấp nhận” để chấp thuận yêu cầu ứng tuyển, chọn nút “Từ chối” để từ chối yêu cầu ứng tuyển)
3 Nhập lời nhắn, thông tin vào form phản hồi và nhấn submit
Thông báo xử lý thất bại Điểm mở rộng Không có
Lược đồ tuần tự “Phản hồi yêu cầu ứng tuyển”
Hình 3.16 Lược đồ tuần tự “Xử lý các yêu cầu ứng tuyển”
Usecase “Thêm tài khoản”
Bảng 3.15 Đặc tả usecase “Thêm tài khoản”
Tên Usecase Thêm tài khoản
Mô tả ngắn gọn Admin có thể tạo tài khoản người dùng mới trên giao diện của admin
Tiền điều kiện Admin đã đăng nhập vào hệ thống
Hậu điều kiện Nếu tạo thành công: người dùng được xác thực và được đăng nhập vào để thực hiện các chức năng của người dùng đó
Nếu tạo không thành công: người dùng sẽ không được hệ thống xác thực và không thể đăng nhập vào
Use case bắt đầu khi admin chọn chức năng tạo tài khoản từ giao diện quản lý tài khoản:
1 Admin nhập thông tin tài khoản email, password và quyền cho tài khoản tại form điền
3 Hệ thống xác thực qua email
4 Hệ thống xác định vai trò của người dùng Hệ thống thêm mới tài khoản trong danh sách tài khoản được hiển thị
Nếu email đã tồn tại Những công việc sau được thực hiện:
1 Hệ thống thông báo tài khoản đã tồn tại và trở lại giao diện quản lý tài khoản Điểm mở rộng Không có
Lược đồ tuần tự “Thêm tài khoản”
Hình 3.17 Lược đồ tuần tự “Thêm tài khoản”
Usecase “Xoá tài khoản”
Bảng 3.16 Đặc tả usecase “Xoá tài khoản”
Tên Usecase Xoá tài khoản
Mô tả ngắn gọn Admin có thể xoá tài khoản bất kỳ
Tiền điều kiện Admin đã đăng nhập vào hệ thống
1 Admin tìm kiếm tài khoản cần xoá theo username hoặc email
2 Admin nhấn biểu tượng optional bên cạnh tài khoản cần xoá
4 Admin nhập email của tài khoản khi hệ thống yêu cầu để xác nhận xoá
5 Hệ thống xoá tài khoản và làm mới danh sách tài khoản tại danh mục quản lý tài khoản
Luồng thay thế Điểm mở rộng Không có
Lược đồ tuần tự “Xoá tài khoản”
Hình 3.18 Lược đồ tuần tự “Xoá tài khoản”
Usecase “Reset mật khẩu”
Bảng 3.17 Đặc tả usecase “Reset mật khẩu”
Tên Usecase Reset mật khẩu cho tài khoản người dùng
Mô tả ngắn gọn Admin có thể reset mật khẩu cho tài khoản của người dùng trong hệ thống
Tiền điều kiện Admin đã đăng nhập vào hệ thống
1 Admin tìm kiếm tài khoản cần xoá theo username hoặc email
2 Admin nhấn biểu tượng optional bên cạnh tài khoản cần xoá
3 Admin chọn ‘Reset mật khẩu”
4 Admin chọn đồng ý khi có thông báo xác nhận reset mật khẩu
5 Hệ thống reset mật khẩu tài khoản đã chọn và gửi mật khẩu mời về email đã đăng ký
Luồng thay thế Điểm mở rộng Không có
Lược đồ tuần tự “Reset mật khẩu”
Hình 3.19 Lược đồ tuần tự “Reset mật khẩu”
Usecase “Thêm ExtraInfo”
Bảng 3.18 Đặc tả usecase “Thêm ExtraInfo”
Tên Usecase Thêm “Thông tin thêm” vào danh sách “Thông tin thêm” của hệ thống
Mô tả ngắn gọn Admin có thể thêm “Thông tin thêm” vào danh sách gợi ký
“Thông tin thêm” của hệ thống
Tiền điều kiện Admin đã đăng nhập vào hệ thống
Luồng cơ bản 1 Admin chọn mục quản lý “ExtraInfo”
(Thành công) 2 Admin chọn button “Add extraInfo”
3 Admin nhập thông tin “ExtraInfo” mới bao gồm tên , chế độ hoạt động(isActive) của “ExtraInfo”
4 Hệ thống thêm “Thông tin thêm” mới vào danh sách
“Thông tin thêm” hiện có và làm mới danh sách
Luồng thay thế Điểm mở rộng Không có
Lược đồ tuần tự “Thêm ExtraInfo”
Hình 3.20 Lược đồ tuần tự “Thêm ExtraInfo”
Usecase “Sửa ExtraInfo”
Bảng 3.19 Đặc tả usecase “Sửa ExtraInfo”
Mô tả ngắn gọn Admin có thể sửa thông tin “ExtraInfo”
Tiền điều kiện Admin đã đăng nhập vào hệ thống
1 Admin chọn mục quản lý “ExtraInfo”
2 Admin tìm “ExtraInfo” theo tên hoặc filter thuộc tính active của “Thông tin thêm”
3 Admin chọn nút sửa bên cạnh “ExtraInfo” muốn sửa
4 Admin nhập thông tin “ExtraInfo”, chế độ hoạt động (isActive)
5 Admin chọn button “Sửa” tại form nhập thông tin “Thông tin thêm”
6 Hệ thống cập nhật “ExtraInfo” và làm mới danh sách
Luồng thay thế Điểm mở rộng
Lược đồ tuần tự “ExtraInfo”
Hình 3.21 Lược đồ tuần tự “Sửa ExtraInfo”
Usecase “Xoá ExtraInfo”
Bảng 3.20 Đặc tả usecase “Xoá ExtraInfo”
Tên Usecase Sửa thông tin “ExtraInfo”
Mô tả ngắn gọn Admin có thể xoá thông tin “ExtraInfo”
Tiền điều kiện Admin đã đăng nhập vào hệ thống
1 Admin chọn mục quản lý “ExtraInfo”
2 Admin tìm “ExtraInfo” theo tên hoặc filter thuộc tính active của “ExtraInfo”
3 Admin chọn nút xoá bên cạnh “ExtraInfo” muốn xoá
4 Admin chọn Xoá tại thông báo xác nhận xoá
5 Hệ thống xoá “ExtraInfo” đã chọn và làm mới danh sách
Luồng thay thế Điểm mở rộng Không có
Lược đồ tuần tự “Xoá ExtraInfo”
Hình 3.22 Lược đồ tuần tự “Xoá ExtraInfo”
Usecase “Thống kê số lượng Job được tạo”
Bảng 3.21 Đặc tả usecase “Thống kê số lượng Job được tạo”
Tên Usecase Thống kê số lượng Job được tạo
Mô tả ngắn gọn Admin có thể xem thống kê số lượng job được tạo theo thời gian
Tiền điều kiện Admin đã đăng nhập vào hệ thống
1 Admin chọn mục “Thống kê job”
2 Admin chọn khoản thời gian để thống kê, chọn ngày bắt đầu, ngày kết thúc
3 Hệ thống hiển thị số lượng job được tạo theo ngày ở dạng biểu đồ cột
Luồng thay thế Điểm mở rộng Không có
Lược đồ tuần tự “Thống kê Job”
Hình 3.23 Lược đồ tuần tự “Thống kê Job”
Usecase “Thống kê số lượng tài khoản được tạo”
Bảng 3.22 Đặc tả usecase “Thống kê số lượng tài khoản được tạo”
Tên Usecase Thống kê số lượng Tài khoản được tạo
Mô tả ngắn gọn Admin có thể xem thống kê số lượng tài khoản được tạo theo thời gian
Tiền điều kiện Admin đã đăng nhập vào hệ thống
1 Admin chọn mục “Thống kê tài khoản”
2 Admin chọn khoản thời gian để thống kê, chọn ngày bắt đầu, ngày kết thúc
3 Admin có thể chọn thống kê theo loại tài khoản ứng viên hoặc nhà tuyển dụng bằng filter bên trên biểu đồ
4 Hệ thống hiển thị số lượng tài khoản được tạo theo ngày ở dạng biểu đồ cột
Luồng thay thế Điểm mở rộng Không có
Lược đồ tuần tự “Thống kê tài khoản”
Hình 3.24 Lược đồ tuần tự “Thống kê tài khoản”
Usecase “Xem profile ứng viên”
Bảng 3.23 Đặc tả usecase “Xem profile ứng viên”
Tên Usecase Xem profile ứng viên
Mô tả ngắn gọn Cho phép người dùng thường (khách) có thể xem được profile ứng viên
Actor(s) Khách, không cần đăng ký tài khoản
1 Người dùng tìm kiếm profile ứng viên theo tên, lĩnh vực, dịch vụ, skill muốn tìm
2 Người dùng click chọn vào một item tài khoản ứng viên được hiển thị trong danh sách tìm được
3 Hệ thống hiển thị chi tiết thông tin tài khoản ứng viên Luồng thay thế Điểm mở rộng Không có
Lược đồ tuần tự “Xem profile ứng viên”
Hình 3.25 Lược đồ tuần tự “Xem profile ứng viên”
Usecase “Thêm thông tin công ty”
Bảng 3.24 Đặc tả usecase “Thêm thông tin công ty”
Tên Usecase Thêm thông tin công ty
Mô tả ngắn gọn Nhà tuyển dụng thêm mới thông tin công ty
Tiền điều kiện Đã đăng nhập
Hậu điều kiện Thông tin công ty mới được tạo
Usecase bắt đầu khi người dùng chọn chức năng tạo thông báo tuyển dụng:
1 Vào trang tạo thông báo tuyển dụng
2 Nhập thông tin tuyển dụng, ở mục công ty chọn thêm mới
3 Nhập thông tin công ty
4 Nhấp chọn thêm mới Luồng thay thế
Thông báo thêm mới công ty thất bại Điểm mở rộng Không có
Lược đồ tuần tự “Thêm thông tin công ty”
Hình 3.26 Lược đồ tuần tự “Thêm thông tin công ty”
Usecase “Lưu thông tin tuyển dụng”
Bảng 3.25 Đặc tả usecase “Lưu thông tin tuyển dụng”
Tên Usecase Lưu thông tin tuyển dụng
Mô tả ngắn gọn Người lao động thêm lưu thông tin tuyển dụng
Tiền điều kiện Đã đăng nhập
Hậu điều kiện Thông tin tuyển dụng được lưu
Use case bắt đầu khi người dùng nhấn chọn Lưu thông tin tuyển dụng:
1 Vào trang xem thông tin tuyển dụng
2 Chọn thông báo tuyển dụng muốn lưu
Thông báo lưu thông tin tuyển dụng thất bại Điểm mở rộng Không có
Lược đồ tuần tự “Lưu thông tin tuyển dụng”
Hình 3.27 Lược đồ tuần tự “Lưu thông tin tuyển dụng”
Usecase “Xem đơn ứng tuyển”
Bảng 3.26 Đặc tả usecase “Xem đơn ứng tuyển”
Tên Usecase Xem đơn ứng tuyển
Mô tả ngắn gọn Nhà tuyển dụng xem đơn ứng tuyển của ứng viên đã nộp
Tiền điều kiện Đã đăng nhập
Use case bắt đầu khi nhà tuyển dụng nhấn “View CV” tại mục quản lý đơn ứng tuyển
1 Vào trang quản lý đơn ứng tuyển
2 Chọn “View CV” bên cạnh đơn ứng tuyển muốn xem
3 Hệ thống hiển thị pop-up thông tin đơn ứng tuyển
(Thất bại) Điểm mở rộng Không có
Lược đồ tuần tự “Xem đơn ứng tuyển”
Hình 3.28 Lược đồ tuần tự “Xem đơn ứng tuyển”
Usecase “Xem đánh giá, gợi ý từ Hirize cho đơn ứng tuyển”
Bảng 3.27 Đặc tả usecase “Xem đánh giá, gợi ý từ Hirize cho đơn ứng tuyển”
Tên Usecase Xem đánh giá, gợi ý từ Hirize cho đơn ứng tuyển
Mô tả ngắn gọn Nhà tuyển dụng xem đánh giá gợi ý từ đơn ứng tuyển sử dụng AI của bên thứ 3 – Hirize
Tiền điều kiện Đã đăng nhập
Use case bắt đầu khi nhà tuyển dụng nhấn “Score and IQ suggest” tại mục quản lý đơn ứng tuyển
1 Vào trang quản lý đơn ứng tuyển
2 Chọn “Score and IQ suggest” bên cạnh đơn ứng tuyển muốn xem
3 Hệ thống hiển thị pop-up thông tin đơn ứng tuyển
Thông báo “Có lỗi xảy ra, thử lại sau” Điểm mở rộng Không có
Lược đồ tuần tự “Xem đánh giá, gợi ý từ Hirize cho đơn ứng tuyển”
Hình 3.29 Lược đồ tuần tự “Xem đánh giá từ Hirize cho đơn ứng tuyển”
Usecase “Thêm bình luận”
Bảng 3.28 Đặc tả usecase “Xem đánh giá từ Hirize cho đơn ứng tuyển”
Tên Usecase Thêm bình luận
Mô tả ngắn gọn Người dùng thêm bình luận cho bài viết blog
Tiền điều kiện Đã đăng nhập
Use case bắt đầu khi người dùng truy cập vào một bài viết blog cụ thể
1 Chọn một bài viết trên danh mục các bài viết blog
2 Tại trang chi tiết bài viết blog, nhập bình luận ở phía bên dưới bài viết
4 Bình luận được thêm vào danh sách bình luận của bài viết đang hiển thị
Thông báo lưu thông tin bình luận không thành công Điểm mở rộng Không có
Lược đồ tuần tự “Thêm bình luận”
Hình 3.30 Lược đồ tuần tự “Thêm bình luận”
Usecase “Sửa bình luận”
Bảng 3.29 Đặc tả usecase “Sửa bình luận”
Tên Usecase Sửa bình luận
Mô tả ngắn gọn Người dùng sửa bình luận cho bài viết blog
Tiền điều kiện Đã đăng nhập
Use case bắt đầu khi người dùng truy cập vào một bài viết blog cụ thể
1 Chọn một bài viết trên danh mục các bài viết blog
2 Tại trang chi tiết bài viết blog, chọn “Edit” bên cạnh bình luận do chính người dùng đã bình luận ở phía bên dưới bài viết
4 Bình luận và danh sách bình luận của bài viết đang hiển thị được cập nhật
Thông báo sửa thông tin bình luận không thành công Điểm mở rộng Không có
Lược đồ usecase “Sửa bình luận”
Hình 3.31 Lược đồ usecase sửa bình luận
Usecase “Xoá bình luận”
Bảng 3.30 Đặc tả usecase “Xoá bình luận”
Tên Usecase Xoá bình luận
Mô tả ngắn gọn Người dùng xoá bình luận cho bài viết blog
Tiền điều kiện Đã đăng nhập
Use case bắt đầu khi người dùng truy cập vào một bài viết blog
1 Chọn một bài viết trên danh mục các bài viết blog
2 Tại trang chi tiết bài viết blog, chọn “Delete” bên cạnh bình luận do chính người dùng đã bình luận ở bên dưới bài viết
3 Bình luận bị xoá và danh sách bình luận của bài viết đang hiển thị được cập nhật
Thông báo xoá bình luận không thành công Điểm mở rộng Không có
Lược đồ tuần tự “Xoá bình luận”
Hình 3.32 Lược đồ tuần tự “Xoá bình luận”
Usecase “Thêm bài chia sẻ mới”
Bảng 3.31 Đặc tả usecase “Thêm bài chia sẻ mới”
Tên Usecase Thêm bài chia sẻ mới
Mô tả ngắn gọn Người dùng tạo bài chia sẻ mới
Actor(s) Người dùng có tài khoản trong hệ thống
Tiền điều kiện Đã đăng nhập
Hậu điều kiện Bài chia sẻ mới được tạo
Usecase bắt đầu khi người dùng chọn chức năng tạo bài chia sẻ mới:
1 Vào trang tạo bài chia sẻ mới
2 Nhập thông tin bài chia sẻ
4 Hiện thông báo thành công
5 Điều hướng đến trang quản lý bài chia sẻ Luồng thay thế
Thông báo đăng tải thất bại Điểm mở rộng Không có
Lược đồ tuần tự “Thêm bài chia sẻ mới”
Hình 3.33 Lược đồ tuần tự “Thêm bài chia sẻ mới”
Usecase “Chỉnh sửa thông tin bài chia sẻ”
Bảng 3.32 Đặc tả usecase “Chỉnh sửa thông tin bài chia sẻ”
Tên Usecase Chỉnh sửa thông tin bài chia sẻ
Mô tả ngắn gọn Người dùng sửa đổi thông tin bài chia sẻ
Actor(s) Người dùng có tài khoản trong hệ thống
Tiền điều kiện Đã đăng nhập và bài chia sẻ do chính người dùng đó tạo
Hậu điều kiện Bài chia sẻ được chỉnh sửa
Usecase bắt đầu khi nhà tuyển dụng chọn chức năng chỉnh thông tin bài chia sẻ:
1 Vào trang chi tiết thông tin bài chia sẻ
3 Chỉnh sửa các thông tin
5 Hiện thông báo thành công
Thông báo chỉnh sửa thất bại Điểm mở rộng Không có
Lược đồ tuần tự “Chỉnh sửa thông tin bài chia sẻ”
Hình 3.34 Lược đồ tuần tự “Chỉnh sửa thông tin bài chia sẻ”
CÀI ĐẶT VÀ KIỂM THỬ
KIỂM THỬ HỆ THỐNG
STT Thời gian Công việc Ghi chú
- Thiết kế usecase và mô hình hóa yêu cầu
- Thiết kế cơ sở dữ liệu
- Tìm hiểu về thư viện ReactJS, HTML, SCSS
- Tìm hiểu về Spring boot
- Điều chỉnh cơ sở dữ liệu
- Tìm hiểu về JSON Web Token để ứng dụng vào xác thực và phân quyền API của hệ thống
- Tìm hiểu cách xây dựng RESTful API
- Tìm hiểu về PostgresSQL để áp dụng vào lưu trữ dữ liệu
- Tiến hành phát triển API dựa trên các kiến thức đã tìm hiểu được và các tài liệu
- Tiến hành xây dựng giao diện người dùng cho hệ thống
- Tích hợp xử lý giao diện với các chức năng của API
- Điều chỉnh và hoàn thiện các chức năng của hệ thống
6 09/06/2023 – 20/06/2023 - Tích hợp thêm sdk, api của bên thứ
3 hỗ trợ xử lý các logic nghiệp vụ
- Kiểm thử chương trình và tiến hành sửa lỗi
- Tìm hiểu và thực hành deploy
- Viết và hoàn thiện báo cáo
(Ký và ghi rõ họ tên)
Tp Hồ Chí Minh, ngày tháng 7 năm 2023
(Ký và ghi rõ họ tên)
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1
5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN 2
CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HOÁ YÊU CẦU 4
1.2.2 Yêu cầu phi chức năng 14
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 15
2.2 CÁC CÔNG NGHỆ SỬ DỤNG 16
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ PHẦN MỀM 31
3.1 MÔ HÌNH HOÁ YÊU CẦU PHÍA KHÁCH, NGƯỜI LAO ĐỘNG VÀ NHÀ
3.1.3 Usecase “Xem thông tin tuyển dụng” 35
3.1.5 Usecase “Chỉnh sửa thông tin cá nhân” 37
3.1.6 Usecase “Xem trang cá nhân thành viên” 39
3.1.7 Usecase “Thêm thông báo tuyển dụng” 40
3.1.8 Usecase “Chỉnh sửa thông báo tuyển dụng” 41
3.1.9 Usecase “Xóa thông báo tuyển dụng” 42
3.1.10 Usecase “Theo dõi nhà tuyển dụng” 43
3.1.11 Usecase “Theo dõi công ty” 45
3.1.13 Usecase “Thêm thông báo công việc” 47
3.1.14 Usecase “Phản hồi yêu cầu ứng tuyển” 49
3.1.21 Usecase “Thống kê số lượng Job được tạo” 57
3.1.22 Usecase “Thống kê số lượng tài khoản được tạo” 58
3.1.23 Usecase “Xem profile ứng viên” 59
3.1.24 Usecase “Thêm thông tin công ty” 60
3.1.25 Usecase “Lưu thông tin tuyển dụng” 62
3.1.26 Usecase “Xem đơn ứng tuyển” 63
3.1.27 Usecase “Xem đánh giá, gợi ý từ Hirize cho đơn ứng tuyển” 64
3.1.31 Usecase “Thêm bài chia sẻ mới” 70
3.1.32 Usecase “Chỉnh sửa thông tin bài chia sẻ” 71
3.1.33 Usecase “Xóa thông tin bài chia sẻ” 72
3.3 THIẾT KẾ CƠ SỞ DỮ LIỆU 75
3.3.1 Lược đồ sơ sở dữ liệu 75
3.3.2 Chi tiết bảng dữ liệu 75
3.4.1 Giao diện chính phía người dùng 86
CHƯƠNG 4: CÀI ĐẶT VÀ KIỂM THỬ 106
4.1.2 Kiểm thử bản beta đã deploy 106
4.2.2 Quy trình thiết kế kiểm thử 107
4.2.3 Quy trình chạy bộ kiểm thử 108
4.2.4 Kiểm thử một số chức năng của hệ thống 109
1 KẾT QUẢ ĐÃ ĐẠT ĐƯỢC 116
Hình 2.1 Kiến trúc hệ thống 15
Hình 2.2 Virtual DOM trong ReactJS 17
Hình 2.3 One-way binding trong ReactJS 18
Hình 2.4 Luồng hoạt động của Redux-saga 20
Hình 2.5 Các thành phần cấu thành Spring Boot 21
Hình 2.7 Sơ đồ ứng dụng WebClient vào hệ thống 23
Hình 2.9 Hệ thống sử dụng hệ cơ sở dữ liệu PostgresSQL 24
Hình 2.10 Ứng dụng Redis trong hệ thống 26
Hình 2.12 Ứng dụng Jasypt mã hoá thông tin nhạy cảm 27
Hình 2.13 Ứng dụng Jasypt mã hoá thông tin nhạy cảm 27
Hình 2.15 Ứng dụng AWS trong hệ thống 29
Hình 2.17 Tích hợp thanh toán Paypal trong hệ thống 30
Hình 3.1 Usecase phía khách, người lao động và nhà tuyển dụng 31
Hình 3.2 Usecase phía quản trị viên và phần chung 32
Hình 3.3 Lược đồ tuần tự “Đăng nhập” 33
Hình 3.4 Lược đồ tuần tự “Đăng ký” 35
Hình 3.5 Lược đồ tuần tự “Xem thông tin tuyển dụng” 36
Hình 3.6 Lược đồ tuần tự “Đổi mật khẩu” 37
Hình 3.7 Lược đồ tuần tự “Chỉnh sửa thông tin cá nhân” 39
Hình 3.8 Lược đồ tuần tự “Xem trang cá nhân thành viên” 40
Hình 3.9 Lược đồ tuần tự “Thêm thông báo tuyển dụng” 41
Hình 3.10 Lược đồ tuần tự “Chỉnh sửa thông báo tuyển dụng” 42
Hình 3.11 Lược đồ tuần tự “Xóa thông báo tuyển dụng” 43
Hình 3.12 Lược đồ tuần tự “Theo dõi nhà tuyển dụng” 45
Hình 3.13 Lược đồ tuần tự “Theo dõi công ty” 46
Hình 3.14 Lược đồ tuần tự “Ứng tuyển” 47
Hình 3.15 Lược đồ tuần tự “Thêm thông báo công việc” 48
Hình 3.16 Lược đồ tuần tự “Xử lý các yêu cầu ứng tuyển” 50
Hình 3.17 Lược đồ tuần tự “Thêm tài khoản” 51
Hình 3.18 Lược đồ tuần tự “Xoá tài khoản” 52
Hình 3.19 Lược đồ tuần tự “Reset mật khẩu” 54
Hình 3.20 Lược đồ tuần tự “Thêm ExtraInfo” 55
Hình 3.21 Lược đồ tuần tự “Sửa ExtraInfo” 56
Hình 3.22 Lược đồ tuần tự “Xoá ExtraInfo” 57
Hình 3.23 Lược đồ tuần tự “Thống kê Job” 58
Hình 3.24 Lược đồ tuần tự “Thống kê tài khoản” 59
Hình 3.25 Lược đồ tuần tự “Xem profile ứng viên” 60
Hình 3.26 Lược đồ tuần tự “Thêm thông tin công ty” 61
Hình 3.27 Lược đồ tuần tự “Lưu thông tin tuyển dụng” 63
Hình 3.28 Lược đồ tuần tự “Xem đơn ứng tuyển” 64
Hình 3.29 Lược đồ tuần tự “Xem đánh giá từ Hirize cho đơn ứng tuyển” 65
Hình 3.30 Lược đồ tuần tự “Thêm bình luận” 67
Hình 3.31 Lược đồ usecase sửa bình luận 68
Hình 3.32 Lược đồ tuần tự “Xoá bình luận” 69
Hình 3.33 Lược đồ tuần tự “Thêm bài chia sẻ mới” 71
Hình 3.34 Lược đồ tuần tự “Chỉnh sửa thông tin bài chia sẻ” 72
Hình 3.35 Lược đồ tuần tự “Xóa thông tin bài chia sẻ” 73
Hình 3.37 Lược đồ cơ sở dữ liệu 75
Hình 3.38 Giao diện Trang đăng nhập 86
Hình 3.39 Giao diện Trang đăng ký 87
Hình 3.40 Giao diện Trang tìm kiếm Job 88
Hình 3.41 Giao diện Trang thông tin liên hệ 89
Hình 3.42 Giao diện Trang chủ 90
Hình 3.43 Giao diện Chi tiết Job 91
Hình 3.44 Giao diện Dashboard Employer 92
Hình 3.45 Giao diện List các job đã đăng của Employer 93
Hình 3.46 Giao diện List các applicant của Employer 94
Hình 3.47 Giao diện My Account của Candidate 95
Hình 3.48 Giao diện My Account của Candidate 96
Hình 3.49 Giao diện Chỉnh sửa thông tin cá nhân 97
Hình 3.50 Giao diện Quản lí CV 97
Hình 3.51 Giao diện tạo CV 98
Hình 3.52 Giao diện Trang Dashboard 99
Hình 3.53 Giao diện Trang List All Job 100
Hình 3.54 Giao diện Trang List All Company 101
Hình 3.55 Giao diện Trang thêm Company 102
Hình 3.56 Giao diện Trang List All Extra Info 103
Hình 3.57 Giao diện Trang thêm Extra Info 104
Hình 3.58 Giao diện Trang cập nhật thông tin tài khoản admin 104
Hình 4.1 Quy trình thiết kế kiểm thử 107
Hình 4.2 Quy trình chạy bộ kiểm thử 108
Bảng 0.1 Bảng phân công công việc 3
Bảng 3.1 Đặc tả usecase “Đăng nhập” 32
Bảng 3.2 Đặc tả usecase “Đăng ký” 34
Bảng 3.3 Đặc tả usecase “Xem thông tin tuyển dụng” 35
Bảng 3.4 Đặc tả usecase “Đổi mật khẩu” 36
Bảng 3.5 Đặc tả usecase “Chỉnh sửa thông tin cá nhân” 38
Bảng 3.6 Đặc tả usecase “Xem trang cá nhân thành viên” 39
Bảng 3.7 Đặc tả usecase “Thêm thông báo tuyển dụng” 40
Bảng 3.8 Đặc tả usecase “Chỉnh sửa thông báo tuyển dụng” 41
Bảng 3.9 Đặc tả usecase “Xóa thông báo tuyển dụng” 42
Bảng 3.10 Đặc tả usecase “Theo dõi nhà tuyển dụng” 44
Bảng 3.11 Đặc tả usecase “Theo dõi nhà tuyển dụng” 45
Bảng 3.12 Đặc tả usecase “Ứng tuyển” 46
Bảng 3.13 Đặc tả usecase “Thêm thông báo công việc” 47
Bảng 3.14 Đặc tả usecase “Xử lý các yêu cầu ứng tuyển” 49
Bảng 3.15 Đặc tả usecase “Thêm tài khoản” 50
Bảng 3.16 Đặc tả usecase “Xoá tài khoản” 52
Bảng 3.17 Đặc tả usecase “Reset mật khẩu” 53
Bảng 3.18 Đặc tả usecase “Thêm ExtraInfo” 54
Bảng 3.19 Đặc tả usecase “Sửa ExtraInfo” 55
Bảng 3.20 Đặc tả usecase “Xoá ExtraInfo” 56
Bảng 3.21 Đặc tả usecase “Thống kê số lượng Job được tạo” 57
Bảng 3.22 Đặc tả usecase “Thống kê số lượng tài khoản được tạo” 58
Bảng 3.23 Đặc tả usecase “Xem profile ứng viên” 59
Bảng 3.24 Đặc tả usecase “Thêm thông tin công ty” 60
Bảng 3.25 Đặc tả usecase “Lưu thông tin tuyển dụng” 62
Bảng 3.26 Đặc tả usecase “Xem đơn ứng tuyển” 63
Bảng 3.27 Đặc tả usecase “Xem đánh giá, gợi ý từ Hirize cho đơn ứng tuyển”64 Bảng 3.28 Đặc tả usecase “Xem đánh giá từ Hirize cho đơn ứng tuyển” 66
Bảng 3.29 Đặc tả usecase “Sửa bình luận” 67
Bảng 3.30 Đặc tả usecase “Xoá bình luận” 68
Bảng 3.31 Đặc tả usecase “Thêm bài chia sẻ mới” 70
Bảng 3.32 Đặc tả usecase “Chỉnh sửa thông tin bài chia sẻ” 71
Bảng 3.33 Đặc tả usecase “Xóa thông tin bài chia sẻ” 72
Bảng 3.34 Chi tiết bảng dữ liệu “users” 75
Bảng 3.35 Chi tiết dữ liệu bảng “token” 76
Bảng 3.36 Chi tiết bảng “role” 76
Bảng 3.37 Chi tiết bảng “user_role” 76
Bảng 3.38 Chi tiết bảng “document” 77
Bảng 3.39 Chi tiết bảng “candidate” 77
Bảng 3.40 Chi tiết bảng “employer” 78
Bảng 3.41 Chi tiết bảng “job_alert” 78
Bảng 3.42 Chi tiết bảng “package” 79
Bảng 3.43 Chi tiết bảng “subscribe” 79
Bảng 3.44 Chi tiết bảng “application” 80
Bảng 3.45 Chi tiết bảng “follow_employer” 80
Bảng 3.46 Chi tiết bảng “notification” 80
Bảng 3.47 Chi tiết bảng “viewed_user” 81
Bảng 3.48 Chi tiết bảng “extra_info” 81
Bảng 3.49 Chi tiết bảng “evaluate” 81
Bảng 3.50 Chi tiết bảng “company” 82
Bảng 3.51 Chi tiết bảng “following_company” 82
Bảng 3.52 Chi tiết bảng “image” 82
Bảng 3.53 Chi tiết bảng “invoice” 83
Bảng 3.54Chi tiết bảng “experience” 83
Bảng 3.55 Chi tiết bảng “save_job” 84
Bảng 3.56 Chi tiết bảng “job_post” 84
Bảng 3.57 Mô tả giao diện Trang đăng nhập 86
Bảng 3.58 Mô tả giao diện Trang đăng ký 87
Bảng 3.59 Mô tả giao diện Trang tìm kiếm Job 88
Bảng 3.60 Mô tả giao diện Trang thông tin liên hệ 89
Bảng 3.61 Mô tả giao diện Trang chủ 90
Bảng 3.62 Mô tả giao diện Chi tiết Job 92
Bảng 3.63 Mô tả giao diện Dashboard Employer 92
Bảng 3.64 Mô tả giao diện List các job đã đăng của Employer 93
Bảng 3.65 Mô tả giao diện List các applicant của Employer 94
Bảng 3.66 Mô tả giao diện My Account của Candidate 95
Bảng 3.67 Mô tả giao diện My Account của Candidate 96
Bảng 3.68 Mô tả giao diện Chỉnh sửa thông tin cá nhân 97
Bảng 3.69 Mô tả giao diện quản lý CV 97
Bảng 3.70 Mô tả giao diện tạo CV 98
Bảng 3.71 Mô tả giao diện Trang Dashboard 99
Bảng 3.72 Mô tả giao diện Trang List All Job 100
Bảng 3.73 Mô tả giao diện Trang List All Company 101
Bảng 3.74 Mô tả giao diện Trang thêm Company 102
Bảng 3.75 Mô tả giao diện Trang List All Extra Info 103
Bảng 3.76 Mô tả giao diện Trang thêm Extra Info 104
Bảng 3.77 Mô tả giao diện Trang cập nhật thông tin tài khoản admin 105
Bảng 4.1 Kiểm thử các chức năng trang quản trị 109
Bảng 4.2 Kiểm thử các chức năng người dùng không có tài khoản 111
Bảng 4.3 Kiểm thử các chức năng của ứng viên 112
Bảng 4.4 Kiểm thử các chức năng của nhà tuyển dụng 113
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Ngày nay, với sự phát triển mạnh mẽ của xã hội và công nghệ, nhu cầu tìm kiếm việc làm và tuyển dụng ngày càng tăng Các website tìm việc làm trở nên cần thiết, cho phép người tìm việc tạo hồ sơ cá nhân và cài đặt tiêu chí mong muốn chỉ một lần để ứng tuyển dễ dàng Đồng thời, nhà tuyển dụng cũng có thể đăng tin tuyển dụng và quản lý thông tin ứng viên hiệu quả Những tiện lợi này đã dẫn đến sự ra đời của nhiều website hỗ trợ việc làm như TopCV, Linkedin, Glint, Vlance,…
Các website hỗ trợ việc làm thường tập trung vào việc tìm kiếm và đánh giá thủ công, dẫn đến việc theo dõi và đánh giá công việc cùng chất lượng ứng viên tiêu tốn nhiều thời gian Để giải quyết vấn đề này, nhóm thực hiện đã đề xuất giải pháp hỗ trợ tìm kiếm công việc phù hợp, giúp người tìm việc dễ dàng hơn, đồng thời cung cấp cho nhà tuyển dụng công cụ đánh giá sơ bộ ứng viên, từ đó tiết kiệm thời gian và nâng cao hiệu quả trong quá trình tuyển dụng.
Nhóm đã phát triển website puzzleute.tk nhằm hỗ trợ ứng viên trong việc tìm kiếm việc làm một cách dễ dàng hơn, đồng thời giúp các nhà tuyển dụng nhanh chóng tìm được ứng viên phù hợp mà không tốn nhiều thời gian và công sức.
Sau khi nghiên cứu thông tin liên quan đến đề tài và áp dụng kiến thức đã học, nhóm đã xác định các đối tượng cần nghiên cứu cho đề tài này.
• Quản lý dữ liệu PostgresSQL
• IDE: intellij, Visual studio code
• Các nền tảng tuyển dụng phổ biến như TopCV, Linkin, Vlance,…
• Và một số công nghệ liên quan khác
Nhóm phát triển ứng dụng này đã tập trung vào việc nghiên cứu và triển khai các chức năng cơ bản của nền tảng tuyển dụng, nhằm hỗ trợ người dùng tìm việc làm hiệu quả Ứng dụng còn giúp quản lý hồ sơ ứng viên và tối ưu hóa quá trình tìm kiếm dựa trên thông tin công việc, khả năng và tình trạng của ứng viên.
Xây dựng nền tảng website tuyển dụng với các chức năng cơ bản như hỗ trợ ứng viên tìm kiếm việc làm, giúp nhà tuyển dụng đăng tin tuyển dụng, quản lý công việc đã đăng và ứng viên, đồng thời gợi ý những công việc phù hợp cho ứng viên.
Thông qua việc thực hiện đề tài này, nhóm sẽ có cơ hội học hỏi và tiếp xúc với các nghiệp vụ tối ưu hóa sắp xếp, tìm kiếm và quản lý quá trình tuyển dụng Đồng thời, nhóm cũng sẽ tiếp thu kiến thức chuyên môn về các công nghệ xu hướng hiện nay như React và Spring Boot.
5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN
Sau khi hoàn thiện đề tài, nhóm chúng em đã tích lũy được nhiều kỹ năng và kiến thức quý giá, đặc biệt về các công nghệ mới hiện nay Điều này không chỉ nâng cao tinh thần nghiên cứu và sáng tạo mà còn thể hiện cam kết cống hiến vì cộng đồng.
Khi đề tài nhóm được áp dụng vào thực tế, hoạt động tuyển dụng sẽ trở nên thuận tiện hơn cho các nhà tuyển dụng Sự tối ưu trong tìm kiếm và phân loại công việc cùng ứng viên sẽ giúp ứng viên dễ dàng tiếp cận các cơ hội việc làm phù hợp Đồng thời, nền tảng tuyển dụng này cũng hỗ trợ cộng đồng và mang lại tiềm năng lớn cho nhà tuyển dụng.
Bảng 0.1 Bảng phân công công việc
THÀNH VIÊN CÔNG VIỆC HOÀN THÀNH
- Viết báo cáo phần Front-End và Giao diện
- Thiết kế cơ sở dữ liệu
- Viết báo cáo phần Back-End và các phần còn lại
CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HOÁ
Vieclam24h.com, một phân trang của báo điện tử 24h.com.vn, hiện đang sở hữu hơn 1,3 triệu CV và 25,000 cơ hội việc làm cho ứng viên Trang web cung cấp nhiều loại công việc, từ lao động phổ thông cho đến vị trí quản lý cấp cao trong doanh nghiệp.
• Có hỗ trợ tạo CV và một số công cụ như công cụ tính lương, có các bài trắc nghiệm tính cách,…
• Việc làm được chia theo các lĩnh vực rất chi tiết, có bộ lọc nâng cao giúp việc tìm kiếm hiệu quả hơn
• Có mục lịch sử công việc, nhà tuyển dụng quan tâm,…
So với các trang web tuyển dụng khác, Việc làm 24h có đặc điểm rao vặt rõ rệt, dẫn đến chất lượng tuyển dụng không cao Điều này là nguyên nhân chính khiến website này sụt hạng trong danh sách các trang web tuyển dụng uy tín.
• Hỗ trợ ít ngôn ngữ
Topcv.vn, thành lập vào năm 2014, là công ty công nghệ nhân sự hàng đầu tại Việt Nam với lượng truy cập website ấn tượng lên đến 3,3 triệu lượt mỗi tháng Công ty đã xây dựng được uy tín vững chắc và trở thành đối tác tin cậy của nhiều tập đoàn công nghệ lớn như Samsung, FPT và Viettel.
• Các ngành nghề được chia ra từng mục riêng từng lĩnh vực
• Lượt truy cập khủng với số lượng đầu việc lớn và vô cùng đa dạng
• Có mẫu thiết kế CV đẹp mắt và hoàn toàn miễn phí
• Có hỗ trợ một số công cụ như công cụ tính lương GROSS-NET, tính lãi suất kép,…
• Giao diện website bắt mắt
• Hỗ trợ ít ngôn ngữ
• Phân chia các công việc chưa đủ chi tiết (bán thời gian, toàn thời gian,…)
vLance hiện có hơn 400.000 thành viên, bao gồm nhiều freelancer đa lĩnh vực với năng lực chuyên môn và kỹ năng tốt Nền tảng này cung cấp giải pháp nhân sự chất lượng và uy tín cho doanh nghiệp trên toàn quốc trong các lĩnh vực như Marketing online, lập trình web và app, thiết kế đồ họa, viết lách, tài chính – kế toán, dịch thuật, phiên dịch, và luật.
Các ngành nghề được phân chia theo từng mục riêng biệt, giúp ứng viên dễ dàng tìm kiếm công việc phù hợp với lĩnh vực của mình Đồng thời, nhà tuyển dụng cũng có thể nhanh chóng tìm kiếm các ứng viên thích hợp cho vị trí cần tuyển.
• Nhà tuyển dụng và ứng viên dễ dàng trao đổi với nhau thông qua hệ thống tin nhắn trực tuyến trên web
Khi đăng ký tại vLance, hệ thống tự động sẽ gửi thông báo về các công việc phù hợp cho từng ứng viên, giúp họ chủ động tìm kiếm cơ hội việc làm Tất cả khách hàng đều được đảm bảo quyền lợi và thanh toán đúng hạn sau khi dự án kết thúc.
• Hồ sơ ứng viên đa dạng về lĩnh vực và trải rộng về trình độ, cho phép nhà tuyển dụng có thêm rất nhiều sự lựa chọn
• Có ngôn ngữ tiếng Việt và tiếng Anh
• Cần xác minh thông tin trước khi làm
• Sau mỗi lần thay đổi lựa ở phần tìm kiếm trang web sẽ mất 1 khoảng thời gian khá lâu để tải lại nội dung trang
• Màu sắc trang thiếu thu hút
ƯU ĐIỂM
4 Đề nghị cho bảo vệ hay không?
Tp Hồ Chí Minh, ngày tháng 07 năm 2023
Giáo viên hướng dẫn (Ký & ghi rõ họ tên) ĐH SƯ PHẠM KỸ THUẬT TP HCM
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh Phúc
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên 1: Lê Thị Ngọc Diễm MSSV 1: 19110335
Họ và tên Sinh viên 2: Lê Vũ Hảo MSSV 2: 19110359
Ngành: Công nghệ thông tin
Tên đề tài: Xây dựng website hỗ trợ tìm kiếm việc làm Puzzle.tk
Họ và tên Giáo viên phản biện: TS.Huỳnh Xuân Phụng
1 Về nội dung đề tài & khối lượng thực hiện:
4 Đề nghị cho bảo vệ hay không?
Tp Hồ Chí Minh, ngày tháng 07 năm 2023
Giáo viên phản biện (Ký & ghi rõ họ tên)
Chúng tôi xin chân thành cảm ơn Khoa Công Nghệ Thông Tin – Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh đã tạo điều kiện cho nhóm được học tập và phát triển kiến thức vững chắc để thực hiện đề tài này.
Chúng em xin chân thành cảm ơn cô Mai Anh Thơ vì đã tận tâm hướng dẫn và cung cấp những góp ý quý báu trong suốt quá trình thực hiện đề tài này Sự hỗ trợ nhiệt tình của cô đã giúp nhóm chúng em hoàn thành công việc từ đầu đến cuối.
Nhờ vào nền tảng kiến thức chuyên ngành vững chắc và kinh nghiệm thực tiễn từ việc học và thực tập, chúng em đã nhận được sự hỗ trợ to lớn từ các thầy cô Khoa Công Nghệ Thông Tin, đặc biệt là cô Mai Anh Thơ Sự đóng góp này không chỉ mang lại cho chúng em khối lượng kiến thức phong phú mà còn khuyến khích chúng em hoàn thành đề tài, tạo nền tảng vững chắc cho hành trang bước vào cuộc sống mới.
Chúng em nhận thức rằng lượng kiến thức là vô tận và với khả năng hiện tại, chúng em đã nỗ lực hết mình để hoàn thành công việc Tuy nhiên, việc xảy ra thiếu sót là điều khó tránh khỏi Chúng em mong nhận được sự góp ý chân thành từ quý thầy (cô) để có thể rút ra bài học kinh nghiệm, từ đó cải thiện và nâng cấp sản phẩm của mình một cách tốt nhất.
Chúng em xin chân thành cảm ơn!
Trường ĐH Sư Phạm Kỹ Thuật TP.HCM
Khoa Công nghệ Thông tin ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP
Họ và Tên SV thực hiện 1 : Lê Thị Ngọc Diễm Mã Số SV : 19110335
Họ và Tên SV thực hiện 2 : Lê Vũ Hảo Mã Số SV : 19110359 Thời gian làm luận văn : Từ : Đến :
Chuyên ngành: Công nghệ phần mềm
Tê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 Giáo viên hướng dẫn: ThS Mai Anh Thơ
Nhiệm vụ của khóa luận:
1 Tìm hiểu về các công nghệ: ReactJS, Gastby framework, Restful API, Json Web Token, Spring boot
2 Sử dụng Spring boot Restful API để xây dựng Backend, viết các API cho các module trong hệ thống
3 Sử dụng ReactJS, Gastby framework để xây dựng và xử lý giao diện Website cho người dùng
4 Sử dụng Postgres để lưu trữ dữ liệu của người dùng trong hệ thống
5 Sử dụng Json Web Token để xác thực và phân quyền cho hệ thống các API, đảm bảo tính bảo mật cho hệ thống
6 Tích hợp thanh toán trực tuyến với Paypal, đăng nhập bằng tài khoản Google Đề cương khóa luận:
1 Tính cấp thiết của đề tài
5 Ý nghĩa khoa học và thực tiễn
CHƯƠNG 1 KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.2 Các công nghệ áp dụng
CHƯƠNG 3 THIẾT KẾ PHẦN MỀM
3.1 Mô hình hoá yêu cầu
CHƯƠNG 4 CÀI ĐẶT VÀ KIỂM THỬ