Tải bản đầy đủ (.pdf) (177 trang)

Xây dựng ứng dụng đánh giá và gợi ý nhà hàng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (7.92 MB, 177 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

NGUYỄN TẤN PHÁT
DƯƠNG THỊ THU THỦY

KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG ỨNG DỤNG ĐÁNH GIÁ VÀ GỢI Ý NHÀ
HÀNG
Building an Application for Evaluation and Recommendation
Restaurants

KỸ SƯ NGÀNH CƠNG NGHỆ PHẦN MỀM

TP. HỒ CHÍ MINH, 2021


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

NGUYỄN TẤN PHÁT – 17520879
DƯƠNG THỊ THU THỦY – 17521119

KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG ỨNG DỤNG ĐÁNH GIÁ VÀ GỢI Ý NHÀ


HÀNG
Building an Application for Evaluation and Recommendation
Restaurants

KỸ SƯ NGÀNH CÔNG NGHỆ PHẦN MỀM

GIẢNG VIÊN HƯỚNG DẪN
THS. TRẦN ANH DŨNG

TP. HỒ CHÍ MINH, 2021


DANH SÁCH HỘI ĐỒNG BẢO VỆ KHÓA LUẬN

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ………………
ngày ……………….. của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
1.

…………………………………………. – Chủ tịch.

2.

…………………………………………. – Thư ký.

3.

…………………………………………. – Ủy viên.

4.


…………………………………………. – Ủy viên.


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC

Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN

TP. HCM, ngày tháng năm 2021

NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ HƯỚNG DẪN)
Tên khóa luận:
Xây dựng Ứng dụng đánh giá và gợi ý nhà hàng
Nhóm sinh viên thực hiện:

Cán bộ hướng dẫn:

NGUYỄN TẤN PHÁT

17520879

DƯƠNG THỊ THU THỦY

17521119


ThS. TRẦN ANH DŨNG

Đánh giá Khóa luận:
1. Về cuốn báo cáo:
Số trang

Số chương

Số bảng số liệu

Số hình vẽ

Số tài liệu tham khảo

Sản phẩm

Một số nhận xét về hình thức cuốn báo cáo:

2. Về nội dung nghiên cứu:




3. Về chương trình ứng dụng:

4. Về thái độ làm việc của sinh viên:

Đánh giá chung:
Điểm từng sinh viên:

NGUYỄN TẤN PHÁT: ………../10
DƯƠNG THỊ THU THỦY: ………../10

Người nhận xét
(Ký và ghi rõ họ tên)

Trần Anh Dũng


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC

Độc Lập – Tự Do – Hạnh Phúc

CÔNG NGHỆ THÔNG TIN

TP. HCM, ngày tháng năm 2021

NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ PHẢN BIỆN)
Tên khóa luận:
Xây dựng Ứng dụng đánh giá và gợi ý nhà hàng
Nhóm sinh viên thực hiện:

Cán bộ phản biện:

NGUYỄN TẤN PHÁT


17520879

DƯƠNG THỊ THU THỦY

17521119

Đánh giá Khóa luận:
1. Về cuốn báo cáo:
Số trang

Số chương

Số bảng số liệu

Số hình vẽ

Số tài liệu tham khảo

Sản phẩm

Một số nhận xét về hình thức cuốn báo cáo:
2. Về nội dung nghiên cứu:
3. Về chương trình ứng dụng:
4. Về thái độ làm việc của sinh viên:


Đánh giá chung:
Điểm từng sinh viên:
NGUYỄN TẤN PHÁT: ………../10

DƯƠNG THỊ THU THỦY: ………../10

Người nhận xét
(Ký và ghi rõ họ tên)


LỜI CẢM ƠN
Khóa luận tốt nghiệp với đề tài “Xây dựng ứng dụng đánh giá và gợi ý nhà
hàng” là minh chứng cho q trình cố gắng khơng ngừng trong việc tìm tịi, học hỏi
của chúng em suốt 4 năm học tập và rèn luyện tại khoa Công nghệ phần mềm trường
Đại học Công nghệ Thông tin – ĐHQG TP.HCM. Thể hiện khả năng của bản thân
trong việc áp dụng kiến thức chun mơn vào giải quyết bài tốn thực tế.
Trong q trình thực hiện khóa luận, chúng em đã nhận được sự hướng dẫn
tận tình từ q thầy cơ, sự giúp đỡ và hỗ trợ từ gia đình cũng như bạn bè. Với một
cách đặc biệt nhất, chúng em xin được gửi lời cảm ơn chân thành đến:
Ban Giám hiệu trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM vì
đã tạo điều kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại
sách, tài liệu thuận lợi cho việc tìm kiếm, nghiên cứu thông tin.
Chúng em xin được gửi lời cảm ơn sâu sắc tới Ths. Trần Anh Dũng, người đã
trực tiếp hướng dẫn, chỉ bảo, giúp đỡ chúng em những lúc khó khăn, đưa ra những
lời khun bổ ích để khóa luận được hoàn thành đúng tiến độ và đáp ứng các yêu cầu
đề ra ban đầu.
Cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất cả thầy cô trong
khoa, bạn bè đã luôn bên cạnh để động viên và đóng góp ý kiến trong q trình hồn
thành khóa luận này.
Trong q trình làm khóa luận này chúng em khơng tránh khỏi được những
sai sót, chúng em kính mong nhận được sự chỉ dẫn và góp ý của q thầy cơ để khóa
luận được hồn thiện hơn.
Thành phố Hồ Chí Minh, 20 tháng 06 năm 2021
Sinh viên

NGUYỄN TẤN PHÁT
DƯƠNG THỊ THU THỦY


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC

Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN

TP. HCM, ngày….. tháng ….. năm ………

ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Xây dựng ứng dụng đánh giá và gợi ý nhà hàng
TÊN ĐỀ TÀI (TIẾNG ANH): Building an Application for Evaluation and
Recommendation Restaurants
Cán bộ hướng dẫn: ThS. Trần Anh Dũng
Thời gian thực hiện: Từ ngày 08/03/2021 đến ngày 26/06/2021
Sinh viên thực hiện:
Nguyễn Tấn Phát

- 17520879

Dương Thị Thu Thủy - 17521119
Nội dung đề tài:(Mô tả chi tiết mục tiêu, phạm vi, đối tượng, phương pháp thực hiện,
kết quả mong đợi của đề tài)

1. Mục tiêu chọn đề tài
1.1. Bối cảnh chọn đề tài
Hiện nay, khi cuộc sống đang ngày càng phát triển, nhu cầu của con người ngày
càng cao hơn, ẩm thực cũng vì thế mà trở nên hồn thiện hơn. Khơng chỉ giới hạn
trong “Ăn no mặc ấm” mà còn phải đáp ứng “Ăn ngon mặc đẹp”. Thay vì những
bữa cơm ở nhà thì nhiều người hay cùng với gia đình, bạn bè, đối tác đến những
nhà hàng ăn uống để thưởng thức những món ăn vừa mới lạ, vừa bổ dưỡng, lại


đảm bảo an toàn vệ sinh thực phẩm cùng với bầu khơng khí đa dạng. Nhưng để
chọn một nhà hàng phù hợp với từng khẩu vị, giá cả hợp lý, khơng gian thích hợp
là điều vơ cùng khó khăn.
Bên cạnh đó là sự phát triển vượt bậc của cơng nghệ theo thời gian, đặc biệt là
Machine Learning nhằm thúc đẩy thị trường, giải quyết các bài toán kinh tế, bắt
kịp xu thế với mong muốn thu hút đông đảo sự quan tâm của khách hàng. Vì thế,
nhóm em quyết định thực hiện đề tài “Tìm hiểu các thuật tốn tư vấn và xây dựng
ứng dụng tư vấn nhà hàng”.
1.2. Các vấn đề của một số ứng dụng hiện nay
- Nhóm đã tìm hiểu và dùng thử một số ứng dụng hàng đầu hiện nay như: Foody,
Pasgo, Diadiemanuong, Thánh Riviu, OpenTable và nhận thấy một số khuyết
điểm:
• Foody: Giao diện khó phân biệt từng phần với nhau, khơng có lọc nhà hàng
theo giá cả.
• Pasgo: Chọn loại hình ăn uống cịn bị lỗi, khơng có lọc cửa hàng về giá cả,
chức năng bình luận khơng đánh giá được thơng số của nhà hàng.
• Thánh Riviu: Chỉ tập trung vào review các món ăn, khơng hỗ trợ đặt bàn.
• OpenTable: Chưa ổn định (dựa trên đánh giá từ Google Play), chưa hỗ trợ
ngơn ngữ tiếng Việt.
• Đa số các ứng dụng trên đều chưa thể hiện được tình trạng bàn trống của
nhà hàng, hệ thống gợi ý đơn giản (theo khoảng cách, theo lượt xem gần

đây…), chủ yếu là review và gợi ý về món ăn…
1.3. Điểm nổi bật của ứng dụng
-

Danh sách cửa hàng sẽ được hiển thị cùng với Google Map.

-

Ứng dụng sẽ gợi ý nhà hàng cho từng nhóm thực khách khác nhau dựa trên vị
giác yêu thích, vị trí địa lý, những nhà hàng hay xem và đánh giá của họ đối
với nhà hàng, gợi ý theo nhu cầu tổ chức sự kiện của thực khách (sinh nhật, ăn
tối, đám cưới, tiệc tùng,…). Điều này giúp thực khách sẽ dễ dàng tìm thấy nhà


hàng mình mong muốn từ đó hạn chế tối đa sự thất vọng của thực khách đối
với nhà hàng đồng thời cải thiện doanh thu, danh tiếng cho các nhà hàng.
-

Người dùng có thể tìm kiếm nhà hàng theo vị trí địa lý, danh mục món ăn, giá
cả và có thể biết được nhà hàng cịn bàn trống hay khơng khi có mong muốn
đặt bàn.

-

Ứng dụng cho phép thực khách đăng bài review về nhà hàng và bình luận đánh
giá từ đó giúp xác thực chất lượng của nhà hàng.

-

Ứng dụng có giao diện mới mẻ, bố cục hợp lý, thân thiện, dễ sử dụng cho tất

cả người dùng.

1.4. Mục tiêu
-

Hiểu được Machine Learning cơ bản và các thuật toán tư vấn, gợi ý sản phẩm.
Từ đó có thể áp dụng các thuật toán này vào ứng dụng tư vấn nhà hàng cũng
như những dự án khác sau này.

-

Sử dụng những công nghệ mới, phù hợp đáp ứng khả năng mở rộng và tương
tác cao.

-

Xây dựng ứng dụng tư vấn nhà hàng có giao diện trực quan, phù hợp với nhu
cầu của đối tượng người dùng. Người dùng có thể xem, tìm kiếm, đánh giá tiêu
chuẩn và bình luận các nhà hàng, địa điểm ăn uống.

-

Phát triển ứng dụng có tính thực tiễn cao, có khả năng triển khai ứng dụng vào
thực tế

Nhóm em hi vọng dựa trên nền tảng lý thuyết đã được thầy cô truyền dạy và hỗ
trợ, kết hợp với sự tìm hiểu cơng nghệ của nhóm, luận văn tốt nghiệp của nhóm
sẽ đạt được mục tiêu mong đợi.
2. Phạm vi nghiên cứu
-


Ứng dụng tư vấn nhà hàng được nhóm xây dựng bằng ngơn ngữ Flutter trên môi
trường Android và Service được xây dựng bằng công nghệ Java Spring Boot.

-

Xây dựng ứng dụng tư vấn nhà hàng hướng đến người dùng Việt Nam.


-

Tìm hiểu hệ thống gợi ý sản phẩm đối với hai phương pháp: Content – based
method, Collaborative filtering method dựa trên các khía cạnh: ý tưởng; phương
thức; ưu, nhược điểm.

-

Triển khai, đánh giá độ chính xác của từng phương pháp dựa trên dữ liệu thử
nghiệm. Áp dụng hệ thống gợi ý vào ứng dụng tư vấn nhà hàng để gợi ý các nhà
hàng phù hợp với thực khách.

3. Đối tượng nghiên cứu
-

Các công nghệ:
+ Mobile: Flutter
+ Back – end: Java Spring Boot
+ Front – end: ReactJS, NextJS
+ Database: MySQL
+ Cào dữ liệu: Jsoup

+ Cơng cụ tìm kiếm: Elasticsearch
+ Firebase authentication, Firebase store
+ Google Map API
+ Giao diện: Quy tắc thiết kế F-layout, quy tắc phối màu mono.
+ IDE: Eclipse, Visual Studio Code

-

Thuật toán: Thuật toán khuyến nghị Content – based và Collaborative Filtering.

-

Đối tượng trong phạm vi đề tài hướng đến:
+ Những doanh nghiệp kinh doanh nhà hàng trên địa bàn TP. Hồ Chí Minh.
+ Thực khách có nhu cầu tìm kiếm món ăn và nhà hàng, địa điểm ăn uống.
Đối tượng này thường tập trung từ độ tuổi 15-30.
+ Các nhà review, blogger về lĩnh vực ăn uống hay những thực khách mong
muốn chia sẻ trải nghiệm thực tế của mình về nhà hàng.


4. Phương pháp thực hiện
-

Làm việc nhóm với hai thành viên, lên kế hoạch, thực hiện bằng cách trao đổi trực
tiếp và gián tiếp tiếp cũng như nhờ sự tư vấn của giáo viên hướng dẫn.

-

Nhóm sử dụng các phương pháp nghiên cứu: đọc tài liệu, thực nghiệm, phân tích
các ứng dụng liên quan nổi bật hiện nay.


-

Tham khảo các sản phẩm và công nghệ liên quan tới nhà hàng, địa điểm ăn uống:
Foody, Pasgo, OpenTable,…

-

Tìm hiểu các thuật tốn tư vấn, gợi ý sản phẩm (recommendation system) hiện có
và vận dụng, tùy chỉnh, đánh giá các thuật toán phù hợp với đề tài.

5. Kết quả mong đợi
Sau khi xác định đề tài và nghiên cứu, tìm hiểu thực tế, nhóm đã xây dựng ý tưởng thiết
kế ứng dụng tư vấn nhà hàng cần đạt được những kết quả sau:
-

Về ứng dụng:
• Với khách hàng là người dùng chưa đăng nhập, có thể xem nhà hàng, tìm
kiếm nhà hàng và đăng ký tài khoản.
• Với người dùng là thực khách và đã đăng nhập có thể thực hiện chức năng
đặt bàn, theo dõi tình trạng đặt bàn, xem nhà hàng, nhà hàng yêu thích, chat
với nhà hàng, đăng bài review và bình luận đánh giá nhà hàng, tìm kiếm nhà
hàng dựa trên các mục khác nhau, được gợi ý các nhà hàng phù hợp với sở
thích, thu thập voucher…
• Với người dùng là các nhà hàng đã đăng nhập có thể quản lý nhà hàng, thêm,
xóa, sửa các chi nhánh, menu của nhà hàng, chat với người dùng, xét duyệt
các yêu cầu đặt bàn được gửi từ thực khách, tạo các voucher,…
• Admin là người quản trị tất cả các chức năng, thực hiện xét duyệt nhà hàng,
tài khoản người dùng, quản lý các bài review và giải quyết khi khách hàng
gặp vấn đề.

• Hệ thống lưu các nhà hàng thực khách đã xem và gợi ý nhà hàng cho thực
khách.


• Xây dựng thành công hệ thống gợi ý nhà hàng cho hiệu năng cao.
• Hệ thống có khả năng xây dựng và phát triển nhanh chóng.
-

Về hệ thống gợi ý nhà hàng:
• Hiểu bài tốn khuyến nghị, đặc biệt là hai phương pháp khuyến nghị chính:
Content – based và Collaborative.
• Có kết quả so sánh, đánh giá.
• Hệ thống gợi ý nhà hàng có thể gợi ý nhà hàng cho cả người dùng mới (chưa
có dữ liệu) và người dùng cũ.

-

Các tiêu chí khác:
+ Tính thẩm mỹ: Ứng dụng có giao diện đẹp, dễ sử dụng tâm lý thoải mái cuốn hút
khách hàng khi sử dụng.
+ Tính logic:
• Đối với nhà quản trị có thể xét duyệt, cập nhật các thông tin liên quan đến
nhà hàng và các vấn đề khác. Nhận và trả lời ý kiến từ phí người dùng.
• Tạo được sự liên kết logic giữa các màn hình để khách hàng có thể chuyển
màn hình một cách nhanh nhất và thuận tiện nhất.

Kế hoạch thực hiện:(Mô tả kế hoạch làm việc và phân công công việc cho từng sinh
viên tham gia)
Với thời gian thực hiện từ 08/03/2021 đến ngày 26/06/2021, nhóm chia thành 8 sprint
với 3 giai đoạn cụ thể:

STT

Công việc

Thời gian thực hiện

Phân
công

Giai đoạn 1: Khảo sát nhu cầu thực tế,

3 Tuần

tìm hiểu các kiến thức về các thuật toán

(08/03/2021 – 28/03/2021)

gợi ý và các yêu cầu nghiệp vụ của ứng
dụng


1

Sprint 1: Khảo sát, nghiên cứu

1 Tuần

- Phát biểu bài toán

Tuần 1


- Khảo sát nhu cầu thực tế của thực

(08/03/2021 – 14/03/2021)

Cả hai

khách, của nhà hàng.
- Tham khảo các ứng dụng liên quan
và tìm hiểu các yêu cầu nghiệp vụ
của ứng dụng.
- Phân tích, xác định chức năng
2

Sprint 2: Tìm hiểu cơ bản các

1 Tuần

thuật toán gợi ý

Tuần 2

Cả hai

(15/03/2021 – 21/03/2021)
3

Sprint 3: Tìm hiểu về các cơng

1 Tuần


nghệ sử dụng

Tuần 3

- Tìm hiểu Flutter

(22/03/2021 – 28/03/2021)

Cả hai

- Tìm hiểu Java Spring Boot
Giai đoạn 2: Thiết kế và xây dựng ứng

7 Tuần

dụng với các chức năng dành cho người
dùng và quản trị viên
4

Sprint 4: Thiết kế ứng dụng

1 Tuần

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

Tuần 4

- Khảo sát UI của các ứng dụng liên
quan


(29/03/2021 – 04/04/2021)

Tấn Phát
Thu
Thủy


- Thiết kế UI cho web và mobile app
với figma
5

Sprint 5: Xây dựng ứng dụng

6 Tuần

- Xây dựng database với MySQL

Tuần 5

Cả hai

(05/04/2021 – 11/04/2021)
- Xây dựng Restful API

Tuần 5 – Tuần 6

Tấn Phát

(05/04/2021 – 18/04/2021)

- Xây dựng web app

- Xây dựng mobile app

Tuần 7 – Tuần 10

Thu

(19/04/2021 – 16/05/2021)

Thủy

Tuần 6 – Tuần 10

Cả hai

(12/04/2021 – 16/05/2021)
Giai đoạn 3: Áp dụng hệ thống gợi ý vào

6 Tuần

ứng dụng tư vấn nhà hàng
6

Sprint 6: Tìm hiểu hệ thống gợi ý,

2 Tuần

chạy thử nghiệm và đánh giá các


Tuần 11 – Tuần 12

thuật toán gợi ý

7

8

(17/05/2021 – 30/05/2021)

Sprint 7: Áp dụng hệ thống gợi ý

3 Tuần

vào ứng dụng tư vấn nhà hàng,

Tuần 13 – Tuần 15

đánh giá hiệu năng

Sprint 8: Kiểm thử và hoàn thành
báo cáo

Cả hai

(31/05/2021 – 20/06/2021)
1 Tuần

Cả hai



- Kiểm thử các chức năng của ứng

Tuần 16

Tấn Phát

dụng

(21/06/2021 – 26/06/2021)

- Hoàn thành báo cáo

Thu
Thủy

Xác nhận của CBHD

TP. HCM, ngày 07 tháng 03 năm 2021

(Ký tên và ghi rõ họ tên)

Sinh viên 1
(Ký tên và ghi rõ họ tên)

ThS. Trần Anh Dũng
Nguyễn Tấn Phát

Sinh viên 2
(Ký tên và ghi rõ họ tên)


Dương Thị Thu Thủy


MỤC LỤC
TÓM TẮT KHÓA LUẬN ..........................................................................................1
GIỚI THIỆU CHUNG ........................................................................2
Lý do chọn đề tài ...........................................................................................2
Tính năng mới/ khác biệt ...............................................................................3
Đối tượng nghiên cứu ....................................................................................6
Phạm vi nghiên cứu .......................................................................................7
Phương pháp nghiên cứu ...............................................................................7
KIẾN THỨC NỀN TẢNG ..................................................................9
Tổng quan về mơ hình MVC .........................................................................9
2.1.1.

Khái niệm ............................................................................................9

2.1.2.

Tại sao dùng mơ hình MVC ................................................................9

Tổng quan về Java Spring Boot ...................................................................10
2.2.1.

Giới thiệu ...........................................................................................10

2.2.2.

Tạo sao chọn Java Spring Boot để phát triển server .........................10


ReactJs .........................................................................................................11
2.3.1.

Giới thiệu ...........................................................................................11

2.3.2.

Ưu nhược điểm của Reactjs ..............................................................12

2.3.2.1

. Ưu điểm........................................................................................12

2.3.2.2

. Nhược điểm .................................................................................12

NextJs ..........................................................................................................12
Flutter...........................................................................................................13
2.5.1.

Giới thiệu ...........................................................................................13

2.5.2.

Tại sao sử dụng Flutter để phát triển ứng dụng di động....................13


2.5.3.


BLoC Pattern .....................................................................................14

Hệ quản trị cơ sở dữ liệu MySQL ...............................................................16
2.6.1.

Giới thiệu ...........................................................................................16

2.6.2.

Ưu điểm của MySQL ........................................................................16

2.6.3.

Nhược điểm của MySQL ..................................................................17

Elasticsearch ................................................................................................17
2.7.1.

Khái niệm Elasticsearch ....................................................................17

2.7.2.

Cách hoạt động của Elasticsearch .....................................................17

2.7.3.

Ưu, nhược điểm của Elasticsearch ....................................................18

2.7.3.1. Ưu điểm ...........................................................................................18

2.7.3.2. Nhược điểm .....................................................................................18
JSoup ...........................................................................................................18
2.8.1.

Giới thiệu ...........................................................................................18

2.8.2.

Những chức năng của Jsoup ..............................................................19

Google Map API ..........................................................................................19
2.9.1.

Giới thiệu ...........................................................................................19

2.9.2.

Một số ứng dụng ................................................................................19

Google Firebase Cloud .............................................................................20
2.10.1.

Khái niệm Firebase ............................................................................20

2.10.2.

Chức năng chính của Google Firebase ..............................................20

2.10.2.1. Firebase Authentication – Hệ thống xác thực của Firebase ..........20
2.10.2.2. Firebase Storage ............................................................................20

2.10.2.3. Firebase Cloud Messaging ............................................................20
2.10.3.

Lợi ích của Google Firebase..............................................................20


Apache Spark ...........................................................................................21
2.11.1.

Giới thiệu ...........................................................................................21

2.11.2.

Thành phần của Apache Spark ..........................................................21

2.11.3.

Ưu điểm của Apache Spark ...............................................................22

Hệ thống khuyến nghị ..............................................................................23
2.12.1.

Giới thiệu ...........................................................................................23

2.12.2.

Một số phương pháp trong hệ thống khuyến nghị ............................25

2.12.2.1. Hệ thống khuyến nghị theo nội dung (Content – based) ..............25
2.12.2.2. Hệ thống khuyến nghị lọc cộng tác (Collaborative Filtering) ......26

2.12.3.

So sánh Content – based và Collaborative Filtering .........................28
XÂY DỰNG HỆ THỐNG ................................................................29

Xây dựng kiến trúc hệ thống .......................................................................29
3.1.1.

Kiến trúc hệ thống website ................................................................29

3.1.2.

Kiến trúc hệ thống mobile .................................................................29

Phân tích thiết kế hệ thống ..........................................................................30
3.2.1.

Xác định yêu cầu hệ thống ................................................................30

3.2.2.

Phân tích yêu cầu hệ thống ................................................................32
Phần Mobile – Thực khách ............................................................32
Phần Website – Chủ nhà hàng .......................................................34
Phần Website – Quản trị viên ........................................................35

3.2.3.

Sơ đồ use case ...................................................................................37
Sơ đồ use case tổng quát ................................................................37

Danh sách các actors ......................................................................40
Danh sách các use case ..................................................................40


Use case Đăng ký tài khoản ...........................................................42
Use case Đăng nhập .......................................................................43
Use case Quản lý người dùng ........................................................44
Use case Quản lý nhà hàng ............................................................46
Use case Quản lý đặt chỗ ...............................................................47
Use case Quản lý các chương trình khuyến mãi............................48
Use case Quản lý review..............................................................49
Use case Quản lý bình luận, đánh giá ..........................................50
Use case Quản lý doanh mục, thẻ ................................................51
Use case Thống kê .......................................................................52
Use case Tìm kiếm bài review .....................................................54
Use case Tìm kiếm nhà hàng .......................................................54
Use case Tìm kiếm nhà hàng gần bạn .........................................56
Use case Chỉnh sửa thông tin cá nhân .........................................57
Use case Theo dõi yêu cầu đặt chỗ ..............................................58
Use case Viết bài review..............................................................59
Use case Đặt chỗ ..........................................................................60
Use case Đánh giá nhà hàng ........................................................60
3.2.4.

Sơ đồ lớp ...........................................................................................61

3.2.5.

Phân tích và thiết kế CSDL ...............................................................63
Bảng Users .....................................................................................65

Bảng Restaurants ...........................................................................66
Bảng Roles .....................................................................................68
Bảng Comments.............................................................................68


Bảng User_like ..............................................................................69
Bảng Tag_restaurant ......................................................................70
Bảng Address .................................................................................70
Bảng Tags ......................................................................................71
Bảng Vouchers...............................................................................71
Bảng Reservations .......................................................................72
Bảng Reviews ..............................................................................73
Bảng Profile_distance ..................................................................74
Bảng Resources ...........................................................................74
Bảng Restaurant_distance ............................................................75
Bảng Review_tag .........................................................................75
Bảng User_collab.........................................................................76
Bảng User_tag .............................................................................76
Thiết kế giao diện website ...........................................................................77
3.3.1.

Giao diện Đăng nhập .........................................................................77

3.3.2.

Giao diện Đăng ký .............................................................................77

3.3.3.

Giao diện dành cho Quản trị viên (Admin) .......................................78

Giao diện Dashboard .....................................................................78
Giao diện Quản lý nhà hàng ..........................................................79
Giao diện Quản lý bình luận, đánh giá ..........................................79
Giao diện Quản lý thực khách .......................................................80
Giao diện Quản lý chủ nhà hàng ...................................................80
Giao diện Quản lý đặt chỗ .............................................................81
Giao diện Quản lý review ..............................................................81


Giao diện Quản lý doanh mục, thẻ ................................................82
Giao diện Quản lý khuyến mãi ......................................................82
3.3.4.

Giao diện dành cho Chủ nhà hàng (Owner) ......................................83
Giao diện Dashboard .....................................................................83
Giao diện Quản lý nhà hàng ..........................................................83
Giao diện Quản lý đặt chỗ .............................................................84
Giao diện Quản lý review ..............................................................84
Giao diện Quản lý khuyến mãi ......................................................85

3.3.5.

Giao diện Chi tiết khuyến mãi ...........................................................85

3.3.6.

Giao diện Chi tiết nhà hàng ...............................................................86

3.3.7.


Giao diện Thêm nhà hàng .................................................................87

3.3.8.

Giao diện Chi tiết đánh giá ................................................................88

3.3.9.

Giao diện Chi tiết review...................................................................88

3.3.10.

Giao diện Chi tiết thực khách ............................................................89

3.3.11.

Giao diện Chi tiết chủ nhà hàng ........................................................90

3.3.12.

Giao diện Chi tiết đặt chỗ ..................................................................91

3.3.13.

Giao diện Thêm khuyến mãi .............................................................91

Thiết kế giao diện mobile ............................................................................92
3.4.1.

Giao diện Đăng ký .............................................................................92


3.4.2.

Giao diện Đăng nhập .........................................................................93

3.4.3.

Giao diện Trang chủ ..........................................................................94

3.4.4.

Giao diện Gần bạn .............................................................................98

3.4.5.

Giao diện Tìm kiếm theo bộ lọc ........................................................99

3.4.6.

Giao diện Tìm kiếm theo thông tin nhà hàng ..................................100


3.4.7.

Giao diện Kết quả tìm kiếm ............................................................101

3.4.8.

Giao diện Chi tiết nhà hàng .............................................................102


3.4.9.

Giao diện Đặt chỗ ............................................................................105

3.4.10.

Giao diện Chi tiết khuyến mãi .........................................................106

3.4.11.

Giao diện Review ............................................................................107

3.4.12.

Giao diện Chi tiết review.................................................................108

3.4.13.

Giao diện Tạo review ......................................................................109

3.4.14.

Giao diện Tài khoản ........................................................................110

3.4.15.

Giao diện Chỉnh sửa tài khoản ........................................................111

3.4.16.


Giao diện Yêu thích .........................................................................112

3.4.17.

Giao diện Quản lý đặt chỗ ...............................................................113

3.4.18.

Giao diện Cập nhật sở thích ............................................................118

3.4.19.

Giao diện Quản lý review của tôi ....................................................119

3.4.20.

Giao diện Checkin cho bài review ..................................................120

3.4.21.

Giao diện Gắn thẻ cho bài review ...................................................121
ÁP DỤNG GỢI Ý SẢN PHẨM ......................................................122

Thực nghiệm ..............................................................................................122
4.1.1.

Một số định nghĩa ............................................................................122
Utility Matrix ...............................................................................122
Similarity Metrics (Các chỉ số tương tự) .....................................123


4.1.1.2.1. Cosine Similarity ......................................................................124
4.1.1.2.2. Euclidian Distance ....................................................................125
Root Mean Squared Error (RMSE) .............................................126
4.1.2.

Phương pháp ....................................................................................126


Chuẩn bị dữ liệu ...........................................................................126
Content – based Recommender System ......................................127
Neighborhood – based Recommender System ............................129
Đánh giá .....................................................................................................133
4.2.1.

So sánh kết quả ................................................................................133

4.2.2.

Nhận xét...........................................................................................134

Áp dụng vào ứng dụng ReCo ....................................................................134
4.3.1.

Gợi ý theo sở thích của người dùng ................................................134

4.3.2.

Gợi ý những nhà hàng tương tự nhà hàng đang xem ......................137

4.3.3.


Gợi ý dựa trên những người dùng khác...........................................140
KẾT LUẬN, HƯỚNG PHÁT TRIỂN ............................................142

Kết quả đạt được ........................................................................................142
Ưu điểm .....................................................................................................142
Nhược điểm ...............................................................................................143
Hướng phát triển ........................................................................................143


×