1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech

115 3 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Hệ Thống Tuyển Dụng Việc Làm Đa Nền Tảng Jobhere.Tech
Tác giả Lại Quang Phát, Trần Nhất Quang
Người hướng dẫn ThS. Mai Anh Thơ
Trường học Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại khóa luận tốt nghiệp kỹ sư CNTT
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 115
Dung lượng 10,47 MB
File đính kèm SourceCode.rar (25 MB)

Cấu trúc

  • CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI (15)
    • 1.1. Tổng quan về đề tài (15)
    • 1.2. Lý do chọn đề tài (15)
    • 1.3. Mục tiêu của đề tài (15)
  • CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG (17)
    • 2.1. Phân tích đánh giá các công trình (17)
      • 2.1.1. Topcv (17)
      • 2.1.2. Topdev (18)
      • 2.1.3. Careerlink (19)
    • 2.2. Kinh nghiệm rút ra (19)
  • CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG (20)
    • 3.1. Yêu cầu chức năng hệ thống (20)
      • 3.1.1. Các nghiệp vụ của hệ thống (20)
        • 3.1.1.1. Nghiệp vụ của người tìm việc (20)
        • 3.1.1.2. Nghiệp vụ của nhà tuyển dụng (20)
        • 3.1.1.3. Nghiệp vụ của quản trị viên hệ thống (20)
      • 3.1.2. Yêu cầu chức năng (20)
        • 3.1.2.1. Yêu cầu chức năng nghiệp vụ của người tìm việc (20)
        • 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 (24)
      • 3.1.3. Yêu cầu chức năng hệ thống (25)
      • 3.1.4. Yêu cầu phi chức năng (26)
    • 3.2. Các Actor của hệ thống (26)
    • 3.3. Các Use Case chính của hệ thống (27)
      • 3.3.1. Use Case tổng quát (27)
      • 3.3.2. Use Case đăng nhập (28)
      • 3.3.3. Use Case đăng ký (28)
      • 3.3.4. Use Case tìm kiếm công việc (30)
      • 3.3.5. Use Case tìm kiếm công ty (32)
      • 3.3.6. Use Case ứng tuyển công việc (32)
      • 3.3.7. Use Case thêm công việc (33)
      • 3.3.8. Use Case thêm công ty (34)
      • 3.3.9. Use Case thêm CV (35)
      • 3.3.10. Use Case báo cáo hệ thống (36)
    • 3.4. Các Sequence Diagram chính của hệ thống (38)
      • 3.4.1. Sơ đồ tuần tự quá trình đăng nhập (38)
      • 3.4.2. Sơ đồ tuần tự quá trình đăng ký tài khoản (39)
      • 3.4.3. Sơ đồ tuần tự quá trình tìm kiếm công việc (40)
      • 3.4.4. Sơ đồ tuần tự quá trình ứng tuyển (40)
      • 3.4.5. Sơ đồ tuần tự quá trình tạo tin tuyển dụng (41)
      • 3.4.6. Sơ đồ tuần tự quá trình tạo công ty (42)
    • 3.5. Class Diagram (43)
      • 3.5.1. Class User (44)
      • 3.5.3. Class Job (46)
      • 3.5.4. Class CV (47)
      • 3.5.5. Class Application (47)
      • 3.5.6. Class Industry (48)
      • 3.5.7. Class Skill (48)
    • 3.6. Database Diagram (49)
      • 3.6.1. Bảng users (49)
      • 3.6.2. Bảng roles (50)
      • 3.6.3. Bảng users_roles (50)
      • 3.6.4. Bảng companies (50)
      • 3.6.5. Bảng company_members (51)
      • 3.6.6. Bảng cvs (51)
      • 3.6.7. Bảng jobs (51)
      • 3.6.8. Bảng job_experience (51)
      • 3.6.9. Bảng job_jobtype (52)
      • 3.6.10. Bảng applications (53)
      • 3.6.11. Bảng industries (53)
      • 3.6.12. Bảng skills (53)
  • CHƯƠNG 4: KIẾN TRÚC HỆ THỐNG (54)
    • 4.1. Sơ đồ kiến trúc hệ thống (54)
    • 4.2. Cách vận hành hệ thống (54)
    • 4.3. Công nghệ sử dụng (55)
      • 4.3.1. Backend (55)
      • 4.3.2. Frontend (55)
      • 4.3.4. Messaging (56)
    • 4.4. Môi trường triển khai (56)
  • CHƯƠNG 5: THIẾT KẾ GIAO DIỆN HỆ THỐNG (57)
    • 5.1. Giao diện người dùng (UI) (57)
      • 5.1.1. Giao diện trang chính (57)
      • 5.1.2. Giao diện trang nhà tuyển dụng (66)
      • 5.1.3. Giao diện trang quản trị viên (70)
      • 5.1.4. Giao diện trên ứng dụng di động (75)
    • 5.2. Trải nghiệm người dùng (UX) (93)
  • CHƯƠNG 6: KIỂM THỬ PHẦN MỀM (95)
    • 6.1. Kiểm thử hộp trắng (95)
      • 6.1.1. Kiểm thử hộp trắng cho hàm đăng ký tài khoản (0)
      • 6.1.2. Kiểm thử hộp trắng cho hàm tạo công việc (0)
      • 6.1.3. Kiểm thử hộp trắng cho hàm lưu công việc (0)
      • 6.1.4. Kiểm thử hộp trắng cho hàm kích hoạt công ty (0)
    • 6.2. Kiểm thử hộp đen (109)
  • CHƯƠNG 7: KẾT LUẬN (113)
    • 7.1. Những điều đạt được (113)
    • 7.2. Ưu điểm (113)
    • 7.3. Nhược điểm (113)
    • 7.4. Hướng phát triển (114)
  • TÀI LIỆU THAM KHẢO..............................................................................................106 (115)

Nội dung

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

Ngày đăng: 02/11/2023, 19:58

HÌNH ẢNH LIÊN QUAN

Hình 2.3: Trang web Careerlink - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 2.3 Trang web Careerlink (Trang 19)
Hình 3.4: Use case tổng quát - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 3.4 Use case tổng quát (Trang 27)
Hình 3.6: Use case đăng ký - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 3.6 Use case đăng ký (Trang 29)
Hình 3.7: Use case tìm kiếm công việc - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 3.7 Use case tìm kiếm công việc (Trang 30)
Hình 3.8: Use case tìm kiếm công ty - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 3.8 Use case tìm kiếm công ty (Trang 32)
Hình 3.9: Use case ứng tuyển công việc - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 3.9 Use case ứng tuyển công việc (Trang 33)
Hình 3.11: Use case thêm công ty - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 3.11 Use case thêm công ty (Trang 35)
Hình 3.14: Sơ đồ tuần tự quá trình đăng nhập - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 3.14 Sơ đồ tuần tự quá trình đăng nhập (Trang 38)
3.4.2. Sơ đồ tuần tự quá trình đăng ký tài khoản - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
3.4.2. Sơ đồ tuần tự quá trình đăng ký tài khoản (Trang 39)
3.4.6. Sơ đồ tuần tự quá trình tạo công ty - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
3.4.6. Sơ đồ tuần tự quá trình tạo công ty (Trang 42)
Hình 3.20: Class Diagram tổng quát - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 3.20 Class Diagram tổng quát (Trang 43)
Hình 3.28: Database diagram - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 3.28 Database diagram (Trang 49)
Hình 5.37: Giao diện trang danh sách công ty - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 5.37 Giao diện trang danh sách công ty (Trang 62)
Hình 5.43: Giao diện phần thông báo - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 5.43 Giao diện phần thông báo (Trang 65)
Hình 5.45: Giao diện trang thông tin công việc - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 5.45 Giao diện trang thông tin công việc (Trang 66)
Hình 5.49: Giao diện trang chỉnh sửa thông tin công ty - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 5.49 Giao diện trang chỉnh sửa thông tin công ty (Trang 68)
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 - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
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 (Trang 73)
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 - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
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 (Trang 74)
Hình 5.65: Giao diện màn hình đăng nhập - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 5.65 Giao diện màn hình đăng nhập (Trang 76)
Hình 5.68: Giao diện màn hình tìm kiếm việc làm - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 5.68 Giao diện màn hình tìm kiếm việc làm (Trang 79)
Hình 5.69: Giao diện màn hình quản lý việc làm đã ứng tuyển - Xây dựng hệ thống tuyển dụng việc làm đa nền tảng jobhere tech
Hình 5.69 Giao diện màn hình quản lý việc làm đã ứng tuyển (Trang 80)
w