Xây Dựng website tuyển dụng với ASP.NET Core

 

2.1.  Phân tích hệ thống về chức năng

2.1.1.  Xác định các chức năng 

  • Sau khi thực hiện khảo sát và từ những yêu cầu của hệ thống, xác định các chức năng của hệ thống cần có: 

  • 1. Đăng ký tài khoản.

  • 2. Đăng nhập.

  • 3. Đăng xuất.

  • 4. Quên mật khẩu.

  • 5. Đổi mật khẩu.

  • 6. Chỉnh sửa thông tin tài khoản.

  • 7. Nâng cấp tài khoản.

  • 8. Khóa tài khoản

  • 9. Đăng tin tuyển dụng.

  • 10. Duyệt tin tuyển dụng.

  • 11. Tìm kiếm tin tuyển dụng.

  • 12. Chỉnh sửa tin tuyển dụng.

  • 13. Khóa tin tuyển dụng.

  • 14. Xóa tin tuyển dụng.

  • 15. Chia sẻ tin tuyển dụng.

  • 16. Đăng tải mẫu CV.

  • 17. Chỉnh sửa mẫu CV.

  • 18. Xóa mẫu CV.

  • 19. Tải xuống mẫu CV.

  • 20. Đăng bài viết lên diễn đàn.

  • 21. Duyệt bài viết lên diễn đàn.

  • 22. Bình luận bài viết trên diễn đàn.

  • 23. Yêu thích bài viết trên diễn đàn.

  • 24. Ứng tuyển.

  • 25. Duyệt đơn ứng tuyển.

  • 26. Liên hệ ứng viên.

  • 27. Thông báo ứng tuyển.

  • 28. Gửi phản hồi, góp ý.

  • 29. Gửi mail thông báo xử lý phản hồi.

  • 30. Xóa phản hồi

  • 31. Thêm bài khảo sát.

  • 32. Thực hiện khảo sát.

  • 33. Báo cáo, thống kê doanh thu.

  • 34. Báo cáo, thống kê khảo sát.

  • 35. Báo cáo, thống kê phản hồi, góp ý.

  • 36. Thêm mới điều khoản, chính sách.

  • 37. Thay đổi điều khoản, chính sách

  • 38. Xóa điều khoản, chính sách.

  • 39. Xem danh sách điều khoản, chính sách.

  • 40. Thêm mới ảnh vào thư viện.

  • 41. Chỉnh sửa ảnh trong thư viện.

  • 42. Xóa ảnh khỏi thư viện.

  • 43. Xem thư viện ảnh của từng doanh nghiệp.

Gom nhóm chức năng từ việc xác định yêu cầu chức năng.

            Bảng 2.1 Gom nhóm chức năng

STT

Tên chức năng

Nhóm chức năng

Hệ thống

1

Đăng ký tài khoản







Quản lý tài khoản































Hệ thống sàn giao dịch việc làm trực tuyến Job Finder

2

Đăng nhập

3

Đăng ký

4

Quên mật khẩu

5

Đổi mật khẩu

6

Đổi thông tin tài khoản

7

Nâng cấp tài khoản

8

Khóa tài khoản

9

Đăng tin tuyển dụng






Quản lý tin tuyển dụng

10

Duyệt tin tuyển dụng

11

Tìm kiếm tin tuyển dụng

12

Sửa tin tuyển dụng

13

Khóa tin tuyển dụng

14

Xóa tin tuyển dụng

15

Chia sẻ tin tuyển dụng

16

Đăng tải mẫu CV




Quản lý hồ sơ, mẫu CV

17

Chỉnh sửa mẫu CV

18

Xóa mẫu CV

19

Tải xuống mẫu CV

20

Đăng bài viết



Quản lý diễn đàn

21

Duyệt bài viết

22

Bình luận bài viết

23

Yêu thích bài viết

24

Ứng tuyển việc làm


Quản lý ứng tuyển

25

Duyệt đơn ứng tuyển

26

Liên hệ ứng viên

27

Thông báo ứng tuyển

28

Gửi phản hồi góp ý



Quản lý phản hồi, góp ý

29

Thông báo trả lời phản hồi, góp ý

30

Xóa phản hồi, góp ý

31

Đăng bài khảo sát

Quản lý khảo sát

32

Làm bài khảo sát

33

Báo cáo thống kê doanh thu



Quản lý thống kê


34

Báo cáo thống kê khảo sát

35

Báo cáo thống kê tuyển dụng

36

Thêm mới điều khoản, chính sách



Quản lý điều khoản, chính sách

37

Thay đổi điều khoản, chính sách

38

Xóa điều khoản, chính sách

39

Xem danh sách điều khoản, chính sách

40

Thêm ảnh vào thư viện


Quản lý thư viện ảnh

41

Chỉnh sửa ảnh trong thư viện

42

Xóa ảnh khỏi thư viện

43

Xem thư viện ảnh của doanh nghiệp

 

2.1.2. Sơ đồ phân rã chức năng - Business Function Diagram (BFD)

Hình 2.1 Sơ đồ phân rã chức năng (BFD)

Tất cả : QTV:Doanh nghiệp:Ứng viên: Uv & Dn

2.2 Mô hình hóa tiến trình nghiệp vụ

2.2.1 Ký hiệu sử dụng

Hình 2.2 Ký hiệu sử dụng trong sơ đồ luồng dữ liệu DFD

2.2.2 Sơ đồ luồng dữ liệu (Data Flow Diagram - DFD) mức ngữ cảnh

Hình 2.3 DFD mức ngữ cảnh

2.2.3 DFD mức đỉnh


Hình 2.4 DFD mức đỉnh

2.2.4 DFD mức dưới đỉnh

 Quản lý tài khoản

Hình 2.8 DFD mức dưới đỉnh - quản lý tài khoản

Quản lý tin tuyển dụng

Hình 2.9 DFD mức dưới đỉnh - quản lý tin tuyển dụng

Quản lý diễn đàn

Hình 2.10 DFD mức dưới đỉnh - quản lý diễn đàn

Quản lý ứng tuyển

Hình 2.11 DFD mức dưới đỉnh - quản lý ứng tuyển

Quản lý mẫu CV

Hình 2.12 DFD mức dưới đỉnh - quản lý mẫu CV

Quản lý liên hệ - phản hồi

Hình 2.13 DFD mức dưới đỉnh - quản lý phản hồi


Quản lý báo cáo thống kê

Hình 2.14 DFD mức dưới đỉnh - quản lý báo cáo thống kê

2.3 Đặc tả tiến trình nghiệp vụ

Đăng ký

  • Tên chức năng: Đăng ký.

  • Đầu vào (Input): Email, mật khẩu, loại tài khoản.

  • Đầu ra (Output): Đăng ký tài khoản thành công.

  • Nội dung xử lý (Process): Khi người dùng bấm vào màn hình đăng ký tài khoản, màn hình đăng ký gồm các trường nhập liệu sẽ hiện ra và yêu cầu người dùng điền thông tin đăng ký, Sau khi điền đầy đủ thông tin, hệ thống sẽ kiểm tra tính hợp lệ của dữ liệu (email hợp lệ, mật khẩu mạnh và xác nhận mật khẩu) sau khi kiểm tra nếu không đáp ứng sẽ yêu cầu nhập lại, nếu đã đáp ứng sẽ hiện thông báo xác nhận điều khoản, sau khi được xác nhận sẽ tiến hành đăng ký tài khoản, lúc này tài khoản sẽ được kiểm tra trong CSDL xem có tồn tại trước đó hoặc đang bị khóa hay không, nếu không sẽ tiến hành đăng ký và lưu vào CSDL, nếu không sẽ thông báo lỗi cho người dùng để tiến hành đăng ký lại.

Hình 2.15 Sơ đồ đặc tả chức năng đăng ký

Đăng nhập

  • Tên chức năng: Đăng nhập.

  • Đầu vào (Input): Email, mật khẩu đã đăng ký.

  • Đầu ra (Output): Đăng nhập vào hệ thống thành công.

  • Nội dung xử lý (Process): Sau khi người dùng đã đăng ký tài khoản thành công, lúc này người dùng sẽ bấm vào trang đăng nhập, màn hình đăng nhập hiện ra với các thông tin về email và mật khẩu, người dùng điền các thông tin này, các trường dữ liệu sẽ được kiểm tra sau khi kiểm tra nếu không đáp ứng sẽ yêu cầu nhập lại, nếu đã đáp ứng sẽ cho phép người dùng bấm nút đăng nhập, lúc này hệ thống sẽ kiểm tra CSDL nếu tồn tại tài khoản sẽ tiến hành đăng nhập, trong trường hợp không thấy sẽ thông báo sai tài khoản hoặc mật khẩu để người dùng tiến hành sửa lại

Hình 2.16 Sơ đồ đặc tả chức năng đăng nhập

Đổi mật khẩu

  • Tên chức năng: Đổi mật khẩu.

  • Đầu vào (Input): Đăng nhập thành công, mật khẩu cũ, mật khẩu mới, nhập lại mật khẩu mới.

  • Đầu ra (Output): Mật khẩu được đổi thành công.

  • Nội dung xử lý (Process): Khi người dùng bấm vào nút đổi mật khẩu, trang đổi mật khẩu sẽ hiện ra với các trường thông tin gồm mật khẩu hiện tại, mật khẩu mới và xác nhận mật khẩu, người dùng sẽ điền các thông tin cần thiết để tiến hành đổi mật khẩu. Các thông tin này sẽ được kiểm tra mật khẩu hiện tại phải chính xác, mật khẩu mới phải có đủ 6 ký tự gồm cả chữ và số, xác nhận mật khẩu và mật khẩu mới phải giống nhau. Nếu các trường thông tin nhập vào đáp ứng được điều kiện sẽ tiến hành thay đổi mật khẩu mới và lưu vào CSDL, nếu không sẽ thông báo lỗi cho người dùng để có thể điều chỉnh và tiến hành thay đổi lại.

Hình 2.17 Sơ đồ đặc tả chức năng đổi mật khẩu

Cập nhật thông tin tài khoản

  • Tên chức năng: Cập nhật thông tin tài khoản.

  • Đầu vào (Input): Danh sách tài khoản, thông tin về tài khoản cần cập nhật (Tên tài khoản, mật khẩu).

  • Đầu ra (Output): Tài khoản được cập nhật thành công.

  • Nội dung xử lý (Process): Khi người dùng bấm vào nút cập nhật thông tin, lúc này màn hình cập nhật thông tin tài khoản sẽ được hiện ra với các trường thông tin hiện tại của người dùng, người dùng sau khi điền các trường thông tin mà họ muốn thay đổi, và bấm cập nhật thông tin, lúc này hệ thống sẽ kiểm tra các trường dữ liệu, sai sẽ yêu cầu nhập lại nếu đáp ứng các yêu cầu cửa sổ xác nhận sẽ xuất hiện và yêu cầu người dùng xác nhận, nếu người dùng xác nhận sẽ tiến hành cập nhật và lưu thông tin thay đổi vào CSDL, cửa sổ sẽ đóng lại nếu người dùng ấn hủy.

       Hình 2.18 Sơ đồ đặc tả chức năng sửa thông tin tài khoản

Quên mật khẩu

  • Tên chức năng: Quên mật khẩu.

  • Đầu vào (Input): Email đã liên kết với tài khoản.

  • Đầu ra (Output): Reset mật khẩu và gửi về email đã liên kết.

  • Nội dung xử lý (Process): Khi người dùng bấm vào nút quên mật khẩu, trang quên mật khẩu sẽ được hiện ra và yêu cầu người dùng nhập email mà họ đã sử dụng để đăng ký tài khoản, sau khi người dùng điền email lúc này hệ thống sẽ kiểm tra tính hợp lệ của email (kiểm tra định dạng), nếu hợp lệ sẽ gửi yêu cầu để tiến hành kiểm tra tài khoản liên kết với email này, nếu không tồn tại tài khoản nào liên kết với email mà người dùng nhập vào sẽ thông báo lỗi để người dùng nhập lại, nếu có tồn tại sẽ tiến hành reset lại mật khẩu của tài khoản đó và gửi mật khẩu đó về email đồng thời thông báo cho người dùng để họ kiểm tra email.

Hình 2.19 Sơ đồ đặc tả chức năng quên mật khẩu

Nâng cấp tài khoản

  • Tên chức năng: Nâng cấp tài khoản.

  • Đầu vào (Input): Tài khoản mặc định.

  • Đầu ra (Output): Tài khoản đã được nâng cấp.

  • Nội dung xử lý (Process): Khi người dùng muốn nâng cấp tài khoản hiện tại, lúc này họ sẽ bấm vào nút nâng cấp tài khoản, trang nâng cấp tài khoản sẽ hiện ra và yêu cầu người dùng chọn cổng thanh toán, người dùng có thể lựa chọn thanh toán qua 2 cổng (Paypal hoặc VNPay) sau khi người dùng lựa chọn cổng thanh toán sẽ tiến hành đến trang thanh toán tương ứng với cổng thanh toán đó, sau khi thanh toán thành công, tài khoản sẽ được nâng cấp thành tài khoản trả phí và quay về màn hình thanh toán thành công, nếu thanh toán thất bại sẽ quay trở về màn hình thanh toán thất bại

Hình 2.20 Sơ đồ đặc tả chức năng nâng cấp tài khoản

Khóa tài khoản

  • Tên chức năng: Khóa tài khoản.

  • Đầu vào (Input): Tài khoản bị khóa.

  • Đầu ra (Output): Tài khoản bị vô hiệu hóa.

  • Nội dung xử lý (Process): Khi quản trị viên truy cập vào danh sách tài khoản và tiến hành khóa một tài khoản (nguyên nhân bị khóa có thể do đăng các tin tuyển dụng ảo hoặc vi phạm quy tắc tuyển dụng, cộng đồng ...) lúc này quản trị viên sẽ bấm vào nút khóa tài khoản, cửa sổ xác nhận sẽ được hiện ra, lúc này ấn xác nhận thì tài khoản tương ứng sẽ bị khóa, người dùng này sẽ không thể đăng nhập vào hệ thống nữa và phải liên hệ với quản trị viên để yêu cầu mở lại, nếu ấn hủy, cửa sổ xác nhận sẽ đóng.

Hình 2.21 Sơ đồ đặc tả chức năng khóa tài khoản

Đăng xuất tài khoản

  • Tên chức năng: Đăng xuất tài khoản.

  • Đầu vào (Input): Đăng xuất.

  • Đầu ra (Output): Tài khoản được đăng xuất khỏi hệ thống.

  • Nội dung xử lý (Process): Khi người dùng muốn đăng xuất tài khoản, lúc này người dùng sẽ bấm vào nút đăng xuất, cửa sổ đăng xuất sẽ hiện ra và yêu cầu người dùng xác nhận, nếu người dùng bấm đăng xuất sẽ tiến hành đăng xuất tài khoản khỏi hệ thống và quay trở về màn hình đăng nhập, nếu người dùng bấm hủy cửa sổ này sẽ đóng lại và tiếp tục phiên hoạt động.

Hình 2.22 Sơ đồ đặc tả chức năng đăng xuất

Đăng tin tuyển dụng

  • Tên chức năng: Đăng tin tuyển dụng.

  • Đầu vào (Input): Tin tuyển dụng cần đăng.

  • Đầu ra (Output): Tin tuyển dụng chờ duyệt.

  • Nội dung xử lý (Process): Các tài khoản doanh nghiệp sau khi đăng  ký tài khoản thành công sẽ có thể đăng tải các tin tuyển dụng, khi bấm vào nút đăng tin tuyển dụng, màn hinh đăng tin tuyển dụng sẽ được hiện ra với các trường nhập liệu như (Tiêu đề, vị trí tuyển dụng, lương cơ bản, địa điểm làm việc, mô tả công việc …) sau khi hệ thống kiểm tra các trường nhập liệu doanh nghiệp có thể bấm xác nhận đăng tin tuyển dụng lúc này tin tuyển dụng sẽ được lưu vào CSDL và trong trạng thái đợi duyệt, hệ thống sẽ quay trở về trang danh sách và thông báo cho doanh nghiệp. Trong trường hợp lỗi, hệ thống sẽ thông báo lỗi tương ứng để doanh nghiệp tiến hành điều chỉnh.

Hình 2.23 Sơ đồ đặc tả chức năng đăng tin tuyển dụng

Duyệt tin tuyển dụng 

  • Tên chức năng: Duyệt tin tuyển dụng.

  • Đầu vào (Input): Tin tuyển dụng chờ duyệt.

  • Đầu ra (Output): Tin tuyển dụng được duyệt hoặc bị hủy.

  • Nội dung xử lý (Process): Các tin tuyển dụng sau khi được đăng tải bởi nhà tuyển dụng sẽ ở trong trạng thái chờ duyệt và quản trị hệ thống lúc này có thể duyệt các tin này. Sau khi xem chi tiết tin tuyển dụng và xác nhận tin tuyển dụng hợp lệ, quản trị viên có thể bấm vào nút duyệt tin, lúc này tin tuyển dụng sẽ được duyệt và ở trong trạng thái được duyệt và ứng viên có thể tìm kiếm và ứng tuyển, trong trường hợp tin ko hợp lệ quản trị có thể tiến hành xóa hoặc liên hệ với doanh nghiệp để điều chỉnh.

Hình 2.24 Sơ đồ đặc tả chức năng duyệt tin tuyển dụng

Đăng tải bài viết lên diễn đàn

  • Tên chức năng: Đăng tải bài viết lên diễn đàn.

  • Đầu vào (Input): Bài viết cần đăng.

  • Đầu ra (Output): Tài khoản bị vô hiệu hóa.

  • Nội dung xử lý (Process): Các tài khoản sau khi đăng ký thành công có thể đăng tải các bài viết lên diễn đàn để có thể đặt câu hỏi hoặc chia sẻ kinh nghiệm. Lúc này khi vào trang diễn đàn và lựa chọn nút đăng tải bài viết, màn hình đăng bài sẽ hiện ra và yêu cầu người dùng nhập vào nội dung bài viết, sau khi nhập đầy đủ nội dung và bấm đăng bài, hệ thống sẽ lưu bài viết vào trạng thái chờ duyệt và thông báo lại cho người đăng, trong trường hợp nội dung bài viết không phù hợp sẽ thống báo để người dùng tiến hành điều chỉnh.

Hình 2.25 Sơ đồ đặc tả chức năng đăng bài viết

Duyệt bài viết

  • Tên chức năng: Duyệt bài viết.

  • Đầu vào (Input): Bài viết chờ duyệt.

  • Đầu ra (Output): Bài viết được duyệt hoặc bị hủy.

  • Nội dung xử lý (Process): Các bài viết sau khi được đăng tải bởi người dùng sẽ ở trong trạng thái chờ duyệt và quản trị hệ thống lúc này có thể duyệt các tin này. Sau khi xem chi tiết bài viết và xác nhận bài viết hợp lệ, quản trị viên có thể bấm vào nút duyệt bài, lúc này bài viết sẽ được duyệt và ở trong trạng thái được duyệt và các người dùng khác có thể tương tác với bài viết này, trong trường hợp bài viết ko hợp lệ quản trị có thể tiến hành xóa hoặc liên hệ với người đăng để điều chỉnh.

Hình 2.26 Sơ đồ đặc tả chức năng duyệt bài viết

Đăng tải mẫu CV

  • Tên chức năng: Đăng tải mẫu CV.

  • Đầu vào (Input): Mẫu CV cần đăng tải.

  • Đầu ra (Output): Mẫu CV được đăng lên danh sách mẫu.

  • Nội dung xử lý (Process): Sau khi quản trị chuẩn bị sẵn được một mẫu CV, quản trị viên sẽ truy cập trang quản lý CV và lựa chọn nút đăng tải mẫu CV, màn hình thêm mới mẫu CV sẽ hiện ra và quản trị viên sẽ điền các thông tin của mẫu CV, sau khi đã điền đủ các thông tin hợp lệ và ấn xác nhận sẽ lưu thông tin mẫu CV vào CSDL, các tài khoản ứng viên trả phí có thể xem hoặc tải về mẫu CV này.

Hình 2.27 Sơ đồ đặc tả chức năng đăng tải mẫu CV

Tải xuống mẫu CV

  • Tên chức năng: Tải xuống mẫu CV.

  • Đầu vào (Input): Mẫu CV được lựa chọn.

  • Đầu ra (Output): Tải file mẫu CV được chọn về máy.

  • Nội dung xử lý (Process): Các tài khoản ứng viên trả phí có thể truy cập trang quản lý mẫu CV, lúc này danh sách mẫu CV sẽ hiện ra, ứng viên có thể xem chi tiết các mẫu này, nếu thấy ưng ý, ứng viên có thể lựa chọn nút tải xuống đối với mẫu CV đang chọn, cửa sổ xác nhận sẽ hiện lên và sau khi ấn xác nhận, file CV sẽ được tải về máy của ứng viên và họ có thể chỉnh sửa tùy ý. Cửa sổ sẽ đóng lại nếu ứng viên ấn hủy.

Hình 2.28 Sơ đồ đặc tả chức năng tải xuống mẫu CV

Tạo CV trực tiếp

  • Tên chức năng: Tạo CV trực tiếp.

  • Đầu vào (Input): Thông tin trong CV của người dùng.

  • Đầu ra (Output): File CV được tải xuống.

  • Nội dung xử lý (Process): Trong trường hợp ứng viên không muốn sử dụng các mẫu CV có sẵn, ứng viên có thể lựa chọn tạo CV trực tiếp trên hệ thống bằng cách ấn vào nút tạo CV trực tiếp, màn hình tạo CV sẽ hiện ra với các trường thông tin cần thiết, ứng viên sẽ điền thông tin vào mẫu này, sau khi điền đầy đủ thông tin và có được mẫu CV ưng ý, ứng viên sẽ ấn nút hoàn thành, lúc này cửa sổ xác nhận sẽ hiện, nếu người dùng ấn xác nhận, lúc này ứng viên sẽ nhận được 2 bản, một bản pdf mẫu CV được tải về máy và một bản CV online để ứng viên có thể chia sẻ trực tiếp. Cửa sổ xác nhận sẽ đóng lại nếu ứng viên ấn hủy bỏ.

Hình 2.29 Sơ đồ đặc tả chức năng tạo CV trực tiếp

Gửi phản hồi, góp ý

  • Tên chức năng: Gửi phản hồi, góp ý.

  • Đầu vào (Input): Thông tin phản hồi, góp ý.

  • Đầu ra (Output): Phản hồi góp ý được gửi thành công.

  • Nội dung xử lý (Process): Người dùng (có thể là ứng viên, doanh nghiệp hoặc khách vãng lai) khi có bất kỳ thắc mắc hay góp ý nào có thể tiến hành gửi phản hồi góp ý bằng cách truy cập trang liên hệ, lúc này màn hình liên hệ sẽ hiện ra và yêu cầu người dùng điền các thông tin cần thiết (email liên hệ, vấn đề gặp phải và góp ý) sau khi điền đầy đủ các thông tin và bấm xác nhận gửi, thông tin liên hệ sẽ được lưu vào hệ thống và thông báo gửi thành công cho người dùng.

Hình 2.30 Sơ đồ đặc tả chức năng gửi phản hồi, góp ý

Trả lời phản hồi, góp ý

  • Tên chức năng: Trả lời phản hồi góp ý.

  • Đầu vào (Input): Thông tin trả lời phản hồi, góp ý.

  • Đầu ra (Output): Gửi email thông báo cho người gửi.

  • Nội dung xử lý (Process): Sau khi nhận được phản hồi, góp ý của người dùng, quản trị viên có thể lựa chọn xem và tiến hành xử lý (nếu cần thiết) sau khi xử lý sẽ tiến hành trả lời lại cho người dùng bằng cách nhập vào nút trả lời và điền các thông tin cần thiết, sau đó hệ thống sẽ tiến hành gửi email kèm nội dung trả lời của quản trị hệ thống tới người gửi liên hệ.

Hình 2.31 Sơ đồ đặc tả chức năng trả lời phản hồi, góp ý

Nộp hồ sơ ứng tuyển

  • Tên chức năng: Nộp hồ sơ ứng tuyển.

  • Đầu vào (Input): Thông tin hồ sơ và thông tin liên hệ.

  • Đầu ra (Output): Lưu hồ sơ vào hệ thống.

  • Nội dung xử lý (Process): Sau khi lựa chọn được tin tuyển dụng phù hợp, ứng viên có thể thực hiện ứng tuyển bằng cách ấn nút ứng tuyển, cửa sổ ứng tuyển sẽ hiện lên kèm các trường nhập liệu (tên, email liên hệ, số điện thoại và file CV) ứng viên sau khi điền đầy đủ thông tin, hệ thống sẽ tiến hành kiểm tra, nếu các trường nhập liệu đúng sẽ tiến hành gửi đơn ứng tuyển và xác nhận thông báo thành công tới ứng viên, ngược lại thông báo lỗi tương ứng để ứng viên tiến hành điều chỉnh, các đơn ứng tuyển sau khi được gửi sẽ ở trạng thái chờ duyệt và đợi các doanh nghiệp duyệt.

Hình 2.32 Sơ đồ đặc tả chức năng nộp hồ sơ ứng tuyển

Tạo cuộc khảo sát

  • Tên chức năng: Tạo cuộc khảo sát.

  • Đầu vào (Input): Thông tin khảo sát (Tiêu đề, câu hỏi, đáp án).

  • Đầu ra (Output): Lưu thông tin cuộc khảo sát vào hệ thống.

  • Nội dung xử lý (Process): Quản trị viên khi muốn tạo một cuộc khảo sát người dùng,  thực hiện lựa chọn tạo cuộc khảo sát bằng cách thêm mới khảo sát, lúc này màn hình tạo cuộc khảo sát sẽ hiện ra và quản trị viên sẽ điền thông tin cuộc khảo sát bao gồm tiêu đề cuộc khảo sát các câu hỏi và các đáp án trả lời ( thêm bằng file excel cho các cuộc khảo sát có nhiều câu hỏi) sau khi điền đầy đủ thông tin, và bấm tạo khảo sát lúc này cửa sổ xác nhận xuất hiện, ấn xác nhận bài khảo sát vừa tạo sẽ được xuất hiện trong danh sách làm bài khảo sát của người dùng. Ngược lại cửa sổ sẽ đóng nếu ấn hủy và cuộc khảo sát sẽ bị hủy.

Hình 2.33 Sơ đồ đặc tả chức năng nộp hồ sơ ứng tuyển

Thực hiện khảo sát

  • Tên chức năng: Thực hiện khảo sát.

  • Đầu vào (Input): Điền các đáp án tương ứng với các câu hỏi.

  • Đầu ra (Output): Lưu thông tin trả lời của cuộc khảo sát.

  • Nội dung xử lý (Process): Khi người dùng bấm vào khảo sát, trang khảo sát sẽ hiện ra với danh sách các cuộc khảo sát khả dụng, người dùng sẽ lựa chọn một cuộc khảo sát mà họ quan tâm. màn hình chi tiết cuộc khảo sát bao gồm các câu hỏi và các đáp án trả lời sẽ hiện ra, người dùng trả lời theo ý kiến của mình sau khi điền đầy đủ các đáp án của cuộc khảo sát và ấn hoàn thành, của sổ xác nhận sẽ hiện ra, người dùng ấn xác nhận hoàn thành khảo sát thông tin cuộc khảo sát sẽ được lưu vào CSDL phục vụ thống kê, ngược lại nếu ấn hủy, sẽ đóng cửa sổ xác nhận sẽ đóng lại.

Hình 2.34 Sơ đồ đặc tả chức năng thực hiện khảo sát

Chương 3: Thiết kế hệ thống

3.1 Kiến trúc hệ thống

    3.1.1. Kiến trúc vật lý

Kiến trúc lựa chọn: Client - Server

Hình 3.1 Kiến trúc client - server

Mô hình client server là mô hình mạng máy tính gồm có 2 thành phần chính là client và server (tức là máy khách – máy chủ). Client sẽ là bên yêu cầu dịch vụ cài đặt cũng như lưu trữ tài nguyên từ phía server.

Khi máy client gửi yêu cầu dữ liệu đến server thông qua Internet, server sẽ chấp nhận quy trình được yêu cầu. Sau đó gửi các gói dữ liệu được yêu cầu trở lại client. Client không chia sẻ bất kỳ tài nguyên nào của họ.

Đây là một cấu trúc ứng dụng phân tán, nó phân vùng các nhiệm vụ hay workload giữa các nhà cung cấp tài nguyên hoặc dịch vụ (Server) và người yêu cầu dịch vụ (Client).

Nhận xét: Hệ thống thiết kế có sự tương tác giữa người sử dụng trên các thiết bị khác nhau và vào các thời điểm khác nhau.

Ưu điểm: 

  • Khả năng kiểm soát tập trung: Với mô hình này, tất cả thông tin cần thiết đều được đặt ở một vị trí duy nhất. Việc này rất hữu ích cho những quản trị viên mạng. Vì họ có được toàn quyền quản lý và điều hành.

  • Bảo mật: Trong mạng Client Server, dữ liệu được bảo vệ tốt do kiến trúc tập trung của mạng.

  • Khả năng mở rộng:  Bất cứ khi nào người dùng cần, họ có thể tăng số lượng tài nguyên, chẳng hạn như số Client hay Server.

  • Khả năng truy cập: Không có sự phân biệt giữa các vị trí hay nền tảng khác nhau, mọi client đều có thể đăng nhập vào hệ thống.

Nhược điểm:

  • Tắc nghẽn lưu lượng: Nếu có quá nhiều Client tạo request từ cùng một Server, nó có thể làm chậm kết nối.

  • Độ bền kém: Nếu Server chính xảy ra sự cố hay bị nhiễu, toàn bộ hệ thống mạng sẽ bị gián đoạn.

  • Chi phí cao: Chi phí thiết lập và bảo trì server trong các mạng client server thường khá cao. 

  • Bảo trì liên tục: Luôn cần có một nhà quản lý mạng chuyên biệt để duy trì hoạt động của Server.

  • Tài nguyên: Không phải tất cả tài nguyên hiện có ở trên Server đều có thể sử dụng được.



So sánh mô hình client-server với các mô hình khác

Bảng 3.1 Bảng so sánh mô hình client-server với mô hình khác

Mô hình

Client-Server

Peer-to-Peer

Hybrid

Khả năng bảo mật thông tin và độ an toàn

Khả năng bảo mật và an toàn thông tin cao. Có thể điều chỉnh quyền truy cập thông tin

Khả năng bảo mật và an toàn thông tin kém. Phần lớn phụ thuộc vào mức độ quyền được chia sẻ

Khả năng bảo mật và an toàn thông tin cao. Có thể điều chỉnh quyền truy cập thông tin

Khả năng cài đặt

Khó khăn

Dễ dàng

Khó khăn

Yêu cầu về phần mềm, phần cứng

Máy chủ, hệ điều hành, phần cứng

Chỉ cần ít phần cứng bổ sung. Ngoài ra không cần máy chủ và hệ điều hành

Máy chủ, hệ điều hành, phần cứng

Yêu cầu về quản trị mạng

Cần phải có quản trị mạng

Không cần phải có quản trị mạng

Cần phải có quản trị mạng

Có khả năng xử lý và lưu trữ tập trung

Không

Không

Chi phí cài đặt

Cao

Thấp

Thấp










3.1.2. Kiến trúc phần mềm

Mô hình MVC (Model - View - Controller)

Hình 3.2 Mô hình MVC

MVC là viết tắt của cụm từ “Model-View-Controller“. Đây là mô hình thiết kế được sử dụng trong kỹ thuật phần mềm. MVC là một mẫu kiến trúc phần mềm để tạo lập giao diện người dùng trên máy tính. MVC chia thành ba phần được kết nối với nhau và mỗi thành phần đều có một nhiệm vụ riêng của nó và độc lập với các thành phần khác. Mô hình MVC giúp các nhà thiết kế, lập trình web xử lý các yêu cầu kỹ thuật và hoàn thiện sản phẩm dễ dàng và nhanh chóng hơn [6]. Trong đó:

  • Model: Là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng và là cầu nối giữa 2 thành phần bên dưới là View và Controller. Một model là dữ liệu được sử dụng bởi chương trình. Đây có thể là cơ sở dữ liệu, hoặc file XML bình thường hay một đối tượng đơn giản. Chẳng hạn như biểu tượng hay là một nhân vật trong game.

  • View: Đây là phần giao diện (theme) dành cho người sử dụng. View là phương tiện hiển thị các đối tượng trong một ứng dụng. Chẳng hạn như hiển thị một cửa sổ, nút hay văn bản trong một cửa sổ khác. Nó bao gồm bất cứ thứ gì mà người dùng có thể nhìn thấy được.

  • Controller: Là bộ phận có nhiệm vụ xử lý các yêu cầu người dùng đưa đến thông qua View. Một controller bao gồm cả Model lẫn View. Nó nhận input và thực hiện các update tương ứng.

Luồng xử lý của mô hình MVC:

  • Khi một yêu cầu của từ máy khách (Client) gửi đến Server. Thì bị Controller trong MVC chặn lại để xem đó là URL request hay sự kiện.

  • Sau đó, Controller xử lý input của user rồi giao tiếp với Model trong MVC.

  • Model chuẩn bị data và gửi lại cho Controller.

  • Cuối cùng, khi xử lý xong yêu cầu thì Controller gửi dữ liệu trở lại View và hiển thị cho người dùng trên ứng dụng.

Tại sao nên sử dụng mô hình MVC trong phát triển ứng dụng?

  • Tách biệt logic ứng dụng: Mô hình MVC giúp tách biệt logic xử lý dữ liệu (Model) và hiển thị dữ liệu (View), làm cho mã nguồn dễ quản lý hơn. Điều này giúp dễ dàng duyệt mã, bảo trì và mở rộng ứng dụng.

  • Tính tái sử dụng: Bạn có thể tái sử dụng Model và View trong các phần khác nhau của ứng dụng hoặc trong các ứng dụng khác mà không cần thay đổi logic xử lý (Controller).

  • Phân chia công việc: Mô hình MVC cho phép phân chia công việc giữa các nhóm phát triển. Nhóm phát triển giao diện có thể làm việc trên View, nhóm xử lý logic có thể làm việc trên Model và Controller, giúp tăng hiệu quả phát triển.

  • Kiểm thử dễ dàng: Bạn có thể kiểm tra riêng lẻ Model, View và Controller mà không cần phải kết hợp chúng. Điều này làm cho việc kiểm tra và sửa lỗi dễ dàng hơn

3.2 Thiết kế cơ sở dữ liệu

 3.2.1. Xác định kiểu thực thể, kiểu thuộc tính

Xác định kiểu thực thể:

  • Tài nguyên: Doanh nghiệp, Ứng viên, Tin tuyển dụng, Hồ sơ ứng tuyển, Mẫu CV, Bài viết, Bình luận, Thư viện ảnh, Phản hồi góp ý, Chính sách, Bài khảo sát, Câu hỏi khảo sát, Đáp án.

  • Tài khoản: Mã tài khoản, email, mật khẩu, loại tài khoản, ngày tạo, trạng thái.

  • Doanh nghiệp: Mã doanh nghiệp, tên doanh nghiệp, lĩnh vực hoạt động, số lượng nhân viên, địa chỉ, email, mô tả chi tiết.

  • Ứng viên: Mã ứng viên, họ và tên, lĩnh vực chuyên ngành, số năm kinh nghiệm, học vấn, số điện thoại, email, địa chỉ, mô tả chi tiết.

  • Tin tuyển dụng: Mã tin tuyển dụng, mã doanh nghiệp, tiêu đề, vị trí tuyển dụng, mô tả công việc, địa chỉ làm việc, thời gian tuyển dụng, số lượng tuyển dụng, mức lương cơ bản, yêu cầu ứng viên, chế độ đãi ngộ, thời gian làm việc, trạng thái. 

  • Hồ sơ ứng tuyển: Mã hồ sơ, họ và tên ứng viên, Email, số điện thoại liên hệ, CV ứng tuyển, mã tin tuyển dụng, trạng thái.

  • Mẫu CV: Mã CV, Tiêu đề, loại CV, ảnh minh họa, file mẫu.

  • Bài viết thảo luận: Mã bài viết, Tiêu đề, nội dung, mã tài khoản, ngày đăng, trạng thái.

  • Bình luận: Mã bình luận, nội dung, mã tài khoản, mã bài viết, thời gian bình luận.

  • Yêu thích: Mã yêu thích, mã bài viết, mã tài khoản.

  • Phản hồi / góp ý: Mã phản hồi, họ và tên, email, chủ đề, nội dung góp ý, trạng thái.

  • Chính sách / điều khoản: Mã chính sách, tiêu đề, nội dung.

  • Hóa đơn: Mã hóa đơn, mã tài khoản, thời gian, phương thức thanh toán.

  • Bài khảo sát: Mã khảo sát, tiêu đề khảo sát.

  • Câu hỏi: Mã câu hỏi, mã khảo sát, nội dung câu hỏi.

  • Đáp án: Mã đáp án, mã câu hỏi, nội dung đáp án.

3.2.2. Xác định mối liên hệ giữa các thực thể

     Bảng 3.2 Xác định kiểu liên kết giữa các thực thể

KIỂU THỰC THỂ

KIỂU LIÊN KẾT/BẢN SỐ

KIỂU THỰC THỂ

Doanh nghiệp

Tài khoản

Doanh nghiệp

Tin tuyển dụng

Doanh nghiệp

Thư viện ảnh

Tin tuyển dụng

Đơn ứng tuyển

Ứng viên

Tài khoản

Tài Khoản

Bài viết

Bài viết

Bình Luận

Bài viết

Yêu thích

Tài Khoản

Bình Luận

Tài Khoản

Yêu thích

Tài khoản

Bình luận

Tài khoản

Phản hồi, góp ý

Tài khoản

Hóa đơn

Bài khảo sát

Câu hỏi

Câu hỏi

Đáp án


3.2.3. Mô hình quan hệ thực thể (Entity Relationship Model - ERD) mở rộng

  • Ký hiệu

Hình 3.3 Ký hiệu sử dụng trong mô hình quan hệ thực thể mở rộng

  • Mô hình

Hình 3.3 Mô hình ERD mở rộng

3.3 Chuẩn hóa dữ liệu và đặc tả bảng dữ liệu

3.3.1. Mô hình quan hệ thực thể (ERD) kinh điển

Xử lý kiểu thuộc tính đa trị của kiểu thực thể

Hình 3.3 Xử lý thuộc tính đa trị trong thực thể tài khoản

3.3.2. Mô hình quan hệ thực thể (ERD) hạn chế

Xác định khóa chính, khóa ngoại cho các kiểu thực thể

Bảng 3.5 Khóa chính, khóa ngoại của kiểu thực thể

STT

Kiểu thực thể

Khóa chính

Khóa ngoại

1. Kiểu thực thể chính

1

Doanh nghiệp

Mã doanh nghiệp


2

Ứng viên

Mã ứng viên


3

Đơn tuyển dụng

Mã tuyển dụng

Mã doanh nghiệp

4

Mẫu CV

Mã CV


5

Bài viết

Mã bài viết


6

Phản hồi - góp ý

Mã phản hồi - góp ý


7

Chính sách - điều khoản

Mã chính sách


8

Thư viện ảnh

Mã ảnh

Mã doanh nghiệp

9

Khảo sát

Mã khảo sát


10

Câu hỏi

Mã câu hỏi

Mã khảo sát


3.3.3 Mô hình dữ liệu quan hệ

Chuyển kiểu thực thể thành bảng quan hệ

Bảng 3.6 Bảng chuyển kiểu thực thể thành bảng quan hệ

STT

Kiểu thực thể

Bảng quan hệ

1

Tài khoản

Account

2

Ứng viên

Candidate

3

Doanh nghiệp

Employer

4

Tin tuyển dụng

Job-Posting

5

Đơn ứng tuyển

Apply-Form

6

Liên hệ -  góp ý

Contact

7

Thư viện ảnh

Image-Galeries

8

Chính sách - điều khoản

Policy

9

Bài thảo luận

Discuss

10

Bình luận

Comment

11

Yêu thích

Like

12

Cuộc khảo sát

Survey

13

Câu hỏi

Question

14

Lựa chọn

Option

15

Thanh toán

Payment


Mô hình dữ liệu quan hệ

  • Ký hiệu

Hình 3.9 Ký hiệu sử dụng trong mô hình dữ liệu quan hệ
  • Mô hình

Hình 3.10 Mô hình dữ liệu quan hệ

3.3.4. Đặc tả cơ sở dữ liệu

Tài khoản

Bảng 3.7 Bảng đặc tả Account

STT

Tên trường

Kiểu dữ liệu

Diễn giải

Khóa chính

Khóa ngoại

1

UserID

Guid

Mã tài khoản

x


2

Email

nvarchar(50)

Email liên hệ



3

Password

varchar(20)

Mật khẩu



4

AccountRole

int

Loại tài khoản



5

Status

boolean

Trạng thái



Doanh nghiệp

Bảng 3.8 Bảng đặc tả Employer

STT

Tên trường

Kiểu dữ liệu

Diễn giải

Khóa chính

Khóa ngoại

1

EmployerID

Guid

Mã doanh nghiệp

x


2

EmployerName

nvarchar(50)

Tên doanh nghiệp



3

Location

varchar(50)

Địa chỉ



4

Image

varchar(50)

Ảnh đại diện



5

Industry

varchar(50)

Lĩnh vực hoạt động



6

Size

int

Số lượng nhân viên



7

Phone

int

Số điện thoại



8

Description

varchar(50)

Mô tả




Ứng viên

Bảng 3.9 Bảng đặc tả Candidate

STT

Tên trường

Kiểu dữ liệu

Diễn giải

Khóa chính

Khóa ngoại

1

CandidateID

Guid

Mã ứng viên

x


2

Name

nvarchar(50)

Họ và tên



3

Location

varchar(50)

Địa chỉ



4

Image

varchar(50)

Ảnh đại diện



5

Education

varchar(50)

Học vấn



6

Experience

int

Số năm kinh nghiệm



7

Phone

int

Số điện thoại



8

Description

varchar(50)

Mô tả




Tin tuyển dụng

Bảng 3.10 Bảng đặc tả Job-Posting

STT

Tên trường

Kiểu dữ liệu

Diễn giải

Khóa chính

Khóa ngoại

1

JobPostingID

Guid

Mã tin tuyển dụng

x


2

EmployerID

Guid

Mã doanh nghiệp


x

3

Title

varchar(50)

Tiêu đề



4

Position

varchar(50)

Vị trí tuyển dụng



5

Location

varchar(50)

Địa chỉ làm việc



6

Date

datetime

Thời gian tuyển dụng



7

Number

int

Số lượng tuyển dụng



8

Description

varchar(50)

Mô tả công việc



9

Salary

float

Mức lương cơ bản



10

WorkTime

varchar(50)

Thời gian làm việc



11

Requirements

varchar(500)

Yêu cầu tuyển dụng



12

Remuneration

varchar(500)

Chế độ đãi ngộ



13

Status

boolean

Trạng thái



Thư viện ảnh

Bảng 3.11 Bảng đặc tả ImageGaleries

STT

Tên trường

Kiểu dữ liệu

Diễn giải

Khóa chính

Khóa ngoại

1

ImageID

Guid

Mã ảnh

x


2

EmployerID

Guid

Mã doanh nghiệp


x

3

Image

varchar(50)

Hình ảnh




Điều khoản - chính sách

Bảng 3.12 Bảng đặc tả Policy

STT

Tên trường

Kiểu dữ liệu

Diễn giải

Khóa chính

Khóa ngoại

1

PolicyID

Guid

Mã chính sách

x


2

Title

nvarchar(50)

Tiêu đề



3

Description

varchar(500)

Nội dung




Liên hệ - phản hồi

Bảng 3.13 Bảng đặc tả Contact

STT

Tên trường

Kiểu dữ liệu

Diễn giải

Khóa chính

Khóa ngoại

1

ContactID

Guid

Mã liên hệ

x


2

Name

nvarchar(50)

Họ và tên



3

Email

varchar(50)

Email liên hệ



4

Phone

int

Số điện thoại



5

Problem

varchar(100)

Vấn đề 



6

Content

varchar(500)

Góp ý




Đơn ứng tuyển

Bảng 3.14 Bảng đặc tả Apply_Form

STT

Tên trường

Kiểu dữ liệu

Diễn giải

Khóa chính

Khóa ngoại

1

ApplyFormID

Guid

Mã đơn ứng tuyển

x


2

JobPostingID

Guid

Mã tin tuyển dụng


x

3

Name

nvarchar(50)

Họ và tên



4

Email

varchar(50)

Email liên hệ



5

Phone

int

Số điện thoại



6

CV_File

varchar(100)

File CV



6

Status

boolean

Trạng thái




Bài thảo luận

Bảng 3.15 Bảng đặc tả Discuss

STT

Tên trường

Kiểu dữ liệu

Diễn giải

Khóa chính

Khóa ngoại

1

DiscussID

Guid

Mã bài viết

x


2

UserID

Guid

Mã tài khoản 


x

3

Title

varchar(500)

Tiêu đề



4

Content

varchar(500)

Nội dung



5

CreateDate

datetime

Thời gian đăng bài



6

Status

boolean

Trạng thái




Bình luận

Bảng 3.16 Bảng đặc tả Discuss

STT

Tên trường

Kiểu dữ liệu

Diễn giải

Khóa chính

Khóa ngoại

1

CommentID

Guid

Mã bình luận

x


2

UserID

Guid

Mã tài khoản 


x

3

DiscussID

Guid

Mã bài viết


x

4

Content

varchar(500)

Nội dung



5

CreateDate

Datetime

Thời gian bình luận




Yêu thích

Bảng 3.17 Bảng đặc tả Likes

STT

Tên trường

Kiểu dữ liệu

Diễn giải

Khóa chính

Khóa ngoại

1

LikeID

Guid

Mã yêu thích

x


2

UserID

Guid

Mã tài khoản 


x

3

DiscussID

Guid

Mã bài viết


x


Bài khảo sát

Bảng 3.18 Bảng đặc tả Survey

STT

Tên trường

Kiểu dữ liệu

Diễn giải

Khóa chính

Khóa ngoại

1

SurveyID

Guid

Mã bài khảo sát

x


2

Title

varchar(500)

Tiêu đề khảo sát




Câu hỏi khảo sát

Bảng 3.19 Bảng đặc tả Question

STT

Tên trường

Kiểu dữ liệu

Diễn giải

Khóa chính

Khóa ngoại

1

QuestionID

Guid

Mã câu hỏi

x


2

SurveyID

Guid

Mã bài khảo sát


x

3

Content

varchar(500)

Nội dung câu hỏi




Lựa chọn khảo sát

Bảng 3.20 Bảng đặc tả Option

STT

Tên trường

Kiểu dữ liệu

Diễn giải

Khóa chính

Khóa ngoại

1

OptionID

Guid

Mã lựa chọn

x


2

QuestionID

Guid

Mã câu hỏi


x

3

Content

varchar(500)

Nội dung lựa chọn




Hóa đơn

Bảng 3.21 Bảng đặc tả Payment

STT

Tên trường

Kiểu dữ liệu

Diễn giải

Khóa chính

Khóa ngoại

1

PaymentID

Guid

Mã hóa đơn

x


2

AccountID

Guid

Mã tài khoản


x

3

PaymentGateway

varchar(500)

Phương thức thanh toán



4

CreateDate

datetime

Thời điểm thanh toán




Oldest