Yêu cầu bảo mật
- Mật khẩu đăng nhập của người dùng được mã hóa Yêu cầu hiệu năng
- Thời gian phản hồi tối đa 5s Yêu cầu giao diện
- Giao diện web nhất quán trên các trình duyệt, thân thiện trên các thiết bị (màn hình máy tính, màn hình điện thoại, máy tính bảng ).
- Ngôn ngữ sử dụng Tiếng anh - Định dạng ngày yyyy/mm/dd
CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 3.1 Mô hình hóa cấu trúc
Biểu đồ lớp tham gia ca sử dụng “Đăng ký”
Hình 3.1 Biểu đồ lớp tham gia ca sử dụng “Đăng ký” Biểu đồ lớp tham gia ca sử dụng “Đăng nhập”
Biểu đồ lớp tham gia ca sử dụng “Tìm kiếm học bổng”
Hình 3.3 Biểu đồ lớp tham gia ca sử dụng “Tìm kiếm học bổng” Biểu đồ lớp tham gia ca sử dụng “So sánh học bổng”
Hình 3.4 Biểu đồ lớp tham gia ca sử dụng “So sánh học bổng”
Biểu đồ lớp tham gia ca sử dụng “Xem danh sách HB gợi ý”
Biểu đồ lớp tham gia ca sử dụng “Xem chi tiết bài đăng HB”
Hình 3.6 Biểu đồ lớp tham gia ca sử dụng “Xem chi tiết bài đăng HB” Biểu đồ lớp tham gia ca sử dụng “Quản lý thông tin cá nhân”
Hình 3.7 Biểu đồ lớp tham gia ca sử dụng “Quản lý thông tin cá nhân” Biểu đồ lớp tham gia ca sử dụng “Quản lý DS yêu thích”
Biểu đồ lớp tham gia ca sử dụng “Quản lý nguồn trích rút”
Hình 3.9 Biểu đồ lớp tham gia ca sử dụng “Quản lý nguồn trích rút HB” Biểu đồ lớp tham gia ca sử dụng “Báo cáo”
Hình 3.10 Biểu đồ lớp tham gia ca sử dụng “Báo cáo”
Biểu đồ lớp tham gia ca sử dụng “Quản lý tài khoản QTV”
Hình 3.11 Biểu đồ lớp tham gia ca sử dụng “Quản lý tài khoản QTV” Biểu đồ lớp tham gia ca sử dụng “Phân loại ngành học”
3.2 Mô hình hóa sự tương tác
Biểu đồ trình tự cho ca sử dụng “Đăng ký”
Hình 3.13 Biểu đồ trình tự cho ca sử dụng “Đăng ký” Biểu đồ trình tự cho ca sử dụng “Đăng nhập”
Biểu đồ trình tự cho ca sử dụng “Tìm kiếm học bổng”
Hình 3.15 Biểu đồ trình tự cho ca sử dụng “Tìm kiếm học bổng” Biểu đồ trình tự cho ca sử dụng “So sánh học bổng”
Biểu đồ trình tự cho ca sử dụng “Xem danh sách gợi ý”
Hình 3.17 Biểu đồ trình tự cho ca sử dụng “Xem DS gợi ý” Biểu đồ trình tự cho ca sử dụng “Xem chi tiết HB”
Biểu đồ trình tự cho ca sử dụng “Quản lý thông tin cá nhân”
Hình 3.19 Biểu đồ trình tự cho ca sử dụng “Quản lý thông tin cá nhân” Biểu đồ trình tự cho ca sử dụng “Quản lý DS yêu thích”
Biểu đồ trình tự cho ca sử dụng “Quản lý nguồn trích rút HB”
Hình 3.21 Biểu đồ trình tự cho ca sử dụng “Quản lý nguồn trích rút HB” Biểu đồ trình tự cho ca sử dụng “Báo cáo”
Biểu đồ trình tự cho ca sử dụng “Quản lý tài khoản QTV”
Hình 3.23 Biểu đồ trình tự cho ca sử dụng “Quản lý tài khoản QTV” Biểu đồ trình tự cho ca sử dụng “Phân loại ngành học”
Biểu đồ trình tự cho nghiệp vụ “Trích rút dữ liệu tự động”
Hình 3.25 Biểu đồ trình tự cho nghiệp vụ “Trích rút dữ liệu tự động” 3.3 Kiến trúc tổng thể của hệ thống
Theo góc nhìn phân rã hệ thống thành các hệ thống con (các gói), hệ thống được chia thành 5 tầng: Tầng Giao diện, Tầng Ứng dụng, Tầng Nghiệp vụ, Tầng Truy cập dữ liệu và Tầng Lưu trữ dữ liệu.
Sơ đồ kiến trúc
Hình 3.26 Sơ đồ kiến trúc của hệ thống Đặc tả thiết kế kiến trúc
3.3.2.1.Tầng giao diện (tầng trình bày )
Chuyển các dữ liệu cho người dùng và biến đổi các hành động của người dùng thành các sự kiện vào của hệ thống.
Gồm các lát: Khách: gồm các lớp Đăng ký Đăng nhập Tìm kiếm học bổng Người dùng: gồm các lớp
Trang chủ (Danh sách gợi ý) Tìm kiếm học bổng
Quản lý trang cá nhân Quản trị viên: gồm các lớp
Quản lý nguồn học bổng Quản lý tài khỏa quản trị viên Xem báo cáo xu hướng Phân loại ngành học
3.3.2.2.Tầng ứng dụng
Bao gồm các đối tượng điều khiển và dẫn dắt các quy luật của ứng dụng. Gồm các lát:
- Điều khiển Đăng ký (Register_Controller) - Điều khiển Đăng nhập (Login_Controller) - Điều khiển Xem chi tiết (Detail_Controller) - Điều khiển Tìm kiếm (Search_Controller) - Điều khiển Gợi ý (Recommendation_Controller)
- Điều khiển Quản lý thông tin cá nhân (Profile_Controller) - Điều khiểu Quản lý danh sách yêu thích (Favorite_Controller) - Điều khiển Trích rút (Crawl_Controller)
- Điều khiển Phân loại ngành học (ClassificationMajor_Controller) - Điều khiển Báo cáo (ViewReport_Controller)
- Điểu khiển Quản lý tài khoản QTV (Role_Controller)
- Điều khiển Quản lý nguồn trích rút (SourceManagement_Controller)
3.3.2.3.Tầng nghiệp vụ
Bao gồm các đối tượng nghiệp vụ (hay lĩnh vực), cùng sự cài đặt các quy tắc quản lý chúng.
Gồm các lát:
Truy cập và Thay đổi dữ liệu Tìm kiếm học bổng Xem chi tiết học bổng Sửa thông tin cá nhân Quản lý tài khoản QTV Xử lý tương tác
Bình luận, Đánh Giá bài đăng học bổng. Thêm HB vào danh sách HB yêu thích.
Thêm, Xóa Quốc gia vào danh sách Quốc gia yêu thích. Thêm, Xóa Trường vào danh sách Trường yêu thích. Thêm, Xóa Ngành vào danh sách Ngành yêu thích. Phản hồi về các thuộc tính: Dislike và thay thế thuộc tính. Gợi ý học bổng
Xem danh sách HB gợi ý. Xem HB tương tự.
Trích rút dữ liệu
Active/Deactive nguồn học bổng Cài đặt thời gian trích rút tự động Trích rút dữ liệu
3.3.2.4.Tầng truy cập dữ liệu
Quản lý việc truy cập (đọc/viết) các đối tượng nghiệp vụ từ các phương tiện lưu trữ dữ liệu. Trong đồ án em đã sử dụng framework Spring Boot [1] cụ thể là thư viện JPA Repositories để xử lý các thao tác truy cập dữ liệu.
3.3.2.5.Tầng Lưu trữ dữ liệu
Quản lý việc truy cập (đọc/viết) các đối tượng nghiệp vụ từ các phương tiện lưu trữ dữ liệu.
Gồm các lát: Học bổng
Nguồn học bổng (website) Học bổng (scholarship) Quốc gia (country) Trường (school) Ngành học (major) Bậc học (level) Giá trị HB (money) Yêu cầu (requirement) Người sử dụng
Quản trị viên (admin) Người sử dụng (user) Tương tác
Tương tác người dùng với học bổng (Scholarship_Interactive) Quốc gia yêu thích (CountryFavorite)
Trường học yêu thích (SchoolFavorite) Ngành học yêu thích (MajorFavorite) Bình luận (Comment)
3.4 Thiết kế giao diện
Giao diện dành cho Khách
Hình 3.27 Thiết kế giao diện Đăng ký-1
Hình 3.28 Thiết kế giao diện đăng ký-2
Hình 3.30 Thiết kế giao diện đăng nhập
Hình 3.31 Thiết kế giao diện tìm kiếm của Khách Giao diện dành cho Người dùng
Hình 3.33 Thiết kế giao diện Tìm kiếm của người dùng
Hình 3.35 Thiết kế giao diện Xem chi tiết HB
Hình 3.37 Thiết kế giao diện Trang cá nhân
Hình 3.38 Thiết kế giao diện Danh sách HB yêu thích
Giao diện dành cho Quản trị viên
Hình 3.40 Thiết kế giao diện Đăng nhập của QTV
Hình 3.41 Thiết kế giao diện Quản lý nguồn trích rút HB
Hình 3.43 Thiết kế giao diện Báo cáo
Hình 3.44 Thiết kế giao diện Phân loại ngành học 3.5 Thiết kế chi tiết lớp
Sơ đồ lớp tổng quan
3.5.1.1.Tầng giao diện
Hình 3.46 Sơ đồ lớp gói Người dùng
Hình 3.47 Sơ đồ lớp gói Quản trị viên
3.5.1.2.Tầng nghiệp vụ
Hình 3.49 Sơ đồ lớp gói Truy cập và thay đổi DL
Hình 3.50 Sơ đồ lớp gói Gợi ý
3.5.1.3.Tầng lưu trữ dữ liệu
Hình 3.52 Sơ đồ lớp Tầng dữ liệu Đặc tả chi tiết các lớp
3.5.2.4.Register_Interface
a) Mục đích
Giao diện Đăng ký tài khoản giao tiếp với người dùng cuối. b) Danh sách thuộc tính
Tên Phạm vi truy cập Kiểu dữ liệu Mô tả
name public string Tên người dùng
email public string Email
pasword public string Mật khẩu
gender public string Giới tính
phone public string Số điện thoại
level public string Bậc học hiện tại
birthday public date Ngày sinh
date_graduate public date Ngày tốt nghiệp
list_favorite_country public array DS quốc gia yêu thích list_favorite_school public array DS trường yêu thích list_favorite_major public array DS ngành học yêu
thích c) Danh sách phương thức
Tên Phạm vi
truy cập Tham số đầu vào Kiểu trả về Mô tả
register() public name string
email string pasword string gender string phone string level string birthday date date_graduate date list_favorite_country array list_favorite_school array list_favorite_major array
Void Gửi yêu cầu đăng ký
notifyFailure() public Void Thông báo
lỗi cho user
3.5.2.5.Register_Controller
a) Mục đích
Điều khiển nghiệp vụ Đăng ký tài khoản giao tiếp với dữ liệu. b) Danh sách thuộc tính
c) Danh sách phương thức
Tên Phạm vi
truy cập Tham số đầu vào Kiểu trả về Mô tả
checkEmailExist() public email: string boolean Kiểm tra email đã tồn tại hay chưa
notifyFailure() public Void Thông báo lỗi cho user saveUser() public user: User Void Lưu thông tin user saveCountry() public country_id Void Lưu thông tin quốc gia
user_id saveSchool() public school_id
user_id
Void Lưu thông tin trường yêu thích
saveMajor() public major_id user_id
Void Lưu thông tin ngành học yêu thích
3.5.2.6.Login_Interface
a) Mục đích
Giao diện Đăng ký tài khoản giao tiếp với người dùng cuối. b) Danh sách thuộc tính
Tên Phạm vi truy cập Kiểu dữ liệu Mô tả
email public string Email
pasword public string Mật khẩu
c) Danh sách phương thức
Tên Phạm vi truy
cập Tham số đầu vào Kiểu trả về Mô tả
login() public email string pasword string
Void Gửi yêu cầu đăng nhập
notifyFailure() public Void Thông báo lỗi cho user
3.5.2.7.Login_Controller
a) Mục đích
Điều khiển nghiệp vụ đăng nhập tài khoản của người dùng cuối. b) Danh sách thuộc tính
c) Danh sách phương thức
Tên Phạm vi
truy cập Tham số đầu vào Kiểu trả về Mô tả
checkAuthentication() public email string pasword string
boolean Xác thực người dùng
redirect() public Void Chuyển màn
hình
notifyFailure() public Void Thông báo lỗi
cho user
3.5.2.8.Search_Interface
a) Mục đích
Giao diện Tìm kiếm Học bổng. b) Danh sách thuộc tính
Tên Phạm vi truy cập Kiểu dữ liệu Mô tả
country public string Quốc gia
level public string Cấp học
school public string Trường
due_date public date Ngày hết hạn
c) Danh sách phương thức
Tên Phạm vi
truy cập Tham số đầu vào Kiểu trả về Mô tả
search() public country string level string school string due_date date major string
List<Scholarship> Gửi yêu cầu tìm kiếm với các giá trị nhập
3.5.2.9.Search_Controller
a) Mục đích
Điều khiển nghiệp vụ tìm kiếm học bổng. b) Danh sách thuộc tính
c) Danh sách phương thức
Tên Phạm vi
truy cập Tham số đầu vào Kiểu trả về Mô tả
findScholarship() public country string level string school string due_date date major string List<Scholarship> Tìm kiếm với các giá trị nhập từ cơ sở dữ liệu 3.5.2.10.Compare_Interface a) Mục đích Giao diện So sánh Học bổng. b) Danh sách thuộc tính
Tên Phạm vi truy cập Kiểu dữ liệu Mô tả
nameScholarship1 public string Tên học bổng so sánh
nameScholarship1 public string Tên học bổng so sánh
c) Danh sách phương thức
Tên Phạm vi
truy cập Tham số đầu vào Kiểu trả về Mô tả
search() public nameScholarship1 string nameScholarship1 string
List<Scholarship> Gửi yêu cầu tìm kiếm với các giá trị nhập 3.5.2.11.Recommendation_Interface a) Mục đích
Giao diện hiển thị những học bổng gợi ý. b) Danh sách thuộc tính
c) Danh sách phương thức
Tên Phạm vi
showRecommend() public List<Scholarship> Gửi yêu cầu xem HB gợi ý
3.5.2.12.Recommendation _Controller
a) Mục đích
Điều khiển nghiệp vụ gợi ý học bổng. b) Danh sách thuộc tính
c) Danh sách phương thức
Tên Phạm vi
truy cập Tham số đầu vào Kiểu trả về Mô tả
findAllNewScholarship() public List
<Scholarship>
Lấy các học bổng mới từ cơ sở dữ liệu. findScholarshipRecommend() private List
<Scholarship> List <Scholarship> Tình toán các giá trị gợi ý để trả về các học bổng phù hợp 3.5.2.13.Detail_Interface a) Mục đích
Giao diện hiển thị chi tiết Học bổng. b) Danh sách thuộc tính
Tên Phạm vi truy cập Kiểu dữ liệu Mô tả
rating public int Giá trị đánh giá 0-5
message public string Giá trị bình luận
is_liked public boolean like/dislike
scholarship_id private int Mã HB
c) Danh sách phương thức
Tên Phạm vi truy
cập Tham số đầu vào Kiểu trả về Mô tả
getDetail() public scholarship_id Scholarship Gửi yêu cầu lấy thông tin chi tiết về HB rating() public rating: int Void Đánh giá HB
like() public is_like: boolean Void Yêu thích/ Ko thích HB
share() public Void Chia sẻ HB
comment() public message Void Bình luận bài đăng addToFavorite() public Void Thêm HB vào DS Yêu
thích
compare() public Void Yêu cầu so sánh HB
3.5.2.14.Detail_Controller
a) Mục đích
b) Danh sách thuộc tính c) Danh sách phương thức
Tên Phạm vi
truy cập Tham số đầu vào Kiểu trả về Mô tả
getDetailScholarship() public scholarship_id Scholarship Lấy ra thông tin chi tiết của học bổng
redirect() public Void Chuyển màn
hình
saveInteractive() public Void Lưu các thông tin tương tác addToFavoriteScholarship() public Void Lưu HB vào
danh sách yêu thích
saveComment public message Void Lưu bình luận updateScholarship public Void Lưu các thông
tin tương tac
3.5.2.15.Profile_Interface
a) Mục đích
Giao diện Quản lý thông tin cá nhân. b) Danh sách thuộc tính
c) Danh sách phương thức
Tên Phạm vi truy
cập Tham số đầu vào Kiểu trả về Mô tả
showProfile() public User Gửi yêu cầu lấy data profile
updateProfile public user:User Void Gửi y/c cập nhật profile
3.5.2.16.Profile_Controller
a) Mục đích
Điều khiển nghiệp vụ Quản lý thông tin cá nhân b) Danh sách thuộc tính
c) Danh sách phương thức
Tên Phạm vi truy
cập Tham số đầu vào Kiểu trả về Mô tả
findAllProfile() public User Tìm kiếm tất cả user updateProfile public user:User Void Cập nhật các giá trị
trong profile
3.5.2.17.FavoriteList_Interface
a) Mục đích
Giao diện Các danh sách yêu thích. b) Danh sách thuộc tính
c) Danh sách phương thức
Tên Phạm vi
addCountryFavorite() public nameCountry Void Yêu cầu thêm quốc gia vào DS yêu thích
deleteCountryFavorite() public countryId Void Yêu cầu xóa quốc gia khỏi DS yêu thích
addSchoolFavorite() public nameSchool Void Yêu cầu thêm trường học vào DS yêu thích deleteSchoolFavorite() public schoolId Void Yêu cầu xóa
trường học khỏi DS yêu thích addMajorFavorite() public nameMajor Void Yêu cầu thêm
ngành học vào DS yêu thích deleteMajorFavorite() public majorId Void Yêu cầu xóa
ngành học khỏi DS yêu thích deleteScholarshipFavorite() public scholarshipId Void Yêu cầu xóa học
bổng khỏi DS yêu thích
showFavoriteList() public Void Yêu cầu lấy DS yêu thích
3.5.2.18.FavoriteList_Controller
a) Mục đích
Điều khiển nghiệp vụ Quản lý danh sách yêu thích b) Danh sách thuộc tính c) Danh sách phương thức Tên Phạm vi truy cập Tham số
đầu vào Kiểu trả về Mô tả
getScholarshipFavorite() public List<Scholarship> lấy DS yêu thích
getCountryFavorite() public List<Country> lấy DS yêu thích
getMajorFavorite() public List<Major> lấy DS yêu thích
getSchoolFavorite() public List<School> lấy DS yêu thích
saveCountryFavorite() public Country Void thêm quốc gia vào DS yêu thích
deleteCountryFavorite() public CountryID Void xóa quốc gia khỏi DS yêu thích
saveSchoolFavorite() public School Void thêm trường học