Hệ Thống Thu Thập Và Quản Lý Dữ Liệu Tuyển Dụng Hỗ Trợ Sinh Viên CNTT ĐHHP Tìm Việc Sau Tốt Nghiệp

Đề tài nghiên cứu khoa học cấp trường xây dựng hệ thống thu thập và quản lý dữ liệu tuyển dụng, hỗ trợ sinh viên CNTT ĐHHP tìm việc sau tốt nghiệp hiệu quả.

Trường đại học

Đại học Hải Phòng

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Báo cáo tổng kết đề tài NCKH cấp trường

2024

79
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

MỤC LỤC

DANH MỤC HÌNH ẢNH

MỞ ĐẦU

0.1. Tổng quan tình hình nghiên cứu

0.2. Lý do lựa chọn đề tài

0.3. Mục tiêu đề tài

0.4. Cách tiếp cận và phương pháp nghiên cứu

0.5. Đối tượng và phạm vi nghiên cứu

1. CHƯƠNG 1: GIỚI THIỆU VỀ FASTAPI

1.1. Một số tính năng và đặc điểm nổi bật của FastAPI

1.2. Giới thiệu về Selenium

1.2.1. Kiến trúc và cách hoạt động của Selenium Webdriver

1.2.2. Một số tính năng và đặc điểm nổi bật của Selenium WebDriver

1.3. Giới thiệu về Elasticsearch

1.3.1. Kiến trúc tổng quan của Elasticsearch

1.3.2. Một số tính năng và đặc điểm nổi bật của Elasticsearch

2. PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU

2.1. Mô tả bài toán

2.2. Đặc tả yêu cầu

2.2.1. Tóm tắt yêu cầu người dùng

2.2.2. Đặc tả yêu cầu chức năng

2.2.3. Đặc tả yêu cầu phi chức năng

2.3. Thiết kế ca sử dụng

2.3.1. Ca sử dụng “Tạo liên kết tài khoản Linkedin với tài khoản hệ thống”

2.3.2. Ca sử dụng “Tìm kiếm ứng viên theo dự án”

2.3.3. Ca sử dụng “Tạo tác vụ cập nhật dữ liệu ứng viên”

2.3.4. Ca sử dụng “Tạo tác vụ gửi tin nhắn”

2.3.5. Ca sử dụng “Tạo tác vụ thu thập dữ liệu ứng viên”

2.3.6. Ca sử dụng “Quản lý tác vụ - Xóa tác vụ”

2.3.7. Ca sử dụng “Quản lý tác vụ - Chỉnh sửa tác vụ gửi tin nhắn”

2.4. Biểu đồ tuần tự

2.4.1. Ca sử dụng “Tạo liên kết tài khoản Linkedin với tài khoản hệ thống”

2.4.2. Ca sử dụng “Tìm kiếm ứng viên theo dự án”

2.4.3. Ca sử dụng “Tạo tác vụ cập nhật dữ liệu ứng viên”

2.4.4. Ca sử dụng “Tạo tác vụ gửi tin nhắn”

2.4.5. Ca sử dụng “Tạo tác vụ thu thập dữ liệu ứng viên”

2.4.6. Ca sử dụng “Quản lý tác vụ - Chỉnh sửa tác vụ gửi tin nhắn”

2.4.7. Ca sử dụng “Quản lý các tác vụ - Xóa tác vụ”

3. THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG VÀ CÀI ĐẶT CHƯƠNG TRÌNH

3.1. Kiến trúc hệ thống

3.2. Thiết kế cơ sở dữ liệu

3.3. Cài đặt phía máy chủ

3.4. Cài đặt thu thập dữ liệu

3.5. Kiểm thử đơn vị API

3.6. Môi trường phát triển và dữ liệu thử nghiệm

3.7. Dữ liệu thử nghiệm

3.8. Kết quả thử nghiệm

3.9. Nhận xét và đánh giá

KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Hệ thống thu thập dữ liệu

Hệ thống thu thập dữ liệu được thiết kế để tự động hóa quá trình thu thập thông tin từ các nguồn tuyển dụng trực tuyến như LinkedIn. Sử dụng Selenium WebDriverScrapy, hệ thống giả lập hành động người dùng để truy cập và trích xuất dữ liệu ứng viên. Elasticsearch được tích hợp để lưu trữ và tìm kiếm dữ liệu một cách hiệu quả. Hệ thống này giúp giảm thiểu thời gian và công sức trong việc thu thập thông tin tuyển dụng.

1.1. Sử dụng Selenium WebDriver

Selenium WebDriver là công cụ chính để giả lập hành động người dùng trên trình duyệt. Nó hỗ trợ đa ngôn ngữ và đa trình duyệt, giúp hệ thống thu thập dữ liệu từ các trang web tuyển dụng một cách tự động và chính xác.

1.2. Tích hợp Elasticsearch

Elasticsearch được sử dụng để lưu trữ và tìm kiếm dữ liệu ứng viên. Với khả năng tìm kiếm toàn văn bản và tốc độ cao, Elasticsearch giúp hệ thống quản lý dữ liệu tuyển dụng một cách hiệu quả.

II. Quản lý dữ liệu tuyển dụng

Quản lý dữ liệu tuyển dụng là một phần quan trọng của hệ thống, giúp nhà tuyển dụng dễ dàng tìm kiếm và quản lý thông tin ứng viên. Hệ thống cung cấp các công cụ như tìm kiếm theo dự án, cập nhật dữ liệu ứng viên, và gửi tin nhắn tự động. FastAPI được sử dụng để xây dựng các API quản lý dữ liệu, đảm bảo tốc độ và hiệu suất cao.

2.1. Tìm kiếm ứng viên theo dự án

Hệ thống cho phép nhà tuyển dụng tìm kiếm ứng viên dựa trên các tiêu chí cụ thể như kỹ năng, kinh nghiệm, và dự án đã tham gia. Tính năng này giúp tối ưu hóa quá trình sàng lọc ứng viên.

2.2. Gửi tin nhắn tự động

Hệ thống tích hợp tính năng gửi tin nhắn tự động đến ứng viên tiềm năng. Điều này giúp nhà tuyển dụng tiết kiệm thời gian trong việc liên hệ và tiếp cận ứng viên.

III. Hỗ trợ sinh viên CNTT ĐHHP

Hệ thống được thiết kế đặc biệt để hỗ trợ sinh viên CNTT ĐHHP trong việc tìm kiếm việc làm sau tốt nghiệp. Bằng cách cung cấp một nền tảng quản lý dữ liệu tuyển dụng hiệu quả, hệ thống giúp sinh viên dễ dàng tiếp cận các cơ hội việc làm phù hợp với kỹ năng và nguyện vọng của mình.

3.1. Tạo liên kết tài khoản LinkedIn

Hệ thống cho phép sinh viên liên kết tài khoản LinkedIn của họ với hệ thống, giúp tự động cập nhật thông tin cá nhân và kinh nghiệm làm việc. Điều này giúp sinh viên dễ dàng quản lý hồ sơ cá nhân và tăng cơ hội tìm kiếm việc làm.

3.2. Quản lý tác vụ cập nhật dữ liệu

Sinh viên có thể tạo và quản lý các tác vụ cập nhật dữ liệu cá nhân trên hệ thống. Tính năng này giúp đảm bảo thông tin của sinh viên luôn được cập nhật và chính xác.

IV. Thiết kế và xây dựng hệ thống

Hệ thống được xây dựng dựa trên các công nghệ hiện đại như FastAPI, VueJS, và MySQL. FastAPI được sử dụng để xây dựng các API phía máy chủ, đảm bảo tốc độ và hiệu suất cao. VueJS được sử dụng để phát triển giao diện người dùng thân thiện và dễ sử dụng. MySQL là cơ sở dữ liệu chính của hệ thống, giúp lưu trữ và quản lý dữ liệu một cách hiệu quả.

4.1. Kiến trúc hệ thống

Hệ thống được thiết kế theo kiến trúc client-server, với FastAPI đảm nhiệm vai trò phía máy chủ và VueJS đảm nhiệm vai trò phía máy khách. Kiến trúc này giúp hệ thống dễ dàng mở rộng và bảo trì.

4.2. Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu của hệ thống được thiết kế để lưu trữ thông tin ứng viên, tác vụ, và tin nhắn. MySQL được sử dụng để đảm bảo tính nhất quán và toàn vẹn dữ liệu.

V. Kết quả và đánh giá

Hệ thống đã được thử nghiệm và đánh giá dựa trên các tiêu chí về hiệu suất, khả năng mở rộng, và trải nghiệm người dùng. Kết quả cho thấy hệ thống hoạt động ổn định, đáp ứng được các yêu cầu về tốc độ và độ tin cậy. Hệ thống hỗ trợ sinh viên CNTT ĐHHP trong việc tìm kiếm việc làm sau tốt nghiệp một cách hiệu quả.

5.1. Kết quả thử nghiệm

Hệ thống đã được thử nghiệm với dữ liệu thực tế từ các trang tuyển dụng. Kết quả cho thấy hệ thống có khả năng thu thập và quản lý dữ liệu một cách chính xác và hiệu quả.

5.2. Đánh giá trải nghiệm người dùng

Người dùng đánh giá cao giao diện thân thiện và dễ sử dụng của hệ thống. Các tính năng như tìm kiếm ứng viên và gửi tin nhắn tự động được đánh giá là hữu ích và tiện lợi.

21/02/2025

Trích đoạn nội dung tài liệu

Chương 1: Cơ sở lý thuyết - Trình bày lý thuyết cơ bản các công nghệ được sử dụng trong hệ thống. Chương 2: Phân tích và đặc tả yêu cầu - Phân tích và đặc tả các yêu cầu của bài toán, từ đó đưa ra các luồng hoạt động và mô hình ca sử dụng. Chương 3: Thiết kế và xây dựng hệ thống - Thiết kế tổng quan kiến trúc hệ thống, cách áp dụng công nghệ để xây dựng và cài đặt hệ thống. Chương 4: Cài đặt và thử nghiệm - Trình bày kết quả thử nghiệm, nhận xét, đánh giá của hệ thống.

Kết luận và định hướng phát triển - Trình bày kết quả đề tài đạt được, từ đó đưa ra định hướng phát triển của hệ thống sau này.5 Đối tượng và phạm vi nghiên cứu Đối tượng nghiên cứu: xây dựng hệ thống thu thập và quản lý dữ liệu tuyển dụng hỗ trợ cho sv đhhp trong tìm kiếm việc làm sau tốt nghiệp, phần mềm mã nguồn mở ASP.NET MVC framework và các công cụ lập trình, hệ quản trị cơ sở dữ liệu MySQL. Phạm vi nghiên cứu: - Địa điểm: Khoa Công nghệ thông tin trường Đại học Hải Phòng - Thời gian: Từ 8/2023 đến 05/2024 - Lĩnh vực thực hiện: Giải pháp phần mềm công nghệ thông tin trên nền tảng website. CƠ SỞ LÝ THUYẾT Hệ thống thu thập và quản lý dữ liệu được xây dựng dựa trên hai framework chính, VueJS dùng để xây dựng phía client (máy khách) và FastAPI để xây dựng phía server (máy chủ), sử dụng MySQL làm cơ sở dữ liệu chính. Bên cạnh đó, hệ thống sử dụng Selenium Webdriver và Scrapy để xây dựng các công cụ tự động và thu thập dữ liệu web, sau đó phần dữ liệu sẽ được làm mịn và đẩy lên Elasticsearch để phục vụ cho các mô đun tìm kiếm.

Giới thiệu về FastAPI FastAPI7 là một framework được viết bằng ngôn ngữ Python ra đời vào cuối năm 2018, được thiết kế để xây dựng các web API có hiệu năng cao, dễ mở rộng, đơn giản và hỗ trợ tốt cho việc hoàn thiện sản phẩm. Do được xây dựng trên nền tảng của hai thư viện vô cùng nổi tiếng Pydantic8 và Starlette9 nên việc xử lý dữ liệu phức tạp trở nên vô cùng đơn giản, hơn thế nữa nhờ Starlette mà FastAPI có hiệu năng cao, được xem như framework có tốc độ nhanh nhất trong số viết bằng Python. Một số tính năng và đặc điểm nổi bật của FastAPI FastAPI cung cấp rất nhiều những tính năng nổi bật có thể kể đến như sau [1]: Tự động sinh tài liệu API FastAPI cung cấp tính năng tự động sinh tài liệu dựa trên các lược đồ API theotiêu chuẩn của OpenAPI10, cho phép người dùng có thể tìm hiểu thêm về API thôngqua hai lựa chọn giao diện tài liệu: ● Giao diện tài liệu tương tác cung cấp bởi SwaggerUI11 cho phép người dùngcó thể gọi, kiểm thử các API trực tiếp trên trình duyệt, đây là tính năng được sử dụng và yêu thích nhất của đại đa số lập trình viên. ● Giao diện tài liệu thay thế cung cấp bởi Redoc được thiết kế khoa học, dễ dùng cho người mới.

Bên cạnh đó chúng ta hoàn toàn có thể chỉnh sửa tài liệu API trực tiếp trên tậptin “openapi.json” có trong hệ thống. 2 Hỗ trợ lập trình bất đồng bộ Do được phát triển dựa trên phiên bản Python 3.6+, FastAPI cung cấp các cơ chế thực thi bất đồng bộ thông qua cú pháp async/await và coroutines kết hợp với thư viện aiomysql 12giúp quá trình thiết lập kết nối và truy vấn cơ sở dữ liệu trở nên nhanh chóng hơn rất nhiều, qua đó tăng cường hiệu năng và tốc độ phản hồi của máy chủ. Hỗ trợ các trình soạn thảo Nếu đã quen với việc sử dụng Flask13, một web microframework của Python chắc hẳn trải nghiệm autocomplete (tự động hoàn thành) trên Visual Studio Code14sẽ khá tệ và đôi khi mất rất nhiều thời gian để tra lại tài liệu. Điều này hoàn toàn không còn xảy ra trên FastAPI, toàn bộ framework được xây dựng để thỏa mãn tính năng này, tự động hoàn thành hoạt động ở mọi nơi, kể cả các đối tượng JSON lồngnhau nhiều tầng được tiếp nhận từ yêu cầu tới máy chủ nó vẫn hoạt động tốt.

Qua đó, hạn chế việc lập trình viên phải mở lại tài liệu để tra cứu và việc phát triển sẽ được đẩy nhanh gấp nhiều lần. Hệ thống dependency injection (gắn sự phụ thuộc) “Dependency injection” được hiểu như một cách để khai báo các công việc, yêu cầu cần đáp ứng để mã lệnh của chúng ta có thể hoạt động được, mà ở đây nó chính là các hàm chức năng của API. FastAPI giúp chúng ta thực hiện tất cả các công việc còn lại để tích hợp các hàm “dependencies” vào API một cách tự động mà không cần cài đặt gì thêm. Hơn nữa các “dependency” còn có thể có các “dependency” con, từ đó xây dựng lên một cây “dependency” theo hướng cấu trúc.

Việc này có ý nghĩa rất lớn cho việc tận dụng các hàm, mã lệnh được chia sẻ ở nhiều nơi, các kết nối với cơ sở dữ liệu từ đó giảm thiểu tối đa việc trùng lặp mã lệnh. Bên cạnh đó, tính năng tự động tạo tài liệu và chuẩn hóa dữ liệu hoạt động tốt cho các biến, tham số được truyền trong các “dependency”. Kế thừa các tính năng của Starlette Bản chất FastAPI là một lớp con của Starlette, một framework nhẹ dựa trên ASGI để xây dựng các dịch vụ web hỗ trợ bất đồng bộ trên Python, vì vậy nó có khả năng tương thích hoàn toàn với Starlette. Nhờ đó, FastAPI hỗ trợ đầy đủ Websocket, 3 session (phiên làm việc), cookie (bộ nhớ đệm dài hạn), CORS,.

và giúp tăng hiệu năng một cách ấn tượng. Kế thừa các tính năng của Pydantic Nhắc đến FastAPI, ta không thể không nhắc đến Pydantic như một thư viện xác thực dữ liệu được cài đặt ở lớp bên dưới. Nó cung cấp khả năng xác thực (validated), thêm chú thích (annotated) dữ liệu có cấu trúc phức tạp như: đối tượng JSON lồng nhau nhiều tầng, … Chỉ cần trang bị kiến thức về các kiểu (type) trong Python, chúng ta hoàn toàn có thể sử dụng được Pydantic mà không yêu cầu phải tìm hiểu thêm bất cứ ngôn ngữ định nghĩa lược đồ mới(schema definition language). Mặt khác, chúng cũng hoạt động tốt với các thư viện, bộ công cụ ORM bên ngoài dùng cho việc thao tác với cơ sở dữ liệu như SQLAlchamy15, các lớp Pydantic bao gồm các cặp trường và kiểu dữ liệu có thể được cài đặt như sau:.

from pydantic import BaseModel 2. is_admin: bool 6. Giới thiệu về Selenium Selenium là một bộ công cụ kiểm thử tự động (mã nguồn mở) mạnh mẽ dành cho các ứng dụng chạy trên nền web, hỗ trợ đa số các trình duyệt phổ biến hiện nay như Google Chrome 12+, Firefox 3+, Microsoft Edge. Bên cạnh đó Selenium có thể tương thích tốt với nhiều ngôn ngữ lập trình như Python, Javascript, C#, Ruby, Java, Kotlin đây là một thế mạnh của Selenium khi so sánh với các công cụ có chức năngtương tự như Katalon Studio 16.

Selenium không chỉ là một công cụ độc lập mà nó được chia thành ba thành phần riêng biệt [2]: Selenium WebDriver: Là một web framework sử dụng các WebDriver APIs cung cấp bởi các trình duyệt độc lập giúp người dùng có thể điều khiển trình 4 duyệt và thực hiện các ca kiểm thử dễ dàng. Do được xây dựng trên kiến trúc client (máy khách) - server (máy chủ), Selenium cho phép người dùng có thể viết các mã lệnh bằng nhiều ngôn ngữ khác nhau và chạy trên nhiều nền tảng, trình duyệt khác nhau. ● Selenium IDE: Là một phần mềm tiện ích của Selenium có thể dễ dàng cài đặt trên trình duyệt Chrome hoặc Firefox, cho phép người dùng tạo và phát triển các ca kiểm thử dựa trên hai chức năng ghi lại (record) hành động của người dùng và phát (run) lại chúng. ● Selenium Grid: Là một công cụ hỗ trợ thực hiện các ca kiểm thử song songtrên nhiều thiết bị và nhiều nền tảng khác nhau giúp tiết kiệm rất nhiều thời gian cho quá trình kiểm thử.

Trong khuôn khổ của đề tài này, đo đặc tính của hệ thống chỉ sử dụng Selenium WebDriver nên tôi sẽ tập trung trình bày chi tiết hơn ở phần sau đây của đề tài. Kiến trúc và cách hoạt động của Selenium Webdriver Hình 1. Kiến trúc tổng quản của Selenium WebDriver Selenium WebDriver xây dựng trên kiến trúc client (máy khách) - server (máy chủ) với bốn thành phần chính [3]: ● Selenium client libraries: Là các thư viện được phát triển bởi đội ngũ Selenium cho phép tương tác với WebDriver APIs bằng nhiều ngôn ngữ lập trình như: Python, Java, C#, Ruby, Javascript, Kotlin. 5 ● JSON Wire Protocol: hoạt động như một REST API cung cấp các cơ chế truyền tải dữ liệu giữa máy khách và máy chủ trên HTTP Server.

Nó hỗ trợ nhiều kiểu cấu trúc dữ liệu như mảng, đối tượng. ● Browser drivers: Để tránh việc để lộ các chức năng được cài đặt trên trình duyệt cho các phần mềm bên thứ ba ở đây là Selenium, mỗi trình duyệt sẽ cung cấp cho người dùng các driver (trình điều khiển) của riêng chúng. Các driver này sẽ thao tác trực tiếp với trình duyệt thông qua kết nối được bảo mật. ● Browser: Selenium chỉ có thể hoạt động trên các trình duyệt, cho dù chúngđược cài đặt trực tiếp trên máy khách hoặc trên máy chủ, một số trình duyệt phổ biến được Selenium hỗ trợ như: Google Chrome, FireFox, Safari,.

Để hiểu rõ hơn về cách hoạt động phía dưới của Selenium WebDriver, tôi sẽ trình bày dựa trên một ví dụ đơn giản như sau: 1. from selenium import webdriver 2.get("https://www.com/") Khi chúng ta thực thi mã lệnh trên, một cửa sổ trình duyệt sẽ được bật và tự động điều hướng vào trang chủ của Google. Bản chất, khi các mã lệnh được chạy, Selenium gọi API được cài đặt trong thư viện Selenium ở máy khách để kết nối với HTTP Server của driver trên trình duyệt thông qua giao thức JSON Wire (cung cấpcác RESTful API), cụ thể ở đây API POST: /session/:sessionId/url (giúp điều hướngtới một URL mới). Khi driver của trình duyệt nhận được URL, nó sẽ truyền yêu cầu này tới trực tiếp trình duyệt thật và các câu lệnh sẽ được thực thi.

Một số tính năng và đặc điểm nổi bật của Selenium WebDriver Là một công cụ được sinh ra để kiểm thử tự động các chương trình chạy trên nền web phổ biến nhất hiện nay, Selenium WebDriver có một số ưu điểm như sau: ● Tương thích nhiều ngôn ngữ: Đây là một công cụ mã nguồn mở cho phép người dùng có thể phát triển trên rất nhiều ngôn ngữ lập trình như : Python, Java, Javascript, Ruby, C#, Kotlin.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ