Bối cảnh và vấn đề nghiên cứu
Khóa luận tốt nghiệp kỹ sư ngành Công nghệ Thông tin, chuyên ngành Công nghệ Phần mềm với đề tài "Xây dựng website tổng hợp tin tức và ứng tuyển việc làm cho sinh viên IT - NewsCV.Tech" được thực hiện bởi sinh viên Đoàn Thanh Nguyên (MSSV: 19110407) và Lê Trần Thái Nhân (MSSV: 19110414), dưới sự hướng dẫn của ThS. Mai Anh Thơ tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (khóa 2019 – 2023).
Lý do chọn đề tài và bối cảnh thực tiễn
Trong giai đoạn hiện nay, phương thức nộp đơn và phỏng vấn xin việc trực tiếp dần được thay thế bằng hình thức ứng tuyển trực tuyến qua các nền tảng web việc làm. Hình thức này mang lại tính linh hoạt về mặt thời gian, cho phép ứng viên và nhà tuyển dụng trao đổi nhanh chóng. Nhà tuyển dụng có thể sàng lọc ứng viên phù hợp thông qua hồ sơ trực tuyến, trong khi người tìm việc có điều kiện tìm hiểu đầy đủ thông tin doanh nghiệp trước khi nộp đơn.
Số liệu thống kê thực tế được tác giả dẫn chứng trong văn bản cho thấy lưu lượng truy cập hàng tháng vào các nền tảng tuyển dụng trực tuyến tại Việt Nam đạt mức rất cao:
- Cổng thông tin việc làm Vietnamworks đạt 3,1 triệu lượt truy cập/tháng.
- Hệ thống Vn đạt 0,45 triệu lượt truy cập/tháng.
Thực trạng này phản ánh nhu cầu kết nối việc làm qua môi trường số là tất yếu trong bối cảnh công nghệ 4.0. Việc xây dựng một website tuyển dụng chuyên biệt giúp sinh viên ngành Công nghệ thông tin tiếp cận công việc nhanh chóng, hỗ trợ giảm tỷ lệ thất nghiệp và tối ưu hóa thời gian tìm kiếm việc làm.
Mục tiêu và nhiệm vụ nghiên cứu
Mục tiêu tổng quát của đề tài là xây dựng hệ thống website "NewsCV.Tech" nhằm tổng hợp thông tin chuyên ngành và hỗ trợ ứng tuyển việc làm dành riêng cho sinh viên ngành Công nghệ thông tin (IT). Các nhiệm vụ nghiên cứu cụ thể bao gồm:
- Nghiên cứu lý thuyết: Tìm hiểu các công nghệ phát triển phần mềm bao gồm Spring Boot, RESTful API, JSON Web Token (JWT), Angular, TypeScript, HTML, SCSS và hệ quản trị cơ sở dữ liệu MySQL.
- Xây dựng dịch vụ phía máy chủ (Backend): Sử dụng Spring Boot và RESTful API để xử lý nghiệp vụ, giao tiếp dữ liệu với giao diện người dùng. Áp dụng cơ chế Dependency Injection nhằm giảm thiểu sự phụ thuộc giữa các lớp đối tượng.
- Thiết kế cơ sở dữ liệu: Sử dụng MySQL để lưu trữ thông tin người dùng, công ty, tin tuyển dụng, bài viết và đơn ứng tuyển.
- Cơ chế bảo mật và phân quyền: Tích hợp chuẩn JSON Web Token (JWT) để xác thực và phân quyền truy cập hệ thống API một cách rõ ràng.
- Phát triển giao diện người dùng (Frontend): Sử dụng Angular Framework cùng HTML, SCSS để thiết kế các màn hình tương tác thân thiện, hỗ trợ xử lý dữ liệu động.
- Hỗ trợ tạo và quản lý hồ sơ: Cho phép sinh viên tạo hồ sơ xin việc (CV) trực tiếp trên hệ thống theo mẫu có sẵn hoặc tải tệp CV từ máy tính cá nhân.
- Chia sẻ và quản lý thông tin: Hỗ trợ doanh nghiệp đăng bài tuyển dụng, tiếp nhận hồ sơ; hỗ trợ sinh viên cập nhật các tin tức chuyên ngành IT về học bổng, sự kiện và cuộc thi.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Quy trình phân tích, thiết kế, triển khai và kiểm thử hệ thống website ứng tuyển việc làm trực tuyến kết hợp tổng hợp thông tin học thuật/chuyên môn ngành CNTT.
- Phạm vi không gian: Đề tài được nghiên cứu và thực nghiệm 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, hướng đến nhóm đối tượng chính là sinh viên CNTT và các doanh nghiệp công nghệ tuyển dụng.
- Phạm vi thời gian: Đề tài được triển khai trong thời gian từ ngày 07/09/2022 đến ngày 08/07/2023, trải qua hai giai đoạn liên tục:
- Giai đoạn Tiểu luận chuyên ngành: Từ 07/09/2022 đến 28/12/2022 (khảo sát, thiết kế cơ sở dữ liệu, dựng khung mã nguồn, xây dựng API và kiểm thử bước đầu).
- Giai đoạn Khóa luận tốt nghiệp: Từ 17/03/2023 đến 08/07/2023 (tối ưu mã nguồn, hoàn thiện giao diện, bổ sung nghiệp vụ doanh nghiệp, kiểm thử hộp trắng/hộp đen và triển khai).
Cơ sở lý thuyết và phương pháp
Khảo sát hiện trạng các công trình liên quan
Tác giả đã tiến hành khảo sát và đánh giá ưu, nhược điểm của 5 website tuyển dụng và tin tức đang hoạt động tại Việt Nam để rút ra kinh nghiệm thiết kế:
| Tên website |
Các chức năng chính |
Ưu điểm ghi nhận |
Nhược điểm / Kinh nghiệm rút ra |
| CareerBuilder |
Tìm việc làm, tạo CV, tin tức tuyển dụng |
Giao diện sáng, thanh tìm kiếm dễ dùng; sắp xếp công việc rõ ràng; tạo CV theo từng bước hướng dẫn |
Là nền tảng đa ngành nên các yêu cầu kỹ thuật đặc thù ngành IT chưa được thể hiện rõ nét |
| ITviec |
Tìm việc làm IT, tạo và xem blog chuyên ngành |
Giao diện trực quan; thông tin việc làm tóm tắt rõ mức lương, logo, ngôn ngữ lập trình yêu cầu |
Tập trung vào nhóm lập trình viên đã có kinh nghiệm, chưa tích hợp sâu mảng tin tức sinh viên |
| TopCV |
Tìm việc làm, tạo hồ sơ, danh sách công ty |
Bộ lọc tìm kiếm chi tiết; hiển thị danh sách job theo từng công ty; tạo CV trực tiếp trên nền template đa ngôn ngữ |
Cần học hỏi kỹ thuật chỉnh sửa trực tiếp nội dung trên giao diện mẫu CV |
| ItNavi |
Tìm việc làm, đăng tin tuyển dụng, tin tức sự kiện IT |
Bộ lọc tìm kiếm tốt; phần tin tức đi kèm hình ảnh và bình luận |
Chức năng tạo CV còn tương đối phức tạp với nhiều hiệu ứng |
| Ybox |
Tạo CV, tuyển dụng, tin tức học bổng, sự kiện, cuộc thi |
Tạo CV đơn giản (Việt - Anh); tin tức đa dạng chuyên mục phù hợp với giới trẻ và sinh viên |
Cần kế thừa mô hình phân loại tin tức thành ba nhóm: Học bổng, Sự kiện và Cuộc thi |
Từ kết quả khảo sát, nhóm nghiên cứu đã xác định mục tiêu xây dựng một nền tảng chuyên biệt tích hợp: quản lý và tạo CV cho sinh viên, đăng tin tuyển dụng ngành phần mềm, đồng thời quản lý các thông tin học bổng, cuộc thi và hội thảo công nghệ.
Khung lý thuyết và phương pháp thiết kế
- Phương pháp phân tích hướng đối tượng (OOAD): Sử dụng các biểu đồ chuẩn UML để mô hình hóa yêu cầu hệ thống: Biểu đồ ca sử dụng (Use Case Diagram), Biểu đồ tuần tự (Sequence Diagram) và Biểu đồ lớp (Class Diagram).
- Mô hình kiến trúc phân tầng (Layered Architecture): Tách biệt tầng hiển thị (Presentation Layer), tầng xử lý nghiệp vụ (Business Logic Layer) và tầng dữ liệu (Data Access Layer).
- Tiêu chuẩn giao tiếp RESTful API: Định dạng dữ liệu trao đổi giữa Backend và Frontend bằng chuẩn JSON.
- Xác thực phi trạng thái (Stateless Authentication): Sử dụng mã định danh JSON Web Token (JWT) mang thông tin ủy quyền, kết hợp mã xác thực một lần (OTP) gửi qua thư điện tử khi đăng ký tài khoản.
Thiết kế và triển khai hệ thống
Kiến trúc hệ thống
Hệ thống NewsCV.Tech được xây dựng theo mô hình kiến trúc phân tách độc lập giữa máy khách (Client) và máy chủ (Server):
- Tầng Client (Frontend): Được phát triển bằng Angular Framework. Ứng dụng quản lý trạng thái, định tuyến giao diện người dùng và gửi các yêu cầu HTTP/HTTPS không đồng bộ đến tầng Server.
- Tầng Server (Backend): Được phát triển trên nền tảng Java với Spring Boot. Đảm nhiệm chức năng xử lý nghiệp vụ, điều phối luồng dữ liệu, xác thực quyền hạn bằng Spring Security và JWT, xử lý logic gửi email tự động (MailUtils).
- Tầng lưu trữ dữ liệu (Database): Hệ quản trị cơ sở dữ liệu quan hệ MySQL chịu trách nhiệm lưu trữ cấu trúc bảng người dùng, vai trò, hồ sơ ứng tuyển, bài đăng tuyển dụng, gói dịch vụ và các tương tác người dùng.
Công nghệ sử dụng trong đồ án
- Công nghệ Backend: Ngôn ngữ Java, framework Spring Boot, RESTful API, JSON Web Token (JWT), kiến trúc Dependency Injection.
- Công nghệ Frontend: Angular framework, ngôn ngữ TypeScript, HTML, tiền xử lý CSS (SCSS).
- Cơ sở dữ liệu: MySQL.
- Hạ tầng và môi trường triển khai: Nghiên cứu và thử nghiệm triển khai hệ thống trên hai nền tảng điện toán đám mây là Amazon Web Services (AWS) và Microsoft Azure.
Yêu cầu phi chức năng của hệ thống
Hệ thống được thiết kế đáp ứng các chỉ số kỹ thuật quy định trong bảng đặc tả yêu cầu phi chức năng:
- Độ chính xác và tỷ lệ lỗi: Hệ thống phải vận hành ổn định, tỷ lệ phát sinh lỗi trong quá trình xử lý không được vượt quá 5%.
- Thời gian phản hồi: Tốc độ tìm kiếm dữ liệu và hiển thị kết quả tối đa không quá 3 giây.
- Bảo mật và phân quyền: Thiết lập cơ chế kiểm soát truy cập theo vai trò (Role-based Access Control), mã hóa phiên làm việc qua token nhằm ngăn chặn truy cập trái phép từ bên ngoài.
- Tính khả dụng và tiện dụng: Hệ thống hỗ trợ xử lý nhiều người dùng tương tác trực tuyến cùng thời điểm; sao lưu dữ liệu đề phòng sự cố; giao diện thiết kế thân thiện, dễ thao tác với người dùng ở nhiều độ tuổi.
- Tính tiến hóa: Cấu trúc mã nguồn cho phép mở rộng, tích hợp thêm các tính năng mới theo yêu cầu nghiệp vụ của đối tác doanh nghiệp.
Kiểm thử phần mềm
1. Kiểm thử hộp trắng (White-box Testing)
Tác giả đã áp dụng kỹ thuật kiểm thử đơn vị (Unit Test) cho 3 phương thức trọng yếu của mã nguồn Backend, kết hợp xây dựng biểu đồ luồng điều khiển (Control Flow Graph) và phân tích luồng dữ liệu (Data Flow Testing):
- Hàm
ChangePasswordForForget:
Kiểm thử chức năng đổi mật khẩu khi người dùng quên mật khẩu. Phân tích luồng dữ liệu cho các biến: tokenemail, tokennewpass, email, pass, user, acc. Thiết kế các ca kiểm thử để kiểm tra tính hợp lệ của token xác nhận và quá trình ghi đè mật khẩu mới vào cơ sở dữ liệu.
- Hàm
registerUser:
Kiểm thử quy trình đăng ký tài khoản người dùng mới. Phân tích luồng dữ liệu của các biến: username, password, email, roleid, role, acc, user, account, usersEntity, mailUtils. Kiểm tra các nhánh điều kiện: dữ liệu nhập rỗng, định dạng email không đúng, tài khoản đã tồn tại, và quy trình gửi mã xác thực OTP qua email.
- Phương thức
AdminCustomerController.doPost:
Kiểm thử quy trình xử lý yêu cầu quản trị người dùng từ giao diện quản trị viên. Phân tích luồng dữ liệu cho các biến: req, resp, id, idCustomer, users, ban, e. Kiểm thử các kịch bản khóa tài khoản, kích hoạt tài khoản và bắt ngoại lệ hệ thống.
2. Kiểm thử hộp đen (Black-box Testing)
Thực hiện thiết kế và thực thi các bộ kịch bản kiểm thử (Test Cases) dựa trên các ca sử dụng (Use Cases) của hệ thống nhằm kiểm tra chức năng giao diện, tính hợp lệ của dữ liệu đầu vào và các luồng nghiệp vụ thực tế mà không cần can thiệp vào cấu trúc mã nguồn bên trong.
Nội dung chính theo từng chương
Chương 1: Giới thiệu về đề tài
Trình bày tổng quan về hệ thống NewsCV.Tech; phân tích lý do chuyển dịch từ tuyển dụng trực tiếp sang tuyển dụng trực tuyến; công bố số liệu lưu lượng truy cập của các cổng việc làm thực tế tại Việt Nam; xác định mục tiêu tổng thể và phân công nhiệm vụ nghiên cứu trong đồ án.
Chương 2: Khảo sát hiện trạng
Phân tích chi tiết 5 hệ thống web việc làm và tin tức phổ biến (CareerBuilder, ITviec, TopCV, ItNavi, Ybox). Đánh giá thế mạnh và hạn chế của từng hệ thống trong việc hỗ trợ sinh viên công nghệ thông tin. Từ đó, tác giả đúc kết kinh nghiệm thực tiễn để định hình các chức năng cốt lõi cho hệ thống NewsCV.Tech.
Chương 3: Phân tích thiết kế hệ thống
Xác định 4 nhóm tác nhân (Actors) tham gia vào hệ thống và phân định trách nhiệm nghiệp vụ:
- Guest (Khách): Xem danh sách bài viết tin tức, xem danh sách việc làm, xem thông tin chi tiết công ty, đăng ký tài khoản mới và đăng nhập.
- User (Sinh viên / Người tìm việc): Quản lý thông tin cá nhân và tài khoản; tạo CV trực tiếp trên hệ thống hoặc tải lên CV cá nhân; tìm kiếm và nộp đơn ứng tuyển; đăng bài viết tin tức (sự kiện, học bổng, cuộc thi) để chờ quản trị viên duyệt; kích hoạt chức năng nhận thông tin công việc tự động qua email.
- Company (Nhà tuyển dụng): Tạo và quản lý hồ sơ doanh nghiệp; đăng tải và cập nhật tin tuyển dụng; quản lý đơn ứng tuyển của ứng viên (duyệt/từ chối và gửi email tự động); mua các gói dịch vụ tuyển dụng/quảng cáo; thiết lập lịch trình và quy trình phỏng vấn.
- Admin (Quản trị viên hệ thống): Quản lý toàn bộ tài khoản người dùng (cấp quyền, khóa hoặc xóa tài khoản); kiểm duyệt các bài viết tin tức và tin tuyển dụng; quản lý gói quảng cáo; theo dõi báo cáo thống kê doanh thu và lượng tương tác toàn hệ thống.
Chương này cũng thiết lập bảng danh mục yêu cầu chức năng nghiệp vụ, yêu cầu phi chức năng, hệ thống biểu đồ ca sử dụng chi tiết (từ UC-1.1 đến UC-1.5 cho tác nhân Khách, UC-2.1 cho Người dùng...), cùng các biểu đồ tuần tự mô tả quá trình đăng nhập, tìm kiếm việc làm, nộp đơn ứng tuyển và đăng bài viết.
Chương 4: Kiến trúc hệ thống và các công nghệ sử dụng
Mô tả mô hình tổng thể kiến trúc phân tầng; trình bày chi tiết vai trò của Spring Boot, kiến trúc RESTful API, chuẩn token JWT trong việc quản lý phiên người dùng và bảo mật hệ thống; phân tích cấu trúc kết nối cơ sở dữ liệu MySQL và cơ chế hoạt động của Angular phía Frontend.
Chương 5: Giao diện ứng dụng
Tài liệu hóa toàn bộ 40 màn hình giao diện của hệ thống NewsCV.Tech, phân chia theo nhóm chức năng:
- Nhóm người dùng công cộng: Giao diện đăng nhập, đăng ký tài khoản, trang chủ, danh sách công ty, chi tiết công ty, danh sách và chi tiết tin tuyển dụng, danh sách và chi tiết tin học bổng, sự kiện, cuộc thi.
- Nhóm sinh viên: Giao diện quản lý thông tin cá nhân, giao diện tạo và cập nhật bài viết tin tức.
- Nhóm doanh nghiệp: Giao diện đăng nhập/đăng ký cho doanh nghiệp; giao diện quản lý tin tuyển dụng (thêm, sửa, xóa); giao diện quản trị công ty; giao diện đăng ký gói, thanh toán gói dịch vụ; giao diện tạo quy trình phỏng vấn và xem lịch trình phỏng vấn; giao diện thống kê hồ sơ ứng tuyển.
- Nhóm quản trị hệ thống (Admin): Giao diện thống kê tổng quát; thống kê chi tiết theo loại tin tức (tuyển dụng, học bổng, cuộc thi, sự kiện); giao diện thống kê doanh thu theo doanh nghiệp và theo tháng; giao diện kiểm duyệt nội dung và quản lý tài khoản người dùng.
Chương 6: Kiểm thử phần mềm
Trình bày kết quả kiểm thử đơn vị hộp trắng đối với ba hàm xử lý trung tâm: ChangePasswordForForget, registerUser, và AdminCustomerController.doPost. Chương này cung cấp chi tiết mã nguồn phương thức, vẽ biểu đồ luồng điều khiển, lập bảng phân tích luồng dữ liệu cho từng biến và thiết kế các bảng test cases chi tiết. Bên cạnh đó là các kết quả kiểm thử chức năng hộp đen trên giao diện ứng dụng.
Chương 7: Kết quả đạt được & hướng phát triển
Đánh giá tổng kết các tính năng đã hoàn thiện so với mục tiêu đề cương ban đầu; chỉ ra các nhược điểm còn tồn tại của hệ thống và đề xuất phương hướng nâng cấp phần mềm trong tương lai.
Kết quả và đóng góp
Kết quả chính của đề tài
- Xây dựng hoàn chỉnh nền tảng web NewsCV.Tech: Triển khai thành công ứng dụng phân tách hoàn toàn Frontend (Angular) và Backend (Spring Boot), giao tiếp qua hệ thống RESTful API an toàn.
- Quy trình xác thực và an toàn tài khoản:
- Triển khai thành công quy trình đăng ký tài khoản có xác thực bằng mã OTP gửi về email người dùng với thời hạn hiệu lực quy định là 5 phút (Use Case UC-1.1).
- Tích hợp thành công cơ chế quản lý phiên làm việc bằng JSON Web Token (JWT), tự động điều hướng người dùng về trang đăng nhập khi token hết hạn.
- Số hóa quy trình tuyển dụng IT:
- Hỗ trợ ứng viên quản lý CV qua hai phương thức: tạo trực tiếp trên hệ thống thông qua mẫu template hoặc tải tệp hồ sơ cá nhân từ máy tính.
- Triển khai chức năng tìm việc tự động: tự động gửi danh sách công việc phù hợp về hộp thư điện tử của sinh viên định kỳ.
- Doanh nghiệp có thể phân loại, chấp nhận hoặc từ chối hồ sơ ứng viên; hệ thống tự động gửi thư thông báo kết quả đến người nộp đơn.
- Tích hợp mô hình kinh doanh và tin tức chuyên ngành:
- Xây dựng thành công hệ thống các gói dịch vụ đăng tin/quảng cáo dành cho công ty cùng quy trình thanh toán trực tuyến.
- Thiết lập giao diện theo dõi quy trình và lịch trình phỏng vấn ứng viên dành cho nhà tuyển dụng.
- Tích hợp 3 phân hệ tin tức đặc thù: Học bổng, Sự kiện công nghệ và Cuộc thi học thuật, có sự kiểm duyệt chặt chẽ từ quản trị viên.
- Kiểm thử mã nguồn chặt chẽ: Hoàn thành các bảng thiết kế ca kiểm thử hộp trắng cho các hàm trọng yếu thuộc tầng điều khiển và xử lý dữ liệu (
ChangePasswordForForget, registerUser, AdminCustomerController.doPost), kiểm soát chặt chẽ luồng dữ liệu của các biến hệ thống.
Đóng góp so với các nghiên cứu và hệ thống trước
- Khắc phục nhược điểm của các trang tuyển dụng tổng hợp (như CareerBuilder): NewsCV.Tech tập trung toàn bộ cấu trúc dữ liệu, tiêu chí lọc việc làm vào các đặc thù của ngành Công nghệ thông tin (ngôn ngữ lập trình, vị trí kỹ thuật).
- Kết hợp đồng thời tính năng tuyển dụng và cổng thông tin học thuật: Khác với các hệ thống chỉ đơn thuần kết nối việc làm (như ITviec) hoặc mạng xã hội giới trẻ (như Ybox), NewsCV.Tech tạo ra không gian tích hợp giữa tìm việc IT và theo dõi tin tức cuộc thi, học bổng, sự kiện chuyên môn IT trên cùng một hệ thống.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của đề tài
Theo nội dung trình bày của nhóm tác giả trong lời cảm ơn và đề cương khóa luận:
- Giới hạn nhân sự và thời gian: Đề tài có khối lượng công việc tương đối lớn (bao gồm cả phân hệ sinh viên, doanh nghiệp, quản trị, thanh toán và các chuyên mục tin tức), trong khi nhóm thực hiện chỉ gồm 02 sinh viên trong thời gian quy định của khóa luận tốt nghiệp.
- Phạm vi hoàn thiện: Một số nhược điểm kỹ thuật và giới hạn về mặt giao diện/tối ưu mã nguồn vẫn còn tồn tại (được tác giả ghi nhận tại mục 7.2 của Chương 7).
Hướng phát triển
Dựa trên mục tiêu và kế hoạch triển khai đề tài:
- Tiếp tục tối ưu hóa hiệu năng hệ thống để giảm thời gian phản hồi tìm kiếm xuống mức thấp hơn nữa dưới tải lượng người dùng lớn.
- Bổ sung và mở rộng các tính năng hữu ích theo yêu cầu thực tế từ các doanh nghiệp đối tác tuyển dụng.
- Hoàn thiện việc triển khai và tối ưu hóa hạ tầng vận hành trên các nền tảng điện toán đám mây như AWS hoặc Azure.
Giá trị tham khảo
Tài liệu khóa luận "Xây dựng website tổng hợp tin tức và ứng tuyển việc làm cho sinh viên IT - NewsCV.Tech" mang lại giá trị tham khảo học thuật và thực tiễn cho nhiều đối tượng:
- Sinh viên ngành Công nghệ thông tin và Công nghệ phần mềm: Là tài liệu tham khảo hoàn chỉnh về cấu trúc đồ án tốt nghiệp kỹ sư, hướng dẫn cách phân tích nghiệp vụ, mô hình hóa Use Case, thiết kế cơ sở dữ liệu và triển khai kiến trúc Full-stack với Spring Boot và Angular.
- Người nghiên cứu kiến trúc Web API và Bảo mật: Cung cấp tài liệu tham khảo thực tế về việc áp dụng JWT trong phân quyền người dùng, cơ chế xác thực đăng ký tài khoản bằng OTP qua email trong thời hạn 5 phút.
- Người nghiên cứu và thực hành Kiểm thử phần mềm: Chương 6 của tài liệu là ví dụ điển hình về việc thực hành kiểm thử hộp trắng ở mức đơn vị (Unit Test). Sinh viên có thể tham khảo cách vẽ biểu đồ luồng điều khiển (CFG), phân tích luồng dữ liệu cho từng biến trong các hàm Java (
registerUser, doPost), và cách lập bảng ca kiểm thử theo chuẩn học thuật.
Câu hỏi thường gặp
1. Hệ thống NewsCV.Tech bao gồm những nhóm tác nhân nào và quyền hạn cơ bản của họ là gì?
Hệ thống xác định 4 nhóm tác nhân chính:
- Khách (Guest): Xem danh sách bài viết, danh sách việc làm, thông tin công ty, thực hiện đăng ký và đăng nhập tài khoản.
- Người dùng / Sinh viên IT (User): Quản lý hồ sơ cá nhân, tạo CV trực tuyến hoặc tải tệp CV lên, nộp đơn ứng tuyển, đăng ký nhận việc tự động qua email, đăng bài viết tin tức (chờ duyệt).
- Công ty tuyển dụng (Company): Quản lý thông tin doanh nghiệp, đăng tin tuyển dụng, duyệt/từ chối đơn ứng tuyển (gửi email tự động), mua gói dịch vụ, thiết lập quy trình và lịch phỏng vấn.
- Quản trị viên (Admin): Quản lý người dùng (cấp quyền, khóa, xóa tài khoản), kiểm duyệt bài viết và tin tuyển dụng, quản lý gói quảng cáo, theo dõi thống kê doanh thu và báo cáo hệ thống.
2. Quy trình đăng ký tài khoản mới trên hệ thống NewsCV.Tech diễn ra như thế nào?
Theo đặc tả Use Case UC-1.1: Người dùng nhập các thông tin hệ thống yêu cầu và nhấn nút đăng ký. Hệ thống kiểm tra dữ liệu đầu vào; nếu hợp lệ, hệ thống sẽ gửi một mã OTP về email của người dùng. Mã OTP này có thời hạn hiệu lực trong vòng 5 phút. Người dùng nhập mã OTP vào trang web; nếu xác thực thành công, tài khoản mới chính thức được tạo lập trên hệ thống.
3. Các yêu cầu phi chức năng cụ thể về hiệu năng và bảo mật của website là gì?
Hệ thống đặt ra các tiêu chuẩn phi chức năng gồm:
- Tỷ lệ xảy ra lỗi trong quá trình xử lý không được vượt quá 5%.
- Tốc độ xử lý tìm kiếm dữ liệu phải có kết quả tối đa trong vòng 3 giây.
- Hệ thống hỗ trợ xử lý tương tác trực tuyến cho nhiều người dùng cùng lúc.
- Cơ chế bảo mật và phân quyền rõ ràng qua token JWT, tự động hết hạn phiên và điều hướng về trang đăng nhập để ngăn chặn tấn công từ bên ngoài.
- Dữ liệu được lưu trữ, sao lưu định kỳ trên cơ sở dữ liệu MySQL để tránh thất lạc.
4. Nhóm tác giả đã thực hiện kiểm thử hộp trắng cho những thành phần mã nguồn nào?
Tác giả đã thực hiện kiểm thử đơn vị hộp trắng cho 3 phương thức mã nguồn Backend:
- Phương thức
ChangePasswordForForget: Kiểm tra luồng xử lý và dữ liệu của các biến tokenemail, tokennewpass, email, pass, user, acc.
- Phương thức
registerUser: Kiểm tra quy trình đăng ký tài khoản với các biến username, password, email, roleid, role, acc, user, account, usersEntity, mailUtils.
- Phương thức
AdminCustomerController.doPost: Kiểm tra luồng điều khiển của chức năng quản trị viên thao tác khóa/kích hoạt tài khoản với các biến req, resp, id, idCustomer, users, ban, e.
5. Sinh viên có thể tạo hồ sơ xin việc (CV) bằng những cách nào trên website?
Theo phân tích yêu cầu chức năng hệ thống, chức năng quản lý CV cung cấp 2 phương thức:
- Người dùng tải trực tiếp tệp CV có sẵn từ máy tính cá nhân lên hệ thống.
- Người dùng tạo CV trực tiếp trên nền tảng của hệ thống NewsCV.Tech theo các mẫu định dạng được cung cấp sẵn.
Kết luận
Khóa luận "Xây dựng website tổng hợp tin tức và ứng tuyển việc làm cho sinh viên IT - NewsCV.Tech" đã hoàn thành việc thiết kế và xây dựng một giải pháp phần mềm chuyên biệt phục vụ kết nối việc làm và thông tin học thuật cho sinh viên ngành Công nghệ thông tin. Hệ thống được phát triển với kiến trúc tách biệt giữa Spring Boot Backend và Angular Frontend, tích hợp cơ chế xác thực JWT và cơ sở dữ liệu MySQL đồng bộ. Toàn bộ quy trình phân tích ca sử dụng, thiết kế giao diện đa tác nhân và kiểm thử hộp trắng đối với các phương thức xử lý trung tâm đã được nhóm tác giả tài liệu hóa đầy đủ theo đúng phương pháp luận kỹ thuật phần mềm.