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

Tiêu đề Đề Tài Mobile App Travel Vietnam
Tác giả Nguyễn Tuấn Anh, Cao Đức Thiện, Nguyễn Hoàng Quân, Đoàn Võ Hoàng Phúc
Người hướng dẫn Ths. Bùi Mạnh Toàn
Trường học Trường Đại Học Công Nghệ Tp.Hcm
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo
Năm xuất bản 2024
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 40
Dung lượng 3,5 MB

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN ĐỀ TÀI (5)
    • 1.1 Lý do thực hiện đề tài (5)
      • 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Ở (8)
    • 2.1 Khái niệm cơ chế hoạt động (8)
      • 2.1.1 Tổng quan về ngôn ngữ và công nghệ sử dụng (Dart – flutter - firebase) (8)
    • 2.2 Nhóm chức năng chính (13)
    • 2.3 Mô hình sử dụng của hệ thống (14)
      • 2.3.1 Mô hình MVVM (14)
      • 2.3.2 Ưu điểm của MVVM (14)
      • 2.3.3 Mô hình MVVM + Repository (15)
    • 2.4 Các yêu cầu phi chức năng (15)
    • 2.5 Sơ đồ use case (17)
      • 2.5.1 Usecase Tổng Quát (17)
      • 2.5.2 Usecase đăng nhập (17)
      • 2.5.3 Usecase người dùng (18)
    • 2.6 Mô hình lớp Sequence diagram (19)
    • 2.7 Bảng dữ liệu (20)
      • 2.7.1 Mô hình các bảng dữ liệu theo dạng NoSQL (20)
    • 2.8 Chi tiết các Collection (21)
      • 2.8.1 Collection users (21)
      • 2.8.2 Collection hotels (22)
      • 2.8.3 Collection location (22)
      • 2.8.4 Collection favorite (23)
      • 2.8.5 Collection room (23)
      • 2.8.6 Collection CartItem (23)
      • 2.8.7 Collection Order (24)
  • CHƯƠNG 3. KẾT QUẢ THỰC NGHIỆM (25)
    • 3.1 Giao diện icon trên thiết bị di động (25)
    • 3.2 Giao diện màn hình đăng nhập (26)
    • 3.3 Giao diện màn hình đăng ký (27)
    • 3.4 Giao diện màn hình trang chủ (28)
    • 3.5 Giao diện màn hình tìm kiếm (29)
    • 3.6 Giao diện màn hình chi tiết điểm tham quan / du lịch (30)
    • 3.7 Giao diện màn hình chi tiết khách sạn (31)
    • 3.8 Giao diện màn hình chờ thanh toán (32)
    • 3.9 Giao diện màn hình hoàn thành thanh toán (33)
    • 3.10 Giao diện google map (34)
    • 3.11 Giao diện màn hình hiển thị sản phẩm yêu thích (35)
    • 3.12 Giao diện trang cá nhân (36)
    • 3.13 Giao diện cài đặt (37)
    • 3.14 Giao diện hiển thị lịch sử và hiện thanh đặt phòng/vé (38)
  • CHƯƠNG 4. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (39)
    • 4.1 Ưu Điểm (39)

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

TỔNG QUAN ĐỀ TÀI

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

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

Du lịch di động đang trở thành xu hướng không thể thiếu trong thời đại số, mở ra cơ hội lớn cho các dự án khởi nghiệp Nhu cầu du lịch ngày càng gia tăng, đặc biệt là du lịch di động nhờ vào sự tiện lợi và khả năng tìm kiếm thông tin, đặt dịch vụ dễ dàng Thị trường này còn nhiều tiềm năng khai thác, nhất là khi số lượng người dùng smartphone tiếp tục tăng lên.

Thị trường du lịch di động hiện nay đang ở giai đoạn phát triển và ít cạnh tranh hơn so với các lĩnh vực như thương mại điện tử hay gọi xe Điều này tạo ra cơ hội tuyệt vời để bạn xây dựng vị thế và khẳng định thương hiệu của mình trong ngành này.

Ngành du lịch mang lại lợi nhuận cao, đặc biệt khi ứng dụng du lịch di động được sử dụng Bạn có thể kiếm tiền từ nhiều nguồn như hoa hồng từ đặt phòng khách sạn, vé máy bay, và tour du lịch, cũng như từ quảng cáo Bên cạnh đó, việc cung cấp các dịch vụ du lịch bổ sung như đặt xe đưa đón, hướng dẫn viên, và vé tham quan sẽ giúp tăng thêm doanh thu cho doanh nghiệp của bạn.

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ệ và mạng xã hội, việc ra mắt ứng dụng di động giúp người dùng lựa chọn chuyến đi lý tưởng cho kỳ nghỉ dưỡng trở nên cần thiết Ứng dụng này không chỉ mang đến trải nghiệm du lịch trọn vẹn và tận tình, mà còn góp phần thúc đẩy ngành du lịch phát triển và tạo ra nhiều cơ hội việc làm mới Nhờ đó, người dùng sẽ có 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.

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.

Nội dung thực hiện

Phân tích yêu cầu và thiết kế cơ sở dữ liệu cùng giao diện phần mềm là bước quan trọng trong quy trình phát triển phần mềm Kiểm thử phần mềm đảm bảo chất lượng sản phẩm trước khi phát hành Sau khi phát hành, việc bảo trì và quản lý dự án phần mềm giúp duy trì hiệu suất và đáp ứng nhu cầu người dùng Cuối cùng, tổng kết quá trình phát triển phần mềm giúp rút ra bài học kinh nghiệm cho các dự án sau.

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

Phần I: Lên kế hoạch ,tìm hiểu và phân tích yêu cầu đề tài,lựa chọn công nghệ sử dụng,IDE phù hợp để phát triển ứng dụng.

Phần II: Nghiên cứu và thiết kế mô hình cơ sở dử liệu,thiết kế giao diện,lựa chọn kiến trúc mô hình cho ứng dụng.

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.

Mục tiêu đề ra

Ứng dụng hoàn thiện sẽ giúp người dùng dễ dàng khám phá các địa điểm du lịch nổi tiếng và tìm kiếm những nơi nghỉ dưỡng sang trọng, đáp ứng nhu cầu ngày càng cao của người dùng hiện nay.

KIẾN THỨC CƠ SỞ

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 tối ưu cho ứng dụng đa nền tảng, được phát triển bởi Google Ngôn ngữ này hỗ trợ việc xây dựng ứng dụng di động, máy tính để bàn, máy chủ và web Dart có tính năng thu thập rác và mang cú pháp tương tự như C++.

Dart sử dụng trình biên dịch nguồn-sang-nguồn để chuyển đổi mã thành JavaScript, cho phép hoạt động trên các trình duyệt web phổ biến Theo dự án, Dart được thiết kế để phát triển ứng dụng hiện đại và hiệu suất cao Khi chạy trong trình duyệt, mã Dart được biên dịch trước thành JavaScript thông qua Dart2js, giúp tương thích với các trình duyệt mà không cần hỗ trợ trực tiếp cho Dart Bằng cách tối ưu hóa JavaScript biên dịch, mã Dart có thể chạy nhanh hơn so với mã JavaScript viết tay trong một số trường hợp.

SDK Dart bao gồm một máy ảo Dart (VM) độc lập, cho phép chạy mã Dart trong môi trường dòng lệnh Dart VM là phần thiết yếu của SDK vì các công cụ ngôn ngữ chủ yếu được viết bằng Dart 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 Pub Ngoài ra, Dart còn cung cấp một thư viện tiêu chuẩn toàn diện, hỗ trợ người dùng phát triển các ứng dụng hệ thống đầy đủ chức năng, như máy chủ web tùy chỉnh.

Mã phi tiêu có thể được biên dịch AOT thành mã máy gốc Các ứng dụng Flutter, được phát triển bằng Dart, được triển khai trên các cửa hàng ứng dụng dưới dạng mã Dart đã được biên dịch AOT.

Dart 2.6 với trình biên dịch Dart2native để biên dịch thành mã thực thi gốc, độc lập Trước Dart 2.6, tính năng này chỉ khả dụng trên thiết bị di động iOS và Android thông qua Flutter

Flutter là bộ công cụ phát triển phần mềm giao diện người dùng (SDK) nguồn mở do

Google đã phát triển một nền tảng cho phép xây dựng ứng dụng trên nhiều hệ điều hành như Android, iOS, Linux, Mac, Windows, Google Fuchsia và web từ một mã nguồn duy nhất.

Firebase là dịch vụ cơ sở dữ liệu đám mây mạnh mẽ của Google, giúp đơn giản hóa việc lập trình ứng dụng thông qua các thao tác với cơ sở dữ liệu.

Firebase cung cấp giao diện lập trình ứng dụng API đơn giản, giúp tăng số lượng người dùng và tối ưu hóa lợi nhuận Dịch vụ này không chỉ đa năng mà còn bảo mật cao, hỗ trợ cả hai nền tảng Android và iOS Chính vì vậy, nhiều lập trình viên lựa chọn Firebase làm nền tảng hàng đầu để phát triển ứng dụng phục vụ hàng triệu người dùng toàn cầu.

Dịch vụ Authentication cung cấp nhiều phương pháp xác thực cho ứng dụng của bạn, bao gồm email, mật khẩu, số điện thoại, tài khoản Google và Facebook Tính năng này giúp người dùng dễ dàng xây dựng hệ thống đăng nhập mà không cần phải sử dụng dữ liệu đăng ký riêng biệt.

Firestore là một cơ sở dữ liệu NoSQL do Google Firebase phát triển, mang đến giải pháp lưu trữ và quản lý dữ liệu linh hoạt, dễ mở rộng cho các ứng dụng web và di động.

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

Lưu trữ đám mây của Firebase cung cấp giải pháp lưu trữ an toàn và mở rộng, lý tưởng cho việc lưu trữ và phân phối nội dung do người dùng tạo, bao gồm hình ảnh, video và các tệp khác.

Dịch vụ Cloud Storage cung cấp các API đơn giản cho phép người dùng dễ dàng tải lên, tải xuống và quản lý tệp, đồng thời đảm bảo quyền kiểm soát truy cập cụ thể Tôi đã sử dụng dịch vụ này để lưu trữ hình ảnh một cách hiệu quả.

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:

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 đã được cập nhật:

2 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 đã được cập nhật:

3 Trong tệp lib/main.dart, hãy nhập trình bổ trợ cốt lõi Firebase và tệp cấu hình bạn đã tạo trước đó:

4 Ngoài ra, trong tệp lib/main.dart, hãy khởi chạy Firebase bằng cách sử dụng đối tượng DefaultFirebaseOptions do tệp cấu hình xuất:

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.

 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

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

● 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 đóng vai trò quan trọng trong việc đại diện cho dữ liệu và logic xử lý dữ liệu của ứng dụng Model có thể được cấu trúc dưới dạng 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ụ thể của ứng dụng Đáng lưu ý, Model không tương tác trực tiếp với View hoặc ViewModel, và cũng không có kiến thức về chúng, giúp tách biệt rõ ràng giữa các thành phần trong kiến trúc ứng dụng.

View trong Flutter là giao diện người dùng cho phép người dùng tương tác với ứng dụng Nó có thể là một widget đơn lẻ hoặc một tập hợp các widget View chỉ nhận biết ViewModel và không có thông tin về Model, nhiệm vụ của nó là hiển thị dữ liệu từ ViewModel và truyền đạt các sự kiện đến ViewModel khi có sự tương tác từ người dùng.

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

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 đảm nhiệm vai trò xử lý logic và cung cấp dữ liệu cho View, trong khi View chỉ tập trung vào việc hiển thị dữ liệu và gửi các sự kiện đến ViewModel.

Với kiến trúc MVVM, việc kiểm thử trở nên đơn giản hơn nhờ khả năng kiểm thử ViewModel mà không cần tạo ra các đối tượng giao diện người dùng Điều này không chỉ giảm thiểu sự phụ thuộc vào giao diện mà còn nâng cao tính khả thi của quy trình kiểm thử.

3 Tái sử dụng mã nguồn

MVVM thúc đẩy việc tái sử dụng mã, cho phép ViewModel được sử dụng trong nhiều giao diện người dùng khác nhau Điều này không chỉ giúp giảm thiểu mã lặp lại mà còn nâng cao hiệu quả trong quá trình phát triển ứng dụng.

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

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

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

1 Đăng nhập Chính xác Phân quyền các chức năng trong hệ thống cho người đăng nhập theo chức vụ

2 Tra cứu Nhanh chóng Cho ra kết quả tra cứu nhanh chóng tức thì,dễ dàng tìm kiếm,tra cứu

3 Thanh toán Hiệu quả Khi thanh toán 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

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é

6 Hệ thống tự động hóa các công việc như tính tiền

Hiệu quả Hệ thống phải tự động hóa được các công việc tính tiền,

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

Sơ đồ use case

- 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

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

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

- Chức năng: đăng ký,đăng nhập

Khi người dùng đăng nhập, họ cần nhập địa chỉ Gmail và mật khẩu, hoặc có thể sử dụng tài khoản Google để đăng nhập Sau khi đăng nhập thành công, người dùng sẽ được chuyển đến màn hình giao diện chính.

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

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

- Chức năng:xem điểm du lịch,xem khách sạn,xem phòng,đặt phòng,thanh toán

- Người dùng sau khi xem qua các điểm tham quan du lịch hoặc các phòng khách sạn có thể đặt phòng và thanh toán.

Mô hình lớp Sequence diagram

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

Bảng dữ liệu

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

Chi tiết các Collection

Tên trường Kiểu dữ liệu

Tên trường Kiểu dữ liệu

Image Array isAvailable Boolean

Price number oldPrice Number provinceName String

Tên trường Kiểu dữ liệu

Image Array imageActivity Array isAvailable boolean locationId String

Price Number oldPrice Number provinceName String

Tên trường Kiểu dữ liệu

Tên trường Kiểu dữ liệu

Image Array isAvailable boolean

Name String numberOfBeds Number oldPrice Number

Tên trường Kiểu dữ liệu

Tên trường Kiểu dữ liệu

Date String isAccepted Boolean isCancelled Boolean isActivity Boolean orderId String

KẾT QUẢ THỰC NGHIỆM

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

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

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

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

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

- 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ý).

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

- Trang chủ hiển thị các silde ảnh chuyển động về các điểm du lịch.

- Chức năng tìm kiếm thông tin,lọc.

- Hiển thị một số địa điểm và khách sạn nổi bậc.

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

- Hiển thị trước các khách sạn cần tìm kiếm.

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

- Hiển thị các thông tin về điểm du lịch như: tên,đánh giá,địa chỉ,mô tả.

- Hiển thị các khách sạn gần địa điểm và cùng địa điểm.

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

- Hiển thị các thông tin của khách sạn như : tên,lượt đánh giá,địa chỉ,tiện ích.

- Tính năng lọc phòng theo ngày,số giường,số người.

- Hiển thị trước một số phòng.

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

- Hiển thị lại phòng muốn đặt,giá tiền.

- Lựa chọn các phương thức thanh toán.

- Hiển thị thời gian chờ cho một lần thanh toán

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

- Sau khi thanh toán thành công sẽ báo cho khách hàng.

Giao diện google map

- Hiển thị bản đồ Việt Nam với 63 tỉnh thành trên toàn quốc.

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

- Hiển thị các địa danh hoặc các khách sạn người dùng yêu thích.

Giao diện trang cá nhân

- Hiển thị thông tin cá nhân của người dùng.

- Chức năng đăng xuất tài khoản.

- Chức năng xóa tài khoản.

Giao diện cài đặt

- Người dùng có thể chuyển đổi màu nền của ứng dụng.

- Chuyển đổi ngôn ngữ tùy biến tiếng anh hoặc tiếng việt.

- Có thể xem lại lịch sử đặt phòng,vé

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

- Hiển thị mã đặt phòng ,vé và ngày đặt.

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

w