1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học

100 22 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 100
Dung lượng 12,65 MB

Cấu trúc

  • HÀ NỘI, 01/2021

  • ĐỀ TÀI TỐT NGHIỆP

  • 2. Mục tiêu chính của đồ án

  • 3. Các nhiệm vụ cụ thể của đồ án

  • 4. Lời cam đoan của sinh viên

  • 5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo vệ

  • Lời cảm ơn

  • Tóm tắt nội dung đồ án

  • MỤC LỤC

  • CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI 1

  • CHƯƠNG 2. PHÂN TÍCH YÊU CẦU 2

  • CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 19

  • CHƯƠNG 5. CÀI ĐẶT HỆ THỐNG 73

  • CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 83

  • TÀI LIỆU THAM KHẢO 85

  • DANH MỤC HÌNH VẼ

  • 1.2 Mục đích

  • 1.3 Bố cục đồ án

  • CHƯƠNG 2. PHÂN TÍCH YÊU CẦU

  • 2.2 Quy trình nghiệp vụ của hệ thống

  • Quy trình “Đăng nhập” của Khách

  • Quy trình Tìm kiếm học bổng

  • Quy trình “Quản lý Profile”

  • Quy trình “Xem chi tiết bài đăng học bổng”

  • Quy trình So sánh học bổng

  • Quy trình sử dụng của Quản trị viên

  • 2.3 Sơ đồ usecase

  • Phân rã usecase “Xem chi tiết học bổng”

  • Phân rã usecase “Quản lý profile”

  • Phân rã usecase “Quản lý nguồn thông tin học bổng”

  • 2.4 Đặc tả usecase

  • UC02 “Đăng nhập”

  • UC03 “Tìm kiếm Học Bổng”

  • UC04 “So sánh Học Bổng”

  • UC05 “Xem danh sách Học Bổng gợi ý”

  • UC06 “Xem chi tiết Bài đăng Học Bổng”

  • UC07 “Xem HB gợi ý dựa trên phản hồi”

  • UC08 “Quản lý danh sách yêu thích”

  • UC09 “Quản lý thông tin cá nhân”

  • UC010 “Quản lý nguồn trích rút HB”

  • UC11 “Báo cáo”

  • UC12 “Quản lý tài khoản Quản Trị Viên”

  • UC13 “Phân loại ngành học”

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

  • Yêu cầu hiệu năng

  • Yêu cầu giao diện

  • CHƯƠNG 3. THIẾT KẾ HỆ THỐNG

  • 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”

  • 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”

  • 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”

  • 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”

  • 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 nhập”

  • 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 ý”

  • 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”

  • 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”

  • 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”

  • 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”

  • 3.3 Kiến trúc tổng thể của hệ thống

  • Sơ đồ kiến trúc

  • Đặc tả thiết kế kiến trúc

  • 3.4 Thiết kế giao diện

  • Giao diện dành cho Khách

  • Giao diện dành cho Người dùng

  • Giao diện dành cho Quản trị viên

  • 3.5 Thiết kế chi tiết lớp

  • Sơ đồ lớp tổng quan

  • Đặc tả chi tiết các lớp

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

  • Bảng dữ liệu “Scholarship”

  • Bảng dữ liệu “Country”

  • Bảng dữ liệu “School”

  • Bảng dữ liệu “MajorScholarship”

  • Bảng dữ liệu “Requirement”

  • Bảng dữ liệu “Level”

  • Bảng dữ liệu “Money”

  • Bảng dữ liệu “Web”

  • Bảng dữ liệu “CountryFavorite”

  • Bảng dữ liệu “SchoolFavorite”

  • Bảng dữ liệu “MajorFavorite”

  • Bảng dữ liệu “ScholarshipInteractive”

  • Bảng dữ liệu “Comment”

  • Bảng dữ liệu “Account”

  • Bảng dữ liệu “Admin”

  • Bảng dữ liệu “User”

  • Bảng dữ liệu “Token”

  • 3.7 Thiết kế Trích rút dữ liệu

  • Các nguồn thu thập

  • Các giá trị thu thập chính

  • Cài đặt trích rút và lưu trữ

  • CHƯƠNG 4. THIẾT KẾ PHƯƠNG PHÁP GỢI Ý

  • 4.1 Giới thiệu hệ thống gợi ý

  • Các phương pháp gợi ý phổ biến

  • 4.2 Thiết kế các chức năng gợi ý học bổng du học

  • Gợi ý dựa trên hồ sơ người dùng

  • Gợi ý dựa trên học bổng đang xem

  • Gợi ý dựa trên phản hồi

  • CHƯƠNG 5. CÀI ĐẶT HỆ THỐNG

  • Spring Boot

  • Vuejs và cách tiếp cận với Client-side rendering

  • FastApi

  • Các công nghệ khác

  • 5.2 Kết quả cài đặt hệ thống

  • 5.3 Kết quả kiểm thử

  • CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

  • 6.2 Hướng phát triển của đồ án

  • TÀI LIỆU THAM KHẢO

Nội dung

GIỚI THIỆU ĐỀ TÀI

Lý do chọn đề tài

Du học nước ngoài đang trở thành xu hướng phổ biến tại Việt Nam, thu hút không chỉ học sinh, sinh viên mà còn cả những người đã đi làm, với mong muốn tiếp thu kiến thức và trải nghiệm văn hóa mới Tuy nhiên, chi phí du học thường cao, khiến nhiều người tìm kiếm học bổng để giảm bớt gánh nặng tài chính Việc lựa chọn học bổng phù hợp với sở thích và năng lực giữa hàng trăm thông tin trên các trang web là một thách thức lớn Do đó, tôi đã quyết định nghiên cứu đề tài “Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng” nhằm đáp ứng nhu cầu này.

Mục đích

Hệ thống thu thập và trích xuất thông tin học bổng từ các website như www.scholarshipsads.com, www.scholarship-positions.com và cappex.com, nhằm hỗ trợ người dùng tìm kiếm và gợi ý các học bổng phù hợp với nhu cầu và sở thích của họ.

Bố cục đồ án

- Chương 1: Giới thiệu đề tài

- Chương 2: Phân tích yêu cầu hệ thống

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

- Chương 4: Thiết kế phương pháp gợi ý

- Chương 5: Cài đặt hệ thống

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

PHÂN TÍCH YÊU CẦU

Các tác nhân

Hệ thống có 3 tác nhân là Khách, Người dùng, Quản trị viên.

Khách là người truy cập vào hệ thống nhưng chưa đăng nhập Sau khi đăng nhập thành công Khách sẽ trở thành Người dùng

Quản trị viên đóng vai trò quan trọng trong việc quản lý hệ thống, với quyền cài đặt các nguồn trích rút học bổng, quản lý tài khoản và xem báo cáo sau khi đăng nhập.

Quy trình nghiệp vụ của hệ thống

Quy trình “Đăng ký” của Khách

Hình 2.1 Sơ đồ hoạt động quy trình Đăng ký

Quy trình “Đăng nhập” của Khách

Hình 2.2 Sơ đồ hoạt động quy trình Đăng nhập

Quy trình Tìm kiếm học bổng

Hình 2.3 Sơ đồ hoạt động quy trình Tìm kiếm

Quy trình “Quản lý Profile”

Hình 2.4 Sơ đồ hoạt động quy trình Quản lý profile

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

Quy trình “Xem chi tiết bài đăng học bổng”

Hình 2.5 Sơ đồ hoạt động quy trình Xem chi tiết bài đăng học bổng

Quy trình So sánh học bổng

Hình 2.6 Sơ đồ hoạt động quy trình So sánh Học bổng

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

Quy trình sử dụng của Quản trị viên

Hình 2.7 Sơ đồ hoạt động của Quản trị viên

Sơ đồ usecase

Sơ đồ usecase tổng quan

Hình 2.8 Sơ đồ usecase tổng quan

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

Phân rã usecase “Xem chi tiết học bổng”

Hình 2.9 Sơ đồ phân rã usecase Xem chi tiết học bổng

Phân rã usecase “Quản lý profile”

Hình 2.10 Sơ đồ phân rã usecase Quản lý profile

Phân rã usecase “Quản lý nguồn thông tin học bổng”

Hình 2.11 Sơ đồ phân rã usecase Quản lý nguồn thông tin học bổng

Đặc tả usecase

Mã Use case UC01 Tên Use case Đăng ký

Mục đích sử dụng Đăng ký để tạo tài khoản người dùng mới.

Khách click vào button “Đăng ký”

STT Thực hiện Hành động

1 Khách chọn chức năng Đăng ký

2 Hệ thống hiển thị màn hình đăng ký

3 Khách nhập thông tin (mô tả phía dưới *)

4 Khách yêu cầu đăng ký

5 Hệ thống kiểm tra xem khách đã nhập hợp lệ các trường bắt buộc nhập hay chưa Kiểm tra email đã tồn tại hay chưa.

6 Hệ thống Tạo tài khoản Trả về thông báo thành công.

Luồng sự kiện thay thế

STT Thực hiện Hành động

Hệ thống thông báo lỗi cần yêu cầu người dùng nhập đầy đủ các trường bắt buộc Đồng thời, các trường nhập phải đúng định dạng, và nếu email đã tồn tại trong hệ thống, người dùng sẽ nhận được thông báo tương ứng.

6a Hệ thống Tạo tài khoản lỗi, thông báo lỗi

Hậu điều kiện Khách đăng ký thành công tài khoản, hệ thống đã lưu tài khoản mới, sẵn sàng đăng nhập.

Bảng 2.1 Bảng đặc tả usecase “Đăng ký”

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

* Dữ liệu đầu vào của thông tin cá nhân gồm các trường dữ liệu sau:

T Trường dữ liệu Mô tả Bắt buộc? Điều kiện hợp lệ Ví dụ

1 Email Có h.anh@gmail.com

5 Xác nhận Mật khẩu Có ToiLa12#$

8 Cấp học mong muốn Không

10 Trường yêu thích Trường học mong muốn được học Không

11 Ngành yêu thích Ngành học mong muốn được học Không

12 Quốc gia yêu thích Quốc gia muốn đến du học Không

Bảng 2.2 Bảng dữ liệu đầu vào usecase “Đăng ký”

Mã Use case UC02 Tên Use case Đăng nhập

Xác thực người dùng cho phép người dùng sử dụng các chức năng của tác nhân

Khách click button “Đăng nhập”

STT Thực hiện Hành động

1 Khách chọn chức năng Đăng nhập

2 Hệ thống Hiển thị màn hình đăng nhập

3 Khách nhập email và mật khẩu (mô tả phía dưới *)

4 Khách yêu cầu đăng nhập

5 Hệ thống kiểm tra tính hợp lệ và đầy đủ của các trường khách nhập

6 Hệ thống Kiểm tra tài khoản tồn tại hay không

7 Hệ thống Chuyển hướng đến màn hình “Danh sách học bổng gợi ý”

Luồng sự kiện thay thế

STT Thực hiện Hành động

Hệ thống thông báo lỗi yêu cầu khách hàng phải điền đầy đủ các trường bắt buộc Nếu thông tin đăng nhập không chính xác, hệ thống sẽ thông báo rằng email và/hoặc mật khẩu không đúng, khi không tìm thấy thông tin trong cơ sở dữ liệu.

Hệ thống lưu trữ thông tin đăng nhập của người dùng tạo ra một phiên hoạt động và lưu trạng thái, cho phép người dùng thực hiện các chức năng tương ứng với vai trò của họ.

Bảng 2.3 Bảng đặc tả usecase “Đăng nhập”

* Dữ liệu đầu vào của thông tin cá nhân gồm các trường dữ liệu sau:

STT Trường dữ liệu Mô tả Bắt buộc Điều kiện hợp lệ Ví dụ

13 Email Có h.anh@gmail.com

Bảng 2.4 Bảng dữ liệu đầu vào usecase “Đăng nhập”

UC03 “Tìm kiếm Học Bổng”

Mã Use case UC03 Tên Use case Tìm Kiếm Học Bổng

Tác nhân Khách, Người dùng

Cho phép người dùng tìm kiếm học bổng theo các giá trị của từng thuộc tính. Điều kiện kích hoạt

Người dùng click vào “Tìm kiếm”

Luồng sự kiện chính STT Thực hiện Hành động

Người dùng chọn chức năng “Tìm kiếm HB”

2 Hệ thống hiển thị màn hình tìm kiếm

Nhập các trường tìm kiếm (mô tả phía dưới *)

Người dùng Ấn chọn Tìm kiếm

5 Hệ thống Thực hiện truy vấn vào cơ sở dữ liệu theo các trường được nhập

6 Hệ thống Trả về danh sách tìm kiếm

Luồng sự kiện thay thế

Hậu điều kiện Hệ thống trả về danh sách tìm kiếm cho người dùng.

Bảng 2.5 Bảng đặc tả usecase “Tìm kiếm”

* Dữ liệu đầu vào của thông tin cá nhân gồm các trường dữ liệu sau:

STT Trường dữ liệu Điều kiện Bắt buộc?

2 Trường Là Người dùng Không

3 Ngành học Là Người dùng Không

4 Thời gian Là Người dùng Không

Bảng 2.6 Bảng dữ liệu đầu vào usecase “Tìm kiếm”

UC04 “So sánh Học Bổng”

Mã Use case U04 Tên Use case So sánh Học Bổng

Mục đích sử Giúp người dùng có thể quan sát sự giống/khác nhau giữa 2 học bổng để đưa ra quyết

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com) dụng định lựa chọn Điều kiện kích hoạt

Người dùng Click vào “So sánh”

Luồng sự kiện chính STT Thực hiện Hành động

1 Người dùng chọn chức năng So sánh Học bổng

2 Hệ thống hiển thị màn hình So sánh Học bổng

3 Người dùng Nhập Tên học bổng Ấn chọn Tìm kiếm (HB1)

4 Hệ thống Trả về thông tin HB1 được chọn

5 Người dùng Nhập Tên học bổng Ấn chọn Tìm kiếm (HB2)

6 Hệ thống Trả về thông tin HB2 được chọn.

7 Hệ thống Hiển thị đối sánh 2 học bổng

Luồng sự kiện thay thế

STT Thực hiện Hành động

4a.6a Hệ thống thông báo lỗi: Không tìm thấy HB

Hệ thống hiển thị thông tin kết quả so sánh của 2 học bổng

Bảng 2.7 Bảng đặc tả usecase “So sánh”

* Dữ liệu đầu vào của thông tin cá nhân gồm các trường dữ liệu sau:

STT Trường dữ liệu Mô tả Bắt buộc?

Bảng 2.8 Bảng dữ liệu đầu vào usecase “So sánh”

UC05 “Xem danh sách Học Bổng gợi ý”

Mã Use case UC05 Tên Use case Xem danh sách Học Bổng Gợi Ý

Mục đích sử dụng Đưa ra danh sách gợi ý Học bổng phù hợp cho người dùng Điều kiện kích hoạt Người dùng Click vào “Trang chủ”

Luồng sự kiện chính ST

1 Người dùng Đăng nhập thành công hoặc

Chọn “Xem DS Học Bổng”

2 Hệ thống hiển thị màn hình DS Học Bổng

Luồng sự kiện thay thế

Hậu điều kiện Hiển thị danh sách học bổng gợi ý cho người dùng

Bảng 2.9 Bảng đặc tả usecase “Xem DS gợi ý”

UC06 “Xem chi tiết Bài đăng Học Bổng”

Mã Use case UC06 Tên Use case Xem chi tiết bài đăng HB

Hiển thị chi tiết các thuộc tính của một học bổng, cho phép người dùng tương tác với bài đăng học bổng. Điều kiện kích hoạt

Người dùng Click vào “Xem thêm” ở Danh sách HB gợi ý hoặc ở Danh sách HB tìm kiếm

Luồng sự kiện chính STT Thực hiện Hành động

1 Người dùng Chọn chức năng “Xem chi tiết”

2 Hệ thống Hiển thị màn hình Chi tiết Học bổng

3 Hệ thống Hiển thị thêm các bài đăng tương tự

4 Người dùng Bình luận Đánh giá, Chi sẻ Bài đăng HB

5 Hệ thống Lưu lại thông tin tương tác người dùng

Luồng sự kiện thay thế

STT Thực hiện Hành động

4a Người dùng Click vào Xem chi tiết HB ở DS HB tương tự. 4b.1 Người dùng Thoát ra khỏi bài đăng hiện tại

4b.2 Hệ thống Xin đánh giá người dùng về bài đăng hiện tại

Hệ thống lưu lại các thông tin tương tác người dùng

Bảng 2.10 Bảng đặc tả usecase “Xem chi tiết bài đăng HB”

UC07 “Xem HB gợi ý dựa trên phản hồi”

Mã Use case UC07 Tên Use case Xem HB gợi ý dựa trên phản hồi

Hiển thị chi tiết các thuộc tính của một học bổng, cho phép người dùng tương tác với bài đăng học bổng. Điều kiện kích hoạt

Người dùng đang ở màn hình chi tiết học bổng.

Luồng sự kiện chính STT Thực hiện Hành động

1 Người dùng Tại mỗi thuộc tính người dùng dislike giá trị hiện tại của thuộc tính hoặc thêm các giá trị mới cho thuộc tính.

2 Người dùng Ấn chọn “See more based on feedback”

3 Hệ thống Lưu thông tin phản hồi Tính toán để trả về tập gợi ý phù hợp.

4 Người dùng Xem HB gợi ý

Luồng sự kiện thay thế

Hệ thống gợi ý cho người dùng dựa trên phản hồi tại phiên hiện tại.

Bảng 2.11 Bảng đặc tả usecase “Xem HB gợi ý dựa trên phản hồi”

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

UC08 “Quản lý danh sách yêu thích”

Mã Use case UC08 Tên Use case Quản lý danh sách yêu thích

Cho phép người dùng điều chỉnh các sở thích của mình và xem các học bổng yêu thích Điều kiện kích hoạt

Người dùng Click “Danh sách yêu thích”

STT Thực hiện Hành động

1 Người dùng Chọn chức năng “Xem DS Học bổng yêu thích”

2 Hệ thống Hiển thị màn hình danh sách HB yêu thích

3 Người dùng Chọn xóa 1 HB

4 Hệ thống Xóa HB khỏi DS HB yêu thích của ng dùng Hiển thị danh sách sau khi cập nhật.

5 Người dùng Chọn chức năng “Xem DS Trường học [Ngành học |

6 Hệ thống Hiển thị DS Trường học [Ngành học | Quốc gia ] yêu thích

7 Người dùng Chọn Thêm Mới

8 Hệ thống Hiển thị màn hình chọn Trường học [Ngành học | Quốc gia ] để thêm mới

9 Người dùng Chọn Trường học [Ngành học | Quốc gia ] Ấn “Thêm”

10 Hệ thống Lưu giá trị Hiển thị lại DS vừa cập nhật.

Luồng sự kiện thay thế

Hậu điều kiện Hệ thống cập nhật các thông tin yêu thích của người dùng

Bảng 2.12 Bảng đặc tả usecase “Quản lý danh sách yêu thích”

UC09 “Quản lý thông tin cá nhân”

Mã Use case UC07 Tên Use case Quản lý thông tin cá nhân

Mục đích sử dung Để người dùng xem và cập nhật các thông tin cá nhân Điều kiện kích hoạt

Người dùng Click vào “Thông tin cá nhân”

STT Thực hiện Hành động

1 Người dùng Chọn chức năng “Trang cá nhân”

2 Hệ thống Hiển thị màn hình Trang cá nhân

3 Người dùng Chọn Sửa thông tin cá nhân

4 Hệ thống Hiển thị màn hình Sửa thông tin cá nhân

5 Người dùng Nhập các giá trị cần sửa (các giá trị bên dưới) Chọn

6 Hệ thống Lưu lại thông tin sau khi sửa Hiển thị thông tin đã cập nhật

Luồng sự kiện thay thế

STT Thực hiện Hành động

6a Hệ thống Báo lỗi sai định dạng các giá trị nhập 6b Hệ thống Báo lỗi: Email dã tồn tại, số điện thoại đã tồn tại

Hậu điều kiện Hệ thống cập nhật các thông tin của người dùng

Bảng 2.13 Bảng đặc tả usecase “Quản lý thông tin cá nhân”

* Dữ liệu đầu vào của thông tin cá nhân gồm các trường dữ liệu sau:

STT Trường dữ liệu Mô tả Bắt buộc? Điều kiện hợp lệ Ví dụ

1 Email Có h.anh@gmail.co m

2 Tên đăng nhập Có duong

4 Quốc gia Có Việt Nam

6 Cấp học mong muốn Không

Bảng 2.14 Bảng dữ liệu đầu vào usecase “Quản lý thông tin”

UC010 “Quản lý nguồn trích rút HB”

Mã Use case UC09 Tên Use case Quản lý nguồn trích rút HB

Tác nhân Quản trị viên

Cho phép QTV có thể bật/tắt, điều chỉnh thời gian trích rút dữ liệu từ các nguồn HB Điều kiện kích hoạt

Quản trị viên Click “Quản lý nguồn trích rút HB”

STT Thực hiện Hành động

1 Quản trị viên Chọn chức năng “Quản lý nguồn trích rút HB”

2 Hệ thống Hiển thị màn hình danh sách nguồn học bổng

3 Người dùng Click active/deactive một học bổng

4 Hệ thống Bật/Tắt việc lấy thêm học bổng từ nguồn được chọn

5 Người dùng Click chọn “Cài đặt Thời gian Trích rút” cho 1 học bổng

6 Hệ thống Hiển thị màn hình chọn thời gian

7 Người dùng Chọn thời gian Ấn chọn “Cập nhật”

8 Hệ thống Cập nhật thời gian trích rút cho học bổng được chọn

Trả về thông báo thành công.

Luồng sự kiện thay thế

Hậu điều kiện Hệ thống cập nhật các thông tin nguồn học bổng

Bảng 2.15 Bảng đặc tả usecase “Quản lý nguồn trích rút HB”

Mã Use case UC10 Tên Use case Báo cáo xu hướng người dùng

Tác nhân Quản trị viên

Mang tới cái nhìn tổng quan về xu hướng lựa chọn học bổng Điều kiện kích hoạt

Quản trị viên Click “Báo cáo”

Luồng sự kiện chính STT Thực hiện Hành động

1 Quản trị viên Click chọn chức năng “Báo cáo”

2 Hệ thống Hiển thị màn hình Báo cáo xu hướng người dùng

- Quốc gia được quan tâm nhiều nhất

- Ngành học được quan tâm nhiều nhất

Luồng sự kiện thay thế

Hậu điều kiện Hệ thống hiển thị các báo cáo

Bảng 2.16 Bảng đặc tả usecase “Báo cáo”

UC12 “Quản lý tài khoản Quản Trị Viên”

Mã Use case UC11 Tên Use case Quản lý tài khoản QTV

Tác nhân Quản trị viên

Quản lý các quản trị viên Điều kiện kích hoạt

Quản trị viên Click chọn “Quản lý tài khoản QTV”

Luồng sự kiện chính STT Thực hiện Hành động

1 Quản trị viên Click chọn chức năng “Quản lý tài khoản QTV”

2 Hệ thống Hiển thị màn hình Quản lý tài khoản QTV

3 Quản trị viên Chọn thêm QTV

4 Hệ thống Hiển thị màn hình Thêm QTV

5 Quản trị viên Nhập email – password của QTV mới Nhấn chọn

6 Hệ thống Lưu thông tin QTV mới Hiển thị danh sách cập nhât

7 Quản trị viên Chọn đổi password của 1 QTV

8 Hệ thống Hiển thị màn hình Sửa QTV

9 Quản trị viên Nhập giá trị thay đổi password Submit

10 Hệ thống Lưu giá trị mới Hiển thị màn hình cập nhật

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

11 Quản trị viên Chọn xóa 1 QTV

12 Hệ thống Hiển thị màn hình Xác nhận xóa

13 Quản trị viên Chọn OK

14 Hệ thống Xóa QTV Hiển thị màn hình danh sách cập nhật

Luồng sự kiện thay thế

Hậu điều kiện Hệ thống cập nhật các thông tin của các QTV

Bảng 2.17 Bảng đặc tả usecase “Quản lý tài khoản quản trị viên”

UC13 “Phân loại ngành học”

Mã Use case UC12 Tên Use case Phân loại ngành học

Tác nhân Quản trị viên

Phân loại ngành học nhỏ vào ngành học có nghĩa rộng hơn để phục vụ chức năng gợi ý. Điều kiện kích hoạt

Quản trị viên Click chọn “Phân loại ngành học”

STT Thực hiện Hành động

1 Quản trị viên Click chọn chức năng “Phân loại ngành học”

2 Hệ thống Hiển thị màn hình phân loại ngành học

3 Quản trị viên Nhập tên ngành học cha Chọn ngành học cha nếu có sẵn.

4 Hệ thống Hiển thị những ngành học con có sẵn của ngành học cha.

5 Quản trị viên Tìm kiếm ngành học con Click chọn Chuyển sang khung ngành học cha.

6 Hệ thống Lưu thông tin phân loại ngành học.

Luồng sự kiện thay thế

1a Quản trị viên Thêm mới ngành học cha.

2a Hệ thống Lưu ngành học cha

Hậu điều kiện Hệ thống cập nhật các thông tin phân loại.

Bảng 2.18 Bảng đặc tả usecase “Phân loại ngành học”

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

- Mật khẩu đăng nhập của người dùng được mã hóa

- Thời gian phản hồi tối đa 5s

- 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

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

THIẾT KẾ HỆ THỐNG

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”

Hình 3.2 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 ý”

Hình 3.5 Biểu đồ lớp tham gia ca sử dụng “Xem danh sách HB gợi ý”

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

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”

Hình 3.8 Biểu đồ lớp tham gia ca sử dụng “Quản lý danh sách 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”

Hình 3.12 Biểu đồ lớp tham gia ca sử dụng “Phân loại ngành học”

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

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”

Hình 3.14 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”

Hình 3.16 Biểu đồ trình tự cho ca sử dụng “So sánh học bổng”

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

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”

Hình 3.18 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”

Hình 3.20 Biểu đồ trình tự cho ca sử dụng “Quản lý DS yêu thích”

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

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”

Hình 3.22 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”

Hình 3.24 Biểu đồ trình tự cho ca sử dụng “Phân loại ngành học”

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

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”

Kiến trúc tổng thể của hệ thống

Hệ thống được phân rã thành năm 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, mỗi tầng đại diện cho một hệ thống con trong kiến trúc tổng thể.

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.

 Người dùng: gồm các lớp

 Trang chủ (Danh sách gợi ý)

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

 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

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

- Đ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)

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.

 Truy cập và Thay đổi dữ liệu

 Xem chi tiết học bổng

 Sửa thông tin cá nhân

 Quản lý tài khoản QTV

 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.

 Xem danh sách HB gợi ý.

 Xem HB dựa trên phản hồi.

 Active/Deactive nguồn học bổng

 Cài đặt thời gian trích rút tự động

3.3.2.4 Tầng truy cập dữ liệu

Quản lý truy cập đọc và ghi các đối tượng nghiệp vụ từ các phương tiện lưu trữ dữ liệu là một phần quan trọng trong dự án Trong đồ án này, tôi đã áp dụng framework Spring Boot, đặc biệt là thư viện JPA Repositories, để thực hiện các thao tác truy cập dữ liệu một cách hiệu quả.

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.

 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)

Thiết kế giao diện

Công cụ được sử dụng để thiết kế giao diện là Adobe XD (https://xd.adobe.com/)

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

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.29 Thiết kế giao diện đăng ký-3

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.32 Thiết kế giao diện Trang chủ

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

Hình 3.33 Thiết kế giao diện Tìm kiếm của người dùng

Hình 3.34 Thiết kế giao diện So sánh Học bổng

Hình 3.35 Thiết kế giao diện Xem chi tiết HB

Hình 3.36 Thiết kế giao diện Gợi ý dựa trên phản hồi

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

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

Hình 3.39 Thiết kế giao diện Sở thích khác

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.42 Thiết kế giao diện Quản lý tài khoản QTV

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

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

Thiết kế chi tiết lớp

Sơ đồ lớp tổng quan

Hình 3.45 Sơ đồ lớp gói Khách

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.48 Sơ đồ lớp gói Xử lý tương tác

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

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 ý

Hình 3.51 Sơ đồ lớp gói Trích rút

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

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

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

Tên các trường dữ liệu bao gồm: "name" (Tên người dùng) kiểu string, "email" (Email) kiểu string, "password" (Mật khẩu) kiểu string, "gender" (Giới tính) kiểu string, "phone" (Số điện thoại) kiểu string, "level" (Bậc học hiện tại) kiểu string, "birthday" (Ngày sinh) kiểu date, "date_graduate" (Ngày tốt nghiệp) kiểu date, "list_favorite_country" (DS quốc gia yêu thích) kiểu array, "list_favorite_school" (DS trường yêu thích) kiểu array, và "list_favorite_major" (DS ngành học yêu thích) kiểu array.

The `register()` function is a public method that allows users to submit an email, password, gender, phone number, level, birthday, graduation date, and arrays of favorite countries, schools, and majors for registration It returns no value (Void) Additionally, the `notifyFailure()` function is a public method that notifies users of any registration errors, also returning no value (Void).

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

Hàm checkEmailExist() kiểm tra xem email đã tồn tại hay chưa và trả về kiểu boolean Hàm notifyFailure() thông báo lỗi cho người dùng với kiểu trả về Void Hàm saveUser () lưu thông tin người dùng với tham số đầu vào là đối tượng User và cũng trả về kiểu Void Cuối cùng, hàm saveCountry() lưu thông tin quốc gia yêu thích với tham số country_id và kiểu trả về Void.

43 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

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

Hàm login() là một hàm công khai nhận hai tham số đầu vào: email (kiểu string) và password (kiểu string), không trả về giá trị nào (Void) Hàm này gửi yêu cầu đăng nhập cho người dùng Hàm notifyFailure() cũng là một hàm công khai, không nhận tham số và không trả về giá trị, có chức năng thông báo lỗi cho người dùng.

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

The article outlines key functions related to user authentication in a programming context The `checkAuthentication()` function is public, accepts an email and password as string parameters, and returns a boolean value indicating whether the user is authenticated The `redirect()` function is also public and does not return a value, serving to transition the user to a different screen Lastly, the `notifyFailure()` function, which is public as well, is designed to inform the user of any authentication errors.

Giao diện Tìm kiếm Học bổng. b) Danh sách thuộc tính

Trong bảng dữ liệu, các trường thông tin bao gồm: "country" (quốc gia) với kiểu dữ liệu là chuỗi công khai, "level" (cấp học) cũng là chuỗi công khai, "school" (trường) với kiểu dữ liệu chuỗi công khai, "due_date" (ngày hết hạn) với kiểu dữ liệu ngày, và "major" (ngành học) với kiểu dữ liệu chuỗi công khai.

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com) c) Danh sách phương thức

Hàm search() là một phương thức công khai, cho phép tìm kiếm học bổng dựa trên các tham số đầu vào như quốc gia, cấp độ, trường học, ngày hết hạn và chuyên ngành Hàm này trả về một danh sách các học bổng dưới dạng kiểu dữ liệu List.

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

Hàm findScholarship() là một hàm công khai cho phép tìm kiếm học bổng dựa trên các tham số đầu vào như quốc gia, cấp độ, trường học, ngày hết hạn và chuyên ngành Hàm này trả về một danh sách các học bổng dưới dạng kiểu dữ liệu List.

Giao diện So sánh Học bổng. b) Danh sách thuộc tính

Tên của học bổng là "nameScholarship1", có phạm vi truy cập công khai và kiểu dữ liệu là chuỗi Đây là tên học bổng dùng để so sánh.

Tên Phạm vi truy cập

Tham số đầu vào Kiểu trả về Mô tả search() public nameScholarship1 string List Gửi yêu cầu tìm kiếm với các giá trị nameScholarship1 string nhập

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 truy cập Tham số đầu vào Kiểu trả về Mô tả

45 showRecommend() public List 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

Lấy các học bổng mới từ cơ sở dữ liệu. findScholarshipRecommend() private List

Tình toán các giá trị gợi ý để trả về các học bổng phù hợp

Giao diện hiển thị chi tiết Học bổng. b) Danh sách thuộc tính

The article outlines a data structure with key attributes including a public integer for rating, which ranges from 0 to 5, a public string for message comments, and a public boolean indicating like or dislike status Additionally, it features a private integer for scholarship identification.

Hàm getDetail() là một phương thức công khai nhận tham số scholarship_id để gửi yêu cầu lấy thông tin chi tiết về học bổng Hàm rating() cũng là một phương thức công khai, trả về một giá trị kiểu int để đánh giá học bổng Cuối cùng, hàm like() là phương thức công khai trả về giá trị boolean is_like để xác định người dùng có thích hoặc không thích học bổng.

The HB share() function allows users to share content, while the HB comment() function enables them to leave comments on posts Additionally, the addToFavorite() function lets users add HB to their favorites list, and the compare() function provides a request to compare HB.

3.5.2.14 Detail_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.

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com) b) Danh sách thuộc tính c) Danh sách phương thức

Tên Phạm vi truy cập

The functions provided include getDetailScholarship(), which retrieves detailed information about a scholarship, and redirect(), which changes the screen view Additionally, saveInteractive() saves interactive information, while addToFavoriteScholarship() allows users to save a scholarship to their favorites The saveComment function is designed to store user comments, and updateScholarship() is used to save interactive details related to the scholarship.

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

Hàm showProfile() là một hàm công khai, có nhiệm vụ gửi yêu cầu để lấy dữ liệu hồ sơ người dùng Hàm updateProfile, cũng là một hàm công khai, nhận tham số đầu vào là một đối tượng user kiểu User và thực hiện việc gửi yêu cầu cập nhật hồ sơ người dùng.

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

Hàm `findAllProfile()` là một phương thức công khai dùng để tìm kiếm tất cả người dùng, trả về kiểu dữ liệu là `User ` Hàm `updateProfile` cũng là một phương thức công khai, nhận đầu vào là một đối tượng `User ` và không trả về giá trị nào, với chức năng cập nhật các thông tin trong hồ sơ người dùng.

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 truy cập Tham số đầu vào Kiểu trả về Mô tả

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

Hình 3.53 Sơ đồ thiết kế cơ sở dữ liệu

Mục đích: Danh sách học bổng Danh sách thuộc tính:

55 name string Tên HB có time date Hạn đăng ký HB có url string Đường dẫn chính đến bài đăng có Duy nhất

Tên Kiểu dữ liệu Mô tả Có bắt buộc Có Ràng buộc id int Mã học bổng có Khóa chính web_id int Mã trang web (nguồn

HB) có Khóa ngoại country_id int Mã quốc gia có Khóa ngoại school_id int Mã trường không Khóa ngoại

The article contains essential data elements, including the downloader's email, a content string, an image URL, an expiration status, and metrics such as view count, comment count, and share count.

Mục đích: Danh sách các quốc gia Danh sách thuộc tính

Mục đích: Danh sách các trường học cung cấp học bổng Danh sách thuộc tính

Mục đích: Danh sách các ngành học.

Tên Kiểu dữ liệu Mô tả Có bắt buốc Có Ràng buộc id int Mã quốc gia có Khóa chính name string Tên có area string Châu lục có

Trong cơ sở dữ liệu, kiểu dữ liệu bao gồm các trường như sau: "id" là kiểu int, đóng vai trò là mã trường có khóa chính; "name" là kiểu string, biểu thị tên; và "country_id" là kiểu int, là mã quốc gia có khóa ngoại Tất cả các trường này đều có tính bắt buộc và có ràng buộc nhất định trong thiết kế cơ sở dữ liệu.

Trong cơ sở dữ liệu, kiểu dữ liệu cho ngành học bao gồm các trường sau: "id" là mã ngành học với kiểu int và là khóa chính, "parent_id" là mã ngành học cha với kiểu int và không bắt buộc, "name" là tên ngành học với kiểu string và là trường bắt buộc, và "level" là thứ tự phân cấp của ngành học với kiểu int và cũng là trường bắt buộc.

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

Mục đích: Thể hiện Học bổng có những Ngành học nào Danh sách thuộc tính:

Mục đích: Thể hiện yêu cầu để HB được chấp nhận Danh sách thuộc tính:

Mục đích: Thể hiện bậc học mà trường cấp học bổng cung cấp Một HB có nhiều bậc học.

Trong cơ sở dữ liệu, kiểu dữ liệu "id" là một số nguyên (int) dùng để xác định mã quản trị viên và đóng vai trò là khóa chính Kiểu dữ liệu "scholarship_id" cũng là một số nguyên (int) và được sử dụng làm mã học bổng, có chức năng là khóa ngoại Cuối cùng, kiểu dữ liệu "name" là một chuỗi (string) dùng để lưu trữ tên cấp bậc Tất cả các trường này đều có những yêu cầu và ràng buộc nhất định trong việc quản lý dữ liệu.

Mục đích: Thể hiện giá trị của học bổng Một HB có nhiều mức trợ cấp Danh sách thuộc tính:

Mục đích: Các thuộc tính của nguồn trích rút: Web Danh sách thuộc tính:

57 id int Mã web có Khóa chính url string Url đến trang web crawl có Duy nhất is_active boolean Active/Deactive có

Tên Kiểu dữ liệu Mô tả Có bắt buộc Có Ràng buộc scholarship_id int Mã HB có Khóa ngoại major_id int Mã Ngành có Khóa ngoại

Trong cơ sở dữ liệu, kiểu dữ liệu "id" là một số nguyên (int) và đóng vai trò là khóa chính cho mã Requirement Kiểu dữ liệu "scholarship_id" cũng là một số nguyên (int) và được sử dụng làm khóa ngoại Kiểu dữ liệu "name" là chuỗi (string) thể hiện tên yêu cầu, trong khi đó kiểu dữ liệu "value" cũng là chuỗi (string) thể hiện giá trị của yêu cầu Tất cả các trường này đều có tính bắt buộc và ràng buộc nhất định trong cấu trúc dữ liệu.

Tên kiểu dữ liệu bao gồm id, scholarship_id và name Trong đó, id là mã quản trị viên với kiểu dữ liệu int và được xác định là khóa chính scholarship_id cũng có kiểu int và là mã HB với khóa ngoại Cuối cùng, name có kiểu dữ liệu string và đại diện cho giá trị HB.

Tên Kiểu dữ liệu Mô tả Có bắt buộc Có Ràng buộc

Document shared on crawl_period int Khoảng thời gian crawl HB có type_period string Dạng thời gian: Ngày,

Tháng, … có last_crawled date Thời điểm crawl cuối cùng có

Mục đích: Bảng liên kết người dùng với quốc gia thể hiện những Quốc gia mà người dùng yêu thích.

Trong cơ sở dữ liệu, kiểu dữ liệu bao gồm các trường như sau: user_id (int) là mã người dùng và có khóa ngoại, country_id (int) là mã quốc gia cũng có khóa ngoại, và is_implicit (boolean) thể hiện giá trị ngầm hiểu Tất cả các trường này đều là bắt buộc.

Mục đích: Bảng liên kết người dùng với trường học thể hiện những Trường học mà người dùng yêu thích.

Trong cơ sở dữ liệu, kiểu dữ liệu "user_id" là một số nguyên (int) dùng để xác định mã người dùng và có ràng buộc khóa ngoại Tương tự, "school_id" cũng là một số nguyên (int) thể hiện mã trường và có ràng buộc khóa ngoại Ngoài ra, kiểu dữ liệu "is_implicit" là một giá trị boolean, cho biết thông tin về giá trị ngầm hiểu.

Mục đích: Bảng liên kết người dùng với ngành học thể hiện những Ngành học mà người dùng yêu thích.

The article describes a data structure with the following key fields: the user_id, an integer representing the user code, which is a foreign key; the major_id, also an integer indicating the major code, which is a foreign key; and is_implicit, a boolean that signifies whether the value is implicit Both user_id and major_id are mandatory fields with foreign key constraints.

Mục đích: Lưu các thuộc tính tương tác giữa người dùng và bài đăng học bổng Danh sách thuộc tính:

Trong cơ sở dữ liệu, có hai kiểu dữ liệu quan trọng: user_id và scholarship_id user_id là mã người dùng với kiểu dữ liệu là int và được xác định là khóa chính, trong khi scholarship_id cũng có kiểu dữ liệu int và được xác định là khóa ngoại Cả hai trường này đều là bắt buộc trong cấu trúc dữ liệu.

The article discusses user engagement metrics, including the number of times an item has been favorited, shared, commented on, viewed, clicked for contact, and compared These metrics are essential for understanding user interactions and preferences.

Mục đích: Lưu nội dung bình luận của người dùng ở mỗi bài đăng học bổng, Danh sách thuộc tính:

Mục đích: Lưu thông tin đăng nhập của các tác nhân Danh sách thuộc tính:

Mục đích: Lưu trữ các thông tin của Quản trị viên.

The data structure consists of several key fields: `user_id` is an integer representing the user ID, which serves as the primary key; `scholarship_id` is also an integer, acting as a foreign key for the scholarship; `created_time` is a date indicating when the entry was created; `message` is a string that contains the comment content; and `is_deleted` is a boolean that specifies whether the entry has been deleted All fields are mandatory except for `is_deleted`.

The data type names and descriptions are as follows: The 'id' is an integer that serves as the primary key for the administrator's code, which is mandatory and has constraints The 'email' is a unique string used for login, also required The 'password' is a string representing the user's password, which is mandatory The 'role' is a string indicating the user's role, either ADMIN or USER, and is required Lastly, 'is_active' is a boolean that denotes whether the account is active or deactivated, which is also mandatory.

Dữ liệu quản lý người dùng bao gồm các trường như sau: "id" (int) là mã quản trị viên và là khóa chính, "account_id" (int) là mã tài khoản và là khóa ngoại, và "last_login" (date) ghi nhận thời gian lần cuối đăng nhập Tất cả các trường này đều có tính bắt buộc và ràng buộc nhất định trong cơ sở dữ liệu.

Mục đích: Lưu trữ các thông tin cá nhân của user Danh sách thuộc tính:

Mục đích: Sử dụng AccessToken để xác thực người dùng Danh sách thuộc tính:

Thiết kế Trích rút dữ liệu

STT Trang web Số lượng Học bổng

Bảng 3.1 Danh sách nguồn trích rút từ trang web Việt Nam

Sau khi tiến hành trích rút dữ liệu từ trang web Việt nam, gặp một số hạn chế sau:

- Các trang web ngừng cập nhật học bổng từ tháng 12 trở đi.

Bảng dữ liệu chứa các trường thông tin của người dùng, bao gồm: id (int) là mã user và là khóa chính, account_id (int) là mã account và là khóa ngoại, name (string) là tên người dùng, phone (string) là số điện thoại (không bắt buộc), gender (string) là giới tính (không bắt buộc), level (string) là bậc học (không bắt buộc), country (string) là quốc gia (không bắt buộc), birthday (date) là ngày sinh (không bắt buộc) và date_graduation (date) là ngày tốt nghiệp (không bắt buộc).

Dữ liệu bao gồm các trường sau: "id" (int) là mã token và có vai trò là khóa chính; "account_id" (int) là mã tài khoản và đóng vai trò là khóa ngoại; "token" (string) chứa giá trị của token Tất cả các trường này đều có ràng buộc nhất định.

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

- Các trang web với nội dung đan xem tiếng anh và tiếng việt gây khó khăn trong việc thống nhất các thuộc tính.

Vì lý do đó, tôi đã chuyển đổi toàn bộ trang web sang tiếng Anh và thêm lựa chọn lọc các học bổng dành cho sinh viên Việt Nam, đặc biệt là những học bổng dành cho sinh viên quốc tế.

STT Trang web Số lượng Học bổng (từ tháng 12)

Bảng 3.2 Danh sách nguồn trích rút từ trang web nước ngoài

Các giá trị thu thập chính a) Đất nước (Country)

Tính đến thời điểm hiện tại, hệ thống trích rút các học bổng của 32 quốc gia Thống kê những học bổng còn hạn nộp đơn như sau:

Hình 3.54 Biểu đồ thống kê số học bổng/quốc gia b) Trường học (School)

Tính đến thời điểm hiện tại, hệ thống trích rút các học bổng của 207 trường học. c) Ngành học (Major)

Hệ thống phân loại ngành học hiện có 235 ngành học con, giúp phân nhóm thành các học bổng lớn hơn để tính toán độ tương đồng giữa các học bổng.

Có 7 loại học bổng được trích rút như sau:

STT Tên loại bậc học Số lượng HB

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

Bảng 3.3 Bảng số lượng học bổng/bậc học e) Hỗ trợ (Money)

Chia hỗ trợ ra làm 2 loại:

- Bán phần (Partial Funding): có thêm các thông tin hỗ trợ cụ thể. f) Thời hạn nộp đơn (Deadline)

Thời hạn nộp đơn được trích rút từ những học bổng có hạn từ tháng 12 trở đi Định dạng thời gian: yyyy-mm-dd

Hình 3.55 Biểu đồ thể hiện phân bố học bổng theo thời gian

Cài đặt trích rút và lưu trữ

3.7.3.1 Cài đặt trích rút Để trích rút học bổng từ các trang web, hệ thống sử dụng công cụ Scrapy [2]. Được biết đến là một framework hữu dụng để thu thập các dữ liệu có cấu trúc từ các trang web, Scrapy cho phép người dùng tạo ra nhiều Spider Class xử lý cho từng trang web :

- Gửi request bằng các url do người dùng yêu cầu và nhận response trả về như một đối số.

- Phân tách HTML để lấy thông tin từ response bằng cách sử dụng các bộ chọn (Selector, Xpath, …).

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

- Có thể trích rút sâu hơn bằng việc gửi các request bằng các url lấy được từ response.

- Khi đi qua các pha, dữ liệu được bóc tách từ các Spiders sẽ đến lớp Pipeline để lưu vào cơ sở dữ liệu.

Scrapy cho phép các yêu cầu được lên lịch và xử lý một cách không đồng bộ, nghĩa là nó không cần phải chờ đợi yêu cầu trước đó hoàn thành để gửi yêu cầu mới hoặc thực hiện các tác vụ khác Điều này giúp cải thiện hiệu suất hệ thống một cách đáng kể.

Sử dụng MySQL để lưu trữ dữ liệu sau khi crawl theo thiết kế:

Hình 3.56 Thiết kế csdl lưu trữ dữ liệu trích rút

THIẾT KẾ PHƯƠNG PHÁP GỢI Ý

Giới thiệu hệ thống gợi ý

Khái niệm về hệ thống gợi ý

Hệ thống gợi ý (Recommender System - RS) là phần mềm giúp người tiêu dùng nhận diện sở thích và mối quan tâm của họ đối với sản phẩm, từ đó đưa ra các đề xuất phù hợp RS không chỉ hỗ trợ người dùng trong việc tìm kiếm và lựa chọn sản phẩm trực tuyến mà còn cải thiện chất lượng quyết định của họ Với khả năng xử lý tình trạng quá tải thông tin, hệ thống gợi ý đã trở thành công cụ mạnh mẽ và phổ biến trong thương mại điện tử.

Hệ thống gợi ý được thiết kế để hỗ trợ những người dùng thiếu khả năng xác định nhu cầu của bản thân hoặc những ai đang gặp khó khăn trong việc lựa chọn giữa hàng triệu sản phẩm.

So sánh giữa hệ thống tìm kiếm và hệ thống gợi ý:

Hệ thống tìm kiếm Hệ thống gợi ý

Người dùng biết trước mình muốn cái gì

Người dùng không biết rõ thứ mình muốn

Cung cấp các kết quả chính xác Cung cấp các kết quả mà người dùng có thể thích, đôi khi là không chính xác.

Hệ thống gợi ý được trình bày dưới dạng một bài toán cần giải quyết như sau: Cho:

- Thông tin người dùng (đánh giá, sở thích, nghiên cứu dân số, bối cảnh tình huống).

- Danh sách các vật phẩm (item – có hoặc không có mô tả về các thuộc tính) Nhiệm vụ:

- Tính điểm phù hợp của từng vật phẩm đối với người dùng để trả về một danh sách gợi ý phù hợp nhất.

Hình 4.1 Mô hình mô tả hệ thống gợi ý [3]

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

Các phương pháp gợi ý phổ biến

4.1.2.1 Gợi ý dựa trên lọc cộng tác (Collaborative Recommendation) Ý tưởng cơ bản của hệ thống này là: Nếu những người dùng có cùng sở thích trong quá khứ, thì họ cũng sẽ có thị hiếu tương tự nhau trong tương lai [4].

Nếu người dùng A và người dùng B có lịch sử mua hàng tương đồng và A vừa mua một cuốn sách X mà B chưa từng xem, thì việc gợi ý cuốn sách này cho B là một cách hiệu quả để tăng khả năng quan tâm của B đối với sản phẩm.

Hình 4.2 Mô hình gợi ý dựa trên lọc cộng tác [3]

Mô hình này sử dụng thông tin người dùng và bối cảnh gợi ý để kết hợp với dữ liệu cộng đồng, từ đó tính toán và xác định những người dùng có đặc điểm tương tự.

Hệ thống recommendation giúp người dùng tìm kiếm sản phẩm phù hợp bằng cách trả lời câu hỏi: “Sản phẩm nào đang được những người có sở thích giống tôi mua?” Dựa vào thuật toán lọc cộng tác, hệ thống sẽ cung cấp danh sách các vật phẩm thích hợp cho từng người dùng.

4.1.2.2 Gợi ý dựa trên nội dung (Content-based Recommendation)

Hệ thống gợi ý dựa trên nội dung sử dụng các tài liệu và mô tả về những vật phẩm mà người dùng đã xếp hạng trước đó để xây dựng mô hình sở thích của người dùng Hồ sơ người dùng, được tạo ra từ các thuộc tính của vật phẩm đã xếp hạng, là bản trình bày có cấu trúc về sở thích, giúp gợi ý các vật phẩm mới phù hợp với nhu cầu của người dùng.

Quy trình gợi ý dựa trên nội dung chủ yếu là so khớp các thuộc tính từ hồ sơ người dùng với các thuộc tính của vật phẩm Qua việc đánh giá mức độ tương đồng, quy trình này sẽ sắp xếp các vật phẩm để tạo ra danh sách những lựa chọn phù hợp nhất cho người dùng.

Cách tiếp cận này dựa vào thông tin chính xác từ sở thích và vật phẩm của người dùng, không cần một cộng đồng lớn hay lịch sử xếp hạng Do đó, danh sách đề xuất có thể được tạo ra ngay cả khi chỉ có một người dùng duy nhất.

Hình 4.3 Mô hình gợi ý dựa trên nội dung [3]

Mô hình dựa trên đầu vào là thông tin người dùng và bối cảnh gợi ý (User profile

Hệ thống gợi ý sản phẩm sử dụng các tham số ngữ cảnh kết hợp với thuộc tính của vật phẩm để trả lời câu hỏi "Hãy cho tôi xem những sản phẩm giống với những thứ tôi thích" Kết quả là danh sách các sản phẩm phù hợp được cung cấp cho người dùng.

4.1.2.3 Gợi ý dựa trên tri thức (Knowledge-based Recommendation)

Hệ thống gợi ý dựa trên tri thức là công cụ đề xuất sản phẩm, giúp phân tích nhu cầu và sở thích của người dùng thông qua các suy luận hợp lý.

Hình 4.4 Mô hình gợi ý dựa trên cơ sở tri thức [3]

Mô hình dựa trên đầu vào là thông tin người dùng và bối cảnh gợi ý (User profile

Hệ thống gợi ý sản phẩm kết hợp các tham số ngữ cảnh và thuộc tính của vật phẩm, cùng với mô hình tri thức, để trả lời câu hỏi “Hãy cho tôi xem những sản phẩm phù hợp với nhu cầu của tôi” Qua đó, hệ thống cung cấp danh sách các sản phẩm phù hợp cho người dùng.

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

Thiết kế các chức năng gợi ý học bổng du học

Các chức năng gợi ý học bổng du học sử dụng phương pháp gợi ý dựa trên nội dung (Content-based Recommendation) bởi vì:

Hệ thống xây dựng mới thiếu dữ liệu tương tác người dùng đủ lớn, đồng thời không thể thu thập thông tin về học bổng từ các trang web do phần lớn dữ liệu này bị che giấu Do đó, phương pháp gợi ý dựa trên lọc cộng tác (Collaborative Recommendation) không thể được áp dụng.

Mỗi người dùng truy cập hệ thống gợi ý học bổng chủ yếu để tìm kiếm học bổng phù hợp, do đó, việc áp dụng phương pháp gợi ý dựa trên tri thức là không cần thiết.

Dựa trên dữ liệu thu thập từ các trang web, các học bổng đã được phân tích một cách có cấu trúc, với các thuộc tính học bổng được xác định rõ ràng, cụ thể và chính xác, nhằm triển khai hiệu quả phương pháp gợi ý dựa trên nội dung.

Hệ thống cung cấp 3 chức năng chính để gợi ý học bổng là:

- Gợi ý học bổng dựa trên hồ sơ người dùng

- Gợi ý học bổng tương tự với học bổng đang xem

- Gợi ý học bổng dựa trên phiên phản hồi của người dùng

Hệ thống gợi ý học bổng sẽ hoạt động dựa trên hồ sơ người dùng, với hai kịch bản khác nhau Đối với người dùng mới, sau khi đăng ký và đăng nhập, hệ thống sẽ phân tích thông tin cung cấp để đưa ra danh sách học bổng phù hợp trên màn hình "Trang chủ" Còn đối với người dùng cũ, hệ thống sẽ sử dụng thông tin hồ sơ đã được cập nhật để đề xuất các học bổng thích hợp hơn Các bước xây dựng hệ thống gợi ý này sẽ được thực hiện một cách có hệ thống và hiệu quả.

Hình 4.5 Mô hình gợi ý dựa trên hồ sơ người dùng

1 Thu thập hồ sơ (sở thích) người dùng

Ban đầu, sở thích người dùng được lấy từ thông tin người dùng nhập khi đăng ký bao gồm:

- Cấp học (Level) mà người dùng mong muốn

- Quốc gia (Country) mà người dùng muốn theo học

- Trường học (School) thuộc quốc gia

- Ngành học (Major) mà người dùng thích

- Thời gian (Deadline) là phù hợp để nộp đơn

Cập nhật sở thích người dùng bằng cách:

Người dùng có thể thêm các thuộc tính như quốc gia, trường học, ngành học, cấp học và thời hạn vào hồ sơ sở thích của mình khi tự tạo danh sách yêu thích Những sở thích này sẽ được công khai và cho phép người dùng chỉnh sửa tùy ý.

- Thêm vào hồ sơ sở thích các thuộc tính của HB mà người dùng chọn

“Apply” hoặc HB mà người dùng thêm vào danh sách yêu thích Đây là sở thích ngầm hiểu, người dùng sẽ không thấy.

2 Truy vấn danh sách học bổng từ CSDL

Học bổng được truy vấn là học bổng:

- Vẫn còn thời hạn nộp so với thời gian hiện tại khi gợi ý.

- Học bổng mới mà người dùng chưa xem trước đó.

Các thuộc tính dùng để vector hóa là 6 chiều của vector:

Hồ sơ sở thích của người dùng có dạng:

{country: [4,5], school: [1,4,6], major: [3,6], level: [Bachelor], time : [1970-01-01]}

Tiếp theo, áp dụng one-hot encoding để chuyển đổi hồ sơ sở thích thành dạng vector Mỗi thuộc tính sẽ được gán một từ điển riêng, với độ dài của mỗi chiều tương ứng với kích thước của từ điển đó.

Thuộc tính (chiều) Quốc gia sẽ có độ dài 204 vì trên thế giới có tổng cộng 204 quốc gia.

Thuộc tính Trường học và Ngành học có giới hạn độ dài tối đa là 500 ký tự, đảm bảo rằng số lượng trường học và ngành học không vượt quá giá trị này.

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

Thuộc tính (chiều) Tài trợ có độ dài là 2: [0,1] tương đương với hỗ trợ một phần và hỗ trợ toàn phần.

Thuộc tính (chiều) Bậc học có độ dài 7 vì có 7 giá trị bậc học là:

STT Tên loại bậc học

Riêng thuộc tính Thời hạn được mã hóa theo năm với giá trị = y + m/12 + d/365

Ví dụ country: [4,5] có nghĩa là người dùng yêu thích 2 trường có id =4 và id=5 (id trong bảng csdl country).

 Mã hóa vector có dạng [0,0,0,1,1,0,…,0] (dấu … là 197 giá trị 0)

Tương tự với mã hóa Trường học và ngành học.

Ví dụ: level: [Bachelor] có nghĩa người dùng yêu thích bậc học là Bachelor Dựa vào bảng level ở trên Vector mã hóa có dạng: [1,0,0,0,0,0,0,0]

Sau khi mã hóa vector cho từng chiều thì vector cuối thu được là gộp của các vector thuộc tính lại.

Khi xây dựng vector cho ngành học, hệ thống sẽ truy vấn sở thích người dùng không chỉ từ ngành học hiện tại mà còn từ các ngành học cha và con, giúp tăng độ tương đồng giữa các ngành có mối quan hệ Điều này hỗ trợ trong việc phát triển chức năng phân loại ngành học cho quản trị viên Tương tự, để tính vector cho học bổng, mỗi học bổng chỉ cần một giá trị cho đất nước và một giá trị cho trường học, dẫn đến vector đất nước và trường học chỉ có một giá trị duy nhất là 1.

Sử dụng độ tương đồng cosine để tính độ tương tự giữa vector người dùng với vector của từng học bổng cho từng thuộc tính: ¯¯

- a là thuộc tính thuộc A = {country, school, level, major, money}

- ¯ � ¯ là vector của thuộc tính a lấy từ vector người dùng

- � ¯¯ là vector của thuộc tính a lấy từ vector của học bổng

- ��� (¯ � ¯, ¯ � ¯ ) � ∈ � gọi là độ tương tự của người dùng u và học bổng s với thuộc tính a

Trường hợp tính độ tương tự đối với thuộc tính thời hạn nộp đơn được xác định dựa trên giá trị năm Cụ thể, nếu y1 - y2 = 1, điều này có nghĩa là y1 cách y2 một năm Do đó, các tính độ tương tự của thuộc tính thời hạn nộp đơn được xác định theo cách này.

Trong hệ thống đánh giá học bổng, mỗi thuộc tính được gán một trọng số khác nhau để phản ánh mức độ quan trọng của nó trong việc tính toán độ tương tự Cụ thể, trọng số cho từng thuộc tính được thiết lập như sau: trọng số cho quốc gia là 0.2, trường học là 0.2, chuyên ngành là 0.3, cấp độ học là 0.2, số tiền là 0.05 và thời gian là 0.05.

Sau khi tính toán độ tương tự cho từng thuộc tính, giá trị độ tương tự sẽ được nhân với trọng số tương ứng của từng thuộc tính Kết quả cuối cùng sẽ là một giá trị tổng hợp.

Từ danh sách kết quả độ tương tự của từng người dùng se lấy ra n=6 học bổng có độ tương tự lớn nhất để gợi ý cho người dùng.

Gợi ý dựa trên học bổng đang xem a) Kịch bản gợi ý

Người dùng sẽ xem được gợi ý học bổng tương tự ở màn hình xem chi tiết một học bổng nào đó. b) Các bước xây dựng

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

Hình 4.6 Mô hình gợi ý dựa trên học bổng đang xem

Các bước xây dựng gợi ý tương tự như gợi ý dựa trên hồ sơ người dùng, nhưng trong kịch bản này, các thuộc tính được thay thế bằng các thuộc tính của học bổng đang được xem xét.

Gợi ý dựa trên phản hồi a) Kịch bản gợi ý

Trên màn hình Xem chi tiết học bổng, người dùng có thể không thích một giá trị thuộc tính nào đó, thêm giá trị mới theo ý muốn và nhấn "Xem thêm dựa trên phản hồi" để nhận gợi ý về các học bổng phù hợp dựa trên phản hồi của mình.

Hình 4.7 Hội thoại dựa trên phản hồi b) Các bước xây dựng

Hình 4.8 Mô hình gợi ý dựa trên phản hồi

Phản hồi của người dùng trả về bao gồm:

- Giá trị dislike: Ví dụ dislike thuộc tính Country = Denmark

- Giá trị thay thế và thêm mới của thuộc tính dislike:

Ví dụ thay thế Country = [ US , Canada ]

Học bổng được gọi là S sẽ được cải tiến dựa trên các giá trị thuộc tính hiện có Qua việc loại bỏ, thay thế và thêm mới các thuộc tính dựa trên phản hồi của người dùng, học bổng sẽ trở thành S’ Tiếp theo, chúng ta sẽ xây dựng vector cho học bổng S’ và thực hiện so sánh độ tương tự với các học bổng khác, từ đó lựa chọn danh sách học bổng gợi ý có độ tương tự cao nhất.

Kịch bản gợi ý này tận dụng sở thích ngắn hạn của người dùng thông qua phản hồi, từ đó điều chỉnh các giá trị gợi ý trong phiên hiện tại Điều này không chỉ cải thiện kết quả gợi ý mà còn nâng cao trải nghiệm người dùng một cách sâu sắc hơn.

Downloaded by: trong-cuong (nguyentrongcuong0000@gmail.com)

CÀI ĐẶT HỆ THỐNG

Ngày đăng: 01/09/2021, 20:02

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] "Spring Boot," [Online]. Available: https://spring.io/projects/spring-boot Sách, tạp chí
Tiêu đề: Spring Boot
[2] Scrapinghub, Ltd., "Scrapy 2.4 documentation," [Online]. Available: https://docs.scrapy.org/en/latest/index.html Sách, tạp chí
Tiêu đề: Scrapy 2.4 documentation
[5] "Vue.js," [Online]. Available: https://vuejs.org/ Sách, tạp chí
Tiêu đề: Vue.js
[6] S. Ramírez, "FastAPI," [Online]. Available: https://fastapi.tiangolo.com/ Sách, tạp chí
Tiêu đề: FastAPI
[7] Oracle Corporation, "MySQL Documentation," [Online]. Available:https://dev.mysql.com/doc/ Sách, tạp chí
Tiêu đề: MySQL Documentation
[9] "Study Portals Scholarship," [Online]. Available: https://www.scholarshipportal.com/ Sách, tạp chí
Tiêu đề: Study Portals Scholarship
[10] "ScholarshipsAds," [Online]. Available: www.scholarshipsads.com Sách, tạp chí
Tiêu đề: ScholarshipsAds
[11] "Scholarship Positions," [Online]. Available: https://scholarship- positions.com/ Sách, tạp chí
Tiêu đề: Scholarship Positions
[3] D. Jannach, A. Felfernig, G. Friedrich and M. Zanker, Recommender Systems - An Introduction, Cambridge University Press, 2010 Khác
[4] F. Ricci, L. Rokach and B. Shapira, Recommender Systems Handbook, Cambridge University Press, 2011 Khác
[8] X. Bo and B. Izak, E-Commerce Product Recommendation Agents: Use, Characteristics, and Impact, 2007 Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.1 Sơ đồ hoạt động quy trình Đăng ký - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 2.1 Sơ đồ hoạt động quy trình Đăng ký (Trang 16)
Hình 2.10 Sơ đồ phân rã usecase Quản lý profile - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 2.10 Sơ đồ phân rã usecase Quản lý profile (Trang 22)
Bảng 2.1 Bảng đặc tả usecase “Đăng ký” - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Bảng 2.1 Bảng đặc tả usecase “Đăng ký” (Trang 23)
Bảng 2.2 Bảng dữ liệu đầu vào usecase “Đăng ký” - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Bảng 2.2 Bảng dữ liệu đầu vào usecase “Đăng ký” (Trang 24)
8. Hệ thống Hiển thị màn hình chọn Trường học [Ngành học | Quốc gia ] để thêm mới - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
8. Hệ thống Hiển thị màn hình chọn Trường học [Ngành học | Quốc gia ] để thêm mới (Trang 28)
Bảng 2.13 Bảng đặc tả usecase “Quản lý thông tin cá nhân” - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Bảng 2.13 Bảng đặc tả usecase “Quản lý thông tin cá nhân” (Trang 29)
Hình 3.3 Biểu đồ lớp tham gia ca sử dụng “Tìm kiếm học bổng” - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.3 Biểu đồ lớp tham gia ca sử dụng “Tìm kiếm học bổng” (Trang 35)
Hình 3.7 Biểu đồ lớp tham gia ca sử dụng “Quản lý thông tin cá nhân” - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.7 Biểu đồ lớp tham gia ca sử dụng “Quản lý thông tin cá nhân” (Trang 36)
Hình 3.6 Biểu đồ lớp tham gia ca sử dụng “Xem chi tiết bài đăng HB” - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.6 Biểu đồ lớp tham gia ca sử dụng “Xem chi tiết bài đăng HB” (Trang 36)
Hình 3.9 Biểu đồ lớp tham gia ca sử dụng “Quản lý nguồn trích rút HB” - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.9 Biểu đồ lớp tham gia ca sử dụng “Quản lý nguồn trích rút HB” (Trang 37)
Hình 3.13 Biểu đồ trình tự cho ca sử dụng “Đăng ký” - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.13 Biểu đồ trình tự cho ca sử dụng “Đăng ký” (Trang 38)
Hình 3.18 Biểu đồ trình tự cho ca sử dụng “Xem chi tiết HB” - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.18 Biểu đồ trình tự cho ca sử dụng “Xem chi tiết HB” (Trang 40)
Hình 3.20 Biểu đồ trình tự cho ca sử dụng “Quản lý DS yêu thích” - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.20 Biểu đồ trình tự cho ca sử dụng “Quản lý DS yêu thích” (Trang 41)
Hình 3.22 Biểu đồ trình tự cho ca sử dụng “Báo cáo” - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.22 Biểu đồ trình tự cho ca sử dụng “Báo cáo” (Trang 42)
Hình 3.31 Thiết kế giao diện tìm kiếm của Khách - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.31 Thiết kế giao diện tìm kiếm của Khách (Trang 49)
Hình 3.30 Thiết kế giao diện đăng nhập - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.30 Thiết kế giao diện đăng nhập (Trang 49)
Hình 3.34 Thiết kế giao diện So sánh Học bổng - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.34 Thiết kế giao diện So sánh Học bổng (Trang 50)
Hình 3.33 Thiết kế giao diện Tìm kiếm của người dùng - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.33 Thiết kế giao diện Tìm kiếm của người dùng (Trang 50)
Hình 3.36 Thiết kế giao diện Gợi ý dựa trên phản hồi - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.36 Thiết kế giao diện Gợi ý dựa trên phản hồi (Trang 51)
Hình 3.37 Thiết kế giao diện Trang cá nhân - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.37 Thiết kế giao diện Trang cá nhân (Trang 52)
Hình 3.46 Sơ đồ lớp gói Người dùng - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.46 Sơ đồ lớp gói Người dùng (Trang 55)
Hình 3.50 Sơ đồ lớp gói Gợi ý - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.50 Sơ đồ lớp gói Gợi ý (Trang 56)
Bảng dữ liệu “Comment” - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Bảng d ữ liệu “Comment” (Trang 74)
Hình 3.54 Biểu đồ thống kê số học bổng/quốc gia - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 3.54 Biểu đồ thống kê số học bổng/quốc gia (Trang 76)
CHƯƠNG 4. THIẾT KẾ PHƯƠNG PHÁP GỢI Ý 4.1 Giới thiệu hệ thống gợi ý - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
4. THIẾT KẾ PHƯƠNG PHÁP GỢI Ý 4.1 Giới thiệu hệ thống gợi ý (Trang 79)
Hình 4.5 Mô hình gợi ý dựa trên hồ sơ người dùng - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 4.5 Mô hình gợi ý dựa trên hồ sơ người dùng (Trang 82)
Hình 4.6 Mô hình gợi ý dựa trên học bổng đang xem - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 4.6 Mô hình gợi ý dựa trên học bổng đang xem (Trang 86)
Hình 4.8 Mô hình gợi ý dựa trên phản hồi - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 4.8 Mô hình gợi ý dựa trên phản hồi (Trang 87)
Hình 5.9 Màn hình đăng nhập - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 5.9 Màn hình đăng nhập (Trang 94)
Hình 5.8 Màn hình quản lý danh sách yêu thích - Đồ án tốt nghiệp  Xây dựng hệ thống hỗ trợ tìm kiếm và gợi ý học bổng du học
Hình 5.8 Màn hình quản lý danh sách yêu thích (Trang 94)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w