Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ và thâm nhập sâu rộng vào các lĩnh vực kinh tế, y tế, giáo dục và quản trị nhân sự, việc tin học hóa quy trình tuyển dụng và khảo thí trở thành một xu thế tất yếu. Hình thức thi trắc nghiệm khách quan đã được chứng minh về tính hiệu quả, chuẩn xác và tiện lợi, được áp dụng rộng rãi bởi các tổ chức khảo thí quốc tế như ETS (với các kỳ thi TOEFL, GMAT, GRE) hay Microsoft (với các chứng chỉ MCSE, MCAD). Tại Việt Nam, phương pháp đánh giá trắc nghiệm ngày càng được chú trọng nhằm khắc phục tình trạng học tủ, học vẹt, đồng thời nâng cao tính minh bạch và độ bao phủ kiến thức chuyên môn.
Xuất phát từ thực tiễn tuyển dụng ngành Công nghệ Thông tin (IT), phương thức phỏng vấn trực tiếp truyền thống (face-to-face) bộc lộ nhiều điểm hạn chế:
- Phỏng vấn viên chỉ có thể tiếp xúc một số lượng ứng viên giới hạn trong mỗi đợt tuyển dụng.
- Việc kiểm tra trình độ từng người một cách thủ công gây tiêu tốn nhiều thời gian của chuyên gia phỏng vấn và gia tăng chi phí vận hành cho doanh nghiệp.
- Việc tổ chức thi viết trên giấy phát sinh chi phí in ấn, chuẩn bị tài liệu, đồng thời gặp khó khăn trong việc phân loại câu hỏi, quản lý ngân hàng đề và tái sử dụng câu hỏi từ các kỳ thi trước.
Để giải quyết bài toán trên, đề tài "Xây dựng hệ thống hỗ trợ phỏng vấn ngành IT" được thực hiện nhằm cung cấp một nền tảng trực tuyến tích hợp giữa quản lý tuyển dụng và tổ chức thi trắc nghiệm đánh giá năng lực sơ bộ của ứng viên.
Mục tiêu nghiên cứu
- Xây dựng phân hệ hỗ trợ nhân viên nhân sự (HR) trong công tác tuyển dụng: đăng tin tuyển dụng, tiếp nhận hồ sơ, phân chia ứng viên theo đợt phỏng vấn, phân công phỏng vấn viên và theo dõi kết quả đánh giá.
- Xây dựng phân hệ thi trắc nghiệm trực tuyến hỗ trợ người phỏng vấn (Interviewer) và ứng viên (Candidate): cho phép tạo bài kiểm tra, quản lý ngân hàng câu hỏi (chia 3 mức độ: dễ, bình thường, khó), nhập câu hỏi từ tập tin Excel, tái sử dụng câu hỏi cũ theo từ khóa, tổ chức thi trực tuyến có kiểm soát thời gian, lưu trạng thái bài thi khi gặp sự cố ngắt kết nối và tự động chấm điểm.
Nhiệm vụ nghiên cứu
- Khảo sát hiện trạng, phân tích tính năng và giao diện của các hệ thống kiểm tra trực tuyến tương tự.
- Thiết kế và hiện thực hóa hệ thống giao tiếp qua RESTful API để trao đổi dữ liệu hai chiều giữa Back-end và Front-end.
- Nghiên cứu và tích hợp các công nghệ hỗ trợ: đăng nhập/liên kết tài khoản qua Gmail, lưu trữ tập tin đa phương tiện dung lượng lớn qua dịch vụ đám mây Cloudinary.
- Xây dựng cơ chế quản lý lượt thi, giới hạn thời gian làm bài, lưu trữ trạng thái phiên thi bằng cookie nhằm khôi phục tiến trình làm bài khi xảy ra sự cố kỹ thuật.
- Đóng gói mã nguồn và triển khai (deploy) toàn bộ hệ thống lên nền tảng đám mây Heroku.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Quy trình tổ chức thi tuyển, đánh giá năng lực ứng viên ngành IT và các kỹ thuật xây dựng ứng dụng web đơn trang (Single Page Application - SPA).
- Phạm vi không gian và thời gian: Đề tài do nhóm sinh viên Hà Minh Trí (MSSV: 16110545) và Nguyễn Xuân Hoàng (MSSV: 16110077) thực hiện dưới sự hướng dẫn của ThS. Nguyễn Thanh Phước tại Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh; thời gian thực hiện từ ngày 20/02/2020 đến ngày 01/07/2020.
Cơ sở lý thuyết và phương pháp
Khung kiến trúc và nền tảng công nghệ
Đề tài áp dụng biến thể của ngăn xếp công nghệ MERN Stack, thay thế cơ sở dữ liệu hướng tài liệu MongoDB bằng hệ quản trị cơ sở dữ liệu quan hệ MySQL để phù hợp với mô hình dữ liệu có cấu trúc và ràng buộc toàn vẹn:
- NodeJS: Nền tảng thực thi JavaScript phía máy chủ dựa trên V8 JavaScript Engine, áp dụng mô hình hướng sự kiện (event-driven), đơn luồng (single-threaded) và cơ chế vào/ra không chặn (non-blocking I/O).
- ExpressJS: Framework phát triển ứng dụng web trên nền NodeJS, chịu trách nhiệm quản lý định tuyến (routes), xử lý middleware và xây dựng hệ thống RESTful API.
- ReactJS: Thư viện Front-end phát triển giao diện người dùng theo mô hình Single Page Application (SPA), ứng dụng cơ chế Virtual-DOM để tối ưu hóa hiệu năng cập nhật giao diện, sử dụng cú pháp JSX, Function Component kết hợp React Hooks và Class Component gắn liền với vòng đời component (Mounting, Updating, Unmounting).
- MySQL: Hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở, bảo đảm tính toàn vẹn dữ liệu thông qua các ràng buộc khóa chính (PK), khóa ngoại (FK) và giao tác (transaction).
- Sequelize ORM: Thư viện ánh xạ quan hệ - đối tượng (Object Relational Mapping) nền Promise dành cho NodeJS, hỗ trợ chuyển đổi các bản ghi trong MySQL thành đối tượng JavaScript, quản lý quan hệ bảng và xác thực dữ liệu.
- Redux: Thư viện quản lý trạng thái tập trung cho ứng dụng ReactJS theo luồng dữ liệu một chiều dựa trên 3 nguyên lý: Nguồn dữ liệu tin cậy duy nhất (Store), trạng thái chỉ đọc (State is read-only) và biến đổi trạng thái thông qua các hàm thuần túy (Pure Functions / Reducers).
- Ant Design: Bộ thư viện thành phần giao diện (UI components) chuẩn hóa cho ReactJS.
- Cloudinary: Dịch vụ lưu trữ và phân phối tài nguyên tập tin đa phương tiện (hình ảnh, tài liệu PDF) trên nền tảng đám mây.
| Thành phần kiến trúc |
Công nghệ sử dụng |
Vai trò trong hệ thống |
| Cơ sở dữ liệu |
MySQL 5.x / 8.x |
Lưu trữ dữ liệu quan hệ có cấu trúc |
| Tương tác CSDL |
Sequelize ORM |
Ánh xạ thực thể, quản lý truy vấn và giao tác |
| Back-end Server |
NodeJS, ExpressJS |
Xử lý nghiệp vụ, cung cấp RESTful API |
| Front-end SPA |
ReactJS, JSX |
Xây dựng giao diện web động |
| Quản lý State |
Redux (Store, Action, Reducer) |
Quản trị luồng dữ liệu và trạng thái ứng dụng |
| Thư viện UI |
Ant Design |
Chuẩn hóa các thành phần giao diện người dùng |
| Lưu trữ tệp tin |
Cloudinary API |
Lưu trữ hình ảnh đại diện, đề thi và hồ sơ PDF |
| Hạ tầng triển khai |
Heroku Cloud Platform |
Triển khai và vận hành hệ thống máy chủ web |
Phương pháp nghiên cứu thực tế
- Phương pháp phân tích và mô hình hóa hệ thống: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng biểu đồ ca sử dụng (Use Case Diagram), bảng đặc tả ca sử dụng chi tiết (Use Case Specifications) và biểu đồ quan hệ thực thể mở rộng (EER Diagram).
- Phương pháp thiết kế cơ sở dữ liệu: Phân tích các thực thể thực tế, xác định các trường thuộc tính, kiểu dữ liệu và chuẩn hóa các mối quan hệ (1-1, 1-N, N-N).
- Phương pháp thực nghiệm phát triển phần mềm: Tiến hành lập trình theo mô hình phân tầng Back-end / Front-end, kiểm thử chức năng từng phân hệ và tích hợp hệ thống lên môi trường đám mây.
Thiết kế và triển khai
Hệ thống được thiết kế hướng tới 3 nhóm tác nhân chính (Actors) với các ca sử dụng cụ thể:
- Nhân viên nhân sự (HR): Quản lý chiến dịch tuyển dụng, quản lý danh sách ứng viên nộp hồ sơ, sắp xếp ứng viên vào các đợt phỏng vấn, phân công chuyên gia phỏng vấn và tổng hợp kết quả đánh giá.
- Người phỏng vấn (Interviewer): Tạo bài kiểm tra trắc nghiệm, quản lý ngân hàng câu hỏi, nhập câu hỏi từ tệp Excel, tìm kiếm tái sử dụng câu hỏi cũ, kích hoạt (host) bài quiz và duyệt kết quả làm bài của ứng viên.
- Ứng viên (Candidate): Đăng ký/đăng nhập (hỗ trợ liên kết Gmail), tạo và xuất bản hồ sơ trực tuyến (Auto CV), nộp đơn ứng tuyển, nhập mã code để tham gia làm bài kiểm tra và tra cứu kết quả thi.
Bảng đặc tả mã định danh các Use Case chính
| Nhóm chức năng |
Use Case ID |
Tên ca sử dụng (Main Use Cases) |
Tác nhân thực hiện |
| Do Online Test for Interview |
UC_1.1 |
Participate in quiz (Tham gia bài thi) |
HR, Interviewer, Candidate |
|
UC_1.2 |
Do attempt (Thực hiện bài thi) |
HR, Interviewer, Candidate |
|
UC_1.3 |
Review results (Xem kết quả thi) |
HR, Interviewer, Candidate |
| Manage quiz |
UC_2.1 |
Create quiz / Add questions (Tạo bài quiz / Thêm câu hỏi) |
HR, Interviewer |
|
UC_2.2 |
Edit questions / Edit quiz (Sửa câu hỏi / Sửa quiz) |
HR, Interviewer |
|
UC_2.3 |
Delete questions / Delete quiz (Xóa câu hỏi / Xóa quiz) |
HR, Interviewer |
|
UC_2.4 |
Import file (Nhập câu hỏi từ file Excel) |
HR, Interviewer |
| Manage account |
UC_3.2 |
Log in (Đăng nhập) |
All users |
|
UC_3.3 |
Log out (Đăng xuất) |
All users |
|
UC_3.4 |
Update profile information (Cập nhật hồ sơ) |
All users |
| Apply job |
UC_4.1 |
Submit registered CV and information (Nộp hồ sơ) |
Candidate |
| Manage recruitment campaign |
UC_5.1 |
Add recruitment campaign (Tạo tin tuyển dụng) |
HR |
|
UC_5.2 |
Edit recruitment campaign (Sửa tin tuyển dụng) |
HR |
|
UC_5.3 |
Delete recruitment campaign (Xóa tin tuyển dụng) |
HR |
| Manage candidates |
UC_6.1 |
Add candidates to interview (Đưa ứng viên vào đợt PV) |
HR |
|
UC_6.2 |
Edit information about interview and candidate |
HR |
|
UC_6.3 |
Modify interview (Điều chỉnh đợt phỏng vấn) |
HR |
| Publish CV and Create Auto CV |
UC_7.1 |
Publish CV (Công khai hồ sơ) |
Candidate |
|
UC_7.2 |
Create Auto CV (Tạo hồ sơ tự động) |
Candidate |
Thiết kế cơ sở dữ liệu quan hệ (EER Schema)
Cơ sở dữ liệu của hệ thống được xây dựng trên MySQL với các bảng chính sau:
| Tên bảng |
Thuộc tính |
Kiểu dữ liệu |
Ràng buộc |
Ý nghĩa chức năng |
user |
id
name
grades
email
password
avatar
role_id
Phone
Company |
int varchar(50) char varchar varchar varchar int int int |
PK Null Null Null Null Null FK FK FK |
Lưu trữ thông tin người dùng trong hệ thống |
user_role |
id
role |
int varchar |
PK Null |
Phân loại vai trò người dùng (HR, Candidate, Interviewer) |
subject |
id
title |
int varchar |
PK Null |
Danh mục chủ đề, môn học hoặc chuyên ngành tuyển dụng |
question_table |
id
code
title
grade_begin
grade_end
level
played
subject_id
image
is_public
admin
is_finish
Bench_mark
Campaign_id |
int varchar varchar int int int int int longtext tinyint int tinyint tinyint tinyint |
PK Null Null Null Null Null Null FK Null Null FK Null Null FK |
Thông tin bài kiểm tra trắc nghiệm (quiz) |
question |
id
question
time
is_one_right_ans |
int varchar int tinyint |
PK Null Null Null |
Ngân hàng câu hỏi, thời gian trả lời và cờ đơn/đa đáp án |
questiontable_question |
question_table_id
question_id |
int int |
PK, FK PK, FK |
Bảng nối thể hiện quan hệ nhiều - nhiều giữa bài quiz và câu hỏi |
question_choices |
id
question_id
answer
is_right |
int int varchar tinyint |
PK FK Null Null |
Danh sách các phương án trả lời và đánh dấu đáp án đúng |
answer_record |
id
user_id
question_table_id
question
choice_id |
int int int int int |
PK FK FK FK FK |
Nhật ký ghi nhận lựa chọn trả lời của người dùng qua từng lần thi |
Ngoài ra, hệ thống còn thiết kế các bảng phụ trợ gồm: level (phân cấp trình độ), work_type (hình thức làm việc), campaign (tin tuyển dụng), interview (đợt phỏng vấn), group_candidate (nhóm ứng viên tham gia đợt phỏng vấn), company (thông tin công ty) và multichoice_choices (quản lý câu hỏi nhiều lựa chọn).
Nội dung chính theo từng chương
Chương 1. Khảo sát hiện trạng
Chương này tập trung phân tích bối cảnh đổi mới phương pháp khảo thí và tuyển dụng nhân sự trong kỷ nguyên số. Tác giả chỉ ra tính cấp thiết của đề tài thông qua việc so sánh phương thức phỏng vấn trực tiếp face-to-face với hình thức kiểm tra trực tuyến. Đặt ra yêu cầu cấp thiết về một công cụ hỗ trợ HR quản lý tin tuyển dụng/ứng viên và hỗ trợ Interviewer tổ chức kiểm tra trắc nghiệm nhằm giảm thiểu thời gian sàng lọc ban đầu. Chương này cũng xác định rõ mục tiêu, nhiệm vụ, công nghệ lập trình chủ đạo (MERN kết hợp MySQL) và phạm vi nghiên cứu của đề tài.
Chương 2. Giới thiệu về MERN Stack
Chương 2 trình bày chi tiết về cơ sở lý thuyết của các công nghệ phần mềm được lựa chọn:
- Định nghĩa khái niệm Technical Stack (Solution Stack) và lý do ra đời.
- Giới thiệu bộ công nghệ MERN Stack và các đặc tính kỹ thuật của NodeJS (chạy nhanh trên nền V8 Engine, đơn luồng với Event Loop, non-blocking I/O, không đệm dữ liệu, bản quyền MIT).
- Phân tích vai trò của ExpressJS trong định tuyến API và ReactJS trong xây dựng giao diện Single Page Application (cơ chế Virtual-DOM, cú pháp JSX, Function/Class Component, 3 giai đoạn của React Lifecycle gồm Mounting, Updating và Unmounting).
- Giới thiệu các thư viện phụ trợ: Redux (nguyên lý 3 trạng thái và 4 thành phần Store, Reducer, Action, View), Sequelize ORM (cơ chế ánh xạ dữ liệu nền Promise), Ant Design (chuẩn thiết kế Ant UED) và Cloudinary (giải pháp lưu trữ đám mây cho tệp hình ảnh/PDF).
Chương 3. Xác định yêu cầu bài toán
Chương 3 tiến hành mô hình hóa các yêu cầu chức năng và phi chức năng của hệ thống:
- Xây dựng sơ đồ tổng quát Use Case Diagram bao gồm 3 nhóm tác nhân chính: HR, Interviewer và Candidate.
- Chi tiết hóa 7 nhóm chức năng lớn thông qua các bảng đặc tả ca sử dụng (từ UC_1.1 đến UC_7.2): Do Online Test for Interview, Manage quiz, Manage account, Apply job, Manage recruitment campaign, Manage candidates, Publish CV and Create Auto CV.
- Thiết lập kịch bản xử lý dòng sự kiện chính (Main flow) và xử lý ngoại lệ (Exceptions) cho từng ca sử dụng trọng yếu (xử lý sai mật khẩu, nhập sai mã code bài thi, lưu trữ câu trả lời tự động khi gặp sự cố mất kết nối mạng).
Chương 4. Thiết kế phần mềm
Chương 4 mô tả toàn diện kiến trúc kỹ thuật của hệ sinh thái phần mềm:
- Thiết kế mô hình cơ sở dữ liệu quan hệ mở rộng (EER Diagram) và đặc tả chi tiết 15 bảng dữ liệu trong MySQL.
- Thiết kế giao diện người dùng và đặc tả mục đích hiển thị của các màn hình chức năng: Màn hình trang chủ (Home), trang quản lý bài thi đã tạo (Created), trang cài đặt (Setting), màn hình chuẩn bị thi (Pre-game), giao diện thi trắc nghiệm đơn/đa lựa chọn, giao diện tạm dừng thi (Pause), giao diện tạo/chỉnh sửa câu hỏi, giao diện quản lý chiến dịch và ứng viên của HR, màn hình báo cáo (Report).
- Thiết kế cấu trúc thư mục dự án cho cả hai phân hệ Back-end và Front-end.
Chương 5. Kết quả, thực nghiệm, phân tích
Chương 5 trình bày kết quả hiện thực hóa phần mềm trên thực tế:
- Hiện thực hóa thành công hệ thống Back-end: các module API điều khiển định tuyến, bộ điều khiển xác thực tài khoản, bộ điều khiển xử lý bài thi và kết nối cơ sở dữ liệu qua Sequelize ORM.
- Hiện thực hóa hệ thống Front-end: triển khai các giao diện người dùng bằng ReactJS kết hợp Ant Design, tích hợp Redux quản lý trạng thái luồng dữ liệu, thực hiện kiểm thử chức năng trực tiếp trên các trình duyệt web.
Chương 6. Kết luận và hướng phát triển
Chương cuối tổng kết các kết quả đạt được sau gần 3 tháng thực hiện đồ án, phân tích các khó khăn kỹ thuật nhóm đã vượt qua trong quá trình tích hợp công nghệ, đồng thời định hình các hướng mở rộng và hoàn thiện hệ thống trong tương lai.
Kết quả và đóng góp
Kết quả chính đạt được
- Hiện thực hóa trọn vẹn các phân hệ chức năng: Hoàn thành đầy đủ 7 nhóm Use Case theo thiết kế, bảo đảm sự phối hợp nhịp nhàng giữa 3 nhóm tác nhân HR, Interviewer và Candidate.
- Xây dựng ngân hàng đề thi linh hoạt: Hỗ trợ tạo đề thi trắc nghiệm phân loại theo 3 cấp độ khó (dễ, bình thường, khó), cho phép tải câu hỏi hàng loạt từ tệp Excel và cung cấp công cụ tìm kiếm, tái sử dụng câu hỏi từ các bài quiz cũ dựa trên từ khóa.
- Bảo đảm an toàn tiến trình thi: Thiết lập thành công cơ chế ghi nhận kết quả tức thời vào bảng
answer_record và lưu trữ trạng thái phiên làm việc qua cookie, cho phép ứng viên khôi phục bài thi khi xảy ra sự cố gián đoạn đường truyền mạng.
- Tích hợp dịch vụ tuyển dụng và hồ sơ trực tuyến: Xây dựng tính năng đăng tin tuyển dụng, tự động tạo hồ sơ trực tuyến (Auto CV), xác thực tài khoản tích hợp qua hệ thống Gmail và lưu trữ tệp tin trên Cloudinary.
- Triển khai ứng dụng: Đóng gói hoàn chỉnh mã nguồn (Source code), tài liệu đặc tả (Document) và triển khai thành công hệ thống lên nền tảng đám mây Heroku.
Đóng góp của đề tài
- Về mặt quy trình: Đề tài đã chuẩn hóa quy trình sơ tuyển nhân sự ngành IT bằng cách kết hợp giai đoạn nộp hồ sơ tuyển dụng với giai đoạn làm bài kiểm tra trắc nghiệm chuyên môn tự động, giúp giảm thiểu đáng kể thời gian và chi phí phỏng vấn trực tiếp cho doanh nghiệp.
- Về mặt kỹ thuật: Minh chứng tính khả thi và hiệu quả của việc kết hợp mô hình SPA (ReactJS, Redux, Ant Design) với nền tảng RESTful API (NodeJS, ExpressJS) trên cơ sở dữ liệu quan hệ MySQL thông qua lớp ánh xạ Sequelize ORM.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế
- Thời gian thực hiện đề tài tương đối ngắn (gần 3 tháng, từ 20/02/2020 đến 01/07/2020), nhóm tác giả bước đầu tiếp cận các công nghệ mới nên quá trình phát triển còn gặp nhiều bỡ ngỡ và khó khăn kỹ thuật trong việc tích hợp hệ thống.
- Các bài kiểm tra hiện tại chủ yếu tập trung vào định dạng câu hỏi trắc nghiệm (đơn lựa chọn và đa lựa chọn), chưa tích hợp các module chấm điểm trực tiếp mã nguồn (coding test / online judge) cho các vị trí lập trình chuyên sâu.
Hướng phát triển
- Hoàn thiện và mở rộng các tính năng phân tích, thống kê chi tiết kết quả làm bài của ứng viên theo từng danh mục kỹ năng.
- Tối ưu hóa hiệu năng tải trang và nâng cao khả năng tương thích của giao diện trên các thiết bị di động (Responsive Design).
- Phát triển thêm các thuật toán gợi ý và tự động sinh đề thi thông minh dựa trên độ khó và yêu cầu chuyên môn cụ thể của từng chiến dịch tuyển dụng.
Giá trị tham khảo
Tài liệu đồ án tốt nghiệp này mang lại giá trị tham khảo thiết thực cho các đối tượng sau:
- Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm: Tài liệu cung cấp mẫu tham khảo chuẩn mực về cấu trúc một đồ án tốt nghiệp kỹ thuật, từ khảo sát hiện trạng, mô hình hóa Use Case, thiết kế cơ sở dữ liệu EER đến việc phân tầng cấu trúc mã nguồn.
- Lập trình viên Full-stack (NodeJS - ReactJS): Phần đáng tham khảo nhất là cách thức tích hợp ngăn xếp ExpressJS - ReactJS - Redux kết hợp cơ sở dữ liệu quan hệ MySQL thông qua Sequelize ORM, cũng như phương pháp xử lý lưu trữ trạng thái phiên làm bài thi chống mất mát dữ liệu do sự cố mạng.
- Chuyên viên nhân sự và quản trị hệ thống đào tạo: Cung cấp mô hình tham khảo về việc số hóa quy trình tuyển dụng và đánh giá năng lực ứng viên sơ bộ thông qua ngân hàng đề trắc nghiệm trực tuyến.
Câu hỏi thường gặp
1. Hệ thống phân chia quyền hạn người dùng thành những nhóm vai trò nào?
Hệ thống quản lý 3 vai trò người dùng chính được định nghĩa trong bảng user_role: Nhân viên nhân sự (HR), Người phỏng vấn (Interviewer) và Ứng viên (Candidate). HR có quyền quản lý tin tuyển dụng và sắp xếp ứng viên; Interviewer tạo ngân hàng câu hỏi, thiết lập bài quiz và đánh giá năng lực; Candidate nộp hồ sơ, tạo Auto CV và tham gia làm bài kiểm tra trực tuyến.
2. Bộ công nghệ (Tech Stack) cốt lõi được tác giả sử dụng trong đồ án gồm những gì?
Hệ thống được xây dựng trên nền tảng JavaScript toàn diện kết hợp CSDL quan hệ: Back-end sử dụng NodeJS và ExpressJS với Sequelize ORM; Front-end sử dụng ReactJS, Redux và Ant Design; Cơ sở dữ liệu sử dụng MySQL; Dịch vụ lưu trữ tệp tin đa phương tiện sử dụng Cloudinary và toàn bộ hệ thống được triển khai trên nền tảng đám mây Heroku.
3. Phân hệ quản lý câu hỏi hỗ trợ các tính năng nổi bật nào để tiết kiệm thời gian tạo đề thi?
Phân hệ quản lý câu hỏi (Manage quiz - UC_2.1 đến UC_2.4) cho phép người phỏng vấn tạo câu hỏi đơn/đa đáp án, phân loại theo 3 mức độ khó (dễ, bình thường, khó), nhập danh sách câu hỏi hàng loạt từ tệp tin Excel, đồng thời hỗ trợ tìm kiếm và tái sử dụng các câu hỏi từ các bài kiểm tra cũ thông qua từ khóa (keyword).
4. Hệ thống xử lý ra sao khi ứng viên gặp sự cố ngắt kết nối mạng hoặc tắt trình duyệt trong quá trình thi?
Hệ thống tích hợp cơ chế tự động ghi nhận tức thời từng lựa chọn trả lời vào bảng answer_record trên cơ sở dữ liệu và lưu lại trạng thái tiến trình làm bài thông qua cookie/phiên làm việc. Khi ứng viên truy cập lại bài thi, hệ thống sẽ khôi phục trạng thái làm bài dở dang để ứng viên tiếp tục hoàn thành bài kiểm tra mà không bị mất dữ liệu.
5. Cơ sở dữ liệu liên kết giữa bài kiểm tra (quiz) và các câu hỏi như thế nào?
Hệ thống thiết lập bảng trung gian questiontable_question chứa hai khóa ngoại đồng thời là khóa chính (question_table_id và question_id) nhằm thiết lập mối quan hệ nhiều - nhiều (N-N) giữa bảng bài kiểm tra (question_table) và bảng câu hỏi (question). Cấu trúc này cho phép một bài quiz chứa nhiều câu hỏi và một câu hỏi có thể được tái sử dụng trong nhiều bài quiz khác nhau.
Kết luận
Đồ án tốt nghiệp "Xây dựng hệ thống hỗ trợ phỏng vấn ngành IT" của sinh viên Hà Minh Trí và Nguyễn Xuân Hoàng (Đại học Sư phạm Kỹ thuật TP.HCM) đã giải quyết hiệu quả bài toán tối ưu hóa quy trình sơ tuyển nhân sự thông qua nền tảng thi trắc nghiệm trực tuyến. Hệ thống được thiết kế hoàn chỉnh từ mô hình ca sử dụng, lược đồ cơ sở dữ liệu quan hệ MySQL 15 bảng cho đến kiến trúc phân tầng Back-end (NodeJS, ExpressJS) và Front-end (ReactJS, Redux, Ant Design). Mặc dù thời gian thực nghiệm còn hạn chế, kết quả của đồ án đã đáp ứng đầy đủ các yêu cầu nghiệp vụ thực tiễn, cung cấp giải pháp chuyển đổi số hữu ích cho công tác tuyển dụng và là tài liệu kỹ thuật có giá trị tham khảo cao cho các nghiên cứu phát triển ứng dụng web full-stack.