1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng ứng dụng du lịch sử dụng flutter và microservices

121 10 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 121
Dung lượng 6,82 MB

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

Nội dung

Bảng chi tiết đối tượng của màn hình chọn địa điểm .... Bảng chi tiết xử lý của màn hình chọn địa điểm .... Bảng chi tiết đối tượng của màn hình tạo lịch trình .... Bảng chi tiết xử lý c

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

THÀNH PHỐ HỒ CHÍ MINH

ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN

XÂY DỰNG ỨNG DỤNG DU LỊCH SỬ DỤNG

FLUTTER VÀ MICROSERVICES

GVHD: TRƯƠNG THỊ NGỌC PHƯỢNG SVTH: TRẦN KIM HOÀNG

MSSV: 15110211 SVTH: TRẦN LÊ ANH QUỐC MSSV: 15110295

SKL 0 0 5 9 4 2

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

KHOA CÔNG NGHỆ THÔNG TIN

O VIÊN HƯỚNG DẪN THS

Trang 3

Tp Hồ Chí Minh, ngày 18 tháng 03 năm 2019

NHIỆM VỤ KHÓA LUẬN TỐT NGHIỆP

1 Tên đề tài:

XÂY DỰNG ỨNG DỤNG DU LỊCH SỬ DỤNG FLUTTER VÀ MICROSERVICES

2 Các số liệu, tài liệu ban đầu

3 Nội dung thuyết minh và tính toán

- Tìm hiểu về chung về Flutter và Microservices

- Ứng dụng các công cụ trên vào việc xây dựng ứng dụng du lịch

- Cài đặt, kiểm thử và đánh giá tính năng của ứng dụng du lịch

4 Sản phẩm

Ứng dụng du lịch Travel-Express chạy trên nền tảng Android, IOS và báo cáo về ứng

dụng

Trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM

Khoa Công Nghệ Thông Tin

Giáo viên hướng dẫn: ThS TRƯƠNG THỊ NGỌC PHƯỢNG

Trang 4

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Ngành: Công nghệ Thông tin

Tên đề tài: Xây dựng ứng dụng du lịch sử dụng Flutter và Microservices

Họ và tên Giáo viên hướng dẫn: ThS Trương Thị Ngọc Phượng

NHẬN XÉT

1 Về nội dung và khối lượng thực hiện:

2 Ưu điểm:

3 Khuyết điểm

4 Đề nghị cho bảo vệ hay không? 5 Đánh giá loại: 6 Điểm: Tp Hồ Chí Minh, ngày 15 tháng 7 năm 2019 Giáo viên hướng dẫn (Ký và ghi rõ họ tên) ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA CÔNG NGHỆ THÔNG TIN -***

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc ***

Trang 5

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Ngành: Công nghệ Thông tin

Tên đề tài: Xây dựng ứng dụng du lịch sử dụng Flutter và Microservices

Họ và tên Giáo viên hướng dẫn: ThS Trương Thị Ngọc Phượng

NHẬN XÉT

1 Về nội dung và khối lượng thực hiện:

2 Ưu điểm:

3 Khuyết điểm

4 Đề nghị cho bảo vệ hay không? 5 Đánh giá loại: 6 Điểm: Tp Hồ Chí Minh, ngày tháng năm 2019 Giáo viên phản biện (Ký và ghi rõ họ tên) ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA CÔNG NGHỆ THÔNG TIN -***

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc ***

Trang 6

LỜI CẢM ƠN

LỜI CẢM ƠN

Chúng em xin chân thành cảm ơn Quý Thầy Cô Khoa Công Nghệ Thông Tin Trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM đã tạo điều kiện thuận lợi cho chúng em thực hiện đề tài Khóa luận tốt nghiệp này

Chúng em cũng xin được gửi lời cảm ơn chân thành nhất đến Cô Trương Thị Ngọc Phượng, người đã hướng dẫn và chỉ bảo chúng em trong suốt quá trình thực hiện đề tài Cảm ơn Quý Thầy Cô trong khoa đã truyền đạt những kiến thức và kinh nghiệm quý báu cho chúng em trong suốt thời gian học tại trường

Xin chân thành cảm ơn các anh chị và bạn bè đã ủng hộ, giúp đỡ và động viên chúng em trong thời gian học tập và nghiên cứu khóa luận tốt nghiệp

Dù đã cố gắng hoàn thành tiểu luận, nhưng chắc chắn sẽ có những thiếu sót không tránh khỏi Chúng em kính mong nhận được sự cảm thông và những ý kiến đóng góp của Quý Thầy Cô và các bạn

Trang 7

ĐỀ CƯƠNG KHÓA LUẬN TỐT NGHIỆP

Trường ĐH Sư phạm Kỹ thuật TP.HCM

Khoa Công nghệ Thông tin

ĐỀ CƯƠNG KHÓA LUẬN TỐT NGHIỆP

Thời gian làm tiểu luận: Từ ngày 18/03/2019 đến ngày 30/06/2019

Chuyên ngành: Công nghệ phần mềm

Tên tiểu luận: Xây dựng ứng dụng du lịch sử dụng Flutter và Microservices

GV hướng dẫn: ThS Trương Thị Ngọc Phượng

Nhiệm vụ của tiểu luận:

1 Tìm hiểu về chung về Flutter và Microservices

2 Ứng dụng các công cụ trên vào việc xây dựng ứng dụng du lịch

3 Cài đặt, kiểm thử và đánh giá tính năng của ứng dụng du lịch

Đề cương tiểu luận: (gồm các phần sau đây)

MỤC LỤC PHẦN MỞ ĐẦU

1 Tính cấp thiết của đề tài

2 Mục tiêu của đề tài

3 Đối tượng và phạm vi nghiên cứu

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

1.2 Hệ quản trị cơ sở dữ liệu

CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG

2.1 Khảo sát hiện trạng

Trang 8

ĐỀ CƯƠNG KHÓA LUẬN TỐT NGHIỆP

2.2.1 Trip hunter

2.2.2 GrupTrip

2.2.3 Tale.city/ Google Map

2.3 Đặc tả các tính năng của ứng dụng Travel-Express

CHƯƠNG 3: LẬP DANH SÁCH YÊU CẦU

3.1 Sơ đồ UseCase

3.2 Danh sách yêu cầu chức năng của phần mềm

3.2.1 Yêu cầu chức năng của Guest

3.2.2 Yêu cầu chức năng của User

CHƯƠNG 4: PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU

4.1 Mô hình hóa yêu cầu

4.1.1 Nghiệp vụ View Trip Itineraries

4.1.2 Nghiệp vụ View Places

4.1.3 Nghiệp vụ View Profile

4.1.4 Nghiệp vụ Edit Profile

4.1.5 Nghiệp vụ Create Trip

4.1.6 Nghiệp vụ Login with Facebook

4.1.7 Nghiệp vụ Login with Google

4.1.8 Nghiệp vụ Login with Phone Number

4.1.9 Nghiệp vụ Create Destination

4.1.10 Nghiệp vụ View Destination

4.1.11 Nghiệp vụ Logout

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

4.2.1 Sơ đồ UML

4.2.2 Chi tiết các bảng dữ liệu

CHƯƠNG 5: THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ

Trang 9

ĐỀ CƯƠNG KHÓA LUẬN TỐT NGHIỆP

5.7 Màn hình khám phá

5.8 Màn hình đánh giá địa danh

5.9 Màn hình thông tin địa danh

5.10 Màn hình chọn nơi dừng chân

5.11 Màn hình chi tiết kế hoạch chuyến đi

CHƯƠNG 6: CÀI ĐẶT VÀ KIỂM THỬ

6.2.2 Test màn hình chỉnh sửa thông tin cá nhân

6.2.3 Test màn hình chọn địa điểm

6.2.4 Test màn hình tạo lịch trình

6.2.5 Test màn hình thêm lịch trình cụ thể cho từng ngày

6.2.6 Test màn hình khám phá

6.2.7 Test màn hình đánh giá địa danh

6.2.8 Test màn hình thông tin địa danh

6.2.9 Test màn hình chọn nơi dừng chân

6.2.10 Test màn hình chi tiết kế hoạch chuyến đi

TÀI LIỆU THAM KHẢO

[3] An invaluable guide to microservices, 18/10/2017:

Trang 10

https://hackernoon.com/microservices-are-hard-an-invaluable-guide-to-ĐỀ CƯƠNG KHÓA LUẬN TỐT NGHIỆP

[5] Building a Live Location Sharing App, 10/01/2018:

https://blog.geekyants.com/flutter-hands-on-building-a-live-location-sharing-app-14b67ef17404

[7] Practice Golang Using Protobuffs, 24/05/2016:

- Cài đặt công cụ cần thiết

- Xây dựng project ban đầu

Ý kiến của GVHD Ngày 18 tháng 03 năm 2019

Trang 11

MỤC LỤC

MỤC LỤC

NHIỆM VỤ KHÓA LUẬN TỐT NGHIỆP II PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN III PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN IV LỜI CẢM ƠN V

ĐỀ CƯƠNG KHÓA LUẬN TỐT NGHIỆP VI MỤC LỤC X DANH MỤC HÌNH ẢNH XIV DANH MỤC CÁC BẢNG XVII

PHẦN MỞ ĐẦU 1

1 Tính cấp thiết của đề tài 2

2 Mục tiêu của đề tài 2

3 Đối tượng và phạm vi nghiên cứu 3

3.1 Đối tượng 3

3.2 Phạm vi nghiên cứu 3

4 Phương pháp nghiên cứu 3

PHẦN NỘI DUNG 4

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 5

1.1 Ngôn ngữ lập trình 5

Các ngôn ngữ được sử dụng 5

Kiến trúc microservices 5

1.2 Hệ quản trị cơ sở dữ liệu 8

CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG 10

2.1 Khảo sát hiện trạng 10

2.2 Khảo sát một số ứng dụng 10

Trip hunter 10

GrupTrip 15

Tale.city/ Google Map 19

2.3 Đặc tả các tính năng của ứng dụng travel-express 20

CHƯƠNG 3: LẬP DANH SÁCH YÊU CẦU 22

Trang 12

MỤC LỤC

3.2 Danh sách yêu cầu chức năng của phần mềm 22

Yêu cầu chức năng của Guest 22

Yêu cầu chức năng của User 25

CHƯƠNG 4: PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU 31

4.1 Mô hình hóa yêu cầu 31

Nghiệp vụ View Trip Itineraries 31

Nghiệp vụ View Places 32

Nghiệp vụ View Profile 34

Nghiệp vụ Edit Profile 36

Nghiệp vụ Create Trip 38

Nghiệp vụ Login with Facebook 40

Nghiệp vụ Login with Google 42

Nghiệp vụ Login with Phone Number 44

Nghiệp vụ Create Destination 46

Nghiệp vụ View Destination 48

Nghiệp vụ Logout 50

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

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

Bảng mô tả các thuộc tính của cơ sở dữ liệu 54

CHƯƠNG 5: THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ 59

5.1 Màn hình Splash 59

Màn hình đối tượng 59

Màn hình xử lý 60

Danh sách xử lý 60

5.2 Màn hình đăng nhập 61

Màn hình đối tượng 61

Màn hình xử lý 62

Danh sách xử lý 62

5.3 Màn hình chỉnh sửa thông tin cá nhân 63

Màn hình đối tượng 63

Màn hình xử lý 65

Trang 13

MỤC LỤC

5.4 Màn hình chọn địa điểm 66

Màn hình đối tượng 66

Màn hình xử lý 68

Danh sách xử lý 68

5.5 Màn hình tạo lịch trình 69

Màn hình đối tượng 69

Màn hình xử lý 71

Danh sách xử lý 71

5.6 Màn hình thêm lịch trình cụ thể cho từng ngày 72

Màn hình đối tượng 72

Màn hình xử lý 73

Danh sách xử lý 74

5.7 Màn hình khám phá 75

Màn hình đối tượng 75

Màn hình xử lý 77

Danh sách xử lý 77

5.8 Màn hình đánh giá địa danh 78

Màn hình đối tượng 78

Màn hình xử lý 80

Danh sách xử lý 80

5.9 Màn hình thông tin địa danh 81

Màn hình đối tượng 81

Màn hình xử lý 82

Danh sách xử lý 82

5.10 Màn hình chọn nơi dừng chân 84

Màn hình đối tượng 84

Màn hình xử lý 85

Danh sách xử lý 85

5.11 Màn hình chi tiết kế hoạch chuyến đi 87

Màn hình đối tượng 87

Màn hình xử lý 89

Trang 14

MỤC LỤC

CHƯƠNG 6: CÀI ĐẶT VÀ KIỂM THỬ 90

6.1 Cài đặt 90

Sơ đồ 90

Hệ quản trị cơ sở dữ liệu 91

6.2 Kiểm thử 91

Test màn hình đăng nhập 91

Test màn hình chỉnh sửa thông tin cá nhân 92

Test màn hình chọn địa điểm 92

Test màn hình tạo lịch trình 93

Test màn hình thêm lịch trình cụ thể cho từng ngày 94

Test màn hình khám phá 94

Test màn hình đánh giá địa danh 95

Test màn hình thông tin địa danh 95

Test màn hình chọn nơi dừng chân 96

Test màn hình chi tiết kế hoạch chuyến đi 96

Kết quả kiểm thử 97

PHẦN TỔNG KẾT 99

1 Kết quả đạt được 100

2 Ưu điểm 100

3 Hạn chế 100

4 Hướng phát triển 100

TÀI LIỆU THAM KHẢO 101

Trang 15

DANH MỤC HÌNH ẢNH

DANH MỤC HÌNH ẢNH

Hình 1-1 Mô hình kiến trúc của Microservices 5

Hình 1-2 NATS Streaming 7

Hình 2-1 Màn hình tạo lịch trình 10

Hình 2-2 Màn hình đặt khách sạn 11

Hình 2-3 Chức năng tạo lịch trình tự động hoặc thủ công 11

Hình 2-4 Màn hình ước tính chi phí 12

Hình 2-5 Màn hình đặt lộ trình có sẵn 13

Hình 2-6 Chức năng thêm hình ảnh vào địa điểm 13

Hình 2-7 Màn hình đánh giá địa điểm 14

Hình 2-8 Chức năng đề xuất địa danh 14

Hình 2-9 Chức năng đề xuất món ăn, thức uống 15

Hình 2-10 Màn hình tạo lịch trình 16

Hình 2-11 Màn hình thêm hình ảnh vào địa điểm 17

Hình 2-12 Màn hình góp ý lịch trình thành viên khác đề xuất 18

Hình 2-13 Màn hình quản lý kinh phí 19

Hình 2-14 Màn hình gợi ý đường đi 20

Hình 3-1 Sơ đồ Use case 22

Hình 4-1 Sơ đồ luồng dữ liệu View Trip Itineraries 31

Hình 4-2 View Trip Itineraries - Lược đồ tuần tự 32

Hình 4-3 Sơ đồ luồng dữ liệu View Places 32

Hình 4-4 View Places - Lược đồ tuần tự 34

Hình 4-5 Sơ đồ luồng dữ liệu View Profile 34

Hình 4-6 View Profile - Lược đồ tuần tự 36

Hình 4-7 Sơ đồ luồng dữ liệu Edit Profile 36

Hình 4-8 Edit Profile - Lược đồ tuần tự 38

Hình 4-9 Sơ đồ luồng dữ liệu Create Trip 38

Hình 4-10 Create Trip - Lược đồ tuần tự 40

Hình 4-11 Sơ đồ luồng dữ liệu Login with Facebook 40

Hình 4-12 Login with Facebook - Lược đồ tuần tự 42

Trang 16

DANH MỤC HÌNH ẢNH

Hình 4-14 Login with Gooogle – Lược đồ tuần tự 44

Hình 4-15 Sơ đồ luồng dữ liệu Login with Phone Number 44

Hình 4-16 Login with Phone Number - Lược đồ tuần tự 46

Hình 4-17 Sơ đồ luồng dữ liệu Create Destination 46

Hình 4-18 Create Destination - Lược đồ tuần tự 48

Hình 4-19 Sơ đồ luồng dữ liệu View Destination 48

Hình 4-20 View Destination - Lược đồ tuần tự 50

Hình 4-21 Sơ đồ luồng dữ liệu Logout 50

Hình 4-22 Logout - Lược đồ tuần tự 52

Hình 4-23 Mô tả cơ sở dữ liệu bảng User 52

Hình 4-24 Mô tả cơ sở dữ liệu bảng Trip 53

Hình 4-25 Mô tả cơ sở dữ liệu bảng Day 53

Hình 4-26 Mô tả cơ sở dữ liệu bảng Region 53

Hình 4-27 Mô tả cơ sở dữ liệu bảng Place 54

Hình 5-1 Màn hình đối tượng Splash 59

Hình 5-2 Màn hình xử lý Splash 60

Hình 5-3 Màn hình đối tượng đăng nhập 61

Hình 5-4 Màn hình xử lý đăng nhập 62

Hình 5-5 Màn hình đối tượng chỉnh sửa thông tin cá nhân 63

Hình 5-6 Màn hình xử lý thông tin cá nhân 65

Hình 5-7 Màn hình đối tượng chọn địa điểm 66

Hình 5-8 Màn hình xử lý chọn địa điểm 68

Hình 5-9 Màn hình đối tượng tạo lịch trình 69

Hình 5-10 Màn hình xử lý tạo lịch trình 71

Hình 5-11 Màn hình đối tượng thêm lịch trình cụ thể cho từng ngày 72

Hình 5-12 Màn hình xử lý thêm lịch trình cụ thể cho từng ngày 74

Hình 5-13 Màn hình đối tượng khám phá 75

Hình 5-14 Màn hình xử lý khám phá 77

Hình 5-15 Màn hình đối tượng đánh giá địa danh 78

Hình 5-16 Màn hình xử lý đánh giá địa danh 80

Hình 5-17 Màn hình đối tượng thông tin địa danh 81

Trang 17

DANH MỤC HÌNH ẢNH

Hình 5-19 Màn hình đối tượng chọn nơi dừng chân 84

Hình 5-20 Màn hình xử lý chọn nơi dừng chân 85

Hình 5-21 Màn hình đối tượng chi tiết kế hoạch chuyến đi 87

Hình 5-22 Màn hình xử lý chi tiết kế hoạch chuyến đi 89

Hình 6-1 Sơ đồ thành phần - Component Diagram 90

Hình 6-2 Sơ đồ triển khai - Deployment Diagram 90

Trang 18

DANH MỤC CÁC BẢNG

DANH MỤC CÁC BẢNG

Bảng 2-1 Bảng đặc tả các tính năng của ứng dụng Travel-Express 20

Bảng 3-1 Chức năng nghiệp vụ của Guest 22

Bảng 3-2 Chi tiết quy định/ công thức liên quan của Guest 23

Bảng 3-3 Yêu cầu chức năng nghiệp vụ của User 25

Bảng 3-4 Chi tiết quy định/ công thức liên quan của User 26

Bảng 4-1 Chi tiết bảng User 54

Bảng 4-2 Chi tiết bảng Trip 55

Bảng 4-3 Chi tiết bảng Place 56

Bảng 4-4 Chi tiết bảng Day 57

Bảng 4-5 Chi tiết bảng Region 58

Bảng 5-1 Bảng chi tiết đối tượng của màn hình Splash 59

Bảng 5-2 Bảng chi tiết xử lý của màn hình Splash 60

Bảng 5-3 Bảng chi tiết đối tượng của màn hình đăng nhập 61

Bảng 5-4 Bảng chi tiết xử lý của màn hình đăng nhập 62

Bảng 5-5 Bảng chi tiết đối tượng của màn hình chỉnh sửa thông tin cá nhân 63

Bảng 5-6 Bảng chi tiết xử lý của màn hình chỉnh sửa thông tin cá nhân 65

Bảng 5-7 Bảng chi tiết đối tượng của màn hình chọn địa điểm 66

Bảng 5-8 Bảng chi tiết xử lý của màn hình chọn địa điểm 68

Bảng 5-9 Bảng chi tiết đối tượng của màn hình tạo lịch trình 69

Bảng 5-10 Bảng chi tiết xử lý của màn hình tạo lịch trình 71

Bảng 5-11 Bảng chi tiết đối tượng của màn hình thêm lịch trình cụ thể cho từng ngày 72

Bảng 5-12 Bảng chi tiết xử lý của màn hình thêm lịch trình cụ thể cho từng ngày 74

Bảng 5-13 Bảng chi tiết đối tượng của màn hình khám phá 75

Bảng 5-14 Bảng chi tiết xử lý của màn hình khám phá 77

Bảng 5-15 Bảng chi tiết đối tượng của màn hình đánh giá địa danh 78

Bảng 5-16 Bảng chi tiết xử lý của màn hình đánh giá địa danh 80

Bảng 5-17 Bảng chi tiết đối tượng của màn hình thông tin địa danh 81

Bảng 5-18 Bảng chi tiết xử lý của màn hình thông tin địa danh 82

Trang 19

DANH MỤC CÁC BẢNG

Bảng 5-20 Bảng chi tiết xử lý của màn hình chọn nơi dừng chân 85

Bảng 5-21 Bảng chi tiết đối tượng của màn hình chi tiết kế hoạch chuyến đi 87

Bảng 5-22 Bảng chi tiết xử lý của màn hình kế hoạch chuyến đi 89

Bảng 6-1 Test màn hình đăng nhập 91

Bảng 6-2 Test màn hình chỉnh sửa thông tin cá nhân 92

Bảng 6-3 Test màn hình chọn địa điểm 92

Bảng 6-4 Test màn hình tạo lịch trình 93

Bảng 6-5 Test màn hình thêm lịch trình cụ thể cho từng ngày 94

Bảng 6-6 Test màn hình khám phá 94

Bảng 6-7 Test màn hình đánh giá địa danh 95

Bảng 6-8 Test màn hình thông tin địa danh 95

Bảng 6-9 Test chức năng chọn nơi dừng chân 96

Bảng 6-10 Test màn hình chi tiết kế hoạch chuyến đi 96

Bảng 6-11 Bảng kết quả kiểm thử 97

Trang 20

PHẦN MỞ ĐẦU

PHẦN MỞ ĐẦU

Trang 21

PHẦN MỞ ĐẦU

1 Tính cấp thiết của đề tài

Nước ta có tiềm năng lớn về nhiều mặt để phát triển du lịch, có điều kiện thiên nhiên phong phú, có nhiều danh lam thắng cảnh nổi tiếng, có truyền thống văn hóa lâu đời với nhiều lễ hội, phong tục tập quán tốt đẹp và độc đáo, nhiều di tích lịch sử, tôn giáo, kiến trúc nghệ thuật đặc sắc, giàu bản sắc nhân văn Trong những năm gần đây, ngành du lịch đã có những đổi mới, từng bước phát triển cơ sở vật chất, kỹ thuật, tạo điều kiện bước đầu thu hút khách nước ngoài và kiều bào về thăm Tổ quốc, giới thiệu đất nước, con người và tinh hoa của dân tộc Việt Nam với bạn bè quốc tế; đáp ứng một phần nhu cầu tham quan, nghỉ ngơi, giải trí của nhân dân trong nước

Cũng trong những năm gần đây, đời sống của con người cũng ngày càng được cải thiện và nâng cao Việc này đồng nghĩa với nhu cầu tận hưởng cuộc sống với những chuyến du lịch ngày càng tăng Tuy nhiên, việc lựa chọn những địa điểm để tham quan,

du lịch sẽ là điều khó khăn với những người mới lần đầu hoặc chỉ một vài lần đi du lịch Đặc biệt, những bạn trẻ là những bạn thích khám phá và muốn tìm những cái mới Vì vậy, việc tìm kiếm những địa điểm du lịch và sắp xếp một tour du lịch sẽ là một điều rất cần thiết Và việc quản lý vị trí của các thành viên trong nhóm khi thất lạc nhau là một điều rất quan trọng Nhóm chúng em quyết định lựa chọn đề tài “xây dựng ứng dụng du lịch sử dụng flutter và microservices” nhằm giải quyết vấn đề đó Ứng dụng giúp cho những người muốn đi du lịch có thể lên lịch trình cho mình, quản lý vị trí của các thành viên trong nhóm để tránh thất lạc, xem những lịch trình của những người khác đã lên trước đó cũng như những lịch trình được đề xuất của những đối tác và một phần góp phần phát triển ngành du lịch của đất nước

2 Mục tiêu của đề tài

Tìm hiểu chung về Flutter và Microservices

Tìm hiểu về những thư viện cần thiết sử dụng trong đề tài

Ứng dụng Flutter và Microservices vào việc xây dựng ứng dụng du lịch

Ứng dụng du lịch có các tính năng sau đây:

- Đăng nhập ứng dụng với số điện thoại, Google hoặc Facebook

- Đặt lịch trình đến từng địa điểm cụ thể

- Đặt lịch trình với chế độ riêng tư hoặc công khai

- Chỉnh sửa lịch trình đã lên

Trang 22

PHẦN MỞ ĐẦU

- Xem những lịch trình public của những người khác

- Xem đánh giá những địa điểm du lịch

- Xem vị trí của các thành viên trong nhóm

3 Đối tượng và phạm vi nghiên cứu

3.1 Đối tượng

Flutter, Microservices, các thư viện hỗ trợ, các ứng dụng hỗ trợ đặt lịch trình và các ứng dụng đánh giá các địa điểm du lịch

3.2 Phạm vi nghiên cứu

Tổng quan về Flutter, Microservices

Các tính năng trên các ứng dụng hỗ trợ đặt lịch trình và trên các ứng dụng đánh giá các địa điểm du lịch

4 Phương pháp nghiên cứu

Để thực hiện mục tiêu và nhiệm vụ nghiên cứu, nhóm đã sử dụng các phương pháp nghiên cứu sau:

- Phương pháp nghiên cứu tài liệu: Đọc các tài liệu tham khảo, xem video hướng dẫn sử dụng các tính năng

- Phương pháp chuyên gia: Nhờ sự góp ý, giúp đỡ, tư vấn từ giáo viên hướng dẫn

và các thầy cô trong khoa Công nghệ thông tin trường Đại học Sư phạm kỹ thuật TP.HCM

Trang 23

PHẦN NỘI DUNG

PHẦN NỘI DUNG

Trang 24

Giới thiệu về Microservices

Microservices Architecture là một mô hình kiến trúc để phát triển hệ thống phần mềm Chúng được ứng dụng để thay đổi cho mô hình cấu trúc một khối Nhờ khả năng mở rộng rất dễ dàng của kiến trúc này mà nó được coi là kiến trúc lý tưởng để xây dựng lên nền tảng phát triển diện rộng trên các thiết bị di dộng, internet, web

Hình 1-1 Mô hình kiến trúc của Microservices

- Giúp giảm thiểu quá trình phức tạp hoá trong các hệ thống lớn nhờ việc chia nhỏ hệ thống thành nhiều dịch vụ nhỏ, dễ dàng quản lý và triển khai từng phần

- Mỗi service có thể được phát triển, đóng gói, triển khai và mở rộng độc lập

- Tận dụng được những ưu điểm của từng ngôn ngữ, công nghệ nhờ khả

Trang 25

CƠ SỞ LÝ THUYẾT

- Tối ưu hoá chi phí vận hành: mỗi service được triển khai có resource phù hợp, riêng biệt

- Khó khăn trong việc xử lý sự cố

- Khó khăn trong việc kiểm thử

- Khó khăn trong việc đảm bảo tính đúng đắn của dữ liệu

- Triển khai microservices phức tạp hơn cấu trúc nguyên khối

Protobuf

mở rộng, về cơ bản nó được sử dụng để Serialized object với định dạng là binary Hiện tại, protobuf có hỗ trợ cho C ++, C, Go, Java và Python…

triển tại google Nó rất hữu ích trong việc phát triển các chương trình để giao tiếp với nhau qua một wire hoặc để lưu trữ dữ liệu Tất cả những gì bạn phải làm là chỉ định một thông báo cho từng cấu trúc dữ liệu mà bạn muốn Serialize (theo định dạng giống như lớp Java) bằng cách sử dụng file đặc tả proto

 So sánh Protobuf với JSON,XML:

- Dữ liệu rất dày đặc, đầu ra nhỏ

- Khó decode mà không biết schema, định dạng dữ liệu không rõ ràng và cần schema để biết rõ

- Xử lý rất nhanh, nhỏ hơn 3 - 10 lần so với XML hoặc JSON

- không dành cho con người vì là Binary

- Tạo các code truy cập dữ liệu dễ sử dụng hơn theo chương trình

- Con người có thể có thể đọc và chỉnh sửa dễ dàng

- Có thể phân tích cú pháp mà không cần biết schema

- Các browser đều hỗ trợ rất tốt

- Ít dài dòng hơn XML

Trang 26

CƠ SỞ LÝ THUYẾT

- Có thể phân tích cú pháp mà không cần biết schema

- Tiêu chuẩn cho SOAP

- Hỗ trợ tốt các công cụ như xsd, xslt, sax, dom

Nats Streaming

và được viết bằng ngôn ngữ lập trình Go Tên thực thi cho máy chủ NATS

Streaming là nats-streaming-server NATS Streaming nhúng, mở rộng và

tương tác liền mạch với nền tảng NATS cốt lõi Máy chủ NATS Streaming được cung cấp dưới dạng phần mềm nguồn mở theo giấy phép Apache-2.0 Synadia tích cực duy trì và hỗ trợ máy chủ NATS Streaming

Hình 1-2 NATS Streaming

hướng các message một cách tự động, có vai trò như là Service Discovery và Service Log

Discovery và Service Log

Flutter

Flutter được phát triển nhằm giải quyết bài toán thường gặp trong mobile là

Fast Development và Native Performance Nếu như React Native chỉ đảm bảo Fast Development và code native thuần chỉ đảm bảo Native Performance thì Flutter làm được cả 2 điều trên

Ưu điểm:

Trang 27

CƠ SỞ LÝ THUYẾT

nhanh chóng và dễ dàng thử nghiệm, xây dựng giao diện người dùng, thêm tính năng và sửa lỗi nhanh hơn

động phong phú, scroll tự nhiên mượt mà và tự nhận thức được nền tảng

với framework hiện đại, reactive của Flutter và tập hợp các platform, layout

và widget phong phú Giải quyết các thách thức giao diện người dùng khó khăn của bạn với các API mạnh mẽ và linh hoạt cho 2D, animation, gesture…

1.2 Hệ quản trị cơ sở dữ liệu

Hệ quản trị cơ sở dữ liệu được sử dụng là MongoDB:

thiết kế theo kiểu hướng đối tượng trong đó các bảng được cấu trúc một cách linh hoạt cho phép các dữ liệu lưu trên bảng không cần phải tuân theo một dạng cấu trúc nhất định nào Chính do cấu trúc linh hoạt này nên MongoDB

có thể được dùng để lưu trữ các dữ liệu có cấu trúc phức tạp và đa dạng và không cố định (hay còn gọi là Big Data)

kích cỡ của Document này có thể khác với Document khác

- Cấu trúc của một đối tượng là rõ ràng

- Không có các Join phức tạp

Trang 28

CƠ SỞ LÝ THUYẾT

mạnh mẽ như SQL

- MongoDB dễ dàng để mở rộng

sở dữ liệu là không cần thiết

- Sử dụng bộ nhớ nội tại để lưu giữ phần công việc, giúp truy cập dữ liệu nhanh hơn

Trang 29

em tạo ra dựa vào xu thế đó và có một số tính năng mới cần thiết cho chuyến du lịch nhóm như biết được vị trí của mỗi thành viên trong nhóm để tránh lạc mất nhau, tự nhóm đưa ra một lịch trình phù hợp để triển khai,…

2.2 Khảo sát một số ứng dụng

Trip hunter

 Các tính năng:

- Tạo/ chỉnh sửa/ chia sẻ lộ trình

- Lộ trình ở hai chế độ là công khai và riêng tư

Hình 2-1 Màn hình tạo lịch trình

Trang 30

KHẢO SÁT HIỆN TRẠNG

Hình 2-2 Màn hình đặt khách sạn

- Tạo lịch trình cho từng ngày tự động hoặc thủ công

Hình 2-3 Chức năng tạo lịch trình tự động hoặc thủ công

- Hỗ trợ dự trù kinh phí cho lộ trình

Trang 31

KHẢO SÁT HIỆN TRẠNG

Hình 2-4 Màn hình ước tính chi phí

- Đặt lộ trình có sẵn của cá nhân hoặc của đơn vị tổ chức tours

Trang 32

KHẢO SÁT HIỆN TRẠNG

Hình 2-5 Màn hình đặt lộ trình có sẵn

- Thêm hình ảnh vào địa điểm bất kỳ

Hình 2-6 Chức năng thêm hình ảnh vào địa điểm

- Đánh giá địa điểm bất kỳ

Trang 33

KHẢO SÁT HIỆN TRẠNG

Hình 2-7 Màn hình đánh giá địa điểm

- Đặt khách sạn, vé máy bay, nhà hàng

- Đề xuất các địa danh nổi tiếng, phổ biến, được đánh giá cao

Hình 2-8 Chức năng đề xuất địa danh

- Đề xuất các quán ăn, món ăn, thức uống đặc sản

Trang 34

- Gợi ý, đề xuất những địa điểm, khách sạn, quán ăn, món ăn

- Tự đặt lộ trình cho cá nhân hoặc nhóm

- Chia sẻ lộ trình

- Đặt tour của các đơn vị tổ chức du lịch

- Tham khảo hoặc đặt lộ trình có sẵn

 Nhược điểm:

- Chưa cụ thể hóa lộ trình trên map

- Chưa xác định vị trí hiện trong lộ trình

- Chưa cho biết tiến độ của lộ trình

- Chưa hỗ trợ chat giữa các thành viên trong nhóm

GrupTrip

 Các tính năng:

- Tạo/ chỉnh sửa/ chia sẻ lộ trình

Trang 35

KHẢO SÁT HIỆN TRẠNG

Hình 2-10 Màn hình tạo lịch trình

- Thêm hình ảnh vào mỗi địa điểm, có thể tag cá nhân vào hình

Trang 36

KHẢO SÁT HIỆN TRẠNG

Hình 2-11 Màn hình thêm hình ảnh vào địa điểm

- Mỗi thành viên có thể nhận xét, góp ý tại mỗi địa điểm mà thành viên khác đề xuất

Trang 37

KHẢO SÁT HIỆN TRẠNG

Hình 2-12 Màn hình góp ý lịch trình thành viên khác đề xuất

- Quản lý kinh phí

Trang 38

KHẢO SÁT HIỆN TRẠNG

Hình 2-13 Màn hình quản lý kinh phí

 Ưu điểm:

- Giao diện thân thiện với người dùng

- Hỗ trợ lưu trữ hình ảnh cho từng điểm đến, lộ trình

- Có dòng thời gian trong suốt lộ trình

- Các thành viên có thể góp ý kiến khi quyết định đặt điểm đến

 Nhược điểm:

- Chưa hỗ trợ xem toàn bộ lộ trình

- Chưa hỗ trợ chat giữa các thành viên trong nhóm

- Chưa hỗ trợ xem tiến độ của lộ trình

Tale.city/ Google Map

 Các tính năng:

- Điều hướng

- Gợi ý nhiều đường đi

Trang 39

2.3 Đặc tả các tính năng của ứng dụng travel-express

Bảng 2-1 Bảng đặc tả các tính năng của ứng dụng Travel-Express

1

GUEST

Login with phone number

3

USER

Logout

Trang 40

KHẢO SÁT HIỆN TRẠNG

Ngày đăng: 27/11/2021, 10:29

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Website hướng dẫn về Flutter: https://flutter.dev/docs/reference/tutorials [2]. Thư viện Flutter: https://pub.dev/ Link
[3]. An invaluable guide to microservices, 18/10/2017: https://hackernoon.com/microservices-are-hard-an-invaluable-guide-to-microservices-2d06bd7bcf5d Link
[4]. Tech run: https://www.tech-run.net/en/contents/grpc [5]. Building a Live Location Sharing App, 10/01/2018:https://blog.geekyants.com/flutter-hands-on-building-a-live-location-sharing-app-14b67ef17404 Link
[8]. Building Distributed Systems and Microservices in Go with NATS Streaming, 14/10/2017: https://medium.com/@shijuvar/building-distributed-systems-and-microservices-in-go-with-nats-streaming-d8b4baa633a2 Link
[9]. Tổng quan về MongoDB, 27/12/2016: https://viblo.asia/p/tong-quan-ve-mongodb-EoDkQoxqGbV Link

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