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

ĐỒ ÁN CÔNG NGHỆ PHẦN MỀM : Đề tài Ứng dụng gợi ý địa điểm du lịch ở đà nẵng

94 249 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 94
Dung lượng 5,88 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hiện nay, công nghệ thông tin phát triển từng ngày. Việc vận dụng công nghệ thông tin để xây dựng cuộc sống hiện đại hơn là việc cấp thiết trong xã hôi. Đà Nẵng là thành phố phát triển mạnh mẽ về du lịch. Cần có một ứng dụng hổ trợ khách du lịch trong quản thời gian đi du lịch và cũng như tạo sự thoải mái cho du khách trong việc tìm kiếm địa điểm du lịch. Vì những lý do trên, chúng em quyết đinh chọn đề tài: “Xây dựng hệ thống ứng dụng gợi ý địa điểm du lịch.

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỒ ÁN CHUYÊN NGÀNH CÔNG NGHỆ PHẦN MỀM

ỨNG DỤNG GỢI Ý ĐỊA ĐIỂM

DU LỊCH Ở ĐÀ NẴNG

Giảng Viên Hướng Dẫn: TS Nguyễn Văn Hiệu

SINH VIÊN THỰC HIỆN:

 Cao Thị Anh Đào - 14T2

 Nguyễn Văn Hoàng - 14T2

 Nguyễn Ngọc Nam – 14T2

 Phạm Thế Phúc – 14T2

Đà Nẵng, 12/2018

Trang 2

Ý KIẾN ĐÁNH GIÁ CỦA GIẢNG VIÊN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

LỜI NÓI ĐẦU

Trang 3

Hiện nay, công nghệ thông tin phát triển từng ngày Việc vận dụng công nghệ thông tin để xây dựng cuộc sống hiện đại hơn là việc cấp thiết trong xã hôi

Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của một sinh viên,

đồ án này không thể tránh được những thiếu sót Chúng em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các thầy cô để chúng em có điều kiện bổ sung, nâng cao kiến thức của mình.

Nhóm sinh viên thực hiện

Trang 4

Mục lục

DANH SÁCH HÌNH ẢNH 6

DANH SÁCH BẢNG 7

1 TỔNG QUAN ĐỀ TÀI 8

1.1 Bối cảnh hiện tại 8

1.2 Mục tiêu đề tài 8

1.3 Đối tượng nghiên cứu 8

2 CƠ SỞ LÝ THUYẾT 9

2.1 Nền tảng Android 9

2.1.1 Lịch sử phát triển 9

2.1.2 Mô hình lập trình MVP trong Android 10

2.2 Hệ thống gợi ý 11

2.2.1 Tổng quan 11

2.2.2 Lịch sử phát triển 12

2.2.3 Chức năng của các hệ thống gợi ý 12

2.2.5 Các bước tiến hành 17

2.3 Framework Spring 21

2.3.1 Ngôn ngữ lập trình Java 21

2.3.2 Framework Spring 22

2.3.3 Restful API với Spring boot 22

2.4 Framwork Veu js 22

3 PHÂN TÍCH THIẾT KỀ 23

3.2 Phân tích và thiết kế hệ thống 24

3.2.2 Sơ đồ ca sử dụng và đặc tả 26

3.2.2.1 Quản lý User của hệ thống 26

3.3 Cơ sở dữ liệu 30

3.3.1 Mô hình thiết kế cơ sở dữ liệu 30

3.3.2 Mô tả cơ sở dữ liệu 31

4 MÔ TẢ CHỨC NĂNG HỆ THỐNG 36

4.1 Khách du lịch 36

4.1.1 Quản lý tài khoản cá nhân 36

4.1.2 Xem thông tin du lịch 44

4.1.3 Tương tác với địa điểm du lịch 52

Trang 5

4.2 Người quản trị 56

4.2.2 Quản lý người dùng hệ thống 57

4.2.3 Quản lý địa điểm du lịch 62

4.2.4 Quản lý ảnh địa điểm du lịch: 68

4.2.5 Quản lý các loại địa điểm 70

4.2.6 Quản lý chủ đề du lịch 74

5 KẾT QUẢ ĐẠT ĐƯỢC 77

5.1 Mobile 77

5.1.1 Tài khoản: 77

5.1.2 Chức năng chính – Gợi ý địa điểm du lịch cho người dùng 79

5.1.3 Chức năng tương tác với ứng dụng 80

5.1.4 Chức năng xem địa điểm theo nhóm 83

5.2 Web 84

5.2.1 Login 84

5.2.3 Quản lý địa điểm 85

5.2.4 Quản lý user của hệ thống 87

6 KẾT LUẬN 92

6.1 Kết quả đạt được 92

6.1.1 Về mặt kiến thức: 92

6.1.2 Về sản phẩm: 92

6.2 Hướng phát triển 92

TÀI LIỆU THAM KHẢO 93

Trang 6

DANH SÁCH HÌNH ẢNH

Hình 1: Android Timeline 9

Hình 2: Cấu trúc mô hình MVP tổng quát 10

Hình 3:Minh họa lọc cộng tác 16

Hình 4:Lọc dựa trên User 16

Hình 5: Lọc dựa trên Item 17

Hình 6: Ma trân user-item ban đầu 18

Hình 7:Ma trận user-item sau khi điền các giá trị trung bình 19

Hình 8: Use case quản lý User 26

Hình 9: Use case quản lý địa điểm 27

Hình 10: Use case quản lý thể loại địa điểm 27

Hình 11: Use case quản lý loại địa điểm 28

Hình 12: Biểu đồ hoạt động xem địa điểm du lịch của User 28

Hình 13: Biểu đồ hoạt động quản lý địa điểm du lịch của Admin và Mod 29

Hình 14: Diagram cơ sở dữ liệu 31

Hình 15: Màn hình đăng ký và đăng nhập của user 77

Hình 16: Màn hình thông tin cá nhân của user 78

Hình 17: Màn hình trang chủ của ứng dụng 79

Hình 18: Thông tin chi tiết của một địa điểm 80

Hình 19: Yêu thích một địa điểm 81

Hình 20: Đánh giá một địa điểm 82

Hình 21 :Ghi chú thông tin cho một địa điểm 82

Hình 22: Danh sách địa điểm theo thể loại 83

Hình 23: Xem danh sách các địa điểm nổi bật 83

Hình 24: Trang login 84

Hình 25: Trang quản lý loại địa điểm 84

Hình 26: Quản lý loại địa điểm 85

Hình 27: Xem danh sách các địa điểm trong hệ thống 85

Hình 28: Thêm mới một địa điểm vào hệ thống 86

Hình 29: Trang quản lý user của hệ thống 87

Hình 30: Thêm mới Mod cho hệ thống Web 87

Trang 7

DANH SÁCH BẢNG

Bảng 1: Phân chia công việc 23

Bảng 2: Cấu trúc bảng Người dùng 31

Bảng 3: Cấu trúc bảng thông tin người dùng 31

Bảng 4: Cấu trúc bảng loại địa điểm 31

Bảng 5: Cấu trúc bảng thể loại địa điểm 31

Bảng 6: Cấu trúc bảng địa điểm 32

Bảng 7: Cấu trúc bảng địa chỉ 32

Bảng 8: Cấu trúc bảng trạng thái hoạt động 32

Bảng 9: Cấu trúc bảng Liên Lạc 33

Bảng 10: Cấu trúc bảng thời lượng 33

Bảng 11: Cấu trúc bảng Nội dung 33

Bảng 12: Cấu trúc bảng hình ảnh 33

Bảng 13: Cấu trúc bảng Ghi Chú 34

Bảng 14: Cấu trúc bảng Đánh Giá 34

Bảng 15: Cấu trúc bảng Bình luận 34

Bảng 16: Cấu trúc bảng Yêu Thích 34

Bảng 17: Cấu trúc bảng phân quyền 35

Bảng 18: Cấu trúc bảng các quyền 35

Bảng 19: Cấu trúc bảng phân quyền của tài nguyên 35

Trang 8

1 TỔNG QUAN ĐỀ TÀI

1.1 Bối cảnh hiện tại

Hiện nay, như các bạn biết, Đà Nẵng là một thành phố phát triển về du lịchmạnh mẽ Trong những năm gần đây, nhiều địa điểm nổi tiếng của Đà Nẵng đượcnhiều người trong và ngoài nước biết đến và được quảng bá mạnh mẽ Đà Nẵng cũng

đã đề ra mục tiêu trọng tâm kinh tế của thành phố là phát triển du lịch Do vậy trongtương lai, ở đây sẽ hình thành thêm nhiều địa điểm mới Như vậy, chúng ta sẽ có một

số lượng khủng lồ các địa điểm du lịch

Khách du lịch đến với Đà Nẵng không những là những người lân cận, haynhững người trong nước, mà còn rất đông khách du lịch từ khắp mọi nơi trên đấtnước Điểm chung của họ khi đến với Đà Nẵng là có thể có trải nghiệm thú vị ở đây.Đặc biệt là phù hợp với họ, đúng tính cách, sở thích du lịch của họ

Hiện nay, do chưa có một ứng dụng hay website nào hổ trợ mọi người trongviệc gợi ý địa điểm cho người dùng Vì thế, đã có rất nhiều du khách đã bỏ lỡ rấtnhiều địa điểm phù hợp với họ hoặc tốn nhiều thời gian để tìm kiếm Điều tuyệt vờinhất khi đi du lịch là có một chuyến đi ấn tượng và thoải mái Nhưng vì những lý dotrên, khách du lịch rất mong có một ứng dụng nào có thể giúp họ giải quyết vấn đề đó

Nhìn từ vấn đề cấp thiết của Đà Nẵng, chúng em nhận thấy, cần xây dựng mộtứng dụng có thể giúp được khách du lịch có những gợi ý chính xác phù hợp với từngngười, từng lứa tuổi, từng tính cách, góp phần giúp chuyến du lịch của họ thêm tiệnlợi và ý nghĩa

Sự phát triển nhanh chóng của công nghệ thông tin và internet, ngày càng cónhiều thông tin được tạo ra và được tái sử dụng trên internet Từ đó, lượng thông tinnhiều nên đã gây ra tình trạng quá tải thông tin Tuy nhiên, sự quan tâm của mỗi ngườiđến nguồn thông tin đó là hoàn toàn khác nhau Các hệ thống gợi ý đã giải quyết vấn

đề quá tải bằng cách lọc những thông tin cần thiết, phù hợp với nhu cầu của từngngười

Trang 9

2 CƠ SỞ LÝ THUYẾT

2.1 Nền tảng Android

2.1.1 Lịch sử phát triển

Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi Linux

do công ty Android Inc (California, Mỹ) thiết kế Công ty này sau đó được Googlemua lại vào năm 2005 và bắt đầu xây dựng Android Platform Các thành viên chủchốt ở Android Inc gồm có: Andy Rubin, Rich Miner, Nick Sears, and Chris White

Hình 1: Android Timeline

Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh Thiết bị Cầm tay MãNguồn mở (Open Handset Alliance) gồm các thành viên nổi bật trong ngành viễnthông và thiết bị cầm tay như:

Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG, MarvellTechnology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, SprintNextel, T-Mobile, ARM Holdings, Atheros Communications, Asustek Computer Inc,Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, and Vodafone Group,…

Phiên bản SDK lần đầu tiên phát hành vào tháng 11 năm 2007, hãng Mobile cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile G1,chiếc smartphone đầu tiên dựa trên nền tảng Android Một vài ngày sau đó, Googlelại tiếp tục công bố sự ra mắt phiên bản Android SDK release Candidate 1.0 Trongtháng 10 năm 2008, Google được cấp giấy phép mã nguồn mở cho Android Platform

T-Khi Android được phát hành thì một trong số các mục tiêu trong kiến trúc của

nó là cho phép các ứng dụng có thể tương tác được với nhau và có thể sử dụng lại cácthành phần từ những ứng dụng khác Việc tái sử dụng không chỉ được áp dụng chocác dịch vụ mà nó còn được áp dụng cho cả các thành phần dữ liệu và giao diệnngười dùng

Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay được gọi là

Trang 10

Android Dev Phone 1 có thể chạy được các ứng dụng Android mà không bị ràngbuộc vào các nhà cung cấp mạng điện thoại di động Mục tiêu của thiết bị này là chophép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết bị thực có thểchạy hệ điều hành Android mà không phải ký một bản hợp đồng nào Vào khoảngcùng thời gian đó thì Google cũng cho phát hành một phiên vản vá lỗi 1.1 của hệ điềuhành này Ở cả hai phiên bản 1.0 và 1.1 Android chưa hỗ trợ soft-keyboard mà đòihỏi các thiết bị phải sử dụng bàn phím vật lý Android cố định vấn đề này bằng cáchphát hành SDK 1.5 vào tháng Tư năm 2009, cùng với một số tính năng khác Chẳnghạn như nâng cao khả năng ghi âm truyền thông, vật dụng, và các live folder

2.1.2 Mô hình lập trình MVP trong Android

Hình 2: Cấu trúc mô hình MVP tổng quát

MVP là một mô hình kiến trúc hướng giao diện người dùng, được thiết kế để tạo thuận lợi cho việc kiểm thử đơn vị (unit testing) và tăng tính tách biệt giữa tầng dữliệu và tầng hiển thị dữ liệu trong mô hình MVC

Mô hình MVP cho phép tách tầng trình diễn (Presenter) ra khỏi tầng dữ liệu(Model), vì vậy tương tác với giao diện được tách biệt với cách chúng ta biểu diễn nótrên màn hình (View), hay nói cách khác, tất cả logic khi người dùng tương tác đượctách ra và đưa vào tầng trình diễn Thiết kế lý tưởng nhất là với cùng một logicđược áp dụng cho nhiều View khác nhau và hoán đổi được cho nhau

Trang 11

M – Model: lớp xử lí dữ liệu Lớp này sẽ chịu trách nhiệm lấy dữ liệu từdatabase hoặc network một cách bất đồng bộ Sau đó sẽ trả về dữ liệu cho Presenterthông qua các hàm callback.

V- View: lớp xử lí view Lớp này chịu trách nhiệm tìm view (bind view), đưa

dữ liệu vào view, animation, kiểm soát các input event của user và gửi cho present các event

P – Presenter: lớp này sẽ là lớp xử lí các bussiness logic Đây là sẽ lớp trunggian có thể giao tiếp được với hai lớp M & V (chú ý M – V ko giao tiếp trực tiếp vớinhau) Khi lớp View nhận một input event sẽ gửi sự kiện xuống lớp P, lớp P lấy sẽliệu từ lớp Model và gửi lại cho lớp V và hướng dẫn lớp V cách hiển thị

2.2 Hệ thống gợi ý

2.2.1 Tổng quan

Với sự phát triển của Internet và thương mại điện tử hiện nay, lượng thông tin

có sẵn là vô cùng lớn, điều đó gây khó khăn và rất tốn thời gian để người dùng tìmkiếm thông tin và lựa chọn sản phẩm Yêu cầu cần có phương pháp thu thập thông tin

và đưa ra lời khuyên để hỗ trợ người dùng trong vấn đề tìm kiếm và lựa chọn sảnphẩm họ quan tâm Hệ thống gợi ý là một giải pháp được đưa ra cho vấn đề này

Hệ thống gợi ý (Recommender Systems) là một thành phần trong hệ thốngthông tin Mục đích của nó là hỗ trợ người dùng tìm kiếm được đúng thông tin cầnthiết, dự đoán sở thích hay xếp hạng mà người dùng có thể dành cho một mục thông tin(item) nào đó mà họ chưa xem xét tới trong quá khứ

Hệ thống gợi ý là hệ thống bao gồm các kỹ thuật và công cụ phần mềm nhằmđưa ra những gợi ý cho người sử dụng, đáp ứng nhu cầu của họ về một sản phẩm, dịch

vụ nào đó trên Internet Những gợi ý được cung cấp nhằm hỗ trợ người sử dụng đưa raquyết định lựa chọn những sản phẩm, dịch vụ phù hợp với nhu cầu và thị hiếu củamình, chẳng hạn như: mua sản phẩm nào, nghe thể loại nhạc gì hay tin tức trực tuyếnnào nên đọc…

Nội dung liên quan nói trên chính là các gợi ý, là kết quả được tính toán dựatrên việc thu thập dữ liệu về người dùng như khi mua hàng, khi đưa ra các đánh giá cánhân Việc thực hiện tính toán được xây dựng trên các thuật toán Học máy (MachineLearning), đưa ra các dự đoán tốt nhất về sản phẩm mà người dùng có thể thích, giúptối ưu hóa doanh thu qua up-sale, cross-sale Cải thiện trải nghiệm người dùng, tănghiệu năng hoạt động bằng tự động hóa, biến khách hàng tiềm năng trở thành kháchhàng thật

Trang 12

• Đã có các cuộc hội thảo, hội nghị dành riêng cho các cống hiến liên quantới lĩnh vực này Tiêu biểu là ACM Recommender Systems, được thành lập năm

2007 và hiện nay tổ chức các sự kiện hằng năm về các nghiên cứu và ứng dụng côngnghệ gợi ý Ngoài ra, có phiên họp dành riêng cho các lĩnh vực cụ thể như:ACMSIGIR, SIGMOD

• Tại các tổ chức giáo dục trên khắp thế giới, các khoa đại học và sau đại họchiện nay đã có môn rành riêng cho nghiên cứu về hệ gợi ý, các bài hướng dẫn, sách,báo về các hệ gợi ý đã được phát hành rộng rãi

• Có nhiều tạp chí của các trường đại học phát hành về các nghiên cứu và sựphát triển trong lĩnh vự gợi ý Trong số này, các tạp chí dành riêng cho vấn đề hệ gợiý: AI Communication (2008), IEEE Intelligent Systems (2007), International Journal

of Electronic Commerce (2006), International Journal of Computer Science andApplications (2006), ACM Transactions on Computer-Human Interaction (2005), vàACM Transactions of Information Systems (2004)

2.2.3 Chức năng của các hệ thống gợi ý

Phần này sẽ trình bày về chức năng của các hệ gợi ý Trước tiên, ta cần phânbiệt rõ vai trò của các hệ gợi ý đối với nhà cung cấp dịch vụ (hệ gợi ý đại diện cho nhàcung cấp dịch vụ) và đối với người sử dụng hệ gợi ý Ví dụ như: một hệ gợi ý du lịchthường được đưa ra bởi bên môi giới du lịch hoặc nhà tổ chức quản lý điểm du lịchnhằm mục đích tăng doanh thu, cho thuê được nhiều phòng nghỉ hơn, tăng số lượng dukhách tới điểm du lịch đó Trong khi động cơ chính của người sử dụng hệ gợi ý này là

để tìm các điểm du lịch, khách sạn phù hợp và các sự kiện hấp dẫn khi đến điểm dulịch

Trang 13

Đối với nhà cung cấp

Trên thực tế, có nhiều lý do để nhà cung cấp dịch vụ muốn khai tháccông nghệ này FrancescoRicci và cộng sự đã đưa ra một số lí do như sau:

• Tăng số lượng sản phẩm bán được: đây có lẽ là chức năng quan trọng nhất

đối với các hệ gợi ý thương mại điện tử, mục đích này đạt được do các sản phẩm đượcgợi ý phù hợp với các sản phẩm mà người dùng cần và người dùng mong muốn, cóthể người dùng sẽ chấp nhận mua sau khi xem gợi ý từ hệ thống Nói chung, ta có thểnói nhìn từ quan điểm của các nhà cung cấp dịch vụ, mục đích chính của việc đưa ramột hệ gợi ý là làm tăng tỷ lệ giữa lượng khách hàng mua sản phẩm và lượng kháchhàng truy cập chỉ để duyệt tìm thông tin

• Bán được các sản phẩm đa dạng hơn: chức năng này của hệ gợi ý cho phép

người dùng lựa chọn các lựa chọn các sản phẩm mà có thể rất khó để tìm thấy nếu nhưkhông có gợi ý chính xác Ví dụ, trong hệ gợi ý phim của Netflix, nhà cung cấp quantâm tới cho thuê tất cả DVD của họ, chứ không chỉ những DVD nổi tiếng, điều này cóthể rất khó nếu như không có hệ gợi ý, họ có thể gặp rủi ro trong việc quảng cáo các

bộ phim không phù hợp với thị hiếu của người dùng Như vậy, một hệ gợi ý đề xuấthoặc quảng cáo được những DVD không nổi tiếng nhưng phù hợp với người dùng

• Nâng cao sự hài lòng của người dùng: Một hệ thống gợi ý được thiết kế tốt

có thể hoàn thiện kinh nghiệm sử dụng web hoặc ứng dụng của người dùng Vớitương tác người máy hợp lý, người dùng có thể thấy được các gợi ý một cách dễ ràng,phù hợp với thị hiếu của họ Như vậy họ sẽ thích sử dụng hệ thống Sự kết hợp hiệuquả giữa các gợi ý và giao diện sử dụng sẽ làng tăng lượng đánh giá chủ quan củangười dùng về hệ thống Điều này làm tăng số lượt sử dụng hệ thống và tăng khả năngcác gợi ý được chấp nhận

• Nâng cao sự trung thành của người dùng: Một người sẽ trung thành với một

website khi mà họ truy cập, hệ thống nhận thức được đây là khách hàng cũ và đối đãivới họ như một người truy cập quan trọng Đây là một tính năng thông thường củamột hệ gợi ý Hệ gợi ý sử dụng các thông tin có được từ người dùng trong các lượttương tác trước của họ với hệ thống ví dụ như các đánh giá về các sản phẩm, hành viduyệt web Do vậy, người dùng càng tương tác nhiều với hệ thống, mô hình ngườidùng của họ sẽ càng hoàn thiện hơn, như vậy hệ thống sẽ đưa ra được các gợi ý hợp

lý, hiệu quả hơn với sở thích của người người dùng đó

• Hiểu biết tốt hơn về những mong muốn của người dùng: tính năng này của

hệ thống có thể được sử dụng lại cho nhiều ứng dụng khác, đó là mô tả về sở thích củangười dùng Có thể được thu thập một cách tường minh (đánh giá của người dùng vềsản phầm …) hoặc không tường minh được suy luận ra từ các hành vi tương tác với hệthống của người dùng, nhà cung cấp dịch vụ có thể dựa vào đó để quyết định có sử

Trang 14

dụng lại tri thức này cho một mục đích khác hay không ví dụ như cải thiện quản lý sảnxuất và lưu trữ sản phẩm cần đối việc sản xuất sản phẩm theo thị hiếu người dùng

Đối với người sử dụng

Lý do để người sử dụng cần đến một hệ gợi ý:

• Tìm ra một số sản phẩm tốt nhất: hệ thống gợi ý tới người dùng một số sản

phẩm được xếp hạng và dự đoán số người dùng khác thích chúng Đây là chức năng

chính mà nhiều hệ thống thương mại điện tử sử dụng.Tìm ra tất cả sản phẩm tốt: gợi ý

tất cả sản phẩm mà có thể làm hài lòng nhu cầu của khách hàng Trong nhiều trườnghợp không đủ cơ sở để đưa ra các sản phẩm tốt nhất Điều này chỉ đúng khi số lượngsản phẩm liên quan tương đối nhỏ hoặc khi hệ gợi ý là chức năng quan trọng trongứng dụng tài chính và y tế

• Gợi ý liên tục: thay vì tập trung vào tạo gợi ý đơn, các hệ thống gợi ý tạo các

gợi ý liên tục tới người dùng cho tới khi họ tìm được sản phẩm mong muốn

• Gợi ý một nhóm sản phẩm: đề xuất một nhóm các sản phẩm mà tương

đương nhau Ví dụ như kế hoạch du lịch có thể là gồm nhiều điểm đến, các dịch vụnơi ở, các sự kiện hấp dẫn Từ quan điểm của người dùng những lựa chọn khác nhau

có thể được xem xét và được lựa chọn một điểm đến du lịch hợp lý

• Chỉ duyệt tìm: trong tác vụ này, người dùng duyệt các danh mục mà không

có ý định mua sản phẩm nào, tác vụ này đưa ra gợi ý giúp người dùng duyệt tìm cácsản phẩm có nhiều khả năng thuộc vào phạm vi sở thích của người dùng với phiêmtruy cập xác định Đây là tác vụ được hỗ trợ bởi các kỹ thuật đa phương tiện

• Tìm kiếm các gợi ý tin tưởng: một số người dùng không tin tưởng vào các hệ

thống gợi ý, họ tham gia vào hệ thống để thấy được các hệ thống này đưa ra gợi ý tốttới mức nào Do đó, một số hệ thống có thể đưa ra các chức năng chính xác để chophép họ thử nghiệm hành vi của họ, ngoài các yêu cầu gợi ý

• Cải thiện hồ sơ cá nhân người dùng: người dùng có khả năng cung cấp

thông tin, những gì họ thích, không thích với hệ thống gợi ý Điều này là hết sức cầnthiết để đưa ra các gợi ý mang tính chất cá nhân hóa Nếu như hệ thống không xácđịnh tri thức về người dùng đang hoạt động thì nó chỉ có thể đưa ra các gợi ý giốngnhau

• Bày tỏ ý kiến của mình: một số người dùng có thể không quan tâm tới các

gợi ý, đúng hơn, những gì quan trọng với họ là được góp ý kiến, đánh giá về sảnphẩm, giúp ích người khác khi lựa chọn sản phẩm này

Tác động tới những người dùng khác: trong hệ gợi ý trên web, có nhiều người

tham gia với mục tiêu của họ là tác động tới hệ gợi ý, dẫn tới ảnh hưởng tới người

Trang 15

dùng khác khi mua một sản phẩm cụ thể (thông qua đánh giá sản phẩm…) Tác độngcủa họ có thể thúc đẩy hoặc gây bất lợi cho sản phẩm

Vai trò của một hệ gợi ý trong hệ thống thông tin có thể rất đa dạng, điều nàyphụ thuộc vào các kỹ thuật và nguồn tri thức được sử dụng

2.2.4 Các phương pháp

Các hệ thống gợi ý thường sử dụng nhiều thuật toán khác nhau, về cơ bản,chúng ta có thể chia làm 2 nhóm lớn

 Collaborative filtering (Lọc cộng tác)

 Content-based filtering (Lọc dựa vào nội dung)

Trong phạm vi của đề tài chúng em xin được trình bày về cách tiếp cận màchúng em đã chọn (Collaborative filtering) Có thể hiểu đơn giản lọc cộng tác như sau

Lọc cộng tác hoạt động dựa trên mô hình là những hành vi của người dùng

trước đó như: lịch sử giao dịch, để tìm các quy luật tương tác giữa người dùng (user)

và các thông tin (item) Do đó những hệ thống gợi ý dựa trên cách tiếp cận này đềukhông quan tâm đến các thuộc tính của item Nó có khả năng khai thác thông tin ngoàiphạm vi của các thuộc tính thông tin Mô hình huấn luyện có thể xây dựng dựa trênhành vi của một người dùng, hoặc hiệu quả hơn, nó có thể từ nhiều người dùng khác có

cùng đặc điểm Khi làm việc với hành vi của người dùng khác Lọc cộng tác sử dụng

kiến thức nhóm để tạo ra đề xuất dựa trên những người dùng tương tự Về bản chất, Nólọc trên những người có cùng sở thích, hay những người có cùng những hành vi tương

tự, cùng bấm like, cho điểm đối với cùng một item

Ví dụ cụ thể cho hệ thống chúng em đang xây dựng, bằng cách sử dụng thôngtin của người dùng đăng ký và đánh giá các địa điểm, hệ thống có thể nhóm nhữngngười dùng này dựa trên sở thích của họ Ví dụ Đa số những người dùng có đánh giácao về "Cầu Rồng" và "Cầu Sông Hàn" họ đều có đánh giá cao về "Cầu Tình Yêu" Từnhững thông tin này, hệ thống có thể nhóm họ thành nhóm những người có cùng sởthích Sau đó, khi có một người dùng khác, họ cũng có đánh giá cao về "Cầu Rồng" và

"Cầu Sông Hàn" nhưng chưa được tiếp cận với “Cầu Tình Yêu” hệ thống sẽ gợi ý cho

họ địa điểm này có thể là địa điểm mà họ quan tâm

Trang 16

Hình 3:Minh họa lọc cộng tác Đối với phương pháp “Lọc cộng tác” này lại có thể chia ra thành hai cách tiếp cận nhỏ hơn đó là : User-base filtering (lọc dựa trên người dùng) và Item-base filtering (lọc dựa trên sản phẩm).

User-base filtering là cách tiếp cận dựa tìm ra người hoặc nhóm người có đặc

điểm giống với user được gợi ý nhất dựa trên lịch sử tương tác, rồi từ người hay nhómngười đã tìm được đưa ra các sản phẩm được người hoặc nhóm người này đánh giácao nhưng chưa được user kia tiếp cận

Trang 17

Hình 4:Lọc dựa trên User

Item-base filtering là cách tiếp cận dựa trên lịch sử tương tác của user để tìm ranhóm các item tương tự nhau Từ việc nhóm các item như vậy hệ thống sẽ trả về gợi ýcho những item cùng nhóm với item mà user đã tương tác nhưng chưa được user tiếpcận

Hình 5: Lọc dựa trên Item

Trong hệ thống mà chúng em phát triển Chúng em quyết định chọn lọc dựatrên user để áp dụng cho hệ thống của mình

2.2.5 Các bước tiến hành

Thu thập dữ liệu

Chúng em xây dựng một ứng dụng vừa đồng thời có thể thêm mới dữ liệu vềcác địa điểm du lịch của Đà Nẵng vừa có thể đem đến những gợi ý mang tính kháchquan nhất nên chúng em quyết định chọn dữ liệu cần thu thập và là input của hệ thống

là rating của người dùng lên chính địa điểm bằng app đã xây dựng

allUser = getListData("select id from users");

allItem = getListData("select id from location");

Trang 18

data_from_database.loc[i[0],i[1]] = i[2];

Biểu diển và xử lý số liệu

Sau khi thu thập được dữ liệu rating của người dùng từ hệ thống, chúng ta cầnthực hiện việc tiếp theo là biểu diễn dữ liệu và chuẩn hóa dữ liệu Để dễ dàng nhậnbiết và tính toán chúng ta cần xây dựng một ma trận mà có chỉ mục chính là các địnhdanh user và item Điều này giúp chúng em nghĩ ngay đến cấu trúc dữ liệu DataFramecủa ngôn ngữ lập trình Python Mỗi một hàng sẽ là vector tương tác của người dùngđối với item

Hình 6: Ma trân user-item ban đầu

Trang 19

Tuy nhiên vẫn còn nhiều cặp giá trị đánh giá user-item còn thiếu nên việcchúng ta cần làm tiếp theo là điền vào những ô còn thiếu các giá trị sao cho phù hợp.Một cách tiếp cận khách quan chính là điền vô những ô còn trống giá trị rating trungbình của item đó

dictAverageScore[i] = numpy.sum(listData) / len(listData);

Hình 7:Ma trận user-item sau khi điền các giá trị trung bình

Trang 20

Như vậy là chúng ta đã có tập dữ liệu ban đầu biểu diễn tương tác của user vàitem Việc cần làm tiếp theo là tính toán độ tương tự giữa các user để tìm ra nhóm user

có tính tương đông cao nhất

Để tìm ra độ tương tự của cặp user-user ta cần xây dựng ma trận khoảng cáchgiữa user và user

data_item_base_frame = pd.DataFrame(index=data_from_database.index,columns=data_from_database.index)

Tiếp theo ta cần tính toán khoảng cách của hai user với nhau để điền vào matrận user-user này Ở đây chúng em quyết định chọn khoảng cách Euclidear để biểudiễn khoảng cách giữa hai user với tham số truyền vào là 2 vector tương tác của userđối với các item

Rồi từ chính K user tương đồng này ta đi xây dựng ma trận khoảng cách đánhgiá giữa các user tương đồng và user được gợi ý trên từng Item Việc làm này giúpcho chúng ta đánh giá được những Item đã được user tiếp cận và đâu là các Item tiềmnăng để gợi ý cho user

Trang 21

data_sims = pd.DataFrame(index=data_neighbors.index,columns=range(1 11)) for i in range(0, len(data_item_base_frame.index)):

Nhận phản hồi và thay đổi gợi ý

Ta đã có được các gợi ý ban đầu khi khởi tạo hệ thống Tuy nhiên một việc rấtquan trọng là của một hệ thống gợi ý này là khả năng nhận phản hồi từ user để thayđổi các gợi ý

Các tương tác của người dùng và các chức năng của hệ thống có thể ảnh hưởngđến chức năng gợi ý bao gồm:

Xóa một địa điểm ra khỏi hệ thống

Thêm một địa điểm vào hệ thống

Thêm một user vào hệ thống

Xóa user ra khỏi hệ thống

Thêm hoặc thay đổi một đánh giá

Đối với các tác vụ xử lý cần thời gian xử lý thì chúng em quyết định dùngThread để chạy tác vụ này để cập nhật dữ liệu và trả về các dữ liệu tạm thời

2.3 Framework Spring

2.3.1 Ngôn ngữ lập trình Java

Java là một ngôn ngữ lập trình hướng đối tượng(OOP)

Java hỗ trợ tối đa cho hệ điều hành android Vì vậy có thể phát triển ứng dụngtrên nền tảng sử dụng ngôn ngữ Java

Phù hợp với các ứng dụng có tính bảo mật, tính ứng dụng cao

Trang 22

Ưu điểm của ngôn ngữ Java:

+ Là ngôn ngữ hướng đối tượng

2.3.3 Restful API với Spring boot

RESTFul API là một tiêu chuẩn dùng trong việc thiết kế các thiết kế API chocác ứng dụng để quản lý các tài nguyên, là một trong những kiểu thiết kế API được sửdụng phổ biến nhất ngày nay

Trọng tâm của REST quy định cách sử dụng các HTTP method (như GET,POST, PUT, DELETE ) và cách định dạng các URL cho ứng dụng web để quản cácresource Ví dụ:

URL tạo địa điểm : http://travelingdanang.com/location Tương ứng với HTTPmethod là POST

URL đọc thông tin chi tiếc với ID là 123:

http:// travelingdanang.com /locations/123 Tương ứng với HTTP method làGET

URL cập nhật thông tin địa điểm với ID là 123:

http:// travelingdanang.com /locations/123 Tương ứng với HTTP method làPUT

URL xoá địa điểm với ID là 123:

http:// travelingdanang.com /locations/123 Tương ứng với HTTP method làDELETE

2.4 Framwork Vue js

Là một framework linh Gọi tắt là Vue (phát âm là /vjuː/), giống như view trongtiếng Anh), Vue.js là một framework linh động (nguyên bản tiếng Anh: progressive –tiệm tiến) dùng để xây dựng giao diện người dùng (user interfaces) Khác với cácframework nguyên khối (monolithic), Vue được thiết kế từ đầu theo hướng cho phép

và khuyến khích việc phát triển ứng dụng theo từng bước Khi phát triển lớp giao diện(view layer), người dùng chỉ cần dùng thư viện lõi (core library) của Vue, vốn rất dễhọc và tích hợp với các thư viện hoặc dự án có sẵn Cùng lúc đó, nếu kết hợp với

Trang 23

những kĩ thuật hiện đại như SFC (single file components) và các thư viện hỗ trợ, Vuecũng đáp ứng được dễ dàng nhu cầu xây dựng những ứng dụng một trang (SPA )

3 PHÂN TÍCH THIẾT KỀ

3.1 Phân chia công việc

Bảng 1: Phân chia công việc

1 Phạm Thế Phúc - Viết API cho mobile:

+ Danh sách địa điểm gợi ý cho người dùng+ Danh sách địa điểm theo loại kèm với thểloại địa điểm

+ Thông tin chi tiếc của một địa điểm+ Danh sách top 10 địa điểm nổi bật nhất+ Danh sách top 10 địa điểm mới nhất+ Danh sách địa điểm theo thể loại+Lấy thông tin đánh giá của user về một địađiểm

+ Đánh giá địa điểm du lịch

- Tìm hiểu về thuật toán gợi ý bằng phươngpháp K láng giềng gần nhất

- Xây dựng trang chi tiếc địa điểm

Trang 24

- Tạo form đánh giá địa điểm

- Xử lý yêu thích địa điểm

3 Nguyễn Văn Hoàng - Xây dựng giao diện website

- Thiết kế và xử lý dữ liệu phía front-endViết front-end các chức năng:

+ Quản lý loại/thể loại địa điểm+ Quản lý địa điểm

+ Quản lý hình ảnh+ Quản lý User

4 Cao Thị Anh Đào Viết API cho phần web:

- Quản lý loại/thể loại địa điểm:

- Quản lý địa điểm

Quản lý loại địa điểm:

+ Xem các loại địa điểm

+ Thêm loại địa điểm

+ Sửa loại địa điểm

+ Xóa loại địa điểm

Quản lý thể loại địa điểm:

+ Xem các loại địa điểm

Trang 25

+ Thêm thể loại địa điểm.

+ Sửa thể loại địa điểm

+ Xóa thể loại địa điểm

Quản lý địa điểm cụ thể:

+ Xem danh sách các địa điểm hiện có

+ Sửa thông tin của địa điểm đó

+Thay đổi trạng thái(active/unactive) của thể loại địa điểm đó

Quản lý hình ảnh của địa điểm:

+ Xem danh sách các hình ảnh của địa điểm

+ Xóa hình ảnh

+ Thêm hình ảnh

Quản lý user của hệ thống

+ Xem danh sách user của hệ thống

+ Thêm Mod cho hệ thống

+Thay đổi trạng thái hoạt động của user

Quản lý hoạt động của user (phân quyền user trong database)

+ Xem danh sách các table mà user có thể tác động

+ Xem các action( ví dụ : View, Add, Edit, Delete) của từng table đó mà user cóthể tác động

+Thêm action cho user

+Xóa action của user

3.2.1.2 Mod

- Quản lý các địa điểm của cá nhân

+ Xem danh sách các địa điểm hiện có

+ Chỉnh sửa thông tin của địa điểm đó

Trang 26

3.2.1.3 Khách du lich

+ Xem các địa điểm gợi ý từ ứng dụng phù hợp từng khách du lịch

+ Xem các địa điêm nổi bật ở Đà Nẵng

+ Xem các địa điểm cập nhập mới ở Đà Nẵng

+ Xem thông tin các loại địa điểm

+ Xem thông tin các thể loại địa điểm

+ Xem thông tin các địa điểm của từng loại địa điểm

+ Xem thông tin chi tiếc của địa điểm củ thể

+ Đánh dấu yêu thích địa điểm

+ Đánh giá địa điểm

+ Ghi chú thông tin cá nhân tại mỗi địa điểm và có thể xem lại sau

Trang 27

Hình 8: Use case quản lý User

3.2.2.2 Quản lý địa điểm

Hình 9: Use case quản lý địa điểm

Trang 28

3.2.2.3 Quản lý thể loại địa điểm

Hình 10: Use case quản lý thể loại địa điểm

3.2.2.4 Quản lý loại địa điểm

Hình 11: Use case quản lý loại địa điểm

Trang 29

3.2.3 Biểu đồ hoạt động

3.2.3.1 Biểu đồ hoạt động xem địa điểm du lịch của User

Hình 12: Biểu đồ hoạt động xem địa điểm du lịch của User

3.2.3.2 Biểu đồ quản lý địa điểm du lịch của Admin và Mod

Hình 13: Biểu đồ hoạt động quản lý địa điểm du lịch của Admin và Mod

Trang 30

3.3 Cơ sở dữ liệu

3.3.1 Mô hình thiết kế cơ sở dữ liệu

Dựa vào phân tích thiết kế hệ thống và những kiến thưc được học trong môn Cơ sở dữ liệu

Trang 31

Hình 14: Diagram cơ sở dữ liệu

3.3.2 Mô tả cơ sở dữ liệu

Bảng 2: Cấu trúc bảng Người dùng

Bảng “ USERS ”

Tên đăng nhập Tên đăng nhập của user Varchar 255

Bảng 3: Cấu trúc bảng thông tin người dùng

Bảng “ USER_INFO ”

Fullname Tên đầy đủ của user Varchar 255

Giới tính Giới tính của user Integer 255

Bảng 4: Cấu trúc bảng loại địa điểm

Bảng “ PLACE_TYPE ”

Bảng 5: Cấu trúc bảng thể loại địa điểm

Bảng “ PLACE_CATEGORIES ”

PlaceTypeId Id của kiểu địa điểm Integer 255

Trang 32

Bảng 6: Cấu trúc bảng địa điểm

Bảng “ LOCATION ”

Introduction Giới thiệu về địa

điểm

CreateDate Ngày tạo địa điểm Timestamp

PlaceCategoryId ID của thể loại Integer 255

StatusId ID trạng thái của địa

ContactId ID thông tin liên lạc Integer 255

DurationId ID thời lượng của địa

điểm

Bảng 7: Cấu trúc bảng địa chỉ

Bảng “ ADDRESS ”

id ID địa chỉ của địa

điểm

điểm

Bảng 8: Cấu trúc bảng trạng thái hoạt động

Bảng “ STATUS ”

Trang 33

Bảng 9: Cấu trúc bảng Liên Lạc

Bảng “ CONTACT ”

id ID liên lạc của địa

điểm

Phone Số điện thoại liên lạc Varchar 255

Bảng 10: Cấu trúc bảng thời lượng

Bảng “ DURATION ”

id ID thời lượng của

Detail Nội dung của địa

Trang 34

Bảng 13: Cấu trúc bảng Ghi Chú

Bảng “ NOTE ”

id ID ghi chú của địa

điểm

Bảng 14: Cấu trúc bảng Đánh Giá

Bảng “ EVALUTION ”

điểm

Bảng 15: Cấu trúc bảng Bình luận

Bảng “ COMMENT ”

điểm

CommentDate Ngày viết bình luận Timestamp

Bảng 16: Cấu trúc bảng Yêu Thích

Bảng “ FAVOURITE ”

Trang 35

Bảng 17: Cấu trúc bảng phân quyền

Bảng “USER_ROLES”

Bảng 18: Cấu trúc bảng các quyền

Bảng “ ROLES ”

Bảng 19: Cấu trúc bảng phân quyền của tài nguyên

Bảng “ RESOURCE_ROLE ”

CanEdit User có quyền chỉnh

CanDelete User có quyền xóa Integer 11

Trang 36

4 MÔ TẢ CHỨC NĂNG HỆ THỐNG

4.1 Khách du lịch

4.1.1 Quản lý tài khoản cá nhân

Use Case Name Quản lý tài khoản

Use Case ID ID01

Trang 37

Screen Đăng ký tài khoản người

Description Cho phép người dùng đăng ký tài khoản và sử dùng tài khoản,mật khẩu đã đăng ký để đăng nhập sử dụng appScreen Access User chọn Đăng ký ở màn hình Đăng Nhập

Screen Content

Họ tên Text field –String (255) Ô nhập họ tên

Tên đăng nhập Text field –String (255) Ô nhập tên đăng nhập

Mật khẩu Password –String(255) Ô nhập mật khẩu

Địa chỉ Text field –String (255) Ô nhập vào địa chỉ

Số điện thoại Text field –String (11) Ô nhập vào số điện thoại

Đăng ký Button Người dùng kích vàoĐăng ký khi muốn Đăng

ký tài khoản

Screen Actions

Đăng ký Khi người dùng kích

vào Đăng ký hệ

thống kiếm tra tínhhợp lệ của dữ liệu

nếu dữ liệu hợp lệ thìlưu dữ liệu nhập vào

Chuyển đếnmàn hình đăngnhập và hiển thị

“Đăng ký thànhcông”

Khi để trống ô Họtên

->Hệ thống sẽ thôngbáo “Họ tên khôngđược trống”

Khi để trống ô Tài

Trang 38

database, ngược lạihiện thông báo lỗi.

khoản- >Hệ thống sẽthông báo “Tài khoảnkhông thể trống”Khi để trống ô Mậtkhẩu->Hệ thống sẽthông báo “Mật khẩukhông thể trống”Khi có lỗi kết nối cơ

sở dữ liệu -> Hiển thịthông báo “Lỗi kếtnối cơ sở dữ liệu”

Đăng nhập

Screen Đăng nhập vào hệ thống

Description Cho phép User đã có tài khoản có thể đăng nhập vào hệ thốngScreen Access Màn hình trang đầu tiên sau khi khởi động ứng dụng

Trang 39

Mật khẩu

cho Usernhập mậtkhẩu

dữ liệu không hợp lệ sẽhiển thị thông báo “Tênđăng nhập hoặc mật khẩusai”, nếu dữ liệu hợp lệ thìtiếp tục kiểm tra Tài khoảnvới mật khẩu tương ứng cótồn tại trong hệ thống haykhông, nếu có thì cho Userđăng nhập vào hệ thống,nếu không thì hiển thịthông báo “Tài khoản hoặcmật khẩu sai”

chuyển đếntrang chủ củaứng dụng

Hiện thông báo :

“Dữ liệu khônghợp lệ”

Hiện thông báo:

“Tài khoản hoặcmật khẩu sai”

Trang 40

Xem thông tin chi tiếc cá nhân

Screen Xem chi tiết thông tin cá nhân

Description Cho phép User xem tất cả các thông tin của mình như: Họ tên,

avatar, địa chỉ, số điện thoại, giới tính

Screen Access User sau khi đăng nhập chọn Cá nhân -> Thông Tin Tài

Hiển thị Họ tên đầy đủcủa User

Ngày đăng: 09/05/2019, 14:13

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w