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

Báo cáo lập trình trên thiết bị di Động Đề tài mobile app travel vietnam

40 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 40
Dung lượng 3,5 MB

Nội dung

Mobile Travel là ứng dụng du lịch di động thế hệ mới, tích hợp đầy đủ các tính năng cần thiết để đáp ứng mọi nhu cầu của du khách, bao gồm: Tìm kiếm và đặt phòng khách sạn, tour du lịch

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP.HCM

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG

ĐỀ TÀI MOBILE APP TRAVEL VIETNAM

Ngành: CÔNG NGHỆ THÔNG TIN

Giảng viên hướng dẫn: Ths Bùi Mạnh Toàn

Sinh viên thực hiện :

Đoàn Võ Hoàng Phúc 21DTHJA2 2180601149

TP Hồ Chí Minh, 2024

Trang 2

LỜI MỞ ĐẦU

Thế giới ngày nay đang trải qua giai đoạn biến đổi mạnh mẽ, nơi mà ranh giới giữa các quốcgia ngày càng thu hẹp, và việc di chuyển, khám phá trở nên dễ dàng hơn bao giờ hết Nhờnhững tiến bộ vượt bậc trong công nghệ, đặc biệt là sự bùng nổ của internet và điện thoạithông minh, nhu cầu du lịch của con người cũng ngày càng tăng cao, đặc biệt là giới trẻ

Nắm bắt được xu hướng tất yếu này, em xin hân hạnh giới thiệu đến quý thầy cô dự ánTravel - ứng dụng di động cung cấp giải pháp du lịch và khách sạn toàn diện cho ngườidùng Dự án được ấp ủ và phát triển bởi em và sự hướng dẫn của GV BÙI MẠNH TOÀN,giàu kinh nghiệm và tâm huyết, với mục tiêu mang đến cho người dùng những trải nghiệm

du lịch tuyệt vời nhất, biến mỗi chuyến đi trở thành những kỷ niệm khó phai

Mobile Travel là ứng dụng du lịch di động thế hệ mới, tích hợp đầy đủ các tính năng cần

thiết để đáp ứng mọi nhu cầu của du khách, bao gồm:

Tìm kiếm và đặt phòng khách sạn, tour du lịch một cách nhanh chóng và tiện lợi với mứcgiá cạnh tranh

Khám phá các điểm tham quan, nhà hàng, quán ăn uy tín và chất lượng

Mobile Travel được thiết kế với giao diện thân thiện, dễ sử dụng, phù hợp với mọi đối

tượng người dùng, từ những du khách trẻ tuổi năng động đến những gia đình có trẻ nhỏ.Ứng dụng còn hỗ trợ đa ngôn ngữ, giúp người dùng từ các quốc gia khác nhau có thể dễdàng sử dụng

Điểm nổi bật của Mobile Travel:

Tính năng tìm kiếm thông minh: Giúp người dùng dễ dàng tìm kiếm thông tin về các điểmđến, khách sạn, nhà hàng, phù hợp với nhu cầu và sở thích của mình

Bộ lọc thông minh: Cho phép người dùng lọc kết quả tìm kiếm theo nhiều tiêu chí như giá

Xin trân trọng cảm ơn!

Trang 3

Mục Lục

CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 6

1.1 Lý do thực hiện đề tài 6

1.1.1 Lý do chọn đề tài 6

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

1.1.3 lợi ích mang đến cho xã hội 6

1.2 Mục tiêu 7

1.3 Nội dung thực hiện 7

1.4 Phương pháp thực hiện 7

1.5 Mục tiêu đề ra 7

CHƯƠNG 2 KIẾN THỨC CƠ SỞ 9

2.1 Khái niệm cơ chế hoạt động 9

2.1.1 Tổng quan về ngôn ngữ và công nghệ sử dụng (Dart – flutter - firebase) 9

2.1.1.1 Dịch vụ Authentication 11 2.1.1.2 Dịch vụ Firestore Database 12 2.1.1.3 Firebase Cloud Storage 12 2.1.1.4 Cách kết nối firebase với dự án 12 2.2 Nhóm chức năng chính 15

2.3 Mô hình sử dụng của hệ thống 16

2.3.1 Mô hình MVVM 16

2.3.2 Ưu điểm của MVVM 16

2.3.3 Mô hình MVVM + Repository 17

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

Trang 4

2.5 Sơ đồ use case 19

2.5.1 Usecase Tổng Quát 19

2.5.2 Usecase đăng nhập 20

2.5.3 Usecase người dùng 21

2.6 Mô hình lớp Sequence diagram 22

2.7 Bảng dữ liệu 23

2.7.1 Mô hình các bảng dữ liệu theo dạng NoSQL 23

2.8 Chi tiết các Collection 23

2.8.1 Collection users 23

2.8.2 Collection hotels 24

2.8.3 Collection location 24

2.8.4 Collection favorite 25

2.8.5 Collection room 25

2.8.6 Collection CartItem 25

2.8.7 Collection Order 26

CHƯƠNG 3 KẾT QUẢ THỰC NGHIỆM 27

3.1 Giao diện icon trên thiết bị di động 27

3.2 Giao diện màn hình đăng nhập 28

3.3 Giao diện màn hình đăng ký 29

3.4 Giao diện màn hình trang chủ 30

3.5 Giao diện màn hình tìm kiếm 31

3.6 Giao diện màn hình chi tiết điểm tham quan / du lịch 32

3.7 Giao diện màn hình chi tiết khách sạn 33

3.8 Giao diện màn hình chờ thanh toán 34

3.9 Giao diện màn hình hoàn thành thanh toán 34

3.10 Giao diện google map 35

3.11 Giao diện màn hình hiển thị sản phẩm yêu thích 36

3.12 Giao diện trang cá nhân 37

3.13 Giao diện cài đặt 38

3.14 Giao diện hiển thị lịch sử và hiện thanh đặt phòng/vé 40

CHƯƠNG 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 41

4.1 Ưu Điểm 41

Trang 5

4.2 Nhược Điểm 41 4.3 Hướng phát triển của đồ án 41 TÀI LIỆU THAM KHẢO 42

CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI

1.1 Lý do thực hiện đề tài

Trang 6

1.1.1 Lý do chọn đề tài

Du lịch di động đang nổi lên như một xu hướng tất yếu trong thời đại công nghệ số, mở ratiềm năng to lớn cho các dự án khởi nghiệp Lựa chọn đề tài này mang đến nhiều lợi ích,Nhu cầu du lịch ngày càng tăng, đặc biệt là du lịch di động với sự tiện lợi và dễ dàng tìmkiếm thông tin, đặt dịch vụ Thị trường du lịch di động còn nhiều tiềm năng khai thác vớilượng người dùng smartphone ngày càng gia tăng

So với các lĩnh vực khác như thương mại điện tử hay gọi xe, thị trường du lịch di động còntương đối mới mẻ và ít cạnh tranh hơn Do đó, đây là cơ hội tốt để bạn tạo dựng vị thế vàkhẳng định thương hiệu của mình

Ngành du lịch là một ngành kinh doanh có lợi nhuận cao Với ứng dụng du lịch di động, bạn

có thể kiếm tiền từ nhiều nguồn như hoa hồng đặt phòng khách sạn, vé máy bay, tour dulịch, quảng cáo, Ngoài ra, bạn cũng có thể cung cấp các dịch vụ du lịch khác như đặt xeđưa đón, hướng dẫn viên, vé tham quan, để tăng thêm doanh thu

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

Với sự phát triển mạnh mẽ của công nghệ,đi đôi với việc bùng nổ của mạng xã hội thì việcphát triển một ứng dụng di động để người dùng có thể lựa chọn các chuyến đi để có đượcmột kỳ nghĩ dưỡng,du lịch một cách trọn vẹn nhất,mang đến cho người dùng một trảinghiệm tận tình và chu đáo góp phần thúc đẩy ngành du lịch phát triển và tạo ra nhiều việclàm mới Mang đến cho người dùng những trải nghiệm du lịch tuyệt vời và đáng nhớ

1.1.3 lợi ích mang đến cho xã hội

với sự bùng nổ và phát triển của công nghệ thì ứng dụng sẽ phát triển đi đôi với nó sẽ tạo

ra nhiều công việc làm dành cho mọi tầng lớp,giúp ích cho khách du lịch trong nước và ngoài nước có thể tiếp cận các địa điểm du lịch từ nhiều tỉnh thành khác nhau

Trang 7

1.2 Mục tiêu

 Tiếp cận làm việc với đồ án theo đúng quy tắc,chuẩn mực

 Tìm hiểu được công nghệ mới mẽ ,tăng khả năng tự học,tiếp thu thêm các kiến thức mới

 Xây dựng các chức năng và triển khai theo một mô hình nhất định

 ứng dụng dễ dàng kiểm tra,bảo trì,cải tiến

Phân tích yêu cầu,thiết kế (CSDL,giao diện phần mềm…),kiểm thử phần mềm,phát hành phần mềm và bảo trì,quản lý dự án phần mềm và tổng kết

Phần III: Tiến hành kiểm thử phần mềm qua nhiều hình thức

Phần IV: Phát hành phần mềm lên môi trường máy ảo và tiến hành bảo trì.

Phần V: Quản lý phiên bản phần mềm qua Git và tổng kết dự án.

Ứng dụng sau khi được hoàn thành sẽ giúp người dùng dễ dàng tiếp cận các địa điểm du lịch nổi tiếng cũng như có được các nơi nghĩ dưỡng sang trọng đáp ứng nhu cầu của người dùng hiện nay.

Trang 8

CHƯƠNG 2 KIẾN THỨC CƠ SỞ

2.1 Khái niệm cơ chế hoạt động

2.1.1 Tổng quan về ngôn ngữ và công nghệ sử dụng (Dart – flutter - firebase)

Dart là ngôn ngữ lập trình được tối ưu hóa cho các ứng dụng đa nền tảng Nó được phát triển bởi Google và được sử dụng để tạo các ứng dụng di động, máy tính

để bàn, máy chủ và web Dart là ngôn ngữ thu thập rác hướng đối tượng với cú pháp giống C++.

Biên dịch sang JavaScript

Để hoạt động trong các trình duyệt web phổ biến , Dart dựa vào trình biên dịch nguồn trong JavaScript  Theo trang web của dự án, Dart "được thiết kế để trở thành một công cụ phát triển dễ viết, rất phù hợp với việc phát triển ứng dụng hiện đại và có khả năng triển khai hiệu suất cao" Khi mã Dart được chạy trong trình duyệt web, mã sẽ được biên dịch trước thành JavaScript bằng trình biên dịch Dart2js Được biên dịch bằng JavaScript, mã Dart tương thích với các trình duyệt chính mà không cần chúng hỗ trợ trực tiếp cho Dart Bằng cách tối ưu hóa JavaScript được biên dịch để tránh các thao tác

nguồn-và kiểm tra tốn kém, trong một số trường hợp, mã được viết bằng Dart có thể chạy nhanh hơn mã JavaScript viết tay tương đương 

Tự trị

SDK Dart đi kèm với một máy ảo Dart (VM) độc lập, cho phép mã Dart chạy trong môi trường giao diện dòng lệnh  Vì các công cụ ngôn ngữ có trong Dart SDK chủ yếu được viết bằng Dart nên Dart VM là một phần thiết yếu của SDK Những công cụ này bao gồm trình biên dịch Dart2js và trình quản lý gói có tên Pub Dart đi kèm với một thư viện tiêu chuẩn toàn diện cho phép người dùng viết các ứng dụng hệ thống có đầy đủ chức năng, chẳng hạn như máy chủ web tùy chỉnh 

Biên soạn sớm

Trang 9

Mã phi tiêu có thể được biên dịch thành AOT thành mã máy ( bộ hướng dẫn gốc ).Các ứng dụng được xây dựng bằng Flutter , SDK ứng dụng di động được xây dựng bằng Dart, được triển khai tới các cửa hàng ứng dụng dưới dạng mã Dart được biên dịch trong AOT.

Trang 10

Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây – cloud Kèm

theo đó là hệ thống máy chủ cực kỳ mạnh mẽ của Google Chức năng chính là giúpngười dùng lập trình ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu

Cụ thể là những giao diện lập trình ứng dụng API đơn giản Mục đích nhằm tăng

số lượng người dùng và thu lại nhiều lợi nhuận hơn

Đặc biệt, còn là dịch vụ đa năng và bảo mật cực tốt Firebase hỗ trợ cả hai nềntảng Android và IOS Không có gì khó hiểu khi nhiều lập trình viên chọn Firebase làmnền tảng đầu tiên để xây dựng ứng dụng cho hàng triệu người dùng trên toàn thế giới

2.1.1.1 Dịch vụ Authentication

Dịch vụ Authentication cung cấp cho ứng dụng của bạn một số phương pháp xácthực thông qua email, mật khẩu, số điện thoải, tài khoản Google, tài khoản Facebook…Với tính năng này, người dùng sẽ dễ dàng xây dựng login mà không cần sử dụng dữliệu đăng ký riêng

2.1.1.2 Dịch vụ Firestore Database

Firestore là cơ sở dữ liệu NoSQL được phát triển bởi Google Firebase, cung cấp giải

pháp lưu trữ và quản lý dữ liệu linh hoạt, mở rộng cho các ứng dụng web và di động

Trang 11

Nó được thiết kế để đáp ứng nhu cầu ngày càng tăng của các ứng dụng hiện đại, đòihỏi khả năng truy cập dữ liệu nhanh chóng, hiệu quả và đồng bộ hóa thời gian thựctrên nhiều thiết bị.

2.1.1.3 Firebase Cloud Storage

Lưu trữ đám mây của Firebase cung cấp bộ nhớ đám mây an toàn, có thể mở rộng,dùng để lưu trữ và phân phát nội dung do người dùng tạo, chẳng hạn như hình ảnh,video và các tệp khác

Nó cung cấp các API đơn giản để tải lên, tải xuống và quản lý tệp, cùng với quyềnkiểm soát truy cập cụ thể

Ở đây em đã sử dụng dịch vụ Clound Storage để lưu trữ hình ảnh

2.1.1.4 Cách kết nối firebase với dự án

Bước 1: Cài đặt các công cụ dòng lệnh bắt buộc

1 Cài đặt Firebase CLI nếu bạn chưa cài đặt

2 Đăng nhập vào Firebase bằng Tài khoản Google của bạn bằng cách chạy lệnh sau:

3 Cài đặt FlutterFire CLI bằng cách chạy lệnh sau từ bất kỳ thư mục nào:

Bước 2: Định cấu hình ứng dụng để sử dụng Firebase

Sử dụng FlutterFire CLI để định cấu hình cho các ứng dụng Flutter của bạn nhằm kết nối với Firebase

Trong thư mục dự án Flutter, hãy chạy lệnh sau để bắt đầu quy trình định cấu hình ứng dụng:

Trang 12

Bước 3: Khởi chạy Firebase trong ứng dụng của bạn

1 Trong thư mục dự án Flutter, hãy chạy lệnh sau để cài đặt trình bổ trợ cốt lõi:

Trong thư mục dự án Flutter, hãy chạy lệnh sau để đảm bảo rằng cấu hình Firebase của ứng dụng Flutter

Trang 13

Dịch vụ sẵn có

2.2 Nhóm chức năng chính

 Đăng ký tài khoản (Google,gmail-password)

 Khôi phục tài khoảng qua gmail

 Đăng nhập ứng dụng

 Lọc sản phẩm(theo tỉnh thành,địa danh)

 Xem các khách sạn được gợi ý xung quanh điểm du lịch lịch

 Tìm kiếm địa danh,khách sạn theo tên

 Xem các địa danh thông qua hình ảnh và mô tả

 Đặt khách sạn,vé tham quan

 Thêm khách sạn hoặc địa danh vào phần yêu thích

 Xem được google map ngay trên ứng dụng

 Xem trạng thái đặt phòng,lịch sử đặt

 Thay đổi giao diện sáng tối,ngôn ngữ VN-EN

 Thanh toán online

Trang 14

2.3 Mô hình sử dụng của hệ thống

2.3.1 Mô hình MVVM

● Mô hình MVVM (Model-View-ViewModel) là một mô hình thiết kế phần mềm được

sử dụng trong lập trình ứng dụng di động, bao gồm cả Flutter

● Mô hình này giúp tách biệt logic xử lý dữ liệu (Model) và giao diện người dùng

(View),đồng thời sử dụng một lớp trung gian gọi là ViewModel để kết nối giữa Model và View

● Trong mô hình MVVM, Model đại diện cho dữ liệu và logic xử lý dữ liệu Nó có thể làmột lớp đơn giản hoặc một tập hợp các lớp phức tạp, tùy thuộc vào yêu cầu của ứngdụng Model không biết gì về View hoặc ViewModel, và nó không trực tiếp tương tácvới người dùng

● View là giao diện người dùng, nơi người dùng tương tác với ứng dụng Trong Flutter,View có thể là một widget hoặc một tập hợp các widget View chỉ biết về ViewModel vàkhông biết gì về Model Nó chỉ hiển thị dữ liệu từ ViewModel và gửi các sự kiện tớiViewModel khi người dùng tương tác

● ViewModel là lớp trung gian giữa Model và View Nó chịu trách nhiệm lấy dữ liệu từModel và cung cấp cho View hiển thị ViewModel cũng xử lý các sự kiện từ View và cậpnhật Model nếu cần ViewModel không biết gì về View cụ thể

2.3.2 Ưu điểm của MVVM

Trang 15

1 Tách biệt giữa logic và giao diệnn gười dùng

MVVM giúp tách biệt rõ ràng giữa logic ứng dụng và giao diện người dùng

ViewModel chịu trách nhiệm xử lý logic và cung cấp dữ liệu cho View, trong khi View chỉ đơn giản là hiển thị dữ liệu và gửi các sự kiện tới ViewModel

4 Dễ dàng bảo trì

Với MVVM, việc bảo trì ứng dụng trở nên dễ dàng hơn Việc tách biệt rõ ràng giữa logic và giao diện người dùng giúp giảm thiểu rủi ro gây ảnh hưởng đến các phần khác nhau của ứng dụng khi thay đổi

2.3.3 Mô hình MVVM + Repository

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

Trang 16

STT Nội dung Tiêu chuẩn Mô tả chi tiết Ghi chú

các chức năng trong hệ thống cho người đăng nhập theo chức vụ

Dành cho khách hàng

tra cứu nhanh chóng tức thì,dễ dàng tìm kiếm,tra cứu

Dành cho khách hàng

cần thì hệ thống phải xuất dữ liệu ra thật nhanh

Tự động lưu vào CSDL

4 Giao diện trực quan

dễ sử dụng

Tiện dụng Hệ thống với

giao diện dễ

sử dụng,không quá chi tiết cũng như quá tổng quát,gần gũi với người dùng

Dành cho khách hàng

5 Quản lý đặt phòng vé Hiệu quả Cho phép tra

cứu các lần đặt trước

đó ,điều chỉnh dịch vụ tức thời trong hệ thống

Cho phép hủy vé,cập nhập lại vé

Trang 17

Yêu cầu hệ thống

- Hệ thống sử dụng hệ quản trị cơ sở dữ liệu lớn để đáp ứng lượng khách hàng mới

- Bảo mật tốt cho người quản trị hệ thống

- Thông tin có tính đồng bộ

- Có khả năng tính toán nhanh,chính xác,lữu trữ dài và bảo mật

2.5 Sơ đồ use case

2.5.1 Usecase Tổng Quát

- Tên usecase: usecase tổng quát.

- Actor: người dùng,người dùng đã đăng nhập.

- Chức năng: Đăng nhập, Đăng ký,đặt phòng,vé,quản lý vé,thanh toán

Mô tả:

- người dùng và người dùng đã đăng nhập có thể dùng các chức năng theo sơ

đồ

2.5.2 Usecase đăng nhập

Trang 18

- Tên usecase: usecase đăng nhập

- Nếu người dùng chưa có tài khoản có thể đăng ký

2.5.3 Usecase người dùng

Trang 19

- Tên usecase: use case khách hàng

2.6 Mô hình lớp Sequence diagram

2.6.1 Mô hình Sequence diagram Thanh toán

Trang 20

2.7 Bảng dữ liệu

2.7.1 Mô hình các bảng dữ liệu theo dạng NoSQL

Trang 21

2.8 Chi tiết các Collection

Trang 25

CHƯƠNG 3 KẾT QUẢ THỰC NGHIỆM

3.1 Giao diện icon trên thiết bị di động

Mô tả:

- ảnh icon và tên của ứng dụng hiển thị trên màn hình mobile

Trang 26

3.2 Giao diện màn hình đăng nhập

Mô tả:

- Hiển thị các yêu cầu ràng buộc và các lựa chọn

Trang 27

3.3 Giao diện màn hình đăng ký

Mô tả:

- Giao diện hiển thị các trường để người dùng nhập thông tin để đăng ký tài khoản

- Người dùng nhập tên , email và mật khẩu sau đó chọn đồng ý và nhấp vào button Sign up ( đăng ký)

Ngày đăng: 20/12/2024, 22:19

w