Trong thời đại hiện nay, việc làm luôn là một phương thức quan trọng để con người có thể kiếm thu nhập, trang trải cuộc sống hàng ngày. Có được một công việc phù hợp với năng lực, trình độ của bản thân là mong muốn của rất nhiều người. Bên cạnh đó, dưới góc nhìn của các nhà tuyển dụng cũng mong muốn tuyển được ứng viên phù hợp. Do đó tuyển dụng, tìm kiếm việc làm luôn là một trong những vấn đề được quan tâm hàng đầu. Có nhiều cách để tìm kiếm việc làm như tìm kiếm thông qua các kênh thông tin online (Facebook, Linkedin, Topcv…), qua người thân, bạn bè, qua trung tâm giới thiệu việc làm… Đề tài của nhóm chúng em là “Xây dựng Website tuyển dụng việc làm jobhere.tech”. Đây là một công cụ giúp người cần tìm việc có thể tìm thấy việc làm phù hợp với mình, đồng thời cũng là nơi để các nhà tuyển dụng có thể tìm thấy các ứng viên phù hợp.
GIỚI THIỆU ĐỀ TÀI
Tổng quan về đề tài
Trong thời đại hiện nay, việc làm luôn là một phương thức quan trọng để con người có thể kiếm thu nhập, trang trải cuộc sống hàng ngày Có được một công việc phù hợp với năng lực, trình độ của bản thân là mong muốn của rất nhiều người Bên cạnh đó, dưới góc nhìn của các nhà tuyển dụng cũng mong muốn tuyển được ứng viên phù hợp Do đó tuyển dụng, tìm kiếm việc làm luôn là một trong những vấn đề được quan tâm hàng đầu.
Có nhiều cách để tìm kiếm việc làm như tìm kiếm thông qua các kênh thông tin online (Facebook, Linkedin, Topcv…), qua người thân, bạn bè, qua trung tâm giới thiệu việc làm… Đề tài của nhóm chúng em là “Xây dựng Website tuyển dụng việc làm jobhere.tech” Đây là một công cụ giúp người cần tìm việc có thể tìm thấy việc làm phù hợp với mình, đồng thời cũng là nơi để các nhà tuyển dụng có thể tìm thấy các ứng viên phù hợp.
Lý do chọn đề tài
Theo góc nhìn của người tìm việc và nhà tuyển dụng, nhóm nhận thấy nhu cầu về công cụ kết nối hai đối tượng, đáp ứng mục tiêu của mỗi bên Với kiến thức và công cụ đã học, nhóm đã quyết định lựa chọn đề tài "Xây dựng Website tuyển dụng việc làm jobhere.tech" để giải quyết vấn đề này.
Mục tiêu của đề tài
Với mục tiêu ứng dụng kiến thức học được, website tuyển dụng được thiết kế với các tính năng toàn diện Người dùng có thể đăng nhập, đăng ký tài khoản dễ dàng Việc tìm kiếm việc làm trở nên thuận tiện hơn nhờ hệ thống lọc đa dạng, bao gồm lĩnh vực, mức lương, trình độ, vị trí và địa điểm làm việc Ngoài ra, website còn cung cấp thông tin chi tiết về các công ty đăng tuyển, hỗ trợ người dùng đưa ra lựa chọn phù hợp nhất.
Ngoài ra, ở phía người cần tìm việc, họ có thể sử dụng các tính năng như tạo CV, nộp CV ứng tuyển vào vị trí việc làm phù hợp với bản thân. Ở phía nhà tuyển dụng, họ có thể đăng các việc làm cần tuyển, tìm kiếm các ứng viên phù hợp với các vị trí đó Với những ứng viên đã ứng tuyển, nhà tuyển dụng có thể xem thông tin và liên hệ với ứng viên đó.
Trang web này sẽ là một cầu nối giữa các ứng viên và nhà tuyển dụng Nhà tuyển dụng sẽ liên lạc với các ứng viên đã ứng tuyển Các bước tiếp theo trong quy trình tuyển dụng như làm bài test, phỏng vấn… sẽ do nhà tuyển dụng tự đảm trách.
KHẢO SÁT HIỆN TRẠNG
Phân tích đánh giá các công trình
Hiện nay, có rất nhiều website giúp chúng ta có thể tìm việc làm một cách nhanh chóng có thể nhắc đến như topcv.vn, topdev.vn, careerlink.vn, …
Ra đời vào năm 2014, đến nay topcv.vn đã có những thành công nhất định, khi nhắc đến một trang web tìm kiếm việc làm thì mọi người sẽ nghĩ ngay đến topcv Điểm nổi bật của topcv đó là giao diện thân thiện và khá thuận tiện với người dùng Việt Nam Tuy nhiên đây cũng là điểm yếu khi nó không hỗ trợ nhiều ngôn ngữ điều đó dẫn đến việc mất đi một lượng lớn khách hàng tiềm năng Một trong những điểm nổi bật nữa của topcv đó là ở đây có rất nhiều ngành nghề với level từ thấp tới cao, nó giúp người dùng có thể dễ dàng tìm thấy công việc mong muốn một cách dễ dàng hơn Đồng thời, topcv cũng khá chiều người dùng khi hỗ trợ viết cv trên chính trang web với nhiều loại thiết kế cv khác nhau.Tuy nhiên, trang web lại không hỗ trợ nhiều trong việc tương tác giữa người tìm việc với nhà tuyển dụng từ đó khiến việc tìm kiếm việc làm trở nên đứt đoạn sau khi người dùng nộp cv ứng tuyển.
Topdev.vn là một trang web tìm kiếm việc làm nổi tiếng tại Việt Nam chuyên về lĩnh vực IT Trang web này kết nối nhà tuyển dụng và người tìm kiếm việc làm phù hợp trong ngành IT Tuy nhiên, điểm hạn chế của Topdev.vn là chỉ tập trung vào một lĩnh vực, khiến trang web này không thể cạnh tranh với các trang web hỗ trợ nhiều ngành nghề khác nhau.
Ra đời từ năm 2006, có thể thấy careerlink.vn là một trang web có tuổi đời khá lâu so với những trang web khác Chính nhờ việc ra đời sớm mà nó đã được sự tin dùng từ nhiều công ty tập đoàn lớn nhỏ khác nhau, nhờ đó mà người tìm việc có thêm nhiều lựa chọn. Hầu như mọi tính năng của careerlink đều tương tự như topcv tuy nhiên độ phủ sóng của nó lại không bằng topcv một phần là trang web đã ra đời khá lâu và không có sự thay đổi nổi bật so với những trang web sau này.
Kinh nghiệm rút ra
Qua sự phân tích đánh giá các trang web trên ta thấy được rằng mỗi trang web đều có điểm nổi bật riêng của nó và đều có thể đáp ứng được một lượng người dùng nhất định.Tuy nhiên việc tạo ra một trang web tuyển dụng không chỉ nằm ở việc trang web có nhiều ngành nghề thế nào hoặc mức độ nổi tiếng ra sao Mà nó còn cần phải có sự kết hợp giữa nhiều tính năng lại với nhau, cần có sự thay đổi cho phù hợp với thị hiếu người dùng và quan trọng nhất là cần phải có sự tương tác rõ ràng hơn giữa người tuyển dụng và người tìm việc, điều mà rất nhiều các trang web tuyển dụng hiện nay chưa làm được.
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Yêu cầu chức năng hệ thống
3.1.1 Các nghiệp vụ của hệ thống
Website sẽ bao gồm ba nhóm người dùng đó là: người tìm việc, nhà tuyển dụng và quản trị viên hệ thống.
3.1.1.1 Nghiệp vụ của người tìm việc
Người tìm việc là nhóm người dùng chính của trang web Các chức năng chính mà nhóm người dùng có bao gồm chức năng đăng nhập, đăng ký tài khoản, quản lý tài khoản, tìm kiếm các công việc, các công ty trên website và cuối cùng là nộp đơn ứng tuyển vào vị trí thích hợp
3.1.1.2 Nghiệp vụ của nhà tuyển dụng
Song song với người tìm việc nhà tuyển dụng đóng vai trò lớn trong việc tạo ra các công ty, đăng các tin tuyển dụng trên hệ thống và quản lý các tin tuyển dụng này để có thể tìm kiếm và liên lạc được với những người ứng tuyển.
3.1.1.3 Nghiệp vụ của quản trị viên hệ thống
Quản trị viên có trách nhiệm xác nhận các người dùng, các công ty, các tin tuyển dụng được đăng lên hệ thống nhằm đảm bảo tính minh bạch rõ ràng của trang web tránh các trường hợp người dùng tạo các công ty, các tin tuyển dụng giả gây ảnh hưởng đến trang web.
3.1.2.1 Yêu cầu chức năng nghiệp vụ của người tìm việc
Bảng 3.1: Yêu cầu chức năng nghiệp vụ của người tìm việc
STT Yêu cầu Loại YC
Mô tả / Ràng buộc / Công thức
1 Đăng ký tài khoản Lưu trữ
Mỗi email chỉ được đăng ký một lần
Chức năng đăng ký tài khoản
2 Đăng nhập Kết xuất Đã đăng ký tài khoản 3
Xem danh sách các công việc thịnh hành
Xem danh sách các công ty nổi bật
Xem danh sách các công việc mới
Chỉnh sửa thông tin cá nhân
7 Thay đổi password Lưu trữ
8 Tìm kiếm công việc Tra cứu
9 Tìm kiếm công ty Tra cứu
10 Xem thông tin công ty Kết xuất
11 Xem thông tin công việc Kết xuất
12 Upload CV Lưu trữ Đã đăng nhập vào hệ thống
CV đã upload Kết xuất Đã đăng nhập vào hệ thống
14 Xoá CV Lưu trữ Đã đăng nhập vào hệ thống
15 Lưu công việc Lưu trữ Đã đăng nhập vào hệ thống
Lưu lại thông tin công ty để xem lại khi cần thiết
16 Xem danh sách công việc đã
Kết xuất Đã đăng nhập vào hệ thống lưu
17 Ứng tuyển Lưu trữ Đã đăng nhập vào hệ thống Ứng tuyển vào một công việc
Xem lại danh sách công việc đã ứng tuyển
Kết xuất Đã đăng nhập vào hệ thống
Tạo CV từ các mẫu CV của hệ thống
Lưu trữ Đã đăng nhập vào hệ thống
Các CV được tạo ra sẽ có tác dụng tương tự các CV được upload
20 Xem thông báo Kết xuất Đã đăng nhập vào hệ thống
Các thông báo được gửi từ hệ thống hoặc từ nhà tuyển dụng đến cho người dùng
21 Chat với nhà tuyển dụng Lưu trữ Đã đăng nhập vào hệ thống
22 Xem các bài viết Kết xuất
Các bài viết được đăng tải từ các người dùng của hệ thống
23 Đăng bài viết Lưu trữ Đã đăng nhập vào hệ thống
24 Tìm kiếm bài viết Tra cứu
25 Xem kết quả ứng tuyển Kết xuất Đã đăng nhập vào hệ thống
Kết quả ứng tuyển sẽ bao gồm một email với nội dung là ngày phỏng vấn dự tính hoặc lý do từ chối ứng viên
Xem danh sách đánh giá công ty
27 Gửi đánh giá công ty Lưu trữ Đã đăng nhập vào hệ thống
3.1.2.2 Yêu cầu chức năng nghiệp vụ của nhà tuyển dụng
Bảng 3.2: Yêu cầu chức năng nghiệp vụ của nhà tuyển dụng
STT Yêu cầu Loại YC
Mô tả / Ràng buộc / Công thức
1 Đăng nhập Kết xuất Đã đăng ký tài khoản
2 Đăng ký công ty Kết xuất Đã đăng nhập vào hệ thống
3 Xem danh sách công việc Kết xuất Đã đăng nhập vào hệ thống
Danh sách công việc của các công ty do người dùng tạo
4 Xem thông tin công việc Kết xuất Đã đăng nhập vào hệ thống
Công việc do người dùng tạo
5 Xem thông tin công ty Kết xuất Đã đăng nhập vào hệ thống
Công ty do người dùng tạo
Chỉnh sửa thông tin công ty
Lưu trữ Đã đăng nhập vào hệ thống
Công việc do người dùng tạo
Chỉnh sửa thông tin công việc
Lưu trữ Đã đăng nhập vào hệ thống
Công ty do người dùng tạo
8 Xoá công việc Lưu trữ Đã đăng nhập vào hệ thống
Công việc do người dùng tạo
Báo cáo lượt tìm kiếm công ty
Tính toán Đã đăng nhập vào hệ thống
Báo cáo lượt ứng tuyển công ty
Tính toán Đã đăng nhập vào hệ thống
12 Xem danh sách ứng tuyển Kết xuất Đã đăng nhập vào hệ thống
13 Xem thông tin người ứng
Kết xuất Đã đăng nhập vào hệ thống tuyển
14 Tải CV người ứng tuyển Kết xuất Đã đăng nhập vào hệ thống
15 Xem thông báo Kết xuất Đã đăng nhập vào hệ thống
Thông báo từ hệ thống hoặc từ hành động ứng tuyển của người dùng
16 Chat với người tìm việc Lưu trữ Đã đăng nhập vào hệ thống
17 Đánh giá đơn ứng tuyển Lưu trữ Đã đăng nhập vào hệ thống
18 Mua gói sản phẩm Lưu trữ Đã đăng nhập vào hệ thống
Gói sản phẩm giúp mở rộng số lượng công việc nhà tuyển dụng có thể tạo
3.1.2.3 Yêu cầu chức năng nghiệp vụ của quản trị viên hệ thống
Bảng 3.3: Yêu cầu chức năng nghiệp vụ của quản trị viên hệ thống
STT Yêu cầu Loại YC
Mô tả / Ràng buộc / Công thức
1 Đăng nhập Kết xuất Đã đăng ký tài khoản
2 Xem danh sách công ty Kết xuất Đã đăng nhập vào hệ thống
Xem danh sách công ty trên hệ thống
3 Kích hoạt/ khoá công ty Lưu trữ Đã đăng nhập vào hệ thống
Kích hoạt hoặc khoá trạng thái hoạt động của công ty
4 Xem danh sách người dùng Kết xuất Đã đăng nhập vào hệ thống
Xem danh sách người dùng theo quyền
Kích hoạt / khoá người dùng
Lưu trữ Đã đăng nhập vào hệ thống
Kích hoạt hoặc khoá trạng thái hoạt động của người dùng
6 Xem danh sách công việc Kết xuất Đã đăng nhập vào hệ thống
Danh sách công việc của hệ thống
7 Kích hoạt / khoá công việc Lưu trữ Đã đăng nhập vào hệ thống
Kích hoạt hoặc khoá trạng thái hoạt động của công việc 8
Báo cáo lượt truy cập vào hệ thống theo tháng/ ngày
Tính toán Đã đăng nhập vào hệ thống
Báo cáo lượt tạo tài khoản mới theo từng tháng / ngày
Tính toán Đã đăng nhập vào hệ thống
Báo cáo số công việc mới theo tháng / ngày
Tính toán Đã đăng nhập vào hệ thống
3.1.3 Yêu cầu chức năng hệ thống
Bảng 3.4: Yêu cầu chức năng hệ thống
STT Yêu cầu Mô tả / Ràng buộc Ghi chú
Phân quyền đúng và đầy đủ cho ba nhóm người dùng của hệ thống.
- Người tìm việc chỉ thực hiện được các chức năng ở trang của mình gồm: đăng ký; đăng nhập, xem danh sách công ty, công việc; tìm kiếm công ty, công việc; ứng tuyển; lưu công việc
- Nhà tuyển dụng có những quyền của người dùng và các quyền của mình bao gồm quản lý các công ty; quản lý các công việc; quản lý các đơn ứng tuyển; xem báo cáo.
- Quản trị viên có quyền cao nhất hệ thống bao gồm quản lý
- Sao lưu lại dữ liệu database mỗi tháng một lần
3 Ghi nhật ký người dùng
- Ghi lại lịch sử truy cập mỗi khi người dùng đăng nhập vào hệ thống
- Tự động gửi mail khi có sự thay đổi về các thông tin liên quan đến người dùng
3.1.4 Yêu cầu phi chức năng
Bảng 3.5: Yêu cầu phi chức năng hệ thống
T Yêu cầu Loại yêu cầu Ghi chú
1 Giao diện thân thiện dễ nhìn Tính tiện dụng
2 Tốc độ phản hồi của api nhanh < 5s Tính hiệu quả
3 Có hiệu ứng khi người dùng tương tác Tính hiệu quả
Các tương tác thay đổi dữ liệu hệ thống nên sử dụng phương thức
5 Có sự phân tầng ứng dụng ở cả phần Frontend và Backend Tính tiến hoá
6 Dễ dàng nâng cấp khi có yêu cầu Tính tiến hoá
7 Tỉ lệ xảy ra lỗi thấp < 5% Tính hiệu quả
8 Tỉ lệ sai số thấp < 0.05% Tính hiệu quả
9 Tương thích với hầu hết các trình duyệt Tính hiệu quả
10 Dễ dàng thay đổi các cài đặt Tính tiến hoá
Các Actor của hệ thống
Bảng 3.6: Các actor của hệ thống
User (Người tìm việc) Là actor sẽ tương tác nhiều nhất với hệ thống qua các chức năng như đăng nhập, đăng ký, quản lý tài khoản, upload và quản lý cv, tìm kiếm và ứng tuyển vào các công việc đăng trên website
Nhà tuyển dụng đóng vai trò là người tương tác với mọi tính năng trong hệ thống, bao gồm quản lý công ty, tạo tin tuyển dụng, xem danh sách hồ sơ ứng tuyển và trao đổi với ứng viên qua các yêu cầu được gửi đến.
Quản trị viên là người quản lý tổng thể hệ thống với nhiệm vụ quản lý các thành viên, tin tuyển dụng, công ty trong hệ thống Ngoài ra, quản trị viên còn có thể xem các báo cáo liên quan để nắm bắt tình hình hoạt động của hệ thống.
Các Use Case chính của hệ thống
Hình 3.4: Use case tổng quát
Hình 3.5: Use case đăng nhập Đặc tả: Đây là chức năng dùng để xác thực trước khi người dùng có thể sử dụng các tính năng của trang web Chức năng này dùng cho cả User, Recruiter và Admin.
Bảng 3.7: Đặc tả use case đăng nhập
Use Case Id JH_UC-001
Tên Use Case Đăng nhập
Description Giúp một khách hàng truy cập vào hệ thống thông qua email và password.
Pre-Condition(s) - Khách cần có tài khoản đang còn hoạt động
Post-Condition(s) - Khách đăng nhập thành công vào hệ thống.
1 Khách nhập email và password vào biểu mẫu
2 Khi khách nhấn nút SignIn, hệ thống sẽ gửi API SignIn lên Server với param là email và password mà khách đã nhập.
3 Khi đăng nhập thành công, server sẽ trả về token đăng nhập Token này được dùng để kiểm tra trạng thái đăng nhập Khi token hợp lệ, khách sẽ được chuyển tới màn hình chính của trang web.
Alternative Flow Ở bước 3 khi hệ thống xác thực người dùng không tồn tại hoặc thông tin đăng nhập bị sai sẽ thực hiện theo:
1 Hệ thống trả về mã lỗi tương ứng với trường hợp mà khách hàng gặp phải
2 Khách hàng kiểm tra lại thông tin tiến hành chỉnh sửa và đăng nhập lại theo bước hai của luồng sự kiện cơ bản
Trường hợp khi người dùng đã đăng nhập trước vào hệ thống nhưng token chưa hết hạn thì trang web sẽ tự điều hướng người dùng thẳng vào trang chính mà khônh cần thông qua bước đăng nhập
Hình 3.6: Use case đăng ký Đặc tả: Đây là chức năng dùng để đăng ký tài khoản của người dùng Cả người tìm việc và nhà tuyển dụng đều phải đăng ký tài khoản qua chức năng này Quá trình sẽ bao gồm người dùng đăng ký tại form đăng ký, sau đó hệ thống kiểm tra và gửi email kèm mã code xác thực về, cuối cùng người dùng nhập mã code tại ô xác nhận để hoàn tất quá trình đăng ký.
Bảng 3.8: Đặc tả use case đăng ký
Use Case Id JH_UC-002
Tên Use Case Đăng ký
Description Giúp người dùng đăng ký tài khoản bằng email của mình
Pre-Condition(s) - Khách có một tài khoản email còn hoạt động
- Thiết bị của người dùng có thể truy cập được vào trang đăng ký Post-Condition(s) - Thông báo đăng ký tài khoản thành công
1 Khách nhập các thông tin cần thiết và email ở màn hình đăng ký sau đó gửi các thông tin đã nhập lên để đăng ký
4 Hệ thống kiểm tra email của khách nếu chưa tồn tại sẽ gửi email kèm mã code đến email này, nếu không sẽ báo lỗi email đã tồn tại
5 Khách nhận được thông báo nếu thành công sẽ nhập mã code được gửi tới email và gửi lên hệ thống
6 Hệ thống kiểm tra mã code nếu trùng khớp sẽ tạo và kích hoạt tài khoản người dùng và trả thông báo thành công về
Alternative Flow Ở bước 2 khi hệ thống kiểm tra nhận thấy email đã tồn tại thì sẽ thực hiện theo các bước sau
3 Hệ thống trả về thông báo lỗi cho người dùng
4 Người dùng sẽ phải dùng một email khác để đăng ký và thực hiện theo các bước như bước 2 của luồng cơ bản
3.3.4 Use Case tìm kiếm công việc
Hình 3.7: Use case tìm kiếm công việc Đặc tả: Đây là chức năng dùng để giúp người dùng thực hiện việc tìm kiếm các công việc được đăng trên website qua các thao tác thông thường như tìm kiếm bằng các từ khoá, tìm kiếm thông qua các bộ lọc dữ liệu có sẵn từ hệ thống và tìm kiếm thông qua lịch sử tương tác của người dùng (hệ thống sẽ dựa vào những tương tác tìm kiếm từ trước để hiện ra các công việc phù hợp với người dùng).
Bảng 3.9: Đặc tả use case tìm kiếm công việc
Use Case Id JH_UC-003
Tên Use Case Tìm kiếm công việc
Description Giúp người dùng tìm kiếm các công việc theo mong muốn
Post-Condition(s) - Hiện ra danh sách các công việc theo điều kiện tìm kiếm của người dùng
1 Danh sách các công việc dựa theo lịch sử tìm kiếm sẽ mặc định được hiển thị ở trang chính của website trên màn hình người dùng
7 Để tìm kiếm một job bất kỳ người dùng nhập vào ô tìm kiếm nhập từ khoá thích hợp và nhấn tìm kiếm
8 Hệ thống nhận được request sẽ tiến hành truy vấn và trả về danh sách công việc phù hợp
9 Để làm chính xác hơn trong việc tìm kiếm người dùng có thể dùng các bộ lọc dữ liệu để lọc ra các giá trị phù hợp hơn.
3.3.5 Use Case tìm kiếm công ty
Hình 3.8: Use case tìm kiếm công ty Đặc tả: Đây là chức năng giúp người dùng tìm kiếm các công ty qua các từ khoá hoặc filter qua đó có thể dễ dàng tìm kiếm công việc liên quan đến công ty cần tìm
Bảng 3.10: Đặc tả use case tìm kiếm công ty
Use Case Id JH_UC-004
Tên Use Case Tìm kiếm công ty
Description Giúp người dùng tìm kiếm các công ty theo mong muốn
Post-Condition(s) - Hiện ra danh sách các công ty theo điều kiện tìm kiếm của người dùng
1 Để tìm kiếm một công ty bất kỳ người dùng nhập vào ô tìm kiếm nhập từ khoá thích hợp và nhấn tìm kiếm
10 Để làm chính xác hơn trong việc tìm kiếm người dùng có thể dùng các bộ lọc dữ liệu để lọc ra các giá trị phù hợp hơn.
11 Hệ thống nhận được request sẽ tiến hành truy vấn và trả về danh sách công việc phù hợp Alternative Flow Không có
3.3.6 Use Case ứng tuyển công việc
Hình 3.9: Use case ứng tuyển công việc Đặc tả: Đây là chức năng giúp người tìm việc có thể ứng tuyển vào các công việc khi đã tìm kiếm được một công việc phù hợp Để ứng tuyển thì người tìm việc cần có cv qua chức năng tạo CV Sau khi ứng tuyển thì người tìm việc có thể xem lại danh sách công việc đã ứng tuyển để xem tình trạng ứng tuyển và có thể ứng tuyển lại khi cần thiết.
Bảng 3.11: Đặc tả use case ứng tuyển công việc
Use Case Id JH_UC-005
Tên Use Case Ứng tuyển công việc
Description Giúp người tìm việc ứng tuyển vào các công việc phù hợp sau khi đã tìm kiếm
Pre-Condition(s) - Người dùng đã đăng nhập vào hệ thống thành công
Post-Condition(s) - Người dùng ứng tuyển thành công và hiển thị trong danh sách đã ứng tuyển
1 Đầu tiên người tìm việc cần tìm kiếm một công việc phù hợp với bản thân để ứng tuyển
2 Để ứng tuyển người tìm việc có thể chọn vào nút ứng tuyển trên màn hình và chọn CV trong danh sách CV đã tạo (nếu không có CV sẽ không thể ứng tuyển) sau đó nhấn ứng tuyển
3 Hệ thống báo thành công người dùng có thể xem lại việc đã ứng tuyển tại màn hình hiển thị các công việc đã ứng tuyển và có thể thực hiện ứng tuyển lại khi cần thiết Alternative Flow Không có
Khi nhấn ứng tuyển nếu token của người dùng dùng để xác thực trên hệ thống hết hạn thì hệ thống sẽ đẩy người dùng về trang đăng nhập lúc này người dùng cần đăng nhập mới có thể thực hiện các bước ở basic flow
3.3.7 Use Case thêm công việc
Hình 3.10: Use case thêm công việc Đặc tả: Đây là chức năng giúp nhà tuyển dụng tạo các tin tuyển dụng của mình
Bảng 3.12: Đặc tả use case thêm công việc
Use Case Id JH_UC-006
Tên Use Case Thêm công việc
Description Giúp quản trị viên quản lý được các dữ liệu cố định trong hệ thống
Pre-Condition(s) - Người dùng đã đăng nhập vào hệ thống thành công
Post-Condition(s) - Người dùng thực hiện được toàn bộ các chức năng thêm công việc
1 Đầu tiên người tuyển dụng cần chọn trong danh sách công ty mà mình quản lý một công ty mà mình muốn tạo công việc
2 Sau khi đã chọn xong người tuyển dụng thực hiện điền các trường cần thiết cho công việc tại màn hình tạo công việc.
3 Sau khi đã điền xong thông tin người tuyển dụng tiến hành nhấn nút tạo công ty Lúc này hệ thống sẽ tạo mới một công việc trên hệ thống, tuy nhiên công việc này cần được chờ admin kích hoạt thì mới có thể xuất hiện trên hệ thống chính
Khi nhấn thêm công việc nếu token của người dùng dùng để xác thực trên hệ thống hết hạn thì hệ thống sẽ đẩy người dùng về trang đăng nhập lúc này người dùng cần đăng nhập mới có thể thực hiện các bước ở basic flow
3.3.8 Use Case thêm công ty
Hình 3.11: Use case thêm công ty Đặc tả: Đây là chức năng dành riêng cho nhà tuyển dụng khi muốn tạo thêm một công ty để quản lý.
Bảng 3.13: Đặc tả use case thêm công ty
Use Case Id JH_UC-007
Tên Use Case Thêm công ty
Description Giúp nhà tuyển dụng tạo thêm một công ty
Pre-Condition(s) - Đăng nhập tài khoản admin
Post-Condition(s) - Admin thực hiện được các chức năng xem danh sách User, kích hoạt hoặc vô hiệu hoá tài khoản User
1 Nhà tuyển dụng tiến hành di chuyển đến màn hình tạo công việc
4 Sau đó nhà tuyển dụng cần nhập các thông tin cần thiết cho công ty muốn tạo
5 Cuối cùng nhà tuyển dụng nhấn nút tạo công ty, lúc này công ty sẽ được tạo ra trên hệ thống và sẽ trả kết quả về cho nhà tuyển dụng Tuy nhiên, công ty mới tạo cần có sự xác nhận của admin thì mới có thể hiển thị trên trang chính của hệ thống Alternative Flow Không có
Khi nhấn thêm công ty nếu token của người dùng dùng để xác thực trên hệ thống hết hạn thì hệ thống sẽ đẩy người dùng về trang đăng nhập lúc này người dùng cần đăng nhập mới có thể thực hiện các bước ở basic flow
Tính năng cho phép người dùng upload file CV đã chuẩn bị sẵn để ứng tuyển một công việc nào đó lên hệ thống.
Bảng 3.14: Đặc tả use case thêm CV
Use Case Id JH_UC-008
Tên Use Case Thêm CV
Description Giúp người dùng thêm mới một CV
Pre-Condition(s) - Đăng nhập tài khoản User
- User đã có sẵn file CV Post-Condition(s) - User có thể tạo CV
Các Sequence Diagram chính của hệ thống
3.4.1 Sơ đồ tuần tự quá trình đăng nhập
Hình 3.14: Sơ đồ tuần tự quá trình đăng nhập
3.4.2 Sơ đồ tuần tự quá trình đăng ký tài khoản
Hình 3.15: Sơ đồ tuần tự quá trình đăng ký
3.4.3 Sơ đồ tuần tự quá trình tìm kiếm công việc
Hình 3.16: Sơ đồ tuần tự quá trình tìm kiếm công việc
3.4.4 Sơ đồ tuần tự quá trình ứng tuyển
Hình 3.17: Sơ đồ tuần tự quá trình ứng tuyển công việc
3.4.5 Sơ đồ tuần tự quá trình tạo tin tuyển dụng
Hình 3.18: Sơ đồ tuần tự quá trình tạo tin tuyển dụng
3.4.6 Sơ đồ tuần tự quá trình tạo công ty
Hình 3.19: Sơ đồ tuần tự quá trình tạo công ty
Class Diagram
Hình 3.20: Class Diagram tổng quát
3.5.1 Class User Đây là Class dùng để chứa thông tin của người dùng trong hệ thống
Hình 3.21: Cấu trúc class User
3.5.2 Class Company Đây là class dùng để chứa thông tin của một công ty trong hệ thống
Hình 3.22: Cấu trúc class Company
3.5.3 Class Job Đây là class dùng để chứa thông tin của một tin tuyển dụng
Hình 3.23: Cấu trúc class Job
3.5.4 Class CV Đây là class dùng để chứa thông tin của CV
Hình 3.24: Cấu trúc class CV
3.5.5 Class Application Đây là class dùng để chứa thông tin của lần ứng tuyển của một người dùng
Hình 3.25: Cấu trúc class Application
3.5.6 Class Industry Đây là class dùng để chứa thông tin các lĩnh vực nghề nghiệp trong trong hệ thống
Hình 3.26: Cấu trúc class Industry
3.5.7 Class Skill Đây là class dùng để chứa thông tin các kỹ năng trong hệ thống
Hình 3.27: Cấu trúc class Skill
Database Diagram
Mô tả: Đây là bảng dùng để chưa thông tin của người dùng bao gồm cả thông tin cá nhân,thông tin đăng nhập và trạng thái kích hoạt tài khoản của người dùng
Bảng 3.16: Cấu trúc bảng users
Tên cột Kiểu dữ liệu Mô tả user_id INTEGER (Key) Id của từng dòng address VARCHAR Địa chỉ created_date TIMESTAMP Ngày người dùng tham gia date_of_birth DATE Ngày sinh của người dùng email VARCHAR Tình trạng kích hoạt enable BOOL Tình trạng kích hoạt tài khoản fullname VARCHAR Tên người dùng gender VARCHAR Giới tính người dùng image_url VARCHAR Avatar người dùng password VARCHAR Mật khẩu người dùng phone VARCHAR Số điện thoại người dùng
Mô tả: Đây là bảng chứa danh sách các nhóm quyền của hệ thống
Bảng 3.17: Cấu trúc bảng roles
Tên cột Kiểu dữ liệu Mô tả role_id INTEGER (Key) Id của từng dòng role_name VARCHAR Tên của nhóm quyền
Mô tả: Đây là bảng chứa danh sách role của một người dùng
Bảng 3.18: Cấu trúc bảng users_roles
Tên cột Kiểu dữ liệu Mô tả user_role_id INTEGER (Key) Id của từng dòng role_id INTEGER Id của nhóm quyền user_id INTEGER Id của người dùng
Mô tả: Đây là bảng chứa danh sách các công ty trong hệ thống
Bảng 3.19: Cấu trúc bảng companies
Tên cột Kiểu dữ liệu Mô tả company_id INTEGER (Key) Id của từng dòng address VARCHAR Địa chỉ công ty avatar_url VARCHAR Avatar công ty background_url VARCHAR Ảnh bìa công ty company_name VARCHAR Tên công ty created_date TIMESTAMP Ngày tạo công ty description TEXT Mô tả công ty email VARCHAR Email công ty is_active BOOL Trạng thái kích hoạt công ty size VARCHAR Số lượng nhân viên công ty url_company VARCHAR Trang web của công ty
Mô tả: Đây là bảng chứa danh sách người quản lý của công ty
Bảng 3.20: Cấu trúc bảng company_members
Tên cột Kiểu dữ liệu Mô tả company_member_id INTEGER (Key) Id của từng dòng company_id INTEGER Id của công ty user_id INTEGER Id của người dùng
Mô tả: Đây là bảng chưa danh sách cv của một người dùng
Bảng 3.21: Cấu trúc của bảng cvs
The table contains columns for tracking CVs (Curriculum Vitae): `cv_id` (integer, primary key) holds the unique identifier for each CV; `created_date` (timestamp) captures the date of CV creation; `cv_name` (varchar) stores the CV name; `cv_type` (varchar) indicates the CV type; `is_active` (boolean) reflects the activation status; and `user_id` (integer) links the CV to a specific user.
Mô tả: Đây là bảng dùng để chứa thông tin các công việc được đăng trên hệ thống
Bảng 3.22: Cấu trúc bảng jobs
Tên cột Kiểu dữ liệu Mô tả job_id INTEGER (Key) Id của từng dòng address VARCHAR Địa chỉ làm việc benefit VARCHAR Lợi ích khi làm việc created_date TIMESTAMP Ngày tạo công việc description VARCHAR Mô tả công việc end_date DATE Ngày kết thúc ứng tuyển is_active BOOL Trạng thái kích hoạt job_name VARCHAR Tên công việc require VARCHAR Yêu cầu của công việc salary_max FLOAT Lương cao nhất salary_min FLOAT Lương thấp nhất start_date DATE Ngày bắt đầu ứng tuyển title VARCHAR Vị trí tuyển dụng unit VARCHAR Đơn vị lương city_id INTEGER Id của thành phố company_id INTEGER Id của công ty gender VARCHAR Giới tính tuyển
Mô tả: Đây là bảng chứa danh sách kinh nghiệm yêu cầu của công việc
Bảng 3.23: Cấu trúc bảng job_experience
Tên cột Kiểu dữ liệu Mô tả job_id INTEGER Id của công việc experiences VARCHAR Tên của kinh nghiệm
Mô tả: Đây là bảng chứa thông tin loại hình tuyển dụng của công việc
Bảng 3.24: Cấu trúc bảng job_jobtype
Tên cột Kiểu dữ liệu Mô tả job_id INTEGER Id của công việc
Job_types VARCHAR Tên của hình thức làm việc
Mô tả: Đây là bảng chứa thông tin các công việc đã ứng tuyển của người dùng
Bảng 3.25: Cấu trúc bảng applications
Tên cột Kiểu dữ liệu Mô tả application_id INTEGER Id của từng dòng created_date TIMESTAMP Thời gian ứng tuyển cv_url VARCHAR Link của cv is_viewed BOOL Trạng thái đã được xem note VARCHAR Tin nhắn cho nhà tuyển dụng cv_id INTEGER Id của cv job_id INTEGER Id của công việc ứng tuyển user_id INTEGER Id của người ứng tuyển
Mô tả: Đây là bảng chứa danh sách các lĩnh vực nghề nghiệp trong hệ thống
Bảng 3.26: Cấu trúc bảng industries
Tên cột Kiểu dữ liệu Mô tả industry_id INTEGER Id của từng dòng industry_name_en VARCHAR Tên lĩnh vực theo tiếng anh industry_name_vi VARCHAR Tên lĩnh vực theo tiếng việt is_active BOOL Trạng thái kích hoạt
Mô tả: Đây là bảng chứa danh sách các kỹ năng theo lĩnh vực
Bảng 3.27: Cấu trúc bảng skills
Tên cột Kiểu dữ liệu Mô tả skill_id INTEGER Id của từng dòng skill_name_en VARCHAR Tên kỹ năng theo tiếng anh skill_name_vi VARCHAR Tên kỹ năng theo tiếng việt is_active BOOL Trạng thái kích hoạt industry_id INTEGER Id của lĩnh vực
KIẾN TRÚC HỆ THỐNG
Sơ đồ kiến trúc hệ thống
Hình 4.29: Sơ đồ kiến trúc hệ thống
Hệ thống được tổ chức thành các thành phần bao gồm:
- Frontend: nơi chứa giao diện hệ thống giúp tương tác giữa người dùng với hệ thống.
- Backend: nơi cung cấp các API cho tầng Frontend sử dụng.
- Socket Service: nơi cung cấp cơ chế bắn gửi message từ server đến client.
- Kafka: service dùng cho việc nhận message từ Backend và gửi message đến Socket Service.
Worker Service tiến hành các nhiệm vụ hàng ngày trong hệ thống, bao gồm cập nhật trạng thái của các tác vụ khi gói đăng ký hết hạn.
Cách vận hành hệ thống
Hệ thống hoạt động theo mô hình Client-Server cụ thể là cơ chế RESTful API Với mô hình này hệ thống sẽ hoạt động theo cách khi người dùng gửi một yêu cầu lên thì server sẽ xác nhận, xử lý và trả về dữ liệu thích hợp cho yêu cầu đó.
Cấu trúc cơ bản của hệ thống bao gồm 3 tầng:
- Controller: Nơi nhận và xử lý các dữ liệu được gửi lên từ các yêu cầu của người dùng.
- Service: Nơi xử lý các dữ liệu ở mức cao hơn mà Controller không xử lý được
- Repository: Nơi tương tác trực tiếp với cơ sở dữ liệu
Quy trình xử lý một yêu cầu từ phía người dùng cụ thể như sau:
(1) Người dùng gửi yêu cầu
(2) Hệ thống nhận yêu cầu và xác thực qua các lớp filter đầu tiên của hệ thống
(3) Hệ thống xác định yêu cầu được xử lý bởi Controller nào nếu Controller đó yêu cầu phải xác thực người dùng thì yêu cầu chỉ được thông qua nếu có token còn thời hạn sử dụng trên hệ thống.
(4) Yêu cầu được xử lý bởi Controller bao gồm việc xử lý xác nhận các dữ liệu được gửi xuống từ người dùng sau đó gửi đến tầng Service.
(5) Tầng Service tiếp tục xử lý các dữ liệu và gọi đến tầng Repository nếu cần thiết
(6) Dữ liệu được trả về phía người dùng
Chính vì vậy mà cấu trúc hệ thống được chia làm 3 phần bao gồm:
- Frontend: Nơi thể hiện các thành phần giao diện và gửi các yêu cầu đến hệ thống
- Backend: Nơi nhận và xử lý các yêu cầu từ phía frontend
- Database: Nơi lưu trữ dữ liệu của hệ thống
Công nghệ sử dụng
Ngôn ngữ chính được sử dụng để viết phần backend của hệ thống là Java với framework được sử dụng là Spring Framework cụ thể là extension Spring Boot.
Java là một trong những ngôn ngữ lập trình hướng đối tượng hàng đầu thế giới Với sự phát triển không ngừng theo thời gian hiện nay Java hỗ trợ rất nhiều tính năng trong việc phát triển phần mềm máy tính, game và đặc biệt là ứng dụng web.
Spring Framework là framework nổi tiếng của Java nó tích hợp rất nhiều tính năng mà trước đây khi lập trình bằng Java phải mất rất nhiều thời gian để cài đặt Spring Boot là một extension của Spring Framework, nó ra đời nhằm mục đích loại bỏ đi các bước cấu hình phức tạp mà trước đó Spring Framework mắc phải từ đó nâng cao hiệu suất làm việc của lập trình viên.
Về phần frontend, ngôn ngữ chính được sử dụng là Javascript cùng framework khá nổi tiếng hiện nay là ReactJS.
Javascript là một ngôn ngữ được sử dụng phổ biến nhất hiện nay, nhằm mục đích tạo những tương tác trên các trang web.
ReactJS là một framework do Facebook phát triển ra được viết chủ yếu bằng Javascript. Với sự phát triển mạnh mẽ cùng cú pháp đơn giản và thư viện hỗ trợ đa dạng ReactJS là một framework hỗ trợ vô cùng tốt trong quá trình phát triển ứng dụng web.
Database được dùng trong ứng dụng là PostgreSQL
PostgreSQL là một phần mềm mã nguồn mở miễn phí Vì thế mà hệ thống dữ liệu cũng như thư viện làm việc của nó vô cùng phong phú và đa dạng nhờ đó mà lập trình viên có thể dễ dàng sử dụng trong quá trình phát triển ứng dụng.
4.3.4 Messaging Để ứng dụng việc gửi nhận message trong hệ thống nhóm chúng em đã sử dụng Kafka và Socket.
Kafka là một nền tảng stream dữ liệu phân tán Nó là một dự án mã nguồn mở, đã được đóng gói hoàn chỉnh, khả năng chịu lỗi cao và là hệ thống nhắn tin nhanh Vì tính đáng tin cậy của nó, kafka đang dần được thay thế cho hệ thống nhắn tin truyền thống Nó được sử dụng cho các hệ thống nhắn tin thông thường trong các ngữ cảnh khác nhau.
Socket là điểm cuối giao tiếp hai chiều giữa hai chương trình trên mạng, cho phép quá trình gửi tin nhắn đến quá trình khác Đây là công cụ cơ bản để gửi và nhận tin nhắn trong hệ thống dịch vụ vi mô.
Môi trường triển khai
Để chạy được ứng dụng thì cần có môi trường NodeJS để chạy ReactJS và JRE để chạy Java Vì vậy nhóm chúng em đã sử dụng các dịch vụ của AWS để chạy các trang web bao gồm AWS Amplify và Elastic Beanstalk cùng một số dịch vụ khác dành cho việc quản lý tên miền và hosting Kết quả cuối cùng nhóm chúng em đã tạo ra được 3 trang web:
- Trang web cho người dùng: https://jobhere.tech/
- Trang web cho nhà tuyển dụng: https://business.jobhere.tech/
- Trang web cho quản trị viên: https://admin.jobhere.tech/
THIẾT KẾ GIAO DIỆN HỆ THỐNG
Giao diện người dùng (UI)
Trang chính chứa phần lớn giao diện quan trọng của đề tài.
Giao diện trang đăng nhập: Chức năng chính là để người dùng đăng nhập vào hệ thống khi đã có tài khoản hoặc nếu chưa có người dùng có thể di chuyển đến trang đăng ký được đính kèm ngay bên dưới.
Hình 5.30: Giao diện trang đăng nhập
Giao diện trang đăng ký: Giúp người dùng đăng ký tài khoản khi có một email chưa đăng ký trên hệ thống
Hình 5.31: Giao diện trang đăng ký
Giao diện trang home: Nơi hiện một cách chi tiết và đầy đủ nhất về danh sách các công việc cũng như các công ty có trên hệ thống
Hình 5.32: Giao diện trang home
Giao diện trang tìm kiếm việc làm
Hình 5.4: Giao diện trang tìm kiếm việc làm
Giao diện trang quản lý việc làm đã ứng tuyển: Nơi hiển danh sách các công việc đã được ứng tuyển cùng chi tiết tình trạng ứng tuyển của công việc đó.
Hình 5.33: Giao diện trang quản lý việc làm đã ứng tuyển
Giao diện danh sách việc làm đã lưu: Cho biết danh sách các công việc mà người dùng đã lưu trước đó.
Hình 5.34: Giao diện danh sách việc làm đã lưu
Giao diện trang quản lý CV: Nơi giúp người dùng upload các file CV của mình lên cũng như hiển thị các CV đã có sẵn trên hệ thống.
Hình 5.35: Giao diện trang quản lý CV
Giao diện trang tạo CV giúp ta tạo CV nhanh chóng bằng cách sử dụng các mẫu có sẵn Chỉ cần nhập thông tin cần thiết vào mẫu, hệ thống sẽ tự động tạo CV hoàn chỉnh.
Hình 5.36: Giao diện trang tạo CV
Giao diện trang danh sách công ty: Nơi hiện danh sách tất cả công ty có trong hệ thống
Hình 5.37: Giao diện trang danh sách công ty
Giao diện trang danh sách bài viết: Nơi hiện danh sách tất cả bài viết có trong hệ thống
Hình 5.38: Giao diện trang danh sách bài viết
Giao diện trang chi tiết bài viết:
Hình 5.39: Giao diện trang chi tiết bài viết
Giao diện trang tạo bài viết:
Hình 5.40: Giao diện trang tạo bài viết
Giao diện trang cập nhật thông tin người dùng: Nơi người dùng có thể cập nhật lại thông tin cá nhân dễ dàng.
Hình 5.41: Giao diện trang cập nhật thông tin người dùng
Giao diện trang nhắn tin: Nơi người dùng có thể liên lạc với nhà tuyển dụng.
Hình 5.42: Giao diện trang nhắn tin
Giao diện phần thông báo:
Hình 5.43: Giao diện phần thông báo
Giao diện trang đổi mật khẩu: Nơi người dùng có thể cập nhật lại mật khẩu.
Hình 5.44: Giao diện trang đổi mật khẩu
Giao diện trang thông tin công việc: Nơi hiện chi tiết thông của một công việc
Hình 5.45: Giao diện trang thông tin công việc
Giao diện trang thông tin công ty: Nơi hiện chi tiết thông của một công ty
Hình 5.46: Giao diện trang thông tin công ty
5.1.2 Giao diện trang nhà tuyển dụng
Hầu hết những layout của trang này cũng tương tự như trang chính của hệ thống, bên cạnh đó có một số trang riêng biệt:
Giao diện trang chính: Hiển thị thông tin về nhà tuyển dụng.
Hình 5.47: Giao diện trang chính
Giao diện trang quản lý công ty:
Hình 5.48: Giao diện trang quản lý công ty
Giao diện trang chỉnh sửa thông tin công ty:
Hình 5.49: Giao diện trang chỉnh sửa thông tin công ty
Giao diện trang quản lý công việc: Giúp nhà tuyển dụng quản lý được danh sách các công việc của mình theo từng công ty.
Hình 5.50: Giao diện trang quản lý công việc
Giao diện trang tạo công việc:
Hình 5.51: Giao diện trang tạo công việc
Giao diện trang chỉnh sửa thông tin công việc:
Hình 5.52: Giao diện trang chỉnh sửa thông tin công việc
Giao diện trang báo cáo:
Hình 5.53: Giao diện trang báo cáo số lượt xem công việc theo tháng
Hình 5.54: Giao diện trang báo cáo số việc làm theo lĩnh vực
5.1.3 Giao diện trang quản trị viên
Hầu hết những layout của trang này cũng tương tự như trang chính của hệ thống, bên cạnh đó có một số trang riêng biệt:
Giao diện trang quản lý công ty: Hiển thị danh sách tất cả công ty có trong hệ thống Tại đây admin có thể vô hiệu hoá/ kích hoạt công ty có trong danh sách này.
Hình 5.55: Giao diện trang quản lý công ty
Giao diện trang quản lý việc làm: Hiển thị danh sách tất cả việc làm có trong hệ thống.
Tại đây admin có thể vô hiệu hoá/ kích hoạt việc làm có trong danh sách này.
Hình 5.56: Giao diện trang quản lý việc làm
Giao diện trang quản lý người dùng: Hiển thị danh sách tất cả người dùng có trong hệ thống Tại đây admin có thể vô hiệu hoá/ kích hoạt người dùng có trong danh sách này.
Hình 5.57: Giao diện trang quản lý người dùng
Giao diện trang báo cáo hệ thống: Hiển thị lượt truy cập hệ thống theo dạng biểu đồ.
Hình 5.58: Giao diện trang báo cáo hệ thống
Giao diện trang báo cáo công ty: Hiển thị báo cáo liên quan tới công ty bằng dạng biểu đồ: số lượng công ty mới theo tháng, số lượng công ty đang hoạt động.
Hình 5.59: Giao diện trang báo cáo công ty hiển thị số lượng công ty mới theo tháng
Hình 5.60: Giao diện trang báo cáo công ty hiển thị số lượng công ty đang hoạt động
Giao diện báo cáo hiển thị dữ liệu liên quan đến việc làm bằng dạng biểu đồ Báo cáo hiển thị thông tin về số lượng việc làm mới theo tháng, số lượng việc làm đang hoạt động và số lượng việc làm được lọc theo ngày tạo.
Hình 5.61: Giao diện trang báo cáo việc làm hiển thị số lượng việc làm mới theo tháng
Hình 5.62: Giao diện trang báo cáo việc làm hiển thị số lượng việc làm đang kích hoạt
Hình 5.63: Giao diện trang báo cáo việc làm hiển thị số lượng việc làm theo ngày tạo
Giao diện trang báo cáo người dùng: Hiển thị báo cáo người dùng mới theo tháng bằng dạng biểu đồ.
Hình 5.64: Giao diện trang báo cáo người dùng
5.1.4 Giao diện trên ứng dụng di động
Giao diện màn hình đăng nhập:
Hình 5.65: Giao diện màn hình đăng nhập
Giao diện màn hình đăng ký:
Hình 5.66: Giao diện màn hình đăng ký
Giao diện màn hình chính:
Hình 5.67: Giao diện màn hình chính
Giao diện màn hình tìm kiếm việc làm:
Hình 5.68: Giao diện màn hình tìm kiếm việc làm
Giao diện màn hình quản lý việc làm đã ứng tuyển:
Hình 5.69: Giao diện màn hình quản lý việc làm đã ứng tuyển
Giao diện màn hình danh sách việc làm đã lưu:
Hình 5.70: Giao diện màn hình danh sách việc làm đã lưu
Giao diện màn hình quản lý CV:
Hình 5.71: Giao diện màn hình quản lý CV
Giao diện màn hình danh sách công ty:
Hình 5.72: Giao diện màn hình danh sách công ty
Giao diện màn hình danh sách bài viết:
Hình 5.73: Giao diện màn hình danh sách bài viết
Giao diện màn hình chi tiết bài viết:
Hình 5.74: Giao diện màn hình chi tiết bài viết
Giao diện màn hình nhắn tin:
Hình 5.75: Giao diện màn hình nhắn tin
Giao diện màn hình thông báo:
Hình 5.76: Giao diện màn hình thông báo
Giao diện màn hình người dùng:
Hình 5.77: Giao diện màn hình người dùng
Giao diện màn hình cập nhật thông tin người dùng:
Hình 5.78: Giao diện màn hình cập nhật thông tin người dùng
Giao diện màn hình đổi mật khẩu:
Hình 5.79: Giao diện màn hình đổi mật khẩu
Giao diện màn hình thông tin công việc:
Hình 5.80: Giao diện màn hình thông tin công việc
Giao diện màn hình thông tin công ty:
Hình 5.81: Giao diện màn hình thông tin công ty
Giao diện màn hình đánh giá công ty:
Hình 5.82: Giao diện màn hình đánh giá công ty
Trải nghiệm người dùng (UX)
Bảng 5.28: Danh sách yêu cầu cho trải nghiệm người dùng
STT Yêu cầu Độ ưu tiên Ghi chú
Tốc độ xử lý các trang phải nhanh không quá 5 giây đối với điều kiện mạng thông thường
2 Các tương tác với component trên giao MEDIUM diện phải có sự kiện handle, nếu có sự kiện handle phải có biểu tượng con trỏ tại component
Thiết kế giao diện hợp lý, layout không bị chồng lên nhau khi hiện trên các màn hình có kích thước nhỏ
Các tính năng cần có sự nâng cấp, cập nhật theo thời gian để tránh gây sự nhàm chán cho người dùng
Trang web phải đảm bảo không có lỗi trong quá trình chạy dẫn đến lỗi và chết server
KIỂM THỬ PHẦN MỀM
Kiểm thử hộp trắng
1.1.1 Kiểm thử hộp trắng cho hàm đăng ký tài khoản
Mô tả: Đây là hàm có chức năng giúp người dùng đăng ký tài khoản trên hệ thống bằng email cá nhân nếu email chưa được đăng ký, trong đó độ dài email không được dài quá 50 ký tự và mặc định sẽ gán cho người dùng role USER
Hình 6.83: Mã nguồn đơn vị code hàm đăng ký tài khoản
Biểu đồ dòng điều khiển cơ bản:
Hình 6.84: Biểu đồ dòng điều khiển cơ bản của hàm đăng ký tài khoản
Số đường thi hành tuyến tính độc lập: C = 3 + 1 = 4
Các bộ test case cho mỗi đường:
Bảng 6.29: Các bộ test case cho hàm đăng ký tài khoản Đường Dữ liệu Kết quả
1 – 2 – 3 user = new User(tran67666@gmail.com) False
8 user = new User(trannguyen2444@gmail.com)
1 – 2 – 4 – 5 – 6 – 8 user = new User(trannguyen2444@gmail.com) roleOption.isPresent() = false True
User(trannguyen_test_chieu_dai_lon_hon_50_k y tu@gmail.com) False Đồ thị dòng dữ liệu chung:
Hình 6.85: Đồ thị dòng dữ liệu chung của hàm đăng ký tài khoản
1.1.2 Kiểm thử hộp trắng cho hàm tạo công việc
Mô tả: Đây là hàm có chức năng giúp nhà tuyển dụng tạo ra các tin tuyển dụng hay còn gọi là các công việc trên hệ thống
Hình 6.86: Mã nguồn đơn vị code hàm tạo công việc
Biểu đồ dòng điều khiển cơ bản:
Hình 6.87: Biểu đồ dòng điều khiển cơ bản của hàm đăng ký tài khoản
Số đường thi hành tuyến tính độc lập: C = 14 – 12 + 2 = 4
Các bộ test case cho mỗi đường:
Bảng 6.30: Các bộ test case cho hàm tạo công việc Đường Dữ liệu Kết quả
"jobName": "Fresher Software Engineer", "description": "",
"salaryMax": 12, "unit": "VIETNAM", "experiences": ["ONE_YEAR"], "jobTypes": ["FULLTIME"], "companyId": 15,
"address": "02, Tản Viên Street, Ward 2, Tân Bình",
"jobName": "Fresher Software Engineer", "description": "",
"salaryMin": 8, "salaryMax": 12, "unit": "VIETNAM", "experiences": ["ONE_YEAR"], "jobTypes": ["FULLTIME"], "companyId": 15,
"address": "02, Tản Viên Street, Ward 2, Tân Bình",
"jobName": "Fresher Software Engineer", "description": "",
"salaryMin": 8, "salaryMax": 12, "unit": "VIETNAM", "experiences": ["ONE_YEAR"], "jobTypes": ["FULLTIME"], "companyId": 15,
"address": "02, Tản Viên Street, Ward 2, Tân Bình",
"jobName": "Fresher Software Engineer", "description": "",
"salaryMin": 8, "salaryMax": 12, "unit": "VIETNAM", "experiences": ["ONE_YEAR"], "jobTypes": ["FULLTIME"], "companyId": 0,
"address": "02, Tản Viên Street, Ward 2, Tân Bình",
False Đồ thị dòng dữ liệu chung:
Hình 6.88: Đồ thị dòng dữ liệu chung của hàm tạo công việc
1.1.3 Kiểm thử hộp trắng cho hàm lưu công việc
Mô tả: Đây là hàm có chức năng giúp người tìm việc lưu lại thông tin của một công việc để dễ dàng xem lại sau này.
Hình 6.89: Mã nguồn đơn vị code hàm lưu công việc
Biểu đồ dòng điều khiển cơ bản:
Hình 6.90: Biểu đồ dòng điều khiển cơ bản của hàm lưu công việc
Số đường thi hành tuyến tính độc lập: C = 3 + 1 = 4
Các bộ test case cho mỗi đường:
Bảng 6.31: Các bộ test case cho hàm lưu công việc Đường Dữ liệu Kết quả
6 – 7 jobId = 4, token = ‘eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0cm FuNjc2NjZAZ21h aWwuY29tIiwiZXhwIjoxNjY5Mjg3MTQ1LCJpYX Q iOjE2NjkyNjkxNDV9.nReo D3xKHIHCZOyCLVLGNa9- C5qOrdxIyvwJLm8hoGn4wgZk84 j0sHkiVLJJeKQtc9UpeBBLWwaDCySJkhxWQQ’
6 – 8 jobId = 6, token = ‘eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0cm FuNjc2NjZAZ21h aWwuY29tIiwiZXhwIjoxNjY5Mjg3MTQ1LCJpYX Q iOjE2NjkyNjkxNDV9.nReo D3xKHIHCZOyCLVLGNa9- C5qOrdxIyvwJLm8hoGn4wgZk84 j0sHkiVLJJeKQtc9UpeBBLWwaDCySJkhxWQQ’
1 – 2 – 3 – 4 – 8 jobId = 100, token = ‘eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0cm FuNjc2NjZAZ21h aWwuY29tIiwiZXhwIjoxNjY5Mjg3MTQ1LCJpYX Q iOjE2NjkyNjkxNDV9.nReo D3xKHIHCZOyCLVLGNa9- C5qOrdxIyvwJLm8hoGn4wgZk84 j0sHkiVLJJeKQtc9UpeBBLWwaDCySJkhxWQQ’
1 – 2 – 8 jobId = 4, token = ‘’ False Đồ thị dòng dữ liệu chung:
Hình 6.91: Đồ thị dòng dữ liệu chung của hàm lưu công việc
1.1.4 Kiểm thử hộp trắng cho hàm kích hoạt công ty
Mô tả: Đây là hàm có chức năng giúp quản trị viên kích hoạt một công ty khi vừa mới được tạo ra.
Hình 6.92: Mã nguồn đơn vị code hàm kích hoạt công ty
Biểu đồ dòng điều khiển cơ bản:
Hình 6.93: Biểu đồ dòng điều khiển cơ bản của hàm kích hoạt công ty
Số đường thi hành tuyến tính độc lập: C = 3+ 1 = 4
Các bộ test case cho mỗi đường:
Bảng 6.32: Các bộ test case cho hàm kích hoạt công ty Đường Dữ liệu Kết quả
Có lỗi xảy ra trong quá trình connect database
1 – 2 – 8 jobId = 4, token = ‘’ False Đồ thị dòng dữ liệu chung:
Hình 6.94: Đồ thị dòng dữ liệu chung của hàm kích hoạt công ty
Kiểm thử hộp đen
Các test case được thực hiện dựa trên phạm vi kiểm thử nhóm em đã tạo ra được 61 bộ test case theo từng module như sau:
- Module xác thực: 21 bộ test case
- Module công việc: 26 bộ test case
- Module công ty: 8 bộ test case
- Module quản lý: 6 bộ test case
Chi tiết các bộ test case được đính kèm trong đường link sau: https://bom.so/wwyk0N Nhằm tránh tạo ra sự phức tạp cho báo cáo nhóm chúng em xin phép được mô tả 5 bộ test case của hệ thống.
Mô tả Kiểm tra chức năng đăng nhập khi có field bị trống
Tiền điều kiện Truy cập vào trang web và đã vào mục đăng nhập
Các bước thực hiện 1 Để trống 2 filed email và password
Dữ liệu thử Không có
Kết quả mong đợi Hiện ra thông báo yêu cầu không được để field trống
Kết quả thực tế Như mong đợi
Kết luận Test case passed
Bảng 6.34: Test case JH_007 TEST CASE ID JH_007
Mô tả Kiểm thử chức năng đăng ký tài khoản với field email trống
Tiền điều kiện Truy cập vào trang web và đã vào mục đăng ký
Các bước thực hiện 1 Để trống field email
2 Nhập username vào field username
3 Nhập password vào field password
4 Chọn dateOfBirth trong field date of birth
5 Nhập phoneNum vào field phone number
Kết quả mong đợi Hiển thị cảnh báo có field bị trống
Kết quả thực tế Như mong đợi
Kết luận Test case passed
Bảng 6.35: Test case JH_022 TEST CASE ID JH_022
Mô tả Kiểm thử chức năng tìm việc làm bằng từ khoá
Tiền điều kiện Truy cập vào trang web và vào trang chủ
Các bước thực hiện 1 Nhập keyword vào tìm kiếm
Kết quả mong đợi Màn hình hiển thị danh sách những việc làm có chứa keyword “Java” trong tên
Kết quả thực tế Như mong đợi
Kết luận Test case passed
Bảng 6.36: Test case JH_038 TEST CASE ID JH_038
Mô tả Kiểm thử chức năng tạo công việc với thông tin hợp lệ
Tiền điều kiện Truy cập vào trang web business.jobhere.tech, đăng nhập và vào phần quản lý công việc sau đó nhấn tạo công việc
Các bước thực hiện 1 Điền giá trị vào các field tương ứng
Kết quả mong đợi Màn hình hiển thị danh sách những việc làm có chứa keyword “Java” trong tên
Kết quả thực tế Như mong đợi
Kết luận Test case passed
Bảng 6.37: Test case JH_060 TEST CASE ID JH_060
Mô tả Kiểm thử chức năng kích hoạt tài khoản người dùng
Tiền điều kiện Truy cập vào trang web admin.jobhere.tech, đăng nhập và vào phần quản lý người dùng
Các bước thực hiện 1 Nhấn nút kích hoạt của một tài khoản người dùng đang bị vô hiệu hoá
2 Nhấn Yes trên hộp thoại xác nhận
Dữ liệu thử Không có
Kết quả mong đợi Hiển thị thông báo kích hoạt thành công, tài khoản người dùng vừa được kích hoạt chuyển trạng thái từ vô hiệu hoá sang đang kích hoạt
Kết quả thực tế Như mong đợi
Kết luận Test case passed