Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh kinh tế và công nghệ thông tin phát triển, nhu cầu tuyển dụng nhân lực ngành công nghệ thông tin ngày càng gia tăng. Tuy nhiên, theo ghi nhận của nhóm tác giả, thị trường hiện tại vẫn thiếu các website đầu tư nguồn lực đồng bộ cho việc xây dựng hồ sơ ứng viên trực tuyến (online profile/CV) gắn liền với hệ thống quản trị tuyển dụng tích hợp trực tiếp trên nền tảng web, gây khó khăn cho doanh nghiệp trong việc vận hành các quy trình nhân sự. Đề tài "Xây dựng website tuyển dụng và tìm việc làm" được thực hiện nhằm giải quyết mối liên kết cung - cầu lao động giữa ứng viên và doanh nghiệp trong ngành công nghệ thông tin.
Mục tiêu và các nhiệm vụ nghiên cứu được văn bản xác định cụ thể như sau:
- Tìm hiểu lý thuyết về các công nghệ ứng dụng trong đề tài, bao gồm Angular, Java Spring Boot và hệ quản trị cơ sở dữ liệu MySQL.
- Khảo sát thực trạng các hệ thống tuyển dụng hiện hành trên thị trường để đánh giá ưu điểm, nhược điểm và rút ra các yêu cầu thực tiễn.
- Tiến hành phân tích yêu cầu nghiệp vụ, mô hình hóa hệ thống và đặc tả chi tiết các trường hợp sử dụng (use cases).
- Thiết kế kiến trúc phần mềm, cơ sở dữ liệu quan hệ và xây dựng hệ thống giao diện người dùng.
- Cài đặt hệ thống hoàn chỉnh và thực hiện kiểm thử chức năng theo các kịch bản kiểm thử quy định.
Đối tượng nghiên cứu của đồ án là quy trình nghiệp vụ tuyển dụng và phát triển module web phục vụ ba nhóm đối tượng chính: người tìm việc (Jobseeker), nhà tuyển dụng (Employer) và quản trị viên hệ thống (Admin). Về phạm vi nghiên cứu:
- Phạm vi nội dung: Tập trung vào các chức năng cốt lõi của một nền tảng tìm việc làm trong ngành công nghệ thông tin, bao gồm quản lý hồ sơ, đăng tin tuyển dụng, ứng tuyển trực tuyến, phê duyệt tin tuyển dụng và tìm kiếm thông tin theo tiêu chí lọc.
- Phạm vi không gian và thời gian: Đề tài được thực hiện bởi sinh viên Khoa Đào tạo Chất lượng cao thuộc Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, diễn ra trong khoảng thời gian từ ngày 20/02/2023 đến ngày 29/05/2023.
Cơ sở lý thuyết và phương pháp
Đồ án ứng dụng mô hình kiến trúc phân tầng Client - Server cho việc xây dựng hệ thống web tuyển dụng. Cơ sở công nghệ và lý thuyết được tác giả lựa chọn dựa trên các đặc tính kỹ thuật sau:
- Phía giao diện người dùng (Client/Front-end): Framework Angular kết hợp TypeScript, HTML, CSS và JavaScript. Angular được lựa chọn do khả năng tái sử dụng thành phần giao diện (UI components), hỗ trợ kiểm thử đơn vị (Unit Test), tối ưu tốc độ kết xuất dữ liệu qua Virtual DOM, kiểm soát mã nguồn theo cấu trúc module rõ ràng và được bảo trợ phát triển bởi Google.
- Phía máy chủ (Server/Back-end): Framework Java Spring Boot thuộc hệ sinh thái Spring. Công nghệ này cung cấp các tính năng nổi bật như lớp
SpringApplication hỗ trợ khởi chạy trực tiếp qua hàm run(), cơ chế Externalized Configuration và Profiles cho phép quản lý cấu hình linh hoạt theo từng môi trường triển khai, hệ thống Logging tích hợp mặc định, nhúng sẵn máy chủ web (Tomcat, Jetty, Undertow) và loại bỏ hoàn toàn việc cấu hình tệp tin XML phức tạp.
- Hệ quản trị cơ sở dữ liệu: MySQL (hệ thống quản trị cơ sở dữ liệu quan hệ mã nguồn mở - RDBMS). Công nghệ này được chọn nhờ tính ổn định, tốc độ xử lý nhanh, khả năng mở rộng, độ bảo mật và sự tương thích cao với hệ thống Spring Boot thông qua các tầng truy xuất dữ liệu tiêu chuẩn.
Phương pháp nghiên cứu thực tế bao gồm:
- Phương pháp khảo sát, phân tích và so sánh đối sánh: Nhóm tác giả khảo sát trực tiếp bốn nền tảng tuyển dụng trực tuyến gồm TopCV, Vietnamworks, FPT Tuyển dụng và Vn.com nhằm rút ra các ưu điểm về mặt giao diện, tính năng lọc, cũng như nhận diện các hạn chế về mặt bố cục, quảng cáo để định hình bài toán thiết kế.
- Phương pháp phân tích và thiết kế hướng đối tượng: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng lược đồ use case, lược đồ tuần tự (sequence diagrams) và lược đồ lớp (class diagrams).
- Nguồn dữ liệu: Dữ liệu nghiệp vụ khảo sát từ các mẫu tin tuyển dụng thực tế, biểu mẫu quản lý ngành nghề, địa chỉ, tài khoản và hồ sơ ứng viên; tài liệu tham khảo kỹ thuật chính thống về Angular và Java Spring Boot.
Thiết kế và triển khai
Hệ thống được thiết kế theo kiến trúc tách biệt giữa giao diện hiển thị (Front-end) và dịch vụ xử lý nghiệp vụ (Back-end) thông qua các giao diện lập trình ứng dụng RESTful API. Môi trường phát triển bao gồm Visual Studio Code cho phía Front-end và IntelliJ IDEA 2022 cho phía Back-end.
Mô hình hóa hệ thống xác định 4 tác nhân (actors):
- Khách (Guest): Người dùng vãng lai chưa đăng nhập hệ thống.
- Người tìm việc (Jobseeker): Ứng viên đăng nhập để tìm việc, tạo hồ sơ và nộp CV.
- Nhà tuyển dụng (Employer): Doanh nghiệp đăng nhập để đăng tin tuyển dụng, tìm kiếm ứng viên và xử lý hồ sơ ứng tuyển.
- Quản trị viên (Admin): Quản lý toàn bộ danh mục dữ liệu, tài khoản, công ty và phê duyệt nội dung.
Hệ thống cơ sở dữ liệu được tổ chức theo mô hình quan hệ MySQL, đảm bảo tính liên kết giữa các thực thể cốt lõi: ngành nghề, địa chỉ, công ty, tin tuyển dụng, người dùng, hồ sơ ứng viên (CV) và danh sách lưu trữ/theo dõi.
Chiến lược kiểm thử được tiến hành tập trung vào kiểm thử chức năng (Functional Testing) theo Bảng 56 của đồ án, bao quát các trường hợp kiểm thử hợp lệ và ngoại lệ (Alternative Flows) như: kiểm tra lỗi trùng lặp tên tài khoản khi đăng ký, sai lệch mật khẩu khi đăng nhập, tính toàn vẹn dữ liệu khi tạo tin tuyển dụng và trạng thái phê duyệt của các hồ sơ ứng tuyển.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương 1 trình bày tính cấp thiết của đề tài xuất phát từ nhu cầu thực tiễn của thị trường việc làm ngành công nghệ thông tin. Tác giả xác định đối tượng nghiên cứu gồm các module web dành cho ứng viên, nhà tuyển dụng, quản trị viên và các công nghệ thực thi (Angular, Spring Boot, MySQL). Tác giả cũng chỉ ra những khuyết điểm tồn tại ở các trang tìm việc hiện có như lỗi xử lý dữ liệu API, cơ chế bảo mật truyền nhận dữ liệu chưa cao và các tính năng còn bị hạn chế. Đồng thời, chương này xác định phạm vi nghiên cứu và kết quả kỳ vọng đạt được về mặt lý thuyết lẫn sản phẩm phần mềm.
Chương 2: Cơ sở lý thuyết
Chương này tập trung trình bày đặc điểm kỹ thuật và lý do lựa chọn của các công nghệ cấu thành hệ thống. Về Angular, văn bản nêu rõ đặc tính viết bằng TypeScript, kế thừa từ AngularJS nhưng được viết lại hoàn toàn, cung cấp khả năng tái sử dụng thành phần và tăng tốc render trang. Về Java Spring Boot, chương 2 phân tích các thành phần kiến trúc cốt lõi như SpringApplication, cơ chế cấu hình ngoài (Externalized Configuration), quản lý hồ sơ môi trường (Profiles), hệ thống ghi log nội bộ (Logging) và khả năng kết nối dễ dàng đến các hệ quản trị cơ sở dữ liệu thông qua cấu hình nhúng không dùng XML. Về MySQL, tác giả phân tích các yếu tố quản trị CSDL quan hệ theo mô hình client-server, tính bảo mật và hiệu năng truy vấn.
Chương 3: Khảo sát thực trạng và xác định yêu cầu
Nội dung chương 3 ghi nhận kết quả khảo sát 4 website tuyển dụng thực tế:
| Nền tảng khảo sát |
Ưu điểm ghi nhận |
Nhược điểm ghi nhận |
| TopCV |
Tìm kiếm tinh chỉnh; có chatbox hỗ trợ; danh mục kỹ năng rõ ràng; có tính năng thiết kế CV. |
Bố cục dày; quá nhiều chi tiết trên một trang; thiếu liên kết giữa các thành phần liên quan. |
| Vietnamworks |
Thiết kế tinh giản, dễ nhìn; khoảng cách mục và kích thước icon hợp lý; có thông tin kỹ năng nghề nghiệp. |
Chưa tích hợp chatbox hỗ trợ; chưa hỗ trợ công cụ tự thiết kế CV trực tuyến. |
| FPT Tuyển dụng |
Giao diện thân thiện; có chatbox; có phản hồi (feedback); hỗ trợ nút điều hướng Top/Down. |
Không làm nổi bật loại công việc; font chữ mờ; thiếu bộ lọc theo ngày đăng, ngày hết hạn. |
| Vn.com |
Nền tảng lớn; giao diện đơn giản, trực quan; thanh tìm kiếm bố trí hợp lý; bộ lọc hiệu quả. |
Chứa quảng cáo tuyển dụng gây mất tập trung; thiết kế giao diện có phần đơn điệu. |
Từ kết quả khảo sát, tác giả xác định hệ thống yêu cầu chức năng cho từng tác nhân:
- Quản trị viên: Quản lý ngành nghề (QLNN: xem, thêm, xóa, cập nhật), quản lý địa chỉ (QLDC: xem, thêm, xóa, cập nhật), quản lý tài khoản (QLTK: xem, thêm, cập nhật, chặn/mở), quản lý công ty (QLCT: xem, thêm).
- Nhà tuyển dụng: Quản lý tin tức tuyển dụng (QLTT: xem, thêm, xóa, cập nhật theo biểu mẫu QLTT_BM1 gồm tiêu đề, địa chỉ, lương, kỹ năng, cấp độ, mô tả, ngành nghề), tìm kiếm CV ứng viên theo ngành nghề và địa chỉ.
- Ứng viên: Quản lý CV (QLCV: xem, thêm, thay đổi quyền công khai, kiểm tra trạng thái phê duyệt), tìm kiếm tin tức tuyển dụng lọc theo mô tả, ngành nghề, địa chỉ.
- Yêu cầu phi chức năng: Bảo mật dữ liệu nhạy cảm; tính tiện dụng chính xác trong thao tác; dung lượng lưu trữ lớn; tốc độ tìm kiếm và truy xuất nhanh.
- Mô hình hóa hệ thống: Xác định 22 use case (từ UC_01 đến UC_22) đi kèm đặc tả chi tiết luồng sự kiện chính và luồng ngoại lệ cho các ca sử dụng tiêu biểu như Sign In, Sign Up, Search Jobs News, View Company, View Detail Company, View Job Detail, Search CV Candidate, News Manager, Candidate Manager và Resume.
Chương 4: Thiết kế phần mềm
Chương 4 mô tả chi tiết thiết kế hệ thống bao gồm:
- Lược đồ lớp (Class diagram) và các lược đồ tuần tự biểu diễn dòng điều khiển dữ liệu: Đăng ký tài khoản (Hình 8), Tìm kiếm tin việc làm (Hình 9), Tìm kiếm CV (Hình 10), Quản lý tin tức (Hình 11), Hồ sơ ứng viên (Hình 12), Nộp CV (Hình 13), Quản lý người dùng (Hình 14), Duyệt tin việc làm (Hình 15), Quản lý ngành nghề (Hình 16), Quản lý CV (Hình 17) và Quản lý địa điểm (Hình 18).
- Lược đồ cơ sở dữ liệu (Hình 19) thể hiện cấu trúc các bảng và khóa liên kết.
- Thiết kế giao diện: Lập danh sách 20 giao diện thành phần (Bảng 35) từ UI_01 đến UI_20, đặc tả màn hình trang chủ người tìm việc (UI_01), trang đăng ký/đăng nhập (UI_02, UI_03), đặt lại mật khẩu (UI_04), danh sách và chi tiết công việc/công ty (UI_05 đến UI_08), quản lý CV và hồ sơ trực tuyến (UI_09, UI_10), trang theo dõi công việc yêu thích (UI_11), cùng các màn hình quản trị dành cho nhà tuyển dụng (đăng ký UI_12, tìm ứng viên UI_13, quản lý tin đăng UI_14, tạo tin UI_15, danh sách đã lưu UI_16, thông tin công ty UI_17) và quản trị viên (đăng nhập UI_18, thống kê UI_19, quản lý danh sách đã lưu UI_20).
Chương 5: Cài đặt và kiểm thử
Chương 5 trình bày các bước thiết lập và vận hành hệ thống phần mềm trên môi trường máy chủ và máy trạm. Nội dung kiểm thử được tổ chức theo quy trình xác định phạm vi chức năng và bảng chi tiết kịch bản kiểm thử (Bảng 56), bao gồm việc đánh giá sự tương thích của giao diện, tính đúng đắn của dữ liệu đầu vào, quá trình gửi yêu cầu từ Angular đến API Spring Boot và tính chính xác khi lưu trữ/truy vấn trong cơ sở dữ liệu MySQL.
Chương 6: Kết luận và hướng phát triển
Chương tổng kết các nội dung đã hoàn thành về mặt lý thuyết (nắm vững quy trình nghiệp vụ, làm chủ framework Angular, Spring Boot, MySQL) và thực tiễn (xây dựng được hệ thống web tuyển dụng hoàn chỉnh). Đồng thời, nhóm tác giả chỉ ra các hạn chế còn tồn đọng và đề ra phương hướng hoàn thiện ứng dụng trong tương lai.
Kết quả và đóng góp
Về sản phẩm kỹ thuật, đồ án đã triển khai hoàn chỉnh một ứng dụng website tuyển dụng và tìm việc làm với các kết quả cụ thể:
- Hiện thực hóa đầy đủ 22 ca sử dụng (use case) được định nghĩa trong tài liệu:
- Nhóm xác thực và cá nhân: Đăng ký (UC_02), Đăng nhập (UC_01), Quên mật khẩu (UC_22), Quản lý hồ sơ cá nhân (UC_12), Quản lý thông tin công ty (UC_15).
- Nhóm ứng viên: Tìm kiếm tin tuyển dụng (UC_03), Xem công ty (UC_04), Xem chi tiết công ty (UC_05), Xem chi tiết việc làm (UC_06), Quản lý hồ sơ/CV (UC_10), Nộp CV ứng tuyển (UC_13), Quản lý danh sách công việc yêu thích (UC_11).
- Nhóm nhà tuyển dụng: Tìm kiếm CV ứng viên (UC_07), Lưu CV ứng viên (UC_20), Quản lý tin tức tuyển dụng (UC_08), Quản lý danh sách ứng viên nộp hồ sơ (UC_09), Quản lý công ty (UC_14).
- Nhóm quản trị hệ thống: Quản lý người dùng (UC_16), Phê duyệt tin tức việc làm (UC_17), Quản lý ngành nghề (UC_18), Quản lý địa điểm (UC_19), Xem dữ liệu thống kê (UC_21).
- Xây dựng 20 phân hệ giao diện người dùng tương ứng từ UI_01 đến UI_20, đảm bảo tính phân quyền chặt chẽ giữa các vai trò Guest, Jobseeker, Employer và Admin.
- Xây dựng thành công biểu mẫu nhập liệu và xử lý tin tuyển dụng chuẩn hóa (QLTT_BM1) gồm 8 trường dữ liệu: tiêu đề, tên địa chỉ, mức lương, kỹ năng yêu cầu, cấp độ công việc, nội dung mô tả, ngành nghề và địa chỉ cụ thể.
Đóng góp tự nêu của đề tài:
- Hệ thống hóa quy trình nghiệp vụ tuyển dụng và ứng tuyển dành riêng cho thị trường lao động ngành công nghệ thông tin.
- Giải quyết bài toán tạo lập và quản lý hồ sơ ứng viên online tập trung, giúp rút ngắn khoảng cách tương tác và giảm thiểu độ trễ trao đổi thông tin giữa doanh nghiệp tuyển dụng và ứng viên.
- Khắc phục các nhược điểm thường thấy ở các hệ thống khảo sát như giảm thiểu nội dung quảng cáo gây nhiễu, chuẩn hóa bộ lọc tìm kiếm theo ngành nghề - địa điểm, và tích hợp các chức năng quản trị trực tiếp trên nền tảng web.
Hạn chế và hướng nghiên cứu tiếp
Theo văn bản công bố của nhóm tác giả, đồ án còn một số hạn chế do điều kiện thực hiện:
- Đề tài được hoàn thiện trong quỹ thời gian ngắn (hơn 3 tháng thực hiện từ 20/02/2023 đến 29/05/2023).
- Nhóm sinh viên còn hạn chế nhất định về kiến thức chuyên môn sâu, kỹ thuật xử lý tối ưu và kinh nghiệm thực tế trong việc vận hành các dự án phần mềm quy mô lớn.
- Một số tác vụ xử lý API dữ liệu và quy trình kiểm thử vẫn có những điểm chưa thật sự hoàn thiện hoặc còn gặp lỗi nhỏ trong quá trình vận hành liên thông.
Hướng nghiên cứu và phát triển tiếp theo được nhóm đề xuất bao gồm:
- Tối ưu hóa hiệu năng hệ thống và nâng cao tính bảo mật cho toàn bộ các điểm cuối API gửi nhận dữ liệu trên môi trường Internet.
- Mở rộng thêm các nghiệp vụ hỗ trợ tuyển dụng chuyên sâu, hoàn thiện cơ chế phản hồi tương tác giữa doanh nghiệp và ứng viên.
- Tiếp tục nâng cấp giao diện, tích hợp thêm các tiêu chí lọc nâng cao và tinh chỉnh trải nghiệm người dùng theo các ý kiến góp ý của hội đồng đánh giá.
Giá trị tham khảo
Đồ án là tài liệu tham khảo có giá trị chuyên môn đối với sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm hoặc các chuyên ngành liên quan đang chuẩn bị thực hiện đồ án tốt nghiệp hoặc bài tập lớn về xây dựng hệ thống web full-stack.
Các nội dung có giá trị tham khảo cụ thể:
- Phương pháp khảo sát đối sánh: Phương pháp tiếp cận, bảng đánh giá ưu - nhược điểm của các website lớn trên thị trường (TopCV, Vietnamworks, FPT, Vn.com) tại Chương 3 là mẫu khảo sát hiện trạng hữu ích cho việc xây dựng đặc tả yêu cầu phần mềm.
- Hồ sơ thiết kế chức năng và use case: Toàn bộ hệ thống 22 bảng mô tả use case đi kèm luồng chính (Main flow) và luồng ngoại lệ (Alternative flow), cùng hệ thống 11 biểu đồ tuần tự (Sequence diagrams) từ Hình 8 đến Hình 18 là tài liệu mẫu rõ ràng cho học phần Phân tích Thiết kế Hệ thống.
- Mô hình kiến trúc Angular - Spring Boot: Cách thức tổ chức một dự án thực tế kết hợp Angular ở phía client và Java Spring Boot ở phía server, cách quản lý cấu hình không qua XML và cơ chế tích hợp cơ sở dữ liệu quan hệ MySQL.
Câu hỏi thường gặp
1. Hệ thống website được xây dựng nhằm phục vụ những nhóm người dùng (actor) nào?
Theo tài liệu đồ án, hệ thống định danh 4 nhóm tác nhân: Khách vãng lai (Guest - chưa đăng nhập), Người tìm việc (Jobseeker - người có nhu cầu tìm kiếm việc làm CNTT), Nhà tuyển dụng (Employer - đại diện doanh nghiệp có nhu cầu đăng tin và tìm ứng viên) và Quản trị viên (Admin - người quản trị hệ thống dữ liệu, tài khoản và phê duyệt nội dung).
2. Nhóm tác giả đã tiến hành khảo sát những website thực tế nào trước khi xây dựng hệ thống?
Tại Chương 3, nhóm nghiên cứu đã tiến hành khảo sát và phân tích ưu - nhược điểm của 4 nền tảng: trang web TopCV, trang web Vietnamworks, trang web tuyển dụng FPT và trang web Vn.com.
3. Kiến trúc công nghệ và môi trường phát triển chính của đồ án gồm những gì?
Hệ thống sử dụng Angular (nền tảng TypeScript, HTML, CSS, JavaScript) ở phía Front-end; Java Spring Boot ở phía Back-end; và MySQL làm hệ quản trị cơ sở dữ liệu quan hệ. Môi trường lập trình được sử dụng là Visual Studio Code (dành cho Front-end) và IntelliJ IDEA 2022 (dành cho Back-end).
4. Biểu mẫu đăng tin tuyển dụng mới của nhà tuyển dụng (QLTT_BM1) bao gồm những trường thông tin bắt buộc nào?
Căn cứ theo Bảng 6 của đồ án, biểu mẫu thêm tin tuyển dụng mới bao gồm 8 trường dữ liệu: Tiêu đề tin, Tên địa chỉ, Mức lương, Kỹ năng, Cấp độ, Mô tả công việc, Ngành nghề và Địa chỉ.
5. Đồ án được thực hiện trong khoảng thời gian nào và do ai hướng dẫn, phản biện?
Đề tài được thực hiện từ ngày 20/02/2023 đến ngày 29/05/2023 bởi hai sinh viên Điều Thị Diễm Kiều và Dương Quang Đức thuộc Khoa Đào tạo Chất lượng cao - Trường Đại học Sư phạm Kỹ thuật TP.HCM, dưới sự hướng dẫn của ThS. Nguyễn Trần Thi Văn và được phản biện bởi PGS. Hoàng Văn Dũng.
Kết luận
Đồ án tốt nghiệp "Xây dựng website tuyển dụng và tìm việc làm" của nhóm sinh viên Điều Thị Diễm Kiều và Dương Quang Đức đã hoàn thành trọn vẹn mục tiêu nghiên cứu và phát triển phần mềm cho lĩnh vực tuyển dụng nhân lực công nghệ thông tin. Dựa trên việc phân tích kỹ lưỡng các nền tảng thực tế, đề tài đã thiết kế và hiện thực hóa thành công một hệ thống Client - Server hoàn chỉnh kết hợp giữa Angular, Java Spring Boot và MySQL với 22 ca sử dụng cụ thể. Mặc dù còn những giới hạn về mặt thời gian thực hiện dẫn đến phạm vi kiểm thử cần được mở rộng thêm, công trình đã giải quyết tốt bài toán liên kết cung - cầu lao động và cung cấp một bộ tài liệu đặc tả phần mềm có giá trị tham khảo học thuật cao cho sinh viên ngành công nghệ thông tin.