đồ án 2 xây dựng ứng dụng mobile đặt phòng khách sạn

50 2 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 2 xây dựng ứng dụng mobile đặt phòng khách sạn

Đ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

Trang 1

GV HƯỚNG DẪN:TS Đỗ Thị Thanh TuyềnSV THỰC HIỆN: Lưu Kim Triều

MÃ SỐ SINH VIÊN:20520941

Trang 2

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Trang 3

LỜI CẢM ƠN

Lời đầu tiên, em xin gửi lời cảm ơn chân thành nhất đến TS Đỗ Thị ThanhTuyền, giảng viên đã hướng dẫn em trong bộ môn Đồ án 2 Trong quá trình học tập vàthực hiện đồ án, em đã nhận được sự quan tâm giúp đỡ, hướng dẫn rất tận tình, tâmhuyết của Cô Quá trình thực hiện Đồ án 2 là một quá trình đầy thử thách, đòi hỏi phảidành nhiều thời gian, công sức để nghiên cứu, tìm tòi và xây dựng Vì thế, đây cũng làcơ hội để em được rèn luyện, hoàn thiện bản thân bằng những kĩ năng tích lũy đượctrong suốt quá trình học Chính nhờ những sự góp ý, động viên hết sức quý báu khôngchỉ là động lực trong quá trình thực hiện đồ án môn học này mà còn là hành trang đểem có thể vững bước sau này.

Do vốn kiến thức vẫn còn nhiều hạn chế và khả năng tiếp thu còn nhiều giớihạn, em không tránh khỏi có những thiếu sót Em rất mong nhận được những góp ý, sựquan tâm đến từ Cô để đồ án của em được hoàn thiện hơn.

Lời cuối cùng, em xin chân thành cảm ơn Cô và xin kính chúc Cô nhiều sứckhỏe, hạnh phúc và thành công trên con đường sự nghiệp giảng dạy.

30 tháng 12 năm 2023

Sinh viên

Lưu Kim Triều

Trang 5

Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 19

3.1 Đối tượng và phạm vi nghiên cứu và lựa chọn giải pháp công nghệ 19

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

3.1.2 Phạm vi nghiên cứu 19

3.1.3 Lựa chọn giải pháp công nghệ 19

3.2 Mô hình Use Case 20

3.2.1 Sơ đồ Use Case 20

3.3 Phân rã và đặc tả Use Case 21

3.3.1 Use Case “Tìm khách sạn” 21

3.3.2 Use Case “Đăng nhập” 25

3.3.3 Use Case “Đặt phòng” 28

3.3.4 Use Case “Tạo danh sách yêu thích” 30

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

Chương 4 TRIỂN KHAI ỨNG DỤNG 38

Trang 6

KẾT LUẬN 49 Kết quả đạt được

 Kết quả đạt được 49  Kết quả đạt đượcƯu điểm và nhược điểm 49

Ưu điểm

➢ Ưu điểm 49 Nhược điểm

➢ Ưu điểm 49 Hướng phát triển

 Kết quả đạt được 50TÀI LIỆU THAM KHẢO 51

Trang 7

DANH MỤC BẢNG

Bảng 3.1 Danh sách Use Case 21

Bảng 3.2 Đặc tả Use Case “Tìm kiếm khách sạn theo tên” 22

Bảng 3.3 Đặc tả Use Case “Tìm kiếm khách sạn theo khu vực” 22

Bảng 3.4 Đặc tả Use Case “Xem thông tin chi tiết” 23

Bảng 3.5 Đặc tả Use Case “Đánh giá, bình luận” 24

Bảng 3.6 Danh sách Use Case 25

Bảng 3.7 Đặc tả Use Case “Đăng ký” 26

Bảng 3.8 Đặc tả Use Case “Đăng nhập” 26

Bảng 3.9 Đặc tả Use Case “Đăng xuất” 27

Bảng 3.10 Danh sách Use Case 28

Bảng 3.11 Đặc tả Use Case “Đặt phòng” 28

Bảng 3.12 Đặc tả Use Case “Xem lại hóa đơn” 29

Bảng 3.13 Danh sách Use Case 30

Bảng 3.14 Đặc tả Use Case “Thêm vào danh sách yêu thích” 31

Bảng 3.15 Đặc tả Use Case “Xóa khỏi danh sách yêu thích” 31

Bảng 3.16 Đặc tả Use Case “Xem danh sách yêu thích” 32

Trang 9

DANH MỤC HÌNH ẢNH

Hình 2.1 Kotlin 14

Hình 2.2 Firebase 15

Hình 2.3 Mô hình Model-View-ViewModel 17

Hình 3.1 Sơ đồ Use Case mức tổng quát 20

Hình 3.2 Sơ đồ Use Case “Tìm khách sạn” 21

Hình 3.3 Sơ đồ Use Case “Đăng nhập” 25

Hình 3.4 Sơ đồ Use Case “Đặt phòng” 28

Hình 3.5 Sơ đồ Use Case “Tạo danh sách yêu thích” 30

Hình 3.6 Lược đồ cơ sở dữ liệu 33

Hình 4.1 Màn hình bắt đầu 38

Hình 4.2 Màn hình đăng nhập 39

Hình 4.3 Màn hình đăng ký 40

Hình 4.4 Màn hình Home 41

Hình 4.5 Màn hình thông tin chi tiết (1) 42

Hình 4.6 Màn hình thông tin chi tiết (2) 42

Trang 10

TÓM TẮT ĐỒ ÁN

Trong xã hội hiện đại, nhu cầu đi lại, du lịch của con người là một điều tất yếu của cuộc sống Song song với sự phát triển của cơ sở hạ tầng, đường sá đi lại, phương tiện giao thông thì chỗ ở cũng bắt buộc phải được nâng cấp để theo kịp những đòi hỏi của con người Do đó sự xuất hiện của những công cụ, ứng dụng giúp con người dễ dàng tìm kiếm và đặt chỗ ở cho chuyến đi của mình cũng là điều hiển nhiên Ứng dụng mobile GoGo được xây dựng mục đích chính là đáp ứng nhu cầu đó của xã hội Một trong những tiêu chí ban đầu khi bắt đầu xây dựng ứng đó là giúp người dùng dễ dàng tìm được những khách sạn ở nơi mình đến, đáp ứng được những yêu cầu cá nhân của người dùng

Báo cáo trình bày dưới đây bao gồm 4 chương chính bao gồm:

● Chương 1: Tổng quan: trình bày tổng quan về đồ án, giới thiệu về các ứngdụng đặt phòng khách sạn hiện có, khảo sát các chức năng của các ứng dụng tương tự.

● Chương 2: Cơ sở lý thuyết: trình bày các cơ sở lý thuyết liên quan đến đề tàinhư công nghệ và kiến trúc liên quan.

● Chương 3: Phân tích thiết kế hệ thống: trình bày quá trình phân tích và thiếtkế hệ thống qua các mô hình use case và thiết kế cơ sở dữ liệu.

● Chương 4: Triển khai ứng dụng: thiết kế và đặc tả màn hình.

● Kết luận: tổng kết các kết quả đạt được trong quá trình nghiên cứu và đưa racác kết luận tổng quát về đề tài.

Trang 11

Để đáp ứng nhu cầu ở lại của khách du lịch mà vô số các khách sạn, nhà nghỉ đã mọc lên khắp nơi Như trước đây, khi mà mạng Internet và các thiết bị di động vẫn chưa đáp ứng được nhu cầu của người sử dụng thì các khách du lịch sẽ rất khó khăn để lựa chọn khách sạn Một vài bất cập phổ biến đó là họ phải đến tận nơi, hỏi giá và phòng trống từng khách sạn ở địa điểm du lịch để lựa chọn được nơi ở phù hợp với nhucầu của mình Họ sẽ không thể đặt phòng trước cũng như không thể biết được chất lượng phục vụ có thật sự tốt như chủ khách sạn đã quảng cáo hay không

Nhưng với sức mạnh của công nghệ và Internet hiện tại có thể dễ dàng giải quyết các vấn đề trên một cách nhanh chóng Chính vì để giải quyết những khó khăn trên và cải thiện chất lượng du lịch của mọi người nên em quyết định thực hiện đề tài Xây dựng ứng dụng mobile đặt phòng khách sạn Thông qua ứng dụng, mọi người có thể tìm và khảo sát trước các khách sạn ở khu vực du lịch cũng như đặt phòng trước cho chuyến đi sắp tới Bên cạnh đó người dùng cũng có thể tự mình đánh giá nhận xét về chất lượng dịch vụ của khách sạn đồng thời xem những nhận xét của người khác về khách sạn.

Trang 12

 Dịch vụ đặt phòng khách sạn, khu nghỉ dưỡng, nhà trọ,  Luôn cập nhật các chương trình ưu đãi hấp dẫn, thường xuyên

 Hệ thống thanh toán đa dạng, phong phú phù hợp với nhu cầu của người dùng

 Mạng lưới đối tác rộng lớn, uy tín

 Giao diện Tiếng Việt thân thiện, trực quan

 Tương thích với cả 2 nền tảng di động lớn iOS và Android.

1.3.2 Booking.com

Booking.com là một nền tảng cung cấp dịch vụ đặt phòng trực tuyến Qua đó, nhà cung cấp chỗ nghỉ (khách sạn, nhà nghỉ, căn hộ) có thể chào bán các sản phẩm và dịch vụ đặt phòng của họ đồng thời khách hàng có thể sử dụng để thực hiện đặt phòng.

Nói cho dễ hiểu, Booking.com đóng vai trò như một đại lý trung gian kết nối nhà cung cấp và khách hàng Khi khách hàng đặt phòng thành công, nhà cung cấp sẽ mất một khoản phí “hoa hồng” cho Booking.com (tùy từng khách sạn).

1.3.3 Traveloka

Traveloka là một ứng dụng booking trực tuyến hàng đầu của Indonesia Kết hợpvới hơn 120.000 khách sạn trong khu vực và trên toàn thế giới, cùng hơn 100.000

Trang 13

đường bay khắp châu Á, Châu Âu và châu Mỹ Hiện nay, Traveloka đã có mặt tại hầu hết quốc gia Đông Nam Á, như Thái Lan, Singapore, Malaysia, Philippine và cả nước ta.

Khi được thành lập vào năm 2012, Traveloka chỉ hoạt động trong lĩnh vực cungcấp dịch vụ đặt vé máy bay online Dịch vụ đặt phòng khách sạn trực tuyến được Traveloka cung cấp từ Tháng 7 năm 2014, nhằm đáp ứng nhu cầu của khách hàng là mỗi khi đặt vé máy bay xong họ thường cần đặt luôn cả khách sạn.

Trang 14

Kotlin do Kotlin Foundation quản lý, một nhóm do JetBrains và Google tạo ra với nhiệm vụ thúc đẩy và tiếp tục phát triển ngôn ngữ này Google chính thức hỗ trợ Kotlin trong hoạt động phát triển Android, nghĩa là việc thiết kế tài liệu và công cụ của Android luôn chú ý đến Kotlin.

2.1.2 Tại sao lại là Kotlin?

Một số API của Android (như Android KTX) chỉ dành riêng cho Kotlin nhưng hầu hết đều được viết bằng Java và có thể gọi qua Java hoặc Kotlin Khả năng tương tác của Kotlin với Java là yếu tố cốt lõi tạo ra sự tăng trưởng của mã này Tức là bạn cóthể gọi mã Java qua Kotlin và ngược lại, tận dụng tất cả thư viện Java hiện có Sự phổ biến của Kotlin mang lại trải nghiệm phát triển tốt hơn trên Android, nhưng việc phát triển khung Android vẫn tiếp tục chú ý đến cả Kotlin và Java.

Trang 15

Những điểm mạnh của ngôn ngữ Kotlin có thể kể đến như:

 Kotlin biên dịch tới JVM bytecode: giống như Java, Bytecode ở đây nghĩa là sau khi biên dịch code sẽ được chạy qua một máy ảo thay vì là bộ vi xử lý của máy tính Bằng cách này thì source code có thể chạy trên mọi nền tảng Sau khi chương trình Kotlin được convert thành bytecode, nó sẽ được tải qua network và thực thi bởi JVM(Java Virtual Machine).

 Kotlin có thể sử dụng toàn bộ những Framework và thư viện sẵn có của Java Điểm đặc biệt nhất về Kotlin là nó có thể dễ dàng kết hợp với Maven, Gradle và các hệ thống build khác.

 Kotlin là một ngôn ngữ rất dễ học, cú pháp rất trong sách và dễ hiểu Kotlincó nét giống như Scala nhưng đơn giản hơn.

 JetBrains cũng đã đính kèm tính năng tự động chuyển đổi Java thành Kotlin, qua đó tiết kiệm được rất nhiều thời gian cho lập trình viên.

 Giống như Swift, thì Kotlin cũng là một ngôn ngữ an toàn, với cơ chế safety, sẽ không còn khái niệm NullPointerExceptions nữa.

null- Sử dụng mã nguồn mở: không tốn kém dung lượng cho người dùng.

2.2 Firebase

2.2.1 Firebase là gì?

Hình 2.2 Firebase.

Trang 16

Firebase là một nền tảng giúp phát triển các ứng dụng di động trong web Bên cạnh đó, Firebase còn được hiểu là một dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây cloud với hệ thống máy chủ mạnh mẽ của Google.

Firebase chứa cơ sở dữ liệu mang đến khả năng code nhanh và thuận tiện hơn Lập trình viên có thể dễ 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 sẵn có.

2.2.2 Lịch sử hình thành và phát triển

 Vào năm 2011, James Tamplin và Andrew Lee đã cho ra mắt Evolve Đây là một nền tảng có cấu trúc khá đơn giản chuyên cung cấp các API cần thiết để tích hợp tính năng trò chuyện vào các trang web Tuy nhiên, họ nhận ra rằng nền tảng này đang được sử dụng để truyền dữ liệu ứng dụng chứ không đơn giản là chat Sau đó,họ đã phát triển Envole và tạo nên Firebase.

 Đến tháng 4 năm 2012, Firebase đã được công bố trên toàn cầu dưới dạng một công ty riêng biệt Những năm sau đó, Firebase đã thực hiện nhiều cuộc huy động vốn và ra mắt các sản phẩm mới.

 Đến tháng 10 năm 2014, Firebase đã chính thức được Google mua lại và trở thành một ứng dụng đa năng trên nền tảng di động và website.

2.2.3 Lợi ích khi sử dụng Firebase:

 Sử dụng miễn phí và thuận tiện Firebase có giao diện trực quan và thân thiện Sau khi đăng ký tài khoản, bạn chỉ cần đăng nhập vào là đã có thể sử dụng các tính năng của Firebase Ngoài ra, Firebase có một kho backend với giao diện đa dạng, phong phú giúp bạn thoải mái lựa chọn.

 Dễ sử dụng và tích hợp Firebase có giao diện trực quan và thân thiện Sau khi đăng ký tài khoản, bạn chỉ cần đăng nhập vào là đã có thể sử dụng các tính năng của Firebase Ngoài ra, Firebase có một kho backend với giao diện đa dạng, phong phú giúp bạn thoải mái lựa chọn.

 Đáp ứng nhu cầu người dùng Firebase chính là một phần của Google Vì vậy, Google đã không ngừng khai thác và phát triển triệt để những điểm mạnh và các

Trang 17

2.3 Android Jetpack2.3.1 Mô hình MVVM

Hình 2.3 Mô hình Model-View-ViewModel.

Model chứa tất cả các data classes, database classes, API và repository.

View là thành phần UI đại diện cho trạng thái hiện tại cảu thông tin mà người dùng

có thể nhìn thấy.

ViewModel chứa data cần thiết trong View và chuyển dịch data được lưu trữ

trong Model mà sau đó có thể có trong View ViewModel và View được kết thông thông qua Databiding và observable Livedata

Đa số các ứng dụng thuộc bất kì nền tảng nào cũng có thể chia thành hai phần: giao diện (View) và dữ liệu (Model) Vì việc tách riêng các phần này, cần phải có một phần trung gian nào đó nối kết hai phần này lại, và chúng tạo nên một mô hình

Trang 18

 Vì chúng ta sử dụng ViewModel và LivaData để nhận biết vòng đời của Activity, nó sẽ dẫn đến ít crashes và memory leaks.

2.3.2 Live Data

LiveData là observable data holder class Không giống như các observables khác, nó nhận thức được vòng đời, tức là nhận nhận thức được vòng đời của các components như là activity, fragment hay services Điều này có nghĩa là nó chỉ cập nhật các component observers khi chúng ở trạng thái vòng đời hoạt động

2.3.3.Data Binding

Là library hỗ trợ cho phép chúng ta liên kết với các thành phần UI của mình từ layout với data source trong ứng dụng của chúng ta bằng cách khai báo thay vì lập trình Chúng ta định nghĩa toàn bộ XML trong thẻ <layout> </ layout> Chúng ta dùng thẻ <variable></variable> để xác định các custom object mà sau đó có thể được sử dụng bên trong các layout views.

Trang 19

Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG

3.1 Đối tượng và phạm vi nghiên cứu và lựa chọn giải pháp công nghệ3.1.1 Đối tượng nghiên cứu

- Những người dùng thường xuyên đi lại, công tác, du lịch.

3.1.2 Phạm vi nghiên cứu

- Phạm vi môi trường: Triển khai ứng dụng trên thiết bị di động hệ điều hành android.

- Phạm vi chức năng:

Ç Quản lý tài khoản và dữ liệu các khách sạn.

Ç Tìm kiếm khách sạn phù hợp với yêu cầu của người dùng.Ç Người dùng có thể nhận xét, đánh giá về khách sạn.

3.1.3 Lựa chọn giải pháp công nghệ

- Ngôn ngữ: Kotlin.- Database: Firebase.

- Quản lý source code: Github.

Trang 21

3.3 Phân rã và đặc tả Use Case3.3.1 Use Case “Tìm khách sạn”

Hình 3.2 Sơ đồ Use Case “Tìm khách sạn”.

Danh sách Use Case

Trang 22

Đặc tả Use Case “Tìm kiếm khách sạn theo tên”

Bảng 3.2 Đặc tả Use Case “Tìm kiếm khách sạn theo tên”

Use Case ID UC-1.1

Tên Use Case Tìm kiếm khách sạn theo tên

Tác nhân Người dùng

Sự kiện kích hoạt Người dùng có nhu cầu tìm kiếm một khách sạn.

Luồng chính 1 Người dùng đăng nhập vào ứng dụng.2 Người dùng bấm chọn Seach.

3 Người dùng nhập tên của khách sạn.

Điều kiện trước Điện thoại phải có kết nối mạng.

Điều kiện sau Hiển thị khách sạn đúng như tên đã nhập.

Đặc tả Use Case “Tìm kiếm khách sạn theo khu vực”

Bảng 3.3 Đặc tả Use Case “Tìm kiếm khách sạn theo khu vực”

Use Case ID UC-1.2

Tên Use Case Tìm kiếm khách sạn theo khu vực

Tác nhân Người dùng

Sự kiện kích hoạt Người dùng có nhu cầu tìm kiếm một khách sạn ở khu vực nào đó

Luồng chính 1 Người dùng đăng nhập vào ứng dụng.2 Người dùng bấm chọn Seach.

3 Người dùng nhập tên khu vực muốn tìm khách sạn.

Điều kiện trước Điện thoại phải có kết nối mạng.

Điều kiện sau Hiển thị khách sạn có ở khu vực đã nhập.

Đặc tả Use Case “Xem thông tin chi tiết”

Bảng 3.4 Đặc tả Use Case “Xem thông tin chi tiết”

Use Case ID UC-1.3

Tên Use Case Xem thông tin chi tiết

Trang 23

Tác nhân Người dùng

Sự kiện kích hoạt Người dùng có nhu cầu xem thông tin chi tiết của một khách sạn.

Luồng chính 1 Người dùng đăng nhập vào ứng dụng.2 Người dùng bấm chọn Search.

3 Người dùng nhập tên của khách sạn.

4 Người dùng bấm vào ảnh để xem thông tin chi tiết của khách sạn.

Điều kiện trước Điện thoại phải có kết nối mạng.

Điều kiện sau Hiển thị đúng thông tin chi tiết của khách sạn.

Trang 24

Đặc tả Use Case “Đánh giá, bình luận”

Bảng 3.5 Đặc tả Use Case “Đánh giá, bình luận”

Use Case ID UC-1.4

Tên Use Case Đánh giá, bình luận

Tác nhân Người dùng

Sự kiện kích hoạt Người dùng có nhu cầu đánh giá một khách sạn.

Luồng chính 1 Người dùng đăng nhập vào ứng dụng.2 Người dùng bấm chọn Search.

3 Người dùng chọn khách sạn mình muốn nhận xét.4 Người dùng bấm vào Comment.

5 Người dùng nhập bình luận, đánh giá số sao và xác nhận.

Điều kiện trước Điện thoại phải có kết nối mạng.

Điều kiện sau Hiển thị đúng thông tin chi tiết của khách sạn.

Trang 25

3.3.2.Use Case “Đăng nh p”ập”

Hình 3.3 Sơ đồ Use Case “Đăng nhập”.

Danh sách Use Case

Bảng 3.6 Danh sách Use Case

1 Đăng ký2 Đăng nhập3 Đăng xuất

Ngày đăng: 15/05/2024, 09:26

Tài liệu cùng người dùng

Tài liệu liên quan