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
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
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ể
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ể
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ệ
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
Doanh nghiệp
Bảng 3.8 Bảng đặc tả Employer
Ứng viên
Bảng 3.9 Bảng đặc tả Candidate
Tin tuyển dụng
Bảng 3.10 Bảng đặc tả Job-Posting
Thư viện ảnh
Bảng 3.11 Bảng đặc tả ImageGaleries
Điều khoản - chính sách
Bảng 3.12 Bảng đặc tả Policy
Liên hệ - phản hồi
Bảng 3.13 Bảng đặc tả Contact
Đơn ứng tuyển
Bảng 3.14 Bảng đặc tả Apply_Form
Bài thảo luận
Bảng 3.15 Bảng đặc tả Discuss
Bình luận
Bảng 3.16 Bảng đặc tả Discuss
Yêu thích
Bảng 3.17 Bảng đặc tả Likes
Bài khảo sát
Bảng 3.18 Bảng đặc tả Survey
Câu hỏi khảo sát
Bảng 3.19 Bảng đặc tả Question
Lựa chọn khảo sát
Bảng 3.20 Bảng đặc tả Option
Hóa đơn
ConversionConversion EmoticonEmoticon