Các yêu cầu phi chức năng

Một phần của tài liệu Xây dựng hệ thống gợi ý và hỗ trợ tìm kiếm học bổng du học (Trang 31)

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” (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 ý (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 (adsbygoogle = window.adsbygoogle || []).push({});

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

Một phần của tài liệu Xây dựng hệ thống gợi ý và hỗ trợ tìm kiếm học bổng du học (Trang 31)