Bối cảnh và vấn đề nghiên cứu
Đề tài "Xây dựng ứng dụng tìm kiếm việc làm" được thực hiện bởi sinh viên Huỳnh Bảo Toàn và Trần Tấn Khoa dưới sự hướng dẫn của PGS. Hoàng Văn Dũng tại Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (bảo vệ tháng 7/2024).
Lý do chọn đề tài xuất phát từ bối cảnh kinh tế quốc tế phát triển kéo theo nhu cầu tuyển dụng và tìm kiếm việc làm gia tăng, đồng thời thị trường lao động chịu ảnh hưởng nặng nề từ suy thoái kinh tế sau đại dịch Covid-19 dẫn đến mức độ cạnh tranh ngày càng gay gắt. Các phương thức tìm việc truyền thống thông qua báo chí in ấn hay tờ rơi không còn đáp ứng được yêu cầu về tốc độ và phạm vi tiếp cận. Số liệu khảo cứu trong văn bản chỉ ra rằng vào năm 2023, số lượng người dùng các dịch vụ trực tuyến và ứng dụng di động để tìm việc đã tăng gấp đôi so với năm 2020, đạt tỷ lệ trên 70% dân số. Tuy nhiên, các nền tảng tuyển dụng hiện nay vẫn bộc lộ nhiều hạn chế về khả năng kết nối trực tiếp, độ minh bạch của thông tin tuyển dụng, chi phí sử dụng dịch vụ và trải nghiệm giao diện người dùng.
Mục tiêu nghiên cứu của đồ án được xác định trên hai phương diện:
- Về mặt học thuật: Bổ sung kiến thức về mức độ ảnh hưởng của thông tin do nhà tuyển dụng cung cấp đến chất lượng việc làm; làm rõ hiệu quả của các xu hướng việc làm mới; phân tích các yếu tố chi tiết trong bài đăng tuyển dụng; nghiên cứu độ tương thích giữa tin tuyển dụng và hồ sơ ứng viên nhằm tối ưu hóa khả năng thu hút nhân sự.
- Về mặt thực tiễn: Xây dựng một hệ thống đa nền tảng (Website và Mobile Application) tạo không gian kết nối, trao đổi trực tiếp giữa ứng viên và nhà tuyển dụng. Nền tảng cho phép nhà tuyển dụng đăng tải đầy đủ quyền lợi, yêu cầu công việc để tìm kiếm ứng viên phù hợp; đồng thời hỗ trợ người tìm việc chọn lọc vị trí tương thích với năng lực cá nhân.
Theo đề cương luận văn tốt nghiệp, 5 nhiệm vụ nghiên cứu cụ thể được đánh số bao gồm:
- Lên kế hoạch nghiên cứu các yêu cầu chức năng cho ứng dụng tìm kiếm việc làm.
- Thiết kế và xây dựng giao diện người dùng cho ứng dụng.
- Triển khai các chức năng chính cho trang web và mobile app.
- Tích hợp API thực hiện khảo sát chất lượng sử dụng dữ liệu của các chức năng.
- Kiểm thử và tối ưu hóa hiệu suất sử dụng ứng dụng.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Hệ thống quản trị cơ sở dữ liệu quan hệ MySQL; phương pháp lập trình ứng dụng web và di động; giao thức truyền thông Socket.io; cổng thanh toán trực tuyến MoMo, VNPay; phương thức tự động hóa Google AppScript; các ngôn ngữ và khung phát triển NestJS, NodeJS, NextJS, React Native, Python; độ ổn định và tính toàn vẹn dữ liệu của hệ thống.
- Phạm vi nghiên cứu: Đồ án tập trung xây dựng hệ thống website và ứng dụng di động hoàn chỉnh với các chức năng đăng bài, ứng tuyển, tìm kiếm việc làm; tích hợp tính năng nhắn tin thời gian thực qua socket; thiết kế bản đồ hiển thị tọa độ công ty và người dùng; tích hợp mô hình ngôn ngữ lớn (GPT) hỗ trợ chatbot và gợi ý việc làm/ứng viên; triển khai thanh toán dịch vụ trực tuyến. Thời gian thực hiện đồ án diễn ra từ ngày 20/02/2024 đến ngày 10/07/2024.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và công nghệ nền tảng được nhóm tác giả tổng hợp trong báo cáo bao gồm các mô hình lập trình và công nghệ phần mềm:
- Mô hình lập trình: Lập trình hướng đối tượng (OOP) quản lý thuộc tính và phương thức; Lập trình hàm (FP - Functional Programming) thao tác dựa trên các hàm toán học độc lập, hạn chế thay đổi trạng thái dữ liệu; Lập trình phản ứng hàm (FRP - Functional Reactive Programming) hỗ trợ xây dựng các hệ thống phản ứng thời gian thực và xử lý luồng sự kiện giao diện.
- Nền tảng Backend và Framework:
- NodeJS: Môi trường thực thi JavaScript xây dựng trên engine V8 của Chrome, vận hành theo kiến trúc hướng sự kiện (event-driven) và mô hình non-blocking I/O.
- NestJS: Framework phía máy chủ kết hợp OOP, FP và FRP giúp mã nguồn mở rộng linh hoạt.
- Django: Framework phía máy chủ theo mô hình kiến trúc MVT (Model - View - Template) quản lý cơ sở dữ liệu và xử lý yêu cầu phản hồi.
- Nền tảng Frontend và Di động:
- NextJS: Khung phát triển web mã nguồn mở hỗ trợ cơ chế kết xuất phía máy chủ (Server-Side Rendering - SSR), tối ưu hóa công cụ tìm kiếm (SEO), tối ưu hình ảnh tự động (Image Optimization), định tuyến theo tệp tin (File-system Routing) và định tuyến API nội bộ (API Routes).
- React Native: Framework phát triển ứng dụng di động đa nền tảng (iOS và Android) sử dụng JavaScript. Kiến trúc vận hành dựa trên 3 luồng riêng biệt: UI Thread (quản lý giao diện và tương tác người dùng), Shadow Thread (sử dụng thư viện React để tính toán bố cục) và JavaScript Thread (thực thi mã nguồn JavaScript), kết nối với nhau thông qua cầu nối tương tác (Bridge).
- Cơ sở dữ liệu và lưu trữ:
- MySQL: Hệ quản trị cơ sở dữ liệu quan hệ hoạt động theo mô hình Client - Server do Oracle Corporation phát triển.
- Redis: Hệ thống lưu trữ dữ liệu dạng khóa - giá trị (Key - Value) trên bộ nhớ trong (in-memory NoSQL), hỗ trợ các kiểu dữ liệu: String, List, Set, Hash, Sorted Set.
- TypeORM: Thư viện Object-Relational Mapping (ORM) tự động tạo lược đồ cơ sở dữ liệu, quản lý các mối quan hệ (1-1, 1-n, n-n) và cung cấp giao diện dòng lệnh CLI.
- Cloudinary: Dịch vụ đám mây quản lý, chuyển đổi và lưu trữ tệp tin hình ảnh thông qua API wrappers.
- Giao thức truyền thông và xác thực:
- Socket.io: Giao thức truyền thông hai chiều mở giữa máy khách và máy chủ theo thời gian thực.
- RESTful API: Chuẩn thiết kế giao diện lập trình ứng dụng truyền tải trạng thái tài nguyên thông qua các phương thức HTTP tiêu chuẩn (GET, POST, PUT, DELETE).
- JWT (JSON Web Token): Chuỗi ký tự chuẩn JSON gồm ba phần ngăn cách bởi dấu chấm: Header (thuật toán mã hóa HS256, định dạng tệp), Payload (dữ liệu định danh, quyền hạn) và Signature (chữ ký mã hóa kèm khóa bí mật bằng thuật toán base64UrlEncoder).
- OAuth2: Giao thức phân quyền chứng thực tài nguyên độc lập với mật khẩu người dùng.
- Công cụ tài liệu hóa và kiểm thử:
- Swagger: Bộ công cụ xây dựng đặc tả OpenAPI specifications bao gồm Swagger Editor, Swagger UI và Swagger Codegen; hỗ trợ tiếp cận theo hai phương pháp Top-down (thiết kế trước khi lập trình) và Bottom-up (tạo cấu hình mô tả từ API có sẵn).
- Jest: Thư viện kiểm thử mã nguồn được xây dựng theo phong cách Behavior-Driven Development (BDD), cung cấp tính năng assertion library và snapshot testing.
- Figma: Nền tảng thiết kế giao diện đồ họa hỗ trợ cộng tác nhóm thời gian thực và quản lý đa bố cục hiển thị.
Phương pháp nghiên cứu thực tế bao gồm:
- Phương pháp phân tích yêu cầu: Khảo sát nhu cầu thực tế của ứng viên và nhà tuyển dụng để xác định các ca sử dụng cốt lõi.
- Phương pháp phân tích đối chuẩn (Benchmarking): Phân tích chức năng, ưu điểm và nhược điểm của hai hệ thống tuyển dụng trực tuyến đang hoạt động tại Việt Nam là TopCV và VietnamWorks.
- Phương pháp phát triển phần mềm Agile: Chia nhỏ quy trình phát triển thành các giai đoạn thiết kế, lập trình giao diện, xây dựng chức năng và kiểm thử.
- Phương pháp tích hợp trí tuệ nhân tạo: Sử dụng mô hình gợi ý (Recommendation Models) và tích hợp API GPT để xử lý ngôn ngữ tự nhiên từ dữ liệu hồ sơ cá nhân và bài đăng tuyển dụng.
Nguồn dữ liệu của đề tài bao gồm dữ liệu khảo cứu thực trạng nền tảng việc làm, dữ liệu hồ sơ CV của ứng viên, thông tin bài tuyển dụng của doanh nghiệp, danh mục ngành nghề, dữ liệu địa lý hành chính (phường/xã) và cơ sở dữ liệu nội bộ được lưu trữ tại hệ thống MySQL.
Thiết kế và triển khai
Hệ thống được thiết kế theo mô hình kiến trúc phân tầng kết nối Client - Server, đảm bảo tính phân tách giữa giao diện hiển thị và logic xử lý nghiệp vụ:
1. Kiến trúc hệ thống và giao tiếp
Phía máy khách gồm ứng dụng Web xây dựng trên nền tảng NextJS và ứng dụng di động xây dựng trên React Native. Phía máy chủ vận hành bằng NestJS/NodeJS và Django. Hệ thống trao đổi dữ liệu thông qua hai kênh chính: giao thức HTTP chuẩn RESTful API cho các tác vụ quản lý dữ liệu tĩnh và giao thức WebSocket thông qua Socket.io phục vụ các luồng truyền thông thời gian thực như tin nhắn trực tiếp giữa ứng viên và nhà tuyển dụng.
2. Thiết kế cơ sở dữ liệu quan hệ
Hệ thống sử dụng TypeORM để ánh xạ và quản lý cơ sở dữ liệu MySQL, bao gồm 11 bảng thực thể chính:
| Tên bảng CSDL |
Mục đích lưu trữ và vai trò trong hệ thống |
accounts |
Quản lý thông tin tài khoản người dùng, định danh đăng nhập và phân quyền hệ thống. |
posts |
Lưu trữ thông tin chi tiết về các bài đăng tuyển dụng của doanh nghiệp. |
applications |
Quản lý lịch sử nộp hồ sơ, tình trạng tiếp nhận và phê duyệt của từng đợt ứng tuyển. |
companies |
Chứa dữ liệu định danh, giấy tờ xác thực và hồ sơ mô tả của nhà tuyển dụng/công ty. |
profiles_cvs |
Lưu trữ thông tin hồ sơ cá nhân, nội dung CV và các định dạng mẫu giao diện CV. |
chats |
Lưu trữ lịch sử tin nhắn trao đổi hai chiều giữa ứng viên và nhà tuyển dụng. |
notifications |
Quản lý dữ liệu thông báo trạng thái ứng tuyển, tin tuyển dụng mới và cảnh báo tài khoản. |
parent_categories |
Lưu trữ cây danh mục phân loại ngành nghề, vị trí công việc cấp cha. |
wards |
Quản lý thông tin địa giới hành chính, phường/xã phục vụ định vị và tìm kiếm việc làm. |
communications |
Quản lý các kênh trao đổi thông tin phụ, tương tác xã hội hoặc phản hồi trong hệ thống. |
services |
Lưu trữ các gói dịch vụ nâng cao (dịch vụ ghim bài đăng tuyển dụng, gói quảng cáo). |
3. Phân quyền và các nhóm tác nhân (Actors)
Hệ thống phân định 4 nhóm tác nhân tham gia tương tác:
AT01 (Khách): Người dùng chưa thực hiện đăng nhập, chỉ có quyền xem danh sách việc làm, tìm kiếm cơ bản và xem thông tin công ty.
AT02 (Người tìm việc / Ứng viên): Người dùng đã đăng nhập; có quyền tạo và chỉnh sửa trực tiếp CV, ứng tuyển vào bài đăng, tìm kiếm việc làm theo bản đồ tọa độ, nhắn tin với nhà tuyển dụng, đăng bài Blog và tương tác với Chatbot AI.
AT03 (Nhà tuyển dụng): Đơn vị tuyển dụng đã đăng nhập; có quyền khởi tạo hồ sơ doanh nghiệp, đăng tin tuyển dụng, xem gợi ý ứng viên tương thích, duyệt/từ chối hồ sơ ứng tuyển, mua gói dịch vụ làm nổi bật bài đăng qua MoMo/VNPay.
AT04 (Quản trị viên / Admin): Quản lý người dùng (khóa/mở khóa tài khoản), xét duyệt hồ sơ xác thực công ty, quản lý bài đăng, quản lý danh mục và cấu hình dịch vụ.
4. Triển khai kiểm thử hệ thống
Nhóm tác giả đã triển khai kiểm thử giao diện và chức năng thông qua 5 bảng kịch bản kiểm thử cụ thể:
- Bảng 1: Kiểm thử chức năng đăng nhập tài khoản.
- Bảng 2: Kiểm thử chức năng tạo bài Blog trao đổi thông tin.
- Bảng 3: Kiểm thử chức năng tìm việc làm theo bản đồ số (Map).
- Bảng 4: Kiểm thử chức năng gửi hồ sơ ứng tuyển việc làm.
- Bảng 5: Kiểm thử chức năng tạo bài đăng tuyển dụng của doanh nghiệp.
Nội dung chính theo từng chương
Phần Mở đầu: Tính cấp thiết và tổng quan đề tài
Phần mở đầu xác định mục tiêu học thuật, mục tiêu thực tiễn, đối tượng và phạm vi nghiên cứu của đề tài. Tác giả tiến hành phân tích thực trạng thị trường ứng dụng tuyển dụng thông qua việc nghiên cứu hai nền tảng đối chuẩn tại Việt Nam:
| Nền tảng khảo cứu |
Chức năng nổi bật |
Ưu điểm ghi nhận |
Nhược điểm ghi nhận |
| TopCV |
Thanh tìm kiếm theo ngành/mức lương/vị trí; hệ thống mẫu CV đa dạng. |
Giao diện thân thiện; hỗ trợ tư vấn 24/24; đề xuất việc làm theo hồ sơ ứng viên. |
Tính năng miễn phí cho nhà tuyển dụng hạn chế; chưa có cơ chế phát hiện từ ngữ công kích khi tạo CV; giao diện di động chưa tối ưu. |
| VietnamWorks |
Tạo hồ sơ nghề nghiệp chuyên nghiệp; phân mục ngành nghề (IT, văn phòng); xem việc làm gợi ý. |
Phân chia cổng riêng biệt giữa người dùng và doanh nghiệp; bố cục hiển thị bài đăng gọn gàng, trực quan. |
Bắt buộc trả phí để xem bài đăng; tính năng tạo CV phức tạp do phải chỉnh sửa gián tiếp qua mục hồ sơ, không cho phép sửa trực tiếp trên giao diện CV. |
Chương 1: Cơ sở lý thuyết
Chương 1 trình bày chi tiết cơ sở lý thuyết về các công nghệ và công cụ được ứng dụng:
- Các framework ứng dụng: Phân tích kiến trúc của NestJS (kết hợp OOP, FP, FRP); cơ chế hướng sự kiện và non-blocking I/O của NodeJS; mô hình xử lý MVT của Django gồm Model (lớp dữ liệu ánh xạ bảng), View (hàm tiếp nhận yêu cầu và xử lý logic) và Template (quản lý hiển thị HTML tĩnh); công nghệ NextJS với cơ chế Server-Side Rendering (SSR) phục vụ tối ưu hóa SEO và quản lý tệp định tuyến; kiến trúc 3 luồng (UI Thread, Shadow Thread, JavaScript Thread) kết nối qua Bridge của React Native.
- Công cụ và giao thức: Trình bày cơ chế socket hai chiều của Socket.io; 3 công cụ chính của Swagger (Editor, UI, Codegen); chuẩn giao tiếp RESTful API; cấu trúc 3 phần của JWT phục vụ bảo mật; giao thức ủy quyền OAuth2; cơ chế lưu trữ của MySQL và Redis; vai trò trung gian dữ liệu của TypeORM; lưu trữ ảnh trên Cloudinary; thiết kế giao diện cộng tác trên Figma và kiểm thử BDD với Jest.
Chương 2: Phân tích và thiết kế hệ thống
Chương 2 chiếm dung lượng lớn nhất trong khóa luận, bao gồm toàn bộ quá trình thiết kế chi tiết:
- Thiết kế Use Case: Xây dựng sơ đồ Use Case tổng quát cho Admin, Người thuê, Khách, Ứng viên và Nhà tuyển dụng. Báo cáo chi tiết hóa các ca sử dụng qua sơ đồ và bảng đặc tả luồng sự kiện:
- Bảng 2.2 (UC4.1): Admin khóa/mở khóa người dùng (Admin chọn người dùng, nhập lý do khóa hoặc mở khóa; hệ thống cập nhật trạng thái).
- Bảng 2.3 (UC8.1): Admin xác thực công ty (Admin kiểm tra hồ sơ pháp lý của công ty, chọn xác thực hoặc hủy xác thực; hệ thống gửi thông báo).
- Bảng 2.4 (UC16.2): Tìm kiếm việc làm theo danh mục, vị trí, mức lương dành cho khách và ứng viên.
- Bảng 2.5 (UC15.1): Quy trình ứng tuyển (Ứng viên chọn bài đăng, lựa chọn CV sẵn có hoặc tải CV mới, hệ thống kiểm tra định dạng và xác nhận ứng tuyển).
- Bảng 2.6 (UC21.1): Đăng bài viết chia sẻ trên Blog hệ thống.
- Bảng 2.7 (UC23.1): Cập nhật thông tin tài khoản cá nhân.
- Bảng 2.8 (UC25.1): Tạo CV trực tiếp (Người dùng lựa chọn mẫu theme, điền thông tin trực tiếp vào giao diện và xuất CV hoàn chỉnh).
- Bảng 2.9 (UC25.5): Xem danh sách việc làm được hệ thống gợi ý dựa trên dữ liệu trích xuất từ CV.
- Thiết kế lược đồ hoạt động (Activity Diagram) và tuần tự (Sequence Diagram): Mô tả chi tiết 16 luồng hoạt động chính (khóa người dùng, xác thực doanh nghiệp, đăng tin, tạo CV, nhắn tin thời gian thực, tương tác chatbot, xem gợi ý việc làm) và 11 lược đồ tuần tự tương ứng với các phân hệ dữ liệu.
- Thiết kế Class Diagram và cơ sở dữ liệu: Xây dựng cấu trúc quan hệ giữa các bảng thực thể (
accounts, posts, companies, profiles_cvs, chats, services,...).
- Thiết kế giao diện và kiểm thử: Xây dựng 27 màn hình giao diện (trang chủ, đăng nhập, menu ứng viên/nhà tuyển dụng, bản đồ tìm việc, tạo CV, quản lý bài đăng, thanh toán dịch vụ) trên cả nền tảng Website và Mobile. Thực hiện kiểm thử 5 ca chức năng chính theo đúng kịch bản đề ra.
Chương 3: Kết luận và hướng phát triển
Chương 3 tổng kết các kết quả thực nghiệm đạt được so với mục tiêu đề ra ban đầu, đồng thời chỉ rõ các điểm tồn tại cần khắc phục và định hướng phát triển trong tương lai.
Kết quả và đóng góp
Kết quả thực nghiệm của đồ án được ghi nhận thông qua các sản phẩm phần mềm và tính năng hoàn chỉnh:
- Xây dựng hoàn chỉnh ứng dụng trên hai nền tảng: Website (sử dụng NextJS) và Mobile Application (sử dụng React Native), phục vụ đầy đủ các chức năng quản lý, tìm việc và tuyển dụng.
- Tích hợp mô hình GPT hỗ trợ phân tích thông tin văn bản từ CV của người tìm việc và nội dung tin tuyển dụng của doanh nghiệp, tự động đưa ra các đề xuất việc làm tương thích cho ứng viên cũng như đề xuất danh sách ứng viên phù hợp cho bài đăng tuyển dụng.
- Xây dựng công cụ tạo và chỉnh sửa CV trực tiếp ngay trên giao diện theo các mẫu theme sẵn có, giải quyết tình trạng phải chỉnh sửa hồ sơ gián tiếp qua mục profile cá nhân.
- Xây dựng tính năng tìm kiếm việc làm định vị trên bản đồ số (Map) dựa trên tọa độ vị trí thực tế của người dùng và doanh nghiệp tuyển dụng.
- Thiết lập tính năng nhắn tin tương tác thời gian thực giữa ứng viên và nhà tuyển dụng thông qua giao thức Socket.io.
- Tích hợp cổng thanh toán trực tuyến MoMo và VNPay phục vụ giao dịch các gói dịch vụ làm nổi bật tin đăng tuyển của doanh nghiệp.
- Ứng dụng Google AppScript liên kết cơ sở dữ liệu với Google Sheet nhằm hỗ trợ xử lý dữ liệu và hỗ trợ người dùng thuận tiện.
Đóng góp của đồ án so với các hệ thống được khảo cứu:
Khóa luận đã giải quyết trực tiếp các nhược điểm mà nhóm tác giả chỉ ra từ TopCV và VietnamWorks. Ứng dụng cung cấp công cụ chỉnh sửa CV trực quan mà không tính phí hiển thị bài viết cơ bản đối với nhà tuyển dụng; giải quyết hạn chế về việc thiếu tương tác trực tiếp bằng kênh chat hai chiều thời gian thực; đồng thời bổ sung chiều không gian tìm việc dựa trên tọa độ thực tế trên bản đồ và ứng dụng công nghệ AI (GPT) để nâng cao độ chính xác khi đối sánh hồ sơ ứng viên với yêu cầu công việc.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của đề tài:
- Hệ thống chưa tích hợp được bộ lọc xử lý ngôn ngữ tự nhiên độc lập để tự động phát hiện và loại bỏ các từ ngữ mang tính công kích, tiêu cực trong quá trình người dùng tự tạo nội dung CV (đây là nhược điểm từng được nhóm chỉ ra ở nền tảng đối chuẩn nhưng chưa xử lý triệt để trong phiên bản hiện tại).
- Việc phân tích dữ liệu CV và bài đăng tuyển dụng phụ thuộc vào kết nối API bên thứ ba của mô hình GPT, có thể ảnh hưởng đến độ trễ hệ thống khi lưu lượng truy vấn tăng cao.
- Phạm vi kiểm thử thực nghiệm mới chỉ dừng lại ở các kịch bản chức năng cơ bản theo kế hoạch thực hiện, chưa triển khai đánh giá tải thực tế trong môi trường sản xuất với số lượng người dùng truy cập đồng thời lớn.
Hướng phát triển tiếp theo:
- Hoàn thiện và nâng cấp các mô hình gợi ý (Recommendation Models) độc lập kết hợp giữa Content-Based Filtering và Collaborative Filtering nhằm giảm sự phụ thuộc hoàn toàn vào dịch vụ ngoài.
- Phát triển module tự động kiểm duyệt nội dung văn bản nhằm nhận diện từ ngữ phản cảm trên hồ sơ cá nhân và bài đăng tuyển dụng.
- Tối ưu hóa hiệu năng truyền thông của Socket.io và cơ chế lưu trữ đệm (caching) của Redis khi xử lý khối lượng lớn tin nhắn và thông báo thời gian thực.
- Mở rộng thêm các phương thức thanh toán số và tối ưu hóa trải nghiệm người dùng trên các kích thước màn hình thiết bị di động khác nhau.
Giá trị tham khảo
Đồ án tốt nghiệp là tài liệu tham khảo phù hợp cho sinh viên chuyên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Hệ thống Thông tin đang thực hiện đồ án tốt nghiệp hoặc xây dựng các hệ thống tuyển dụng việc làm.
Những phần có giá trị tham khảo cao trong văn bản bao gồm:
- Quy trình phân tích và thiết kế phần mềm hoàn chỉnh: Hệ thống sơ đồ Use Case, Activity Diagram, Sequence Diagram chi tiết cùng các bảng đặc tả ca sử dụng chuẩn hóa theo mô hình Agile.
- Thiết kế cơ sở dữ liệu quan hệ: Lược đồ 11 bảng thực thể mô tả tường minh các mối quan hệ nghiệp vụ phức tạp giữa tài khoản, tin tuyển dụng, hồ sơ ứng viên, hợp đồng dịch vụ và nhật ký trao đổi.
- Mô hình tích hợp công nghệ hiện đại: Tài liệu hóa cách thức kết hợp giữa kiến trúc Client - Server đa nền tảng (NextJS, React Native, NestJS), cơ chế truyền thông thời gian thực (Socket.io) và việc ứng dụng API trí tuệ nhân tạo (GPT) vào quy trình xử lý dữ liệu hồ sơ.
Câu hỏi thường gặp
1. Hệ thống sử dụng công nghệ nào để thực hiện tính năng nhắn tin tương tác thời gian thực giữa ứng viên và nhà tuyển dụng?
Hệ thống sử dụng module Socket.io chạy trên nền tảng máy chủ NodeJS/NestJS. Công nghệ này tạo kết nối mở hai chiều liên tục giữa trình duyệt của người dùng (Client) và máy chủ (Server), cho phép truyền và nhận tin nhắn tức thời mà không cần thực hiện cơ chế gửi yêu cầu liên tục (polling). Dữ liệu trao đổi sau đó được ghi nhận và lưu trữ vào bảng chats trong cơ sở dữ liệu MySQL.
2. Mô hình GPT được ứng dụng vào những nghiệp vụ cụ thể nào trong hệ thống?
GPT được tích hợp để giải quyết bài toán xử lý và phân tích nội dung văn bản ở hai luồng nghiệp vụ: phân tích dữ liệu kỹ năng, kinh nghiệm từ CV của ứng viên để đưa ra các gợi ý việc làm phù hợp; đồng thời phân tích nội dung mô tả yêu cầu trong bài đăng tuyển dụng của doanh nghiệp để đề xuất danh sách hồ sơ ứng viên tương thích cho nhà tuyển dụng. Ngoài ra, GPT còn được sử dụng để xây dựng tính năng Chatbot hỗ trợ giải đáp thông tin tự động cho người dùng.
3. Kiến trúc 3 luồng (Thread) của framework React Native được mô tả như thế nào trong đồ án?
Trong Chương 1, nhóm tác giả chỉ rõ React Native vận hành đồng thời thông qua 3 luồng riêng biệt:
- UI Thread (Main Thread): Có quyền truy cập trực tiếp vào giao diện người dùng, chịu trách nhiệm cập nhật thành phần hiển thị và tiếp nhận các thao tác tương tác của người dùng.
- Shadow Thread: Chịu trách nhiệm thực thi các phép tính bố cục giao diện thông qua thư viện của React.
- JavaScript Thread: Nơi biên dịch và thực thi toàn bộ mã nguồn logic JavaScript của ứng dụng. Main Thread và JavaScript Thread hoạt động độc lập và trao đổi thông tin với nhau qua cầu nối (Bridge).
4. Hệ thống tuyển dụng này bao gồm những bảng cơ sở dữ liệu chính nào?
Cơ sở dữ liệu của ứng dụng gồm 11 bảng thực thể được quản lý thông qua TypeORM: accounts (tài khoản người dùng), posts (tin tuyển dụng), applications (hồ sơ ứng tuyển), companies (doanh nghiệp), profiles_cvs (hồ sơ và định dạng CV), chats (tin nhắn), notifications (thông báo), parent_categories (danh mục công việc), wards (địa giới phường/xã), communications (trao đổi/tương tác phụ), và services (các gói dịch vụ trả phí).
5. Nhóm nghiên cứu đã chỉ ra những nhược điểm cụ thể nào ở hai trang tuyển dụng TopCV và VietnamWorks?
Đối với TopCV, nhóm tác giả ghi nhận nhược điểm là các tính năng miễn phí dành cho nhà tuyển dụng còn hạn chế (đòi hỏi thanh toán phí để truy cập), hệ thống chưa có khả năng nhận dạng và ngăn chặn các từ ngữ công kích khi người dùng tạo CV, đồng thời giao diện hiển thị trên thiết bị di động chưa tối ưu. Đối với VietnamWorks, nhược điểm được chỉ ra là hệ thống yêu cầu người dùng trả phí để xem bài đăng (gây giảm sút tương tác) và chức năng tạo CV khá phức tạp vì người dùng phải nhập thông tin gián tiếp qua mục hồ sơ cá nhân thay vì được chỉnh sửa trực tiếp trên mẫu CV.
Kết luận
Đồ án tốt nghiệp "Xây dựng ứng dụng tìm kiếm việc làm" của sinh viên Huỳnh Bảo Toàn và Trần Tấn Khoa đã hoàn thành đầy đủ các nhiệm vụ phân tích, thiết kế và cài đặt một hệ thống tuyển dụng đa nền tảng (Web và Mobile) phục vụ đồng thời người tìm việc, nhà tuyển dụng và quản trị viên. Hệ thống tích hợp thành công nhiều công nghệ hiện đại như NextJS, React Native, NestJS, Socket.io, TypeORM kết hợp cùng các dịch vụ số như bản đồ định vị, thanh toán MoMo/VNPay và trí tuệ nhân tạo GPT nhằm nâng cao độ chính xác khi ghép nối việc làm. Dù vẫn còn hạn chế về việc kiểm duyệt tự động từ ngữ trên CV và độ phụ thuộc vào dịch vụ trí tuệ nhân tạo bên ngoài, đồ án vẫn thể hiện tính hoàn thiện cao về mặt kỹ thuật phần mềm và mang lại giá trị tham khảo rõ ràng cho các nghiên cứu phát triển hệ thống trong cùng lĩnh vực.