Tải bản đầy đủ (.docx) (106 trang)

Xây dựng ứng dụng booking khách sạn và xe kết hợp với

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 (3.89 MB, 106 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

ĐỒ ÁN 1

Xây dựng ứng dụng booking khách sạn và xe kết hợp với
review du lịch

GV HƯỚNG DẪN: Thầy Huỳnh Tuấn Anh
SV THỰC HIỆN:
20520327 - Trần Hữu Trí
20520459 - Nguyễn Huy Trí Dũng

TP. HỒ CHÍ MINH, Năm 2023


LỜI CẢM ƠN
Trong quá trình học tập, nghiên cứu và phát triển đề tài “Xây dựng ứng dụng
booking khách sạn và xe kết hợp với review du lịch” chúng em đã nhận được sự
giúp đỡ, chỉ bảo nhiệt tình của thầy để hồn thành đồ án này.
Nhóm em xin chân thành gửi lời cảm ơn đến thầy Huỳnh Tuấn Anh – Giảng viên
Khoa Công nghệ phần mềm, Trường Đại học Công nghệ thông tin, Đại học Quốc
gia Thành phố Hồ Chí Minh - giảng viên dạy hướng dẫn mơn Đồ án 1, đã tận tình
hướng dẫn và giúp đỡ về kiến thức , phương pháp cho chúng em trong suốt q
trình thực hiện và hồn thành đồ án.
Hi vọng với sự chỉ bảo và góp ý từ thầy, nhóm đề tài có thể tiếp tục phát triển để
ứng dụng ngày càng được mở rộng và phục vụ được tốt hơn cho người dùng.
Mặc dù đã có nhiều cố gắng trong suốt q trình thực hiện đề tài, song khơng thể
tránh khỏi những hạn chế, thiếu sót. Chúng em mong rằng sẽ nhận được những


đóng góp và nhận xét chân thành từ thầy, các bạn sinh viên và người dùng trong quá
trình sử dụng phần mềm để phần mềm ngày càng hồn thiện hơn nữa. Mọi đóng
góp xin vui lịng gửi về địa chỉ email:


Mỗi ý kiến đóng góp của thầy và các bạn sẽ là một nguồn động lực to lớn đối với
chúng em để chúng em có thể cải thiện phần mềm tốt hơn và xây dựng những phần
mềm hữu ích đối với người dùng hơn nữa.
Chúng em xin trân trọng cảm ơn.

Thành phố Hồ Chí Minh, ngày 20 tháng 12 năm 2021


MỤC LỤC

Chương 1: GIỚI THIỆU........................................................................................2
1.1. Đặt vấn đề:..................................................................................................2
1.2. Cách giải quyết:..........................................................................................2
1.3. Lý do chọn đề tài này:................................................................................2
1.4. Đối tượng:...................................................................................................2
1.5. Mục tiêu:.....................................................................................................2
Chương 2: TỔNG QUAN......................................................................................4
2.1. Tổng quan về đồ án:...................................................................................4
2.1.1.

Tên đồ án:.........................................................................................4

2.1.2.

Link github quản lý source code:....................................................4


2.2. Cơ sở lý thuyết:..........................................................................................4
2.2.1.

Nền tảng Cross Platform.................................................................4

2.2.1.1. Cross Platform là gì ?...................................................................4
2.2.1.2. Ưu điểm, hạn chế của Cross Platform:.......................................6
2.2.2.

Restful API:......................................................................................6

2.2.2.1. Restful API là gì ?.........................................................................6
2.2.2.2. Hoạt động của restful API:..........................................................7
2.2.2.3. Express JS:....................................................................................8
2.2.3.

WebSocket:.......................................................................................8

2.2.3.1. Khái niệm:.....................................................................................8
2.2.3.2. Ưu và nhược điểm:.......................................................................8
2.3. Công nghệ sử dụng:...................................................................................9


2.3.1.

Flutter:..............................................................................................9

2.3.1.1. Flutter là gì ?.................................................................................9
2.3.1.2. Flutter giúp phát triển ứng dụng như thế nào ?......................10

2.3.2.

JWT for authentication:................................................................11

2.3.2.1. JWT là gì ?..................................................................................11
2.3.2.2. JWT hoạt động như thế nào ?...................................................11
2.3.2.3. JWT có lợi ích gì trong authentication ?..................................12
2.3.3.

Node js:...........................................................................................12

2.3.4.

Ngơn ngữ Dart:...............................................................................14

2.3.4.1. Dart là gì?....................................................................................14
2.3.4.2. Lịch sử hình thành ngơn ngữ dart:...........................................14
2.3.4.3. Lợi ích của ngơn ngữ dart:........................................................14
2.3.5.

Ngơn ngữ JavaScript:....................................................................15

2.3.5.1. JavaScript là gì:..........................................................................15
2.3.5.2. Lịch sử phát triển của JavaScript:............................................15
2.3.5.3. Ưu và nhược điểm sử dụng JavaScript:...................................16
2.3.6.

Mơ hình Bloc của Flutter:.............................................................17

2.3.6.1. Bloc là gì ?...................................................................................17

2.3.6.2. Lợi ích của việc sử dụng Bloc ?.................................................17
2.3.7.

Cơng cụ Intellij IDEA:...................................................................18

2.3.7.1. Intellij IDEA là gì:......................................................................18
2.3.7.2. Những lợi ích của Intellij IDEA:...............................................19
2.3.8.

Dịch vụ GitHub:.............................................................................19

Chương 3: PHÂN TÍCH, THIẾT KẾ.................................................................21


3.1. Cơ sở dữ liệu:............................................................................................21
3.1.1.

Sơ đồ lớp:........................................................................................21

3.1.2.

Mô tả cơ sở dữ liệu:........................................................................21

3.1.2.1. User:............................................................................................21
3.1.2.2. Tour:............................................................................................22
3.1.2.3. Rating:.........................................................................................23
3.1.2.4. JWT:............................................................................................23
3.1.2.5. Hotel Room:................................................................................24
3.1.2.6. Hotel:...........................................................................................25
3.1.2.7. Files:............................................................................................25

3.1.2.8. Favorite:......................................................................................26
3.1.2.9. Date Booking:.............................................................................26
3.1.2.10. Car Service:..............................................................................27
3.1.2.11. Avatar:......................................................................................27
3.1.2.12. Destination:...............................................................................27
3.2. Danh sách yêu cầu:..................................................................................28
3.2.1.

Danh sách các chức năng chính:...................................................28

3.3. Danh sách usecase:...................................................................................34
3.3.1.

Sơ đồ usecase:.................................................................................34

3.3.2.

Mô tả tác nhân:..............................................................................35

3.3.3.

Mô tả use case:................................................................................35

3.3.4.

Đặc tả use case:...............................................................................36

3.4. Thiết kế giao diện.....................................................................................66
3.4.1.


Đăng nhập:.....................................................................................66


3.4.2.

Đăng ký:..........................................................................................67

3.4.3.

Giao diện chính:.............................................................................68

3.4.4.

Xem danh sách tour....................................................................69

3.4.5.

Xem danh sách hotel......................................................................70

3.4.6.

Xem danh sách xe...........................................................................71

3.4.7.

Giao diện tìm kiếm.........................................................................72

3.4.8.

Giao diện xem lịch sử đơn.............................................................73


3.4.9.

Giao diện thông tin tài khoản........................................................74

3.4.10.

Giao diện thiết lập tài khoản.........................................................74

3.4.11.

Giao diện quản lý dịch vụ..............................................................75

3.4.12.

Giao diện quản lý bài đăng............................................................75

3.4.13.

Giao diện quản lý đơn booking.....................................................76

3.4.14.

Giao diện tạo hotel.........................................................................77

3.4.15.

Giao diện tạo xe..............................................................................77

3.4.16.


Giao diện tạo tour..........................................................................78

3.4.17.

Giao diện tạo destination...............................................................78

3.4.18.

Giao diện chỉnh sửa hotel..............................................................79

3.4.19.

Giao diện chỉnh sửa xe...................................................................79

3.4.20.

Giao diện chỉnh sửa destination....................................................80

3.4.21.

Giao diện chỉnh sửa tour...............................................................80

3.4.22.

Giao diện booking hotel.................................................................81

3.4.23.

Giao diện booking xe......................................................................81


3.4.24.

Giao diện đặt đơn thành công của xe và hotel.............................82

3.4.25.

Giao diện danh sách yêu thích.......................................................82


Chương 4: KẾT LUẬN........................................................................................83
4.1. Kết quả đạt được:.....................................................................................83
4.1.1.

Chủ đề cấp độ 3..............................................................................83

4.1.1.1. Chủ đề cấp độ 4..........................................................................83
4.2. Đánh giá ứng dụng:..................................................................................83
4.3. Hướng phát triển mở rộng:.....................................................................83
4.4. Yêu cầu cài đặt:........................................................................................83
Chương 5: PHÂN CÔNG CÔNG VIỆC.............................................................84
TÀI LIỆU THAM KHẢO.....................................................................................86

DANH MỤC BIỂU Đ


Biểu đồ 1. Sơ đồ lớp cơ sở dữ liệuu đồ 1. Sơ đồ lớp cơ sở dữ liệu 1. Sơ đồ lớp cơ sở dữ liệu đồ 1. Sơ đồ lớp cơ sở dữ liệu lớp cơ sở dữ liệup cơ đồ lớp cơ sở dữ liệu sở dữ liệu dữ liệu liệuu......................................................................................21
Biểu đồ 1. Sơ đồ lớp cơ sở dữ liệuu đồ 1. Sơ đồ lớp cơ sở dữ liệu 2. Sơ đồ lớp cơ sở dữ liệu đồ 1. Sơ đồ lớp cơ sở dữ liệu usecase của ứng dụnga ứng dụngng dụngng............................................................................34
Biểu đồ 1. Sơ đồ lớp cơ sở dữ liệuu đồ 1. Sơ đồ lớp cơ sở dữ liệu 3. Sơ đồ lớp cơ sở dữ liệu đồ 1. Sơ đồ lớp cơ sở dữ liệu hoạt động UC1_đăng kýt động UC1_đăng kýng UC1_đăng ký.........................................................................37
Biểu đồ 1. Sơ đồ lớp cơ sở dữ liệuu đồ 1. Sơ đồ lớp cơ sở dữ liệu 4. Sơ đồ lớp cơ sở dữ liệu đồ 1. Sơ đồ lớp cơ sở dữ liệu hoạt động UC1_đăng kýt động UC1_đăng kýng UC2_đăng nhậpp...................................................................38

Biểu đồ 1. Sơ đồ lớp cơ sở dữ liệuu đồ 1. Sơ đồ lớp cơ sở dữ liệu 5. Sơ đồ lớp cơ sở dữ liệu đồ 1. Sơ đồ lớp cơ sở dữ liệu hoạt động UC1_đăng kýt động UC1_đăng kýng UC3_Thay đổi mật khẩui mậpt khẩuu.................................................39
Biểu đồ 1. Sơ đồ lớp cơ sở dữ liệuu đồ 1. Sơ đồ lớp cơ sở dữ liệu 6. Sơ đồ lớp cơ sở dữ liệu đồ 1. Sơ đồ lớp cơ sở dữ liệu hoạt động UC1_đăng kýt động UC1_đăng kýng của ứng dụnga UC4_Thiết lập tài khoảnt lậpp tài khoảnn........................................40
Biểu đồ 1. Sơ đồ lớp cơ sở dữ liệuu đồ 1. Sơ đồ lớp cơ sở dữ liệu 7. Sơ đồ lớp cơ sở dữ liệu đồ 1. Sơ đồ lớp cơ sở dữ liệu hoạt động UC1_đăng kýt động UC1_đăng kýng của ứng dụnga UC5_Tìm kiết lập tài khoảnm tour hoặc dịch vục dịch vụch vụng......................41
Biểu đồ 1. Sơ đồ lớp cơ sở dữ liệuu đồ 1. Sơ đồ lớp cơ sở dữ liệu 8. Sơ đồ lớp cơ sở dữ liệu đồ 1. Sơ đồ lớp cơ sở dữ liệu hoạt động UC1_đăng kýt động UC1_đăng kýng của ứng dụnga UC6_CRUD Tour.........................................................45
Biểu đồ 1. Sơ đồ lớp cơ sở dữ liệuu đồ 1. Sơ đồ lớp cơ sở dữ liệu 9. Sơ đồ lớp cơ sở dữ liệu đồ 1. Sơ đồ lớp cơ sở dữ liệu hoạt động UC1_đăng kýt động UC1_đăng kýng của ứng dụnga UC7_CRUD Destination...........................................48
Biểu đồ 1. Sơ đồ lớp cơ sở dữ liệuu đồ 1. Sơ đồ lớp cơ sở dữ liệu 10. Sơ đồ lớp cơ sở dữ liệu đồ 1. Sơ đồ lớp cơ sở dữ liệu hoạt động UC1_đăng kýt động UC1_đăng kýng của ứng dụnga UC8_Booking............................................................49
Biểu đồ 1. Sơ đồ lớp cơ sở dữ liệuu đồ 1. Sơ đồ lớp cơ sở dữ liệu 11. Sơ đồ lớp cơ sở dữ liệu đồ 1. Sơ đồ lớp cơ sở dữ liệu hoạt động UC1_đăng kýt động UC1_đăng kýng của ứng dụnga UC9_Thêm vào mụngc yêu thích...........................50
Biểu đồ 1. Sơ đồ lớp cơ sở dữ liệuu đồ 1. Sơ đồ lớp cơ sở dữ liệu 12. Sơ đồ lớp cơ sở dữ liệu đồ 1. Sơ đồ lớp cơ sở dữ liệu hoạt động UC1_đăng kýt động UC1_đăng kýng của ứng dụnga UC10_CRUD Đánh giá............................................54
Biểu đồ 1. Sơ đồ lớp cơ sở dữ liệuu đồ 1. Sơ đồ lớp cơ sở dữ liệu 13. Sơ đồ lớp cơ sở dữ liệu đồ 1. Sơ đồ lớp cơ sở dữ liệu hoạt động UC1_đăng kýt động UC1_đăng kýng của ứng dụnga UC11_CRUD hotel...................................................58
Biểu đồ 1. Sơ đồ lớp cơ sở dữ liệuu đồ 1. Sơ đồ lớp cơ sở dữ liệu 14. Sơ đồ lớp cơ sở dữ liệu đồ 1. Sơ đồ lớp cơ sở dữ liệu hoạt động UC1_đăng kýt động UC1_đăng kýng của ứng dụnga UC12_CRUD hotel room.......................................61
Biểu đồ 1. Sơ đồ lớp cơ sở dữ liệuu đồ 1. Sơ đồ lớp cơ sở dữ liệu 15. Sơ đồ lớp cơ sở dữ liệu đồ 1. Sơ đồ lớp cơ sở dữ liệu hoạt động UC1_đăng kýt động UC1_đăng kýng của ứng dụnga UC13_CRUD vehicle...............................................65
Biểu đồ 1. Sơ đồ lớp cơ sở dữ liệuu đồ 1. Sơ đồ lớp cơ sở dữ liệu 16. Sơ đồ lớp cơ sở dữ liệu đồ 1. Sơ đồ lớp cơ sở dữ liệu hoạt động UC1_đăng kýt động UC1_đăng kýng của ứng dụnga UC14_thay đổi mật khẩui trạt động UC1_đăng kýng thái booking..................66


DANH MỤC HÌNH
Hình 1.Cross Platform...............................................................................................5
Hình 2. Cross-platform mobile development.............................................................6
Hình 3. Intellij IDEA...............................................................................................19
Hình 4.Giao diện đăng nhập....................................................................................67
Hình 5. Giao diện đăng ký.......................................................................................67
Hình 6. Giao diện chính...........................................................................................68
Hình 7. Giao diện xem danh sách tour.....................................................................69
Hình 8. Giao diện xem danh sách hotel...................................................................70
Hình 9. Giao diện xem danh sách xe.......................................................................71
Hình 10. Giao diện xem danh sách xe.....................................................................72
Hình 11. Giao diện xem lịch sử booking.................................................................73
Hình 12. Giao diện thơng tin tài khoản....................................................................74
Hình 13. Giao diện thiết lập tài khoản.....................................................................74
Hình 14. Giao diện quản lý dịch vụ.........................................................................75
Hình 15. Giao diện quản lý bài đăng.......................................................................75

Hình 16. Giao diện quản lý đơn booking.................................................................76
Hình 17. Giao diện tạo hotel....................................................................................77
Hình 18. Giao diện tạo xe........................................................................................77
Hình 19. Giao diện tạo tour.....................................................................................78
Hình 20. Giao diện tạo destination..........................................................................78
Hình 21. Giao diện chỉnh sửa hotel.........................................................................79
Hình 22. Giao diện chỉnh sửa xe..............................................................................79
Hình 23. Giao diện chỉnh sửa destination................................................................80
Hình 24. Giao diện chỉnh sửa tour...........................................................................80
Hình 25. Giao diện booking hotel............................................................................81
Hình 26. Giao diện booking xe................................................................................81
Hình 27. Giao diện booking thành cơng..................................................................82
Hình 28. Giao diện danh sách yêu thích..................................................................82


DANH MỤC BẢNG
Bảnng 1. Bảnng các thuộng UC1_đăng kýc tính của ứng dụnga model User..................................................................22
Bảnng 2. Bảnng các thuộng UC1_đăng kýc tính của ứng dụnga model Tour.................................................................23
Bảnng 3. Bảnng các thuộng UC1_đăng kýc tính của ứng dụnga model Rating..............................................................23
Bảnng 4. Bảnng các thuộng UC1_đăng kýc tính của ứng dụnga model JWT...................................................................24
Bảnng 5. Bảnng các thuộng UC1_đăng kýc tính của ứng dụnga model Hotel Room...................................................24
Bảnng 6. Bảnng các thuộng UC1_đăng kýc tính của ứng dụnga model Hotel................................................................25
Bảnng 7. Bảnng các thuộng UC1_đăng kýc tính của ứng dụnga model Files..................................................................25
Bảnng 8. Bảnng các thuộng UC1_đăng kýc tính của ứng dụnga model Favorite..........................................................26
Bảnng 9. Bảnng các thuộng UC1_đăng kýc tính của ứng dụnga model DateBooking.................................................26
Bảnng 10. Bảnng các thuộng UC1_đăng kýc tính của ứng dụnga model Car Service..................................................27
Bảnng 11. Bảnng các thuộng UC1_đăng kýc tính của ứng dụnga model Avatar...........................................................27
Bảnng 12. Bảnng các thuộng UC1_đăng kýc tính của ứng dụnga model Destination.................................................28
Bảnng 13. Bảnng các chứng dụngc năng chính của ứng dụnga ứng dụngng dụngng......................................................33
Bảnng 14. Bảnng mô tản tác nhân...............................................................................................35

Bảnng 15. Bảnng mô tản use case...............................................................................................36
Bảnng 16. Bảnng mô tản use case đăng ký..............................................................................37
Bảnng 17. Bảnng mô tản use case Đăng nhậpp........................................................................38
Bảnng 18. Bảnng mô tản use case thay đổi mật khẩui mậpt khẩuu........................................................39
Bảnng 19. Bảnng mô tản use case thiết lập tài khoảnt lậpp tài khoảnn.......................................................40
Bảnng 20. Bảnng mô tản use case tra cứng dụngu tour hoặc dịch vục dịch vụch vụng.........................................41
Bảnng 21. Bảnng mô tản use case CRUD_tour........................................................................43
Bảnng 22. Bảnng mô tản use case CRUD destination..........................................................47
Bảnng 23. Bảnng mô tản use case Booking.............................................................................49
Bảnng 24. Bảnng mô tản use case thêm vào mụngc ưa thícha thích...............................................50
Bảnng 25. Bảnng mơ tản use case CRUD đánh giá................................................................52
Bảnng 26. Bảnng mô tản use case CRUD hotel.......................................................................56
Bảnng 27. Bảnng mô tản use case CRUD hotel room..........................................................59


Bảnng 28. Bảnng mô tản use case CRUD vehicle...................................................................63
Bảnng 29. Bảnng mô tản use case thay đổi mật khẩui trạt động UC1_đăng kýng thái booking......................................65


TÓM TẮT ĐỒ ÁN
Đồ án của bọn em là một ứng dụng điện thoại di động đặt khách sạn hoặc thuê xe
kèm theo đó là kết hợp các review về tour du lịch và cũng như giới thiệu các địa
danh, danh lam thắng cảnh đến người dùng và nhóm người bọn em đặc biệt chú ý
đến đó là nhóm người đi du lịch tự túc hoặc nhóm người thích sự tiện lợi từ việc
booking online.
Ứng dụng của bọn em được triển khai bằng Flutter với ngơn ngữ lập trình Dart, đi
kèm theo đó là 1 design pattern Bloc để quản lý trạng thái của ứng dụng. Bloc cho
phép em tách riêng logic của ứng dụng ra khỏi phần giao diện của người dùng.
Trong Flutter, Bloc chấp nhận một luồng sự kiện(event), xử lý dữ liệu dựa trên các
sự kiện đó và trả về trạng thái (states) tương ứng. Điều này giúp tách biệt logic của

ứng dụng và tái sử dụng mã code dễ dàng hơn.
Ở phía backend thì bọn em dùng NodeJS cho server localhost ExpressJS kết nối với
cơ sở dữ liệu MongoDB. Express JS là một framework phát triển ứng dụng web
phía server, trong khi MongoDB là một hệ quản trị cơ sở dữ liệu phi quan hệ. Với
sự kết hợp này, bạn có thể xây dựng một server đơn giản để lưu trữ và truy xuất dữ
liệu cho ứng dụng di động của mình.
Đề tài của dự án là ứng dụng đặt khách sạn và thuê xe, kết hợp với việc xem xét
(review) tour du lịch và các địa danh. Điều này cho thấy ứng dụng của bạn sẽ cung
cấp các tính năng liên quan đến đặt phịng khách sạn, thuê xe, xem xét các tour du
lịch và thơng tin về các địa danh. Điều này có thể bao gồm giao diện người dùng để
tìm kiếm và đặt phịng khách sạn, th xe, xem thơng tin tour du lịch và địa danh,
cũng như cho phép người dùng gửi xem xét và đánh giá.

1


Chương 1: GIỚI THIỆU
1.1.

Đặt vấn đề:

Ngày nay, các dịch vụ về du lịch là 1 nhu cầu thiết yếu, ai cũng cần đi du lịch và
ai cũng muốn trải nghiệm những dịch vụ du lịch trở nên tiện lợi dù bạn đang ở
nơi đâu. Bên cạnh đó, chúng ta cũng có những nhóm nguời muốn được tự mình
khám phá tự mình lên kế hoạch để đi nhưng chưa biết bắt đầu từ đâu nên đã gây
khá nhiều bất tiện trong việc du lịch tự túc.

1.2.

Cách giải quyết:


Sau khi hiểu đuợc tình hình trên, nhóm em đã lên ý tưởng xây dựng 1 ứng dụng
“Booking khách sạn và xe kết hợp với review du lịch”. Ứng dụng này ra đời
nhằm đáp ứng các nhu cầu thực hiện hoá việc đi chơi tự túc trở nên dễ dàng hơn
đối với mọi nguời, và cũng như cho các chủ khách sạn có thể dễ dàng tiếp cận
với khách hàng hơn thông qua ứng dụng này để cung cấp dịch vụ cho khách
hàng của mình thơng qua 1 ứng dụng.

1.3.

Lý do chọn đề tài này:

Lý do bọn em chọn đề tài này là để cung cấp 1 cơng cụ có thể giúp cho ngời
dùng có thể dễ dàng chủ động trong việc du lịch tự túc cũng như bản thân của
bọn em và có thể dễ dàng hơn trong việc lên kế hoạch và booking trong việc du
lịch tự túc và cũng thuận tiện hơn cho các chủ doanh nghiệp giới thiệu dịch vụ
của mình đến người dùng.

1.4.

Đối tượng:

Nhóm đối tượng mà bọn em hướng đến đó là nhóm người dùng muốn đi du lịch
tự túc và nhóm chủ khách sạn hoặc chủ xe muốn cung cấp dịch vụ cho người du
lịch tự túc nhằm tạo ra cầu nối những các chủ dịch vụ với khách hàng.

1.5.

Mục tiêu:


Xây dựng ứng dụng hỗ trợ cho người dùng muốn trải nghiệm du lịch tự túc,

2


đồng thời cũng cung cấp 1 ứng dụng hoạt động như một nơi chia sẽ các kế
hoạch du lịch tự túc của mọi người với nhau, một cầu nối giữa các doanh nghiệp
với người dùng để tiện lợi hơn trong các việc đặt phòng khách sạn hoặc thuê xe
cho du lịch.
Xây dựng 1 giao diện phần mềm một cách trực quan, sinh động, thân thiện với
ngời dùng hơn. Các xử lý thành phần hoạt động một cách thực tế và mượt mà
hơn để đem lại trải nghiêm thú vị và đồng thời tiện ích cho người dùng lẫn các
doanh nghiệp.

3


Chương 2: TỔNG QUAN
2.1.

Tổng quan về đồ án:

2.1.1. Tên đồ án:
 Tên tiếng việt: Xây dựng ứng dụng booking khách sạn và xe kết hợp
với review du lịch.
2.1.2. Link github quản lý source code:
- Link github ứng dụng mobile dành cho nguời dùng lẫn doanh nghiệp:
/>
- Link github server backend:
/>

2.2.

Cơ sở lý thuyết:

Đồ án được xây dựng dựa trên những cơ sở lý thuyết sau:

2.2.1. Nền tảng Cross Platform
2.2.1.1. Cross Platform là gì ?
 “Trong cơng nghệ điện tốn, đa nền tảng (tiếng Anh: cross-platform hay
multiplatform) là một thuật ngữ chỉ các phần mềm máy tính hay các
phương thức điện toán và cáckhái niệm được thực thi đầy đủ và vận hành
cùng nhau trên nhiều nền tảng máy tính. Phần mềm đa nền tảng có thể
được chia thành hai loại; một loại yêu cầu phải thiết kế hoặc biên dịch
từng phiên bản cho mỗi nền tảng nó hỗ trợ; loại kia có thể chạy trực tiếp
trên bất cứ nềntảng nào mà không cần sự chuẩn bị thêm đặc biệt nào chẳng hạn như phần mềm được viết bằng một ngôn ngữ thông dịch hay
được biên dịch trước sang mã bytecode có khả năng di động bằng một
trình thơng dịch hay các gói run-time thường dùng hoặc là thành phần
tiêu chuẩn trên mọi nền tảng”.

4


Hình 1.Cross Platform

 Cross Platform hay Multi Platform là thuật ngữ được sử dụng để chỉ các
ứng dụng đa nền tảng. Hiểu đơn giản, chỉ với một bản code, bạn có thể
phiên dịch và sử dụng trên nhiều nền tảng hệ điều hành khác nhau, các
mơi trường lập trình khác nhau hoặc thậm chí là trên các loại thiết bị phần
cứng vật lý khác nhau. Điều này sẽ giúp lập trình viên tiết kiệm được rất
nhiều cơng sức và thời gian đáng kể.


 Chính vì điều đó mà Cross Platform thường được các lập trình viên ưa
chuộng. Tuy nhiên, dựa vào các ưu và nhược điểm của các Framework
bởi Cross Platform sử dụng Framework đa nền tảng để áp dụng vào cơng
việc của mình.

 Cho đến thời điểm hiện tại, React-Native, Xamarin và Flutter đang được
xem là 3 nền tảng phổ biến nhất được cho phép phát triển ứng dụng trên
smartphone với các hệ điều hành khác nhau (cross-platform mobile
development). Chỉ cần với 1 chương trình đuợc viết thì có thể chạy trên
hầu hết tất cả nền tảng; Cụ thể hơn đó là 1 project nhưng có thể tạo ra
ứng dụng chạy trên các smartphone có hệ điều hành khác nhau.

5


Hình 2. Cross-platform mobile development

2.2.1.2. Ưu điểm, hạn chế của Cross Platform:
- Ưu điểm:
 Khi bạn dùng Cross platform ở nhiều phiên bản khác bạn vẫn có thể sử
dụng một bản code.

 Khi sử dụng Cross platform bạn sẽ tiết kiệm được nhiều chi phí và cơng
sức ngồi viết code.

 Cross platform rất phù hợp cho những dự án lớn và địi hỏi tính linh hoạt
đa dạng.

- Nhược điểm:

 Cross Platform khơng có khả năng khai thác thư viện của Android hoặc
IOS

 Việc cấp phép cho công nghệ của ứng dụng Cross Platform phức tạp và
khó khăn

2.2.2. Restful API:
2.2.2.1. Restful API là gì ?
 RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng
dụng web (thiết kế Web services) để tiện cho việc quản lý các resource.

6


Nó chú trọng vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video,
hoặc dữ liệu động…), bao gồm các trạng thái tài nguyên được định dạng
và được truyền tải qua HTTP.

 API (Application Programming Interface) là một tập các quy tắc và cơ
chế mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một
ứng dụng hay thành phần khác. API có thể trả về dữ liệu mà bạn cần cho
ứng dụng của mình ở những kiểu dữ liệu phổ biến như JSON hay XML.

 REST (REpresentational State** T**ransfer) là một dạng chuyển đổi cấu
trúc dữ liệu, một kiểu kiến trúc để viết API. Nó sử dụng phương thức
HTTP đơn giản để tạo cho giao tiếp giữa các máy. Vì vậy, thay vì sử
dụng một URL cho việc xử lý một số thông tin người dùng, REST gửi
một yêu cầu HTTP như GET, POST, DELETE, vv đến một URL để xử lý
dữ liệu.


 RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các
ứng dụng web để quản lý các resource. RESTful là một trong những kiểu
thiết kế API được sử dụng phổ biến ngày nay để cho các ứng dụng (web,
mobile…) khác nhau giao tiếp với nhau.

2.2.2.2. Hoạt động của restful API:
 REST hoạt động chủ yếu dựa vào giao thức HTTP. Các hoạt động cơ bản
nêu trên sẽ sử dụng những phương thức HTTP riêng.
+ GET (SELECT): Trả về một Resource hoặc một danh sách Resource.
+ POST (CREATE): Tạo mới một Resource.
+ PUT (UPDATE): Cập nhật thông tin cho Resource.
+ DELETE (DELETE): Xoá một Resource.

 Những phương thức hay hoạt động này thường được gọi là CRUD tương
ứng với Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa.

 Hiện tại đa số lập trình viên viết RESTful API giờ đây đều chọn JSON là
format chính thức nhưng cũng có nhiều người chọn XML làm format, nói
chung dùng thế nào cũng được miễn tiện và nhanh.

7


2.2.2.3. Express JS:
 Expressjs là một framework được xây dựng trên nền tảng của Nodejs. Nó
cung cấp các tính năng mạnh mẽ để phát triển web hoặc mobile.
Expressjs hỗ trợ các method HTTP và midleware tạo ra API vô cùng
mạnh mẽ và dễ sử dụng.

 Tổng hợp một số chức năng chính của Expressjs như sau:

+ Thiết lập các lớp trung gian để trả về các HTTP request.
+ Define router cho phép sử dụng với các hành động khác nhau dựa trên
phương thức HTTP và URL.
+ Cho phép trả về các trang HTML dựa vào các tham số.

2.2.3. WebSocket:
2.2.3.1. Khái niệm:
 WebSocket là một giao thức truyền tải dữ liệu hai chiều (full-duplex) trên
web, cho phép truyền tải dữ liệu trong thời gian thực giữa trình duyệt web
và máy chủ. WebSocket cho phép một kết nối duy trì giữa máy khách và
máy chủ, vì vậy các thơng tin có thể được gửi đi và nhận lại một cách
hiệu quả và nhanh chóng mà khơng cần phải thiết lập kết nối mới mỗi khi
truyền tải thông tin.

 WebSocket thường được sử dụng để phát triển các ứng dụng web thời
gian thực như trò chơi trực tuyến, ứng dụng trò chuyện và các ứng dụng
cập nhật dữ liệu trực tiếp. WebSocket được thiết kế để thay thế các giải
pháp truyền tải dữ liệu trực tiếp khác như Ajax hoặc Comet, vì nó có hiệu
suất cao hơn và tiết kiệm năng lượng hơn.

2.2.3.2. Ưu và nhược điểm:
Ưu điểm:
o Giao tiếp hai chiều: WebSocket cung cấp khả năng giao tiếp hai
chiều giữa trình duyệt và máy chủ, cho phép gửi và nhận dữ liệu
cùng một lúc. Điều này rất hữu ích cho các ứng dụng thời gian

8


thực như trò chơi trực tuyến, ứng dụng trò chuyện và cập nhật dữ

liệu trực tiếp.

o Hiệu suất cao: WebSocket có hiệu suất cao hơn so với các giải
pháp truyền tải dữ liệu trực tiếp khác như Ajax hoặc Comet. Với
WebSocket, khơng có độ trễ trong q trình thiết lập kết nối và
truyền tải dữ liệu nhanh chóng.

o Tiết kiệm năng lượng: WebSocket sử dụng kết nối duy trì, cho
phép truyền tải dữ liệu mà không cần gửi các yêu cầu HTTP
không cần thiết. Điều này giúp tiết kiệm băng thông mạng và năng
lượng của máy khách và máy chủ.

Nhược điểm:
o Hạn chế tương thích: Mặc dù hầu hết các trình duyệt hiện đại đều
hỗ trợ WebSocket, nhưng vẫn có một số trình duyệt cũ hơn khơng
hỗ trợ giao thức này. Điều này có thể gây ra sự khơng tương thích
giữa các phiên bản trình duyệt và u cầu sử dụng các giải pháp
thay thế cho các trình duyệt khơng hỗ trợ WebSocket.

o Thiết lập kết nối ban đầu phức tạp: Trong quá trình thiết lập kết
nối ban đầu, WebSocket sử dụng một số yêu cầu HTTP để thiết
lập kênh truyền thơng. Điều này có thể tạo ra một số độ trễ ban
đầu và tác động đến hiệu suất trong giai đoạn khởi đầu.

2.3.

Công nghệ sử dụng:

2.3.1. Flutter:
2.3.1.1. Flutter là gì ?

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

2.3.1.2. Flutter giúp phát triển ứng dụng như thế nào ?

9



×