Tác nhân: Người dùngĐiều kiện trước: Ở trang đăng nhập Điều kiện sau: Đăng nhập thành công Thông báo đăng nhập thành công hoặc thất bại Usecase 02 - Manage Information Usecase: Manage In
Giới thiệu về FPT Software và nhiệm vụ
Giới thiệu FPT Software
FPT Software, hay Công ty TNHH Phần Mềm FPT, chuyên gia công phần mềm tại Việt Nam và quốc tế Được thành lập vào năm 1988, FPT Software hiện có ba trụ sở chính tại Việt Nam cùng với nhiều văn phòng đại diện ở các quốc gia khác trên thế giới.
FPT Software tập trung vào việc gia công phần mềm nhằm đáp ứng nhu cầu phát triển công nghệ thông tin của các công ty phần mềm trong nước và các doanh nghiệp lớn Hơn nữa, công ty còn hướng tới mục tiêu xuất khẩu phần mềm ra toàn cầu.
Kể từ khi thành lập, FPT Software đã khẳng định vị thế là công ty phần mềm hàng đầu tại Việt Nam, chuyên cung cấp dịch vụ tích hợp hệ thống, phân phối và bán lẻ, cùng với các giải pháp Công Nghệ Thông tin và xuất khẩu gia công phần mềm.
FPT là một trong ba nhà cung cấp dịch vụ internet cáp quang hàng đầu tại Việt Nam, khẳng định vị thế vững mạnh trong lĩnh vực viễn thông Đồng thời, FPT cũng dẫn đầu trong lĩnh vực quảng cáo trực tuyến, với trang báo điện tử VNexpress thu hút hơn 42 triệu lượt truy cập mỗi ngày.
Nhiệm Vụ
Thời gian bắt đầu 12/6/2023, kết thúc 12/8/2023.
Địa điểm: công ty FPT Software.
Xây dựng Back- End cho website tuyển dụng.
Thực hiện theo nhóm (10 người).
Chương 1 Giới thiệu cơ quan thực tập và nhiệm vụ
Nội dung thực tập trong tháng 07 và tháng 08
Phần giới thiệu lý thuyết
Xử Lý Exception: a Lý thuyết:
Exception là đối tượng đại diện cho lỗi xảy ra trong quá trình chạy chương trình, có thể do tác động bên ngoài hoặc do mã code tự ném ra Lập trình viên cần "bắt" và "xử lý" các exception này một cách thích hợp, chẳng hạn như đưa ra thông báo lỗi, để tránh việc chương trình bị dừng Để quản lý exception hiệu quả, có thể sử dụng @ControllerAdvice và @ExceptionHandler Mục đích của việc này là đảm bảo chương trình hoạt động liên tục và xử lý lỗi một cách chuyên nghiệp.
Một chương trình cần có cơ chế xử lý ngoại lệ hiệu quả để tránh việc bị ngắt khi xảy ra lỗi Nếu không, các nguồn tài nguyên do hệ thống cấp sẽ không được giải phóng, dẫn đến lãng phí tài nguyên Do đó, việc thu hồi tất cả các nguồn tài nguyên là cần thiết, và điều này chỉ có thể thực hiện được thông qua một cơ chế xử lý ngoại lệ thích hợp.
Mapping Dto – Entity: a Lý Thuyết:
MapStruct là một công cụ tạo mã giúp đơn giản hóa việc ánh xạ giữa các kiểu bean Java thông qua quy ước cấu hình Nó tạo ra mã ánh xạ bằng các lệnh gọi phương thức rõ ràng, đảm bảo hiệu suất cao, an toàn về kiểu chữ và dễ hiểu Ứng dụng của MapStruct rất đa dạng trong việc tối ưu hóa quy trình phát triển phần mềm.
Spring Security JWT: d Lý thuyết:
JSON Web Token (JWT) là một chuẩn mở (RFC 7519) cho phép truyền tải thông tin an toàn giữa các bên thông qua đối tượng JSON Thông tin trong JWT có thể được xác thực và tin tưởng nhờ vào chữ ký số, có thể được ký bằng khóa private (như HMAC) hoặc cặp khóa public/private (như RSA) Một trong những ứng dụng phổ biến của JWT là trong Spring Security.
Yêu cầu mức tổng thể
-Biểu đồ use case tổng quan
Chương 2 Nội dung thực tập trong tháng 7 và tháng 8
- Biểu đồ use case phân rã
Chương 2 Nội dung thực tập trong tháng 7 và tháng 8
Chương 2 Nội dung thực tập trong tháng 7 và tháng 8
Kết quả project Web tuyển dụng việc làm
Đặc tả Use Case
Mục đích: Đăng nhập vào hệ thống
Mô tả: Người dùng đã có tài khoản trên hệ thống có thể đăng nhập để vào hệ thống.
Tác nhân: Người dùng Điều kiện trước: Ở trang đăng nhập Điều kiện sau: Đăng nhập thành công
1 Nhập thông tin đăng nhập vào ô và nhấn đăng nhập
2 Kiểm tra thông tin đăng nhập
Thông báo đăng nhập thành công hoặc thất bại
Mục đích: Xem hoặc cập nhật thông tin
Mô tả: Người dùng có thể xem hoặc thay đổi thông tin của mình
Người dùng cần truy cập vào trang quản lý tài khoản hoặc trang cá nhân để thực hiện thay đổi thông tin Sau khi hoàn tất, hệ thống sẽ thông báo rằng thông tin đã được cập nhật thành công.
Luồng sự kiện chính (Basic flows)
1 Chọn quản lí thông tin (hoặc 2 Chuyển đến trang
Chương 3 Kết quả Project tuyển dụng việc làm là trang cá nhân)
3 Người dùng thay đổi thông tin sau đó nhấn Save thay đổi thông tin
4 Gửi yêu cầu đến máy chủ
5 Lưu thông tin vào hệ thống
Thông báo thay đổi thông tin thành công
Mục đích: Thêm, xem hoặc cập nhật trạng thái tài khoản
Admin có khả năng thêm, xem và cập nhật trạng thái của các tài khoản trong hệ thống Quá trình này diễn ra trên trang Quản lý tài khoản, và sau khi thực hiện, admin sẽ thành công trong việc thêm, cập nhật hoặc xem thông tin tài khoản.
1 Truy cập trang quản lí tài khoản
3 Thực hiện việc Tạo /Xem /Cập nhật trạng thái tài khoản
2 Hiện danh sách tài khoản 4.Gửi yêu cầu đến máy chủ
5 Lưu thông tin vào hệ thống
Thông báo Tạo/Xem/Cập nhật trạng thái tài khoản thành công
Mục đích: Xem các báo cáo
Mô tả: Admin có thể xem các báo cáo
Tác nhân: Admin Điều kiện trước: Đang ở trang Báo cáo Điều kiện sau:
1 Chuyển sang trang Báo cáo 2 Gửi yêu cầu đến máy chủ
3 Hiển thị các báo cáo
Chương 3 Kết quả Project tuyển dụng việc làm
Mục đích: Quản lý vị trí tuyển dụng
Người tuyển dụng sẽ tạo ra các vị trí tuyển dụng mới khi công ty cần, đồng thời có khả năng điều chỉnh thông tin hoặc xóa các vị trí đã tuyển đủ số lượng.
Người tuyển dụng cần truy cập vào trang Quản lý vị trí tuyển dụng để thực hiện các thao tác cần thiết Sau khi hoàn tất, hệ thống sẽ thông báo rằng việc tạo, cập nhật hoặc xóa vị trí tuyển dụng đã thành công.
Luồng sự kiện chính (Basic flows)
1 Truy cập trang Quản lý tuyển dụng
3.Thực hiện việc Tạo/Xem/Cập nhật trạng thái tài khoản
4.Điền các thông tin cần thiết về vị trí cần tuyển.
2 Hiển thị trang quản lý tuyển dụng
5 Gửi thông tin yêu cầu cập nhật điểm tới server
6 Hiển thị thông báo kết quả thành công
Mục đích: Xem danh sách các vị trí tuyển dụng đang có
Mô tả: Tất cả mọi người có thể xem những vị trí tuyển dụng đang được mở
Tác nhân: Tất cả các tác nhân Điều kiện trước: Truy cập vào trang chủ Điều kiện sau: Xem được danh sách vị trí tuyển dụng đang mở
2 Lấy thông tin các vị trí tuyển dụng đang mở được giao từ server.
3 Hiển thị các vị trí tuyển dụng đang mở được giao.
Mục đích: Quản lý các CV của người tìm việc
Người tìm việc có khả năng tạo và chỉnh sửa các CV đã lưu trong hệ thống Để thực hiện điều này, họ cần truy cập vào trang Quản lý CV Sau khi hoàn tất chỉnh sửa, hệ thống sẽ cập nhật CV thành công.
Luồng sự kiện chính (Basic Người dùng Hệ thống
Chương 3 Kết quả Project tuyển dụng việc làm flows)
1 Chọn Mục quản lý CV.
3 Có thể thêm xóa hoặc sửa
CV và bấm xác nhận.
2 Hiển thị Quản lý CV
4 Gửi thông tin yêu cầu tới server
5 Hiển thị thông báo kết quả thành công
Mục đích: Thay mật khẩu khi người dùng quên.
Mô tả: Người dùng khi quên mật khẩu sẽ được thay đổi mật khẩu dựa theo cơ chế của hệ thống.
Tác nhân: Người dùng Điều kiện trước: Đang ở trang Quên mật khẩu Điều kiện sau: Hệ thống thay đổi mật khẩu thành công
1 Chọn quên mật khẩu ở màn hình đăng nhập
3 Điền thông tin cần thiết để thay đổi mật khẩu.
2 Hiển thị Giao diện quên mật khẩu.
4 Gửi thông tin yêu cầu thay đổi mật khẩu tới server
5 Hiển thị thông báo kết quả thành công.
Mục đích: Để cho người dùng đăng xuất khỏi hệ thống
Mô tả: Người dùng sau khi đăng nhập hệ thống và sau đó muốn thoát khỏi hệ thống sẽ bấm vào nút đăng xuất trên hệ thống
Tác nhân: User Điều kiện trước: Đã đăng nhập thành công Điều kiện sau: Thông báo đã đăng xuất thành công
2 Gửi yêu cầu đến server
3 Thông báo đã đăng xuất thành công.
Chương 3 Kết quả Project tuyển dụng việc làm
Mục đích: Xem lịch sử các cuộc phỏng vấn
Mô tả: Người Phỏng vấn (Interviewer) sau khi đăng nhập sẽ thấy được các lịch sử cuộc phỏng vấn
Người dùng đã đăng nhập thành công và truy cập vào trang Lịch sử phỏng vấn sẽ thấy hệ thống hiển thị lịch sử các cuộc phỏng vấn của họ.
Luồng sự kiện chính (Basic flows)
2 Vào phần Lịch sử phỏng vấn
3 Hiển thị lịch sử các cuộc phỏng.
Mục đích: Quản lý các sự kiện
Người tuyển dụng sau khi đăng nhập thành công sẽ truy cập vào phần quản lý sự kiện, nơi họ có thể tạo mới, cập nhật và xóa các sự kiện một cách dễ dàng.
Tác nhân: Người tuyển dụng (Recruiter) Điều kiện trước: Đang ở trang Quản lý sự kiện Điều kiện sau: Hệ thống tạo mới/cập nhật/xóa sự kiện thành công
1 Chọn Mục quản lý sự kiện.
3 Có thể thêm xóa hoặc sửa sự kiện và bấm xác nhận.
2 Hiển thị Quản lý sự kiện
4 Gửi thông tin yêu cầu tới server
5 Hiển thị thông báo kết quả thành công
Mục đích: Quản lý các sự kiện
Sau khi đăng nhập thành công, người tuyển dụng có thể truy cập vào phần quản lý sự kiện để tạo, cập nhật và xóa các sự kiện mới một cách dễ dàng.
Tác nhân: Người tuyển dụng (Recruiter) Điều kiện trước: Đang ở trang Quản lý sự kiện
Chương 3 Kết quả Project tuyển dụng việc làm Điều kiện sau: Hệ thống tạo mới/cập nhật/xóa sự kiện thành công
1 Chọn Mục quản lý sự kiện.
3 Có thể thêm xóa hoặc sửa sự kiện và bấm xác nhận.
2 Hiển thị Quản lý sự kiện
4 Gửi thông tin yêu cầu tới server
5 Hiển thị thông báo kết quả thành công
Usecase 13 - Setup Date and Time
Usecase: Setup Date and Time
Mục đích: Lên lịch cho cuộc phỏng vấn
Mô tả: Người tuyển dụng tiến hành lên lịch cho cuộc phỏng vấn khi quyết định tạo một cuộc phỏng vấn cho ứng viên
Tác nhân: Người tuyển dụng Điều kiện trước: Trong mục Create Interview (USECASE 18) Điều kiện sau:
Luồng sự kiện chính Người dùng Hệ thống
1 Người tuyển dụng đang trong form Create Interview
2 Chọn thời gian thích hợp trong ô input Datetime Picker
Mục đích: Chọn người hỗ trợ phỏng vấn
Mô tả: Người tuyển dụng có thể chọn người hỗ trợ phỏng vấn khi tạo một cuộc phỏng vấn
Tác nhân: Người tuyển dụng Điều kiện trước: Trong mục Create Interview (USECASE 18) Điều kiện sau:
1 Người tuyển dụng đang trong form Create Interview
4 Chọn người hỗ trợ phỏng vấn
2 Lấy thông tin những người hỗ trợ phỏng vấn.
3 Hiển thị thông tin những người hỗ trợ phỏng vấn
Chương 3 Kết quả Project tuyển dụng việc làm
Mục đích: Từ chối cuộc phỏng vấn đối với một ứng viên
Người tuyển dụng sẽ từ chối cuộc phỏng vấn đối với một ứng viên sau khi xem xét hồ sơ của họ trên màn hình "View Applied Candidate" (USECASE 19) Sau khi thực hiện thao tác từ chối, hệ thống sẽ thông báo rằng cuộc phỏng vấn đã được từ chối thành công.
1 Nhấn nút “Reject” đối với một ứng viên
2 Gửi thông tin yêu cầu cập nhật trạng thái của ứng viên
3 Hiển thị thông báo thành công
Mục đích: Xem trạng thái của các cuộc phỏng vấn
Mô tả: Người tuyển dụng (Recruiter) vào xem trạng thái của các cuộc phỏng vấn trong chi tiết vị trí tuyển dụng
Người tuyển dụng sẽ xem danh sách các ứng viên trong trang Xem danh sách các ứng viên (USECASE 19) và sau đó, trạng thái phỏng vấn của thí sinh sẽ được hiển thị rõ ràng.
1 Truy cập vào trang Xem danh sách các ứng viên (USECASE 19)
2 Lấy thông tin các cuộc phỏng vấn từ server.
3 Hiển thị các cuộc phỏng vấn với trạng thái.
Mục đích: Thêm link meet đối với một cuộc phỏng vấn
Người tuyển dụng muốn thêm liên kết cuộc họp cho một cuộc phỏng vấn trực tuyến Điều này xảy ra trong quá trình tạo cuộc phỏng vấn, đảm bảo rằng tất cả thông tin cần thiết được cung cấp để thuận tiện cho ứng viên tham gia phỏng vấn.
Chương 3 Kết quả Project tuyển dụng việc làm
1 Đang trong form Create interview (USECASE 18)
2 Nhập link meet cho buổi phỏng vấn
Mục đích: Thiết lập buổi phỏng vấn cho ứng viên
Người tuyển dụng có khả năng thiết lập buổi phỏng vấn ngay sau khi xem danh sách các ứng viên đã nộp hồ sơ.
Nhấn vào nút “Create Interview” trên trang xem danh sách ứng viên đã nộp hồ sơ để bắt đầu quy trình phỏng vấn Điều kiện cần thiết là bạn phải đang ở trang Xem danh sách ứng viên (USECASE 19) Sau khi thực hiện, hệ thống sẽ thông báo rằng buổi phỏng vấn đã được tạo thành công.
Luồng sự kiện chính (Basic
1 Hệ thống lọc ra những ngày và giờ còn trống chưa xếp lịch phỏng vấn.
2 Hệ thống lọc ra người hỗ trợ phỏng phỏng vấn
6 Bấm nút “Create” vấn phù hợp với tiêu chí
7 Hiển thị thông báo kết quả thành công
Luồng sự kiện ngoại lệ
4a Hệ thống không tìm được người hỗ trợ phỏng vấn phù hợp.
Mục đích: Xem danh sách ứng viên đã nộp hồ sơ
Mô tả: Admin, người tuyển dụng (recruiter) có thể vào xem danh sách ứng viên đã nộp hồ sợ Tác nhân: Admin, người tuyển dụng (recruiter)
Khi người dùng truy cập vào trang Chi tiết vị trí tuyển dụng (USECASE 20), điều kiện tiên quyết là hệ thống cần hiển thị thành công danh sách các ứng viên đã nộp hồ sơ.
Luồng sự kiện chính (Basic
1 Bấm vào “View” của mục tuyển dụng cần xem trong trang xem danh sách tuyển dụng (homepage) của recruiter.
2 Hệ thống hiển thị danh sách các ứng viên đã nộp hồ sơ trong mục tuyển dụng đã chọn.
Chương 3 Kết quả Project tuyển dụng việc làm
Usecase 20 - View Recruitment Position Detail
Usecase: View Recruitment Position Detail
Mục đích: Xem thông tin chi tiết của vị trí cần tuyển dụng
Mô tả: Admin, người tuyển dụng (recruiter), ứng viên (candidate), người dùng thông thường có thể vào xem thông tin chi tiết của vị trí cần tuyển dụng
Tác nhân: Admin, người tuyển dụng (recruiter), ứng viên (candidate), người dùng
(user) Trigger: Điều kiện trước:
- Nhấn vào nút “View” trong trang xem danh sách tuyển dụng (homepage) của recruiter đối với recruiter và admin.
- Nhấn vào nút “Apply” tại trang main homepage đối với ứng viên (candidate) và người dùng thông thường Điều kiện sau:
- Hệ thống hiển thị thành công thông tin chi tiết của vị trí cần tuyển dụng đã chọn.
1 Bấm vào “View” của mục tuyển dụng cần xem trong trang xem danh sách tuyển dụng (homepage) của recruiter hoặc “Apply” tại main homepage tùy vào phân quyền người dùng
2 Hệ thống hiển thị thông tin chi tiết của vị trí cần tuyển dụng đã chọn
Mục đích: Gửi CV cho nhà tuyển dụng
Yêu cầu bảo mật
1.6.1 Mô tả đầy đủ về nhiệm vụ và chức năng của người dùng
1.6.1.1 Người dùng hệ thống (Users)
Hệ thống Phát triển Tuyển dụng sẽ hỗ trợ các loại người dùng sau:
Quản trị viên là người dùng có quyền cao nhất trong hệ thống, có khả năng quản lý và giám sát tài khoản người dùng khác Họ có thể xem và thay đổi thông tin của tất cả các ứng viên và vị trí tuyển dụng, đồng thời thực hiện các tác vụ quản lý hệ thống và cấu hình chung của ứng dụng.
Nhà quản lý tuyển dụng là người chịu trách nhiệm quản lý toàn bộ quy trình tuyển dụng cho các vị trí trong bộ phận hoặc phòng ban của họ Họ có quyền thêm, sửa đổi hoặc xóa các vị trí tuyển dụng, đồng thời duyệt các ứng viên và gửi lời mời phỏng vấn.
Nhân viên phỏng vấn (Interviewer) là người thuộc bộ phận nhân sự, có trách nhiệm truy cập và quản lý thông tin ứng viên, theo dõi tiến độ tuyển dụng, cũng như lưu trữ hồ sơ của nhân viên mới được tuyển dụng.
Ứng viên trong quá trình tuyển dụng là người dùng có khả năng tạo hồ sơ cá nhân, tìm kiếm và nộp đơn cho các vị trí tuyển dụng Họ cũng có thể theo dõi tiến độ ứng tuyển và cập nhật thông tin cá nhân một cách dễ dàng.
1.6.2 Quyền và hạn chế của người dùng
Quản trị viên có quyền tạo, sửa đổi và xóa tài khoản người dùng khác trong hệ thống.
Có quyền truy cập và quản lý toàn bộ thông tin của tất cả ứng viên và các vị trí tuyển dụng trong hệ thống.
Có khả năng cấu hình các thiết lập hệ thống và quản lý các tùy chọn giao diện người dùng.
1.6.2.2 Nhà quản lý tuyển dụng (Recruitment Manager)
Nhà quản lý tuyển dụng có quyền tạo và quản lý các vị trí tuyển dụng trong phòng ban hoặc bộ phận của họ.
Có thể duyệt và quản lý danh sách ứng viên cho các vị trí tuyển dụng của họ.
Có quyền gửi lời mời tham gia phỏng vấn và thực hiện các hoạt động tuyển dụng cho các ứng viên.
1.6.2.3 Nhân viên phỏng vấn (Interviewer)
Nhân viên nhân sự có quyền xem và quản lý các thông tin ứng viên trong quá trình tuyển dụng.
Có quyền cập nhật và lưu trữ thông tin về nhân viên mới được tuyển dụng.
Không có quyền truy cập thông tin của các bộ phận khác ngoài bộ phận nhân sự.
Ứng viên có quyền tạo và cập nhật hồ sơ cá nhân của họ.
Có quyền tìm kiếm và ứng tuyển vào các vị trí tuyển dụng phù hợp.
Có thể theo dõi tiến độ ứng tuyển và tham gia các bước trong quá trình tuyển dụng.
Hệ thống sẽ triển khai các biện pháp bảo mật nghiêm ngặt nhằm bảo vệ thông tin người dùng và dữ liệu Mỗi người dùng sẽ được cấp quyền truy cập rõ ràng, được kiểm soát chặt chẽ để ngăn chặn truy cập trái phép vào thông tin nhạy cảm Ngoài ra, hệ thống sẽ cung cấp tính năng đăng nhập bảo mật và mã hóa dữ liệu, đảm bảo rằng thông tin người dùng luôn được bảo vệ an toàn.
Chương 3 Kết quả Project tuyển dụng việc làm
+ Api login có sử dụng Spring JWT, khi đăng nhập thì sẽ trả về 1 token access token và 1 refesh token
Chương 3 Kết quả Project tuyển dụng việc làm
- Update thông tin của interviewer:
- Lấy các danh sách phỏng vấn mà người này phỏng vấn:
- Thêm các câu hỏi vào cuộc phỏng vấn:
- Ghi điểm và câu trả lời cho câu trả lời:
- Lấy các cuộc phỏng vấn đã hoàn thành của người tuyển dụng:
Chương 3 Kết quả Project tuyển dụng việc làm
Link Source code: Source_code_team2.zip
Link Source Database: Data SQL.zip
Chương 4 Source code Website Tuyển dụng việc làm.
Kiến thức đạt được
Nắm vững kiến thức Java Core
Hiểu về Framework Spring Boot
Hiểu về Spring Data Jpa
Sử dụng Api google để đăng nhập và tạo Calendar
Bảo mật và phân quyền
Hiệu quả sử dụng tối ưu Git, kinh nghiệm làm việc nhóm
Kết Quả Project
Tên: Back-End Website tuyển dụng việc làm
Đáp ứng được các task của mentor và phát triển thêm đề tài