Giới thiệu 1.1 Mục đích - Tài liệu phân tích thiết kế này mô tả thiết kế hệ thống hỗ trợ duyệt CV cho tuyển dụng trực tuyến Phân hệ dành cho chuyên gia nhân sự, bao gồm các tính năng kiế
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────
ĐỒ ÁN TỐT NGHIỆP
TÀI LIỆU PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Hệ thống hỗ trợ duyệt CV cho tuyển dụng trực tuyến
Phân hệ dành cho chuyên gia nhân sự
Giảng viên hướng dẫn : TS Nguyễn Nhật Quang
Sinh viên thực hiện :
Dương Thị Thoa MSSV: 20163902
Hà Nội, tháng 10/2020
Trang 22.1.3.1 Nhóm ca sử dụng “Quản lý tài khoản chuyên gia” 11
Trang 3Ca sử dụng “Mở khóa tài khoản” 16 2.1.3.3 Nhóm ca sử dụng “Quản lý tài khoản CTV” 17
2.2.3.1 Nhóm ca sử dụng “Quản lý tài khoản chuyên gia” 25
2.2.3.2 Nhóm ca sử dụng “Quản lý tài khoản người dùng” 28
Trang 4Ca sử dụng “Xem danh sách người dùng” 28
2.2.3.3 Nhóm ca sử dụng “Quản lý tài khoản CTV” 30
Trang 52.6.8 Chức năng quản lý chuyên gia - Danh sách chuyên gia 75 2.6.9 Chức năng quản lý chuyên gia - Danh sách đăng ký mới 76 2.6.10 Chức năng quản lý cộng tác viên - Danh sách cộng tác viên 76 2.6.11 Chức năng quản lý cộng tác viên - Danh sách đăng ký mới 77
Trang 61 Giới thiệu
1.1 Mục đích
- Tài liệu phân tích thiết kế này mô tả thiết kế hệ thống hỗ trợ duyệt CV cho tuyển dụng trực tuyến (Phân hệ dành cho chuyên gia nhân sự), bao gồm các tính năng kiến trúc của hệ thống thông qua các chi tiết về hoạt động của mỗi mô-đun sẽ thực hiện và bố trí cơ sở dữ liệu Nó cũng cho thấy cách các ca sử dụng được hứa hẹn trong SRS sẽ được thực hiện trong hệ thống sử dụng thiết kế này
- Đối tượng chính của tài liệu này là nhà phát triển phần mềm Đối tượng thứ cấp là sinh viên và giảng viên muốn xem một mô hình cho tài liệu phát triển phần mềm
1.2 Tổng quan tài liệu
- Tài liệu gồm hai phần: Giới thiệu, Thiết kế hệ thống:
● Phần Giới thiệu nhằm mục đích cung cấp cho người dùng cái nhìn khái
quát về hệ thống, cũng như tài liệu phân tích thiết kế về hệ thống hỗ trợ duyệt CV cho tuyển dụng trực tuyến
● Phần Thiết kế hệ thống gồm 6 mục nhỏ:
○ Mô hình hóa cấu trúc hệ thống
○ Mô hình hóa sự tương tác
○ Kiến trúc tổng thể của hệ thống
○ Thiết kế lớp chi tiết
○ Thiết kế cơ sở dữ liệu
○ Thiết kế nguyên mẫu giao diện
Trang 8Ca sử dụng “Đăng ký làm CTV”
Ca sử dụng “Đăng nhập”
2.1.2 Nhóm ca sử dụng của “ Chuyên gia”
Ca sử dụng “Tìm kiếm, lọc CV”
Trang 9Ca sử dụng “Nhận thông báo”
Ca sử dụng “Xem CV”
Ca sử dụng “Quan tâm CV”
Ca sử dụng “Review CV”
Trang 10Ca sử dụng “Xem thông tin CV đầy đủ” (khi ứng viên xác nhận public CV)
Ca sử dụng “Cập nhật thông tin”
Ca sử dụng “Chat với người dùng”
Trang 11Ca sử dụng “Đăng xuất”
2.1.3 Nhóm ca sử dụng của “Admin”
2.1.3.1 Nhóm ca sử dụng “Quản lý tài khoản chuyên gia”
Ca sử dụng “Xem danh sách chuyên gia”
Ca sử dụng “Xem danh sách đăng ký mới”
Trang 12Ca sử dụng “Tìm kiếm”
Ca sử dụng “Xem chi tiết”
Trang 13Ca sử dụng “Khóa tài khoản”
Ca sử dụng “Mở khóa tài khoản”
Trang 14Ca sử dụng “Duyệt đăng ký mới”
2.1.3.2 Nhóm ca sử dụng “Quản lý tài khoản người dùng”
Ca sử dụng “Xem danh sách người dùng”
Trang 15Ca sử dụng “Tìm kiếm”
Ca sử dụng “Xem chi tiết”
Trang 16Ca sử dụng “Khóa tài khoản”
Ca sử dụng “Mở khóa tài khoản”
Trang 172.1.3.3 Nhóm ca sử dụng “Quản lý tài khoản CTV”
Ca sử dụng “Xem danh sách CTV”
Ca sử dụng “Xem danh sách đăng ký mới”
Ca sử dụng “Tìm kiếm”
Trang 18Ca sử dụng “Xem chi tiết”
Ca sử dụng “Khóa tài khoản”
Trang 19Ca sử dụng “Mở khóa tài khoản”
Ca sử dụng “Duyệt đăng ký mới”
Ca sử dụng “Đăng xuất”
Trang 202.2 Mô hình hóa sự tương tác
2.2.1 Nhóm ca sử dụng của “Khách”
Ca sử dụng “Đăng ký thành viên”
Ca sử dụng “Đăng ký làm chuyên gia”
Trang 21Ca sử dụng “Đăng ký làm CTV”
Ca sử dụng “Đăng nhập”
Trang 222.2.2 Nhóm ca sử dụng của “ Chuyên gia”
Ca sử dụng “Tìm kiếm, lọc CV”
Ca sử dụng “Nhận thông báo”
Trang 23Ca sử dụng “Xem CV”
Ca sử dụng “Quan tâm CV”
Ca sử dụng “Review CV”
Trang 24Ca sử dụng “Xem thông tin CV đầy đủ” (khi ứng viên xác nhận public CV)
Ca sử dụng “Cập nhật thông tin”
Trang 25Ca sử dụng “Chat với người dùng”
Ca sử dụng “Đăng xuất”
2.2.3 Nhóm ca sử dụng của “Admin”
2.2.3.1 Nhóm ca sử dụng “Quản lý tài khoản chuyên gia”
Ca sử dụng “Xem danh sách chuyên gia”
Trang 26Ca sử dụng “Xem danh sách đăng ký mới”
Ca sử dụng “Tìm kiếm”
Ca sử dụng “Xem chi tiết”
Trang 27Ca sử dụng “Khóa tài khoản”
Ca sử dụng “Mở khóa tài khoản”
Trang 28Ca sử dụng “Duyệt đăng ký mới”
2.2.3.2 Nhóm ca sử dụng “Quản lý tài khoản người dùng”
Ca sử dụng “Xem danh sách người dùng”
Ca sử dụng “Tìm kiếm”
Trang 29Ca sử dụng “Xem chi tiết”
Ca sử dụng “Khóa tài khoản”
Trang 30Ca sử dụng “Mở khóa tài khoản”
2.2.3.3 Nhóm ca sử dụng “Quản lý tài khoản CTV”
Ca sử dụng “Xem danh sách CTV”
Ca sử dụng “Xem danh sách đăng ký mới”
Trang 31Ca sử dụng “Tìm kiếm”
Ca sử dụng “Xem chi tiết”
Trang 32Ca sử dụng “Khóa tài khoản”
Ca sử dụng “Mở khóa tài khoản”
Trang 33Ca sử dụng “Duyệt đăng ký mới”
Ca sử dụng “Đăng xuất”
Trang 342.3 Kiến trúc tổng thể của hệ thống
Kiến trúc phân tầng của hệ thống được thể hiện trong hình vẽ sau đây:
Trang 372.4 Thiết kế chi tiết lớp
2.4.1 Sơ đồ gói
2.4.2 Sơ đồ lớp tổng quan của gói Model
Gói Model chứa các lớp thực thể quản lý các dữ liệu cần thiết cho hoạt động của hệ thống
Trang 382.4.2.1 Lớp M_account
● Mô tả: lớp khai báo các thông tin về tài khoản
● Các thuộc tính
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
chuyên gia, cộng tác viên, admin)
khoản (active/inactive)
● Các phương thức
Tên phương thức Đầu vào Đầu ra Phạm vi truy
cập
Mô tả
tài khoản
Trang 39● Các thuộc tính
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
● Các phương thức
Tên phương thức Đầu vào Đầu ra Phạm vi truy cập Mô tả
addSpecialist () Specialist void Public Tạo tài khoản
chuyên gia lockSpecialist () specialistId void Public Khóa tài khoản
chuyên gia unlockSpecialist () specialistId void Public Mở khóa tài
khoản chuyên gia
updateSpecilist () Specialist void Public Cập nhật
thông tin tài khoản chuyên gia
tài khoản chuyên gia
Trang 402.4.2.3 Lớp M_member
● Mô tả: lớp khai báo các thông tin về tài khoản thành viên
● Các thuộc tính
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
thành viên
qua email
khoản (active/inactive)
Trang 41● Mô tả: lớp khai báo các thông tin về tài khoản cộng tác viên
● Các thuộc tính
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
qua email
khoản (active/inactive)
thông tin tài khoản cộng tác viên
lockVolunteer () volunteerId void Public Khóa tài khoản
cộng tác viên unlockVolunteer () volunteerId void Public Mở khóa tài
khoản cộng tác viên
Trang 42Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
viên tham gia phòng chat
khoản (active/inactive)
Trang 43content String Public Nội dung tin nhắn
● Các phương thức
Tên phương thức Đầu vào Đầu ra Phạm vi truy
cập
Mô tả
tin nhắn
2.4.2.7 Lớp M_cv
● Mô tả: lớp khai báo các thông tin về CV
● Các thuộc tính
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
xem CV
● Các phương thức
Tên phương thức Đầu vào Đầu ra Phạm vi truy
CV
Trang 442.4.2.8 Lớp M_review
● Mô tả: lớp khai báo các thông tin về kết quả review
● Các thuộc tính
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
người dùng
khoản (active/inactive)
Trang 45createdAt Date Public Ngày tạo
● Các phương thức
Tên phương thức Đầu vào Đầu ra Phạm vi truy
cập
Mô tả
report
2.4.2.10 Lớp M_question
● Mô tả: lớp khai báo các thông tin về câu hỏi (diễn đàn)
● Các thuộc tính
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
khoản (active/inactive)
● Các phương thức
Tên phương thức Đầu vào Đầu ra Phạm vi truy
cập
Mô tả
Trang 46Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
lời
lời
khoản (active/inactive)
Trang 47luận
khoản (active/inactive)
● Các phương thức
Tên phương thức Đầu vào Đầu ra Phạm vi truy cập Mô tả
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
báo
khoản (active/inactive)
Trang 482.4.2.14 Lớp M_gift
● Mô tả: lớp khai báo các thông tin về quà tặng
● Các thuộc tính
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
thông tin quà tặng
2.4.3 Sơ đồ lớp tổng quan của gói Control
Trang 49changeStatusNotify() Member void Public Thay đổi trạng
thái nhận thông báo qua email
thông tin tài khoản getAllMember () List<Member> Public Lấy danh sách
Trang 50tài khoản thành viên getListMember () List<Member> Public Lấy danh sách
tài khoản thành viên phù hợp
tài khoản thành viên
changeStatusNotify() Specialist void Public Thay đổi trạng
thái nhận thông báo qua email
thông tin tài khoản
Trang 51getSpecialist() Specialist Public Lấy thông tin
tài khoản chuyên gia
thái nhận thông báo qua email
thông tin tài khoản
convertPoint() List<Volunteer> Public Đổi điểm tích
lũy
getAllVolunteer() List<Volunteer> Public Lấy danh sách
tài khoản cộng tác viên
getAllNewVolunteer() List<Volunteer> Public Lấy danh sách
tài khoản đăng
ký mới
getListVolunteer() List<Volunteer> Public Lấy danh sách
tài khoản cộng tác viên phù hợp
tài khoản cộng tác viên
Trang 52unlockAccount() Volunteer void Public Mở khóa tài
quả review lên
Trang 53createCv() Cv void Public Tạo mới CV
Trang 54getListQuestion() List<Question> Public Lấy danh sách
câu hỏi phù hợp
getAllQuestion () List<Question> Public Lấy danh sách
câu hỏi
getQuestion () questionId Question Public Lấy thông tin
câu hỏi
Trang 55addComment() Comment void Public Thêm bình
luận
2.4.4 Sơ đồ lớp tổng quan của gói View
Gói View bao gồm các lớp quản lý các thành phần giao diện tương tác giữa người dùng và hệ thống
2.4.4.1 Lớp V_member
● Mô tả: lớp khai báo các thông tin về tài khoản thành viên
● Các thuộc tính
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
Trang 56registerMember () Member void Public Đăng ký tài
khoản thành viên
changeStatusNotify() Member void Public Thay đổi trạng
thái nhận thông báo qua email
thông tin tài khoản getAllMember () List<Member> Public Lấy danh sách
tài khoản thành viên getListMember () List<Member> Public Lấy danh sách
tài khoản thành viên phù hợp
tài khoản thành viên
khoản
2.4.4.2 Lớp V_specialist
● Mô tả: lớp khai báo các thông tin về tài khoản chuyên gia
● Các thuộc tính
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
Trang 57khoản chuyên gia
changeStatusNotify() Specialist void Public Thay đổi trạng
thái nhận thông báo qua email
thông tin tài khoản
getAllSpecialist() List<Specialist> Public Lấy danh sách
tài khoản chuyên gia getAllNewSpecialist() List<Specialist> Public Lấy danh sách
tài khoản đăng
ký mới
getListSpecialist() List<Specialist> Public Lấy danh sách
tài khoản chuyên gia phù hợp
tài khoản chuyên gia
khoản
2.4.4.3 Lớp V_volunteer
● Mô tả: lớp khai báo các thông tin về cộng tác viên
● Các thuộc tính
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
qua email
● Các phương thức
Trang 58truy cập registerVolunteer () Volunteer void Public Đăng ký tài
khoản cộng tác viên changeStatusNotify() Volunteer void Public Thay đổi trạng
thái nhận thông báo qua email
thông tin tài khoản
convertPoint() List<Volunteer> Public Đổi điểm tích
lũy
getAllVolunteer() List<Volunteer> Public Lấy danh sách
tài khoản cộng tác viên
getAllNewVolunteer() List<Volunteer> Public Lấy danh sách
tài khoản đăng
ký mới
getListVolunteer() List<Volunteer> Public Lấy danh sách
tài khoản cộng tác viên phù hợp
tài khoản cộng tác viên
khoản
Trang 59ratingContent String Public Nội dung đánh giá
● Các phương thức
Tên phương thức Đầu vào Đầu ra Phạm vi truy
cập
Mô tả
quả review lên
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
CV
Trang 60deleteCv() cvId void Public Xóa CV
2.4.4.6 Lớp V_message
● Mô tả: lớp khai báo các thông tin về chat
● Các thuộc tính
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
2.4.4.7 Lớp V_gift
● Mô tả: lớp khai báo các thông tin về quà tặng
● Các thuộc tính
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
● Các phương thức
Tên phương thức Đầu vào Đầu ra Phạm vi truy
cập
Mô tả
Trang 61subject String Public Chủ đề
● Các phương thức
truy cập
Mô tả
getListQuestion() List<Question> Public Lấy danh sách
câu hỏi phù hợp
getAllQuestion () List<Question> Public Lấy danh sách
câu hỏi getQuestion () questionId Question Public Lấy thông tin
câu hỏi
2.4.4.9 Lớp V_answer
● Mô tả: lớp khai báo các thông tin về câu trả lời trên diễn đàn
● Các thuộc tính
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
Trang 62markAnswer() Answer void Public Chọn câu trả
Tên thuộc tính Kiểu dữ liệu Phạm vi truy cập Mô tả
2.5 Thiết kế cơ sở dữ liệu
2.5.1 Sơ đồ quan hệ bảng dữ liệu
Trang 632.5.2 Danh sách các bảng dữ liệu
Tên bảng dữ liệu Mô tả
account Thông tin về tài khoản
member Thông tin về tài khoản thành viên
review Thông tin về kết quả review CV
volunteer Thông tin về tài khoản cộng tác viên
specialist Thông tin về tài khoản chuyên gia
message Thông tin về tin nhắn trong phòng chat
notification Các loại thông báo
question Thông tin về câu hỏi phía diễn đàn
answer Thông tin về câu trả lời phía diễn đàn
comment Thông tin về bình luận cho câu trả lời phía diễn đàn
2.5.3 Thiết kế chi tiết các bảng dữ liệu
2.5.3.1 Bảng account
STT Tên trường Kiểu dữ liệu Nullable Ràng
buộc
Mô tả
Trang 64chuyên gia, cộng tác viên, admin)
3 getEmailNotification Boolean No Nhận thông báo qua
(active/inactive)
2.5.3.3 Bảng cv
STT Tên trường Kiểu dữ liệu Nullable Ràng
buộc Mô tả
Trang 65STT Tên trường Kiểu dữ liệu Nullable Ràng
buộc
Mô tả
(active/inactive)
2.5.3.5 Bảng report
STT Tên trường Kiểu dữ liệu Nullable Ràng
buộc
Mô tả
2.5.3.6 Bảng volunteer
liệu Nullable Ràng buộc Mô tả
Trang 667 getEmailNotification Boolean No Nhận thông báo qua
(active/inactive)
môn
(active/inactive)
2.5.3.8 Bảng room
Trang 674 createdAt Datetime No Ngày tạo
2.5.3.9 Bảng message
STT Tên trường Kiểu dữ liệu Nullable Ràng
buộc
Mô tả
2.5.3.10 Bảng gift
STT Tên trường Kiểu dữ liệu Nullable Ràng
buộc
Mô tả
2.5.3.11 Bảng notification
STT Tên trường Kiểu dữ liệu Nullable Ràng
buộc
Mô tả
Trang 69STT Tên trường Kiểu dữ liệu Nullable Ràng
buộc Mô tả
(active/inactive)
2.6 Thiết kế nguyên mẫu giao diện
2.6.1 Trang chủ
Trang 702.6.2 Chức năng đăng ký làm thành viên
Trang 712.6.3 Chức năng đăng ký làm chuyên gia
Trang 722.6.4 Chức năng đăng ký làm cộng tác viên
Trang 732.6.5 Chức năng đăng nhập
Trang 742.6.6 Chức năng cập nhật thông tin của chuyên gia
Trang 752.6.7 Chức năng quản lý người dùng - Danh sách người dùng
2.6.8 Chức năng quản lý chuyên gia - Danh sách chuyên gia
Trang 762.6.9 Chức năng quản lý chuyên gia - Danh sách đăng ký mới
2.6.10 Chức năng quản lý cộng tác viên - Danh sách cộng tác viên
Trang 772.6.11 Chức năng quản lý cộng tác viên - Danh sách đăng ký mới