Tải bản đầy đủ (.pdf) (75 trang)

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

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 (1.55 MB, 75 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN

Nguyễn Đình Duy – 20521236
Vũ Viết Huy – 20521420

ĐỒ ÁN MƠN HỌC

XÂY DỰNG ỨNG DỤNG ĐẶT PHỊNG KHÁCH SẠN

GIẢNG VIÊN GIẢNG DẠY
THÁI THỤY HÀN UYỂN
TP. HỒ CHÍ MINH, 2023

LỜI CẢM ƠN
Đồ án với đề tài “XÂY DỰNG ỨNG DỤNG ĐẶT PHÒNG KHÁCH
SẠN” là minh chứng cho quá trình cố gắng khơng ngừng trong việc tìm tịi,
học hỏi trong suốt hơn 3 năm học tập tại trường Đại học Công nghệ Thông
tin. Thể hiện khả năng của bản thân trong việc áp dụng kiến thức chuyên
môn vào giải quyết bài toán thực tế.


Trong quá trình thực hiện đồ án, em đã nhận được sự hướng dẫn tận tình từ
q thầy cơ, sự giúp đỡ và hỗ trợ từ gia đình cũng như bạn bè. Một cách đặc
biệt, em xin được gửi lời cảm ơn chân thành đến:
● Các thầy cô trường Đại học Cơng nghệ Thơng Tin nói chung và các
thầy cơ trong Khoa Cơng nghệ Phần mềm nói riêng đã tận tình
truyền đạt kiến thức tới em trong những năm học tập tại trường. Đó
là tài sản quý báu đã giúp em hoàn thành đồ án và cũng là hành
trang cho con đường sự nghiệp của bản thân sau này.


● Em xin được gửi lời cảm ơn sâu sắc tới cô Thái Thụy Hàn Uyển,
người đã trực tiếp hướng dẫn, chỉ bảo, giúp đỡ em những lúc khó
khăn, đưa ra những lời khun bổ ích để khố luận được hồn thành
đúng tiến độ và đáp ứng các yêu cầu đề ra ban đầu.
Nhóm thực hiện

Trường Đại học Cơng nghệ Thơng tin, tháng 7 năm 2023

MỤC LỤC
MỤC LỤC............................................................................................................................................... 2
CHƯƠNG I. GIỚI THIỆU ĐỀ TÀI.......................................................................................................... 5
1. Giới thiệu chung........................................................................................................................... 5
2. Mục tiêu đề tài.............................................................................................................................. 5
2.1. Lý thuyết.............................................................................................................................. 5
2.2. Mục tiêu............................................................................................................................... 6
3. Quá trình hiện thực:......................................................................................................................6
4. Tổng quan về chức năng..............................................................................................................7
CHƯƠNG II. CƠ SỞ LÝ THUYẾT.........................................................................................................8
1. Hệ điều hành Android................................................................................................................... 8
2. Ngôn ngữ lập trình JavaScript...................................................................................................... 8
3. Hệ quản trị cơ sở dữ liệu Firebase...............................................................................................9


3.1. Firebase là gì?..................................................................................................................... 9
3.2. Firebase Realtime database................................................................................................9
3.3. Firebase Authentication....................................................................................................... 9
3.4. Firebase Hosting..................................................................................................................9
3.5. Ưu điểm của Firebase......................................................................................................... 9
3.6. Nhược điểm của Firebase................................................................................................. 10
4. Hệ quản trị cơ sở dữ liệu Mongodb............................................................................................10

4.1. Mongodb là gì?.................................................................................................................. 10
4.2. Đặc điểm............................................................................................................................10
4.3. Ưu điểm của Mongodb...................................................................................................... 11
4.4. Nhược điểm của Mongodb................................................................................................ 11
5. NodeJs........................................................................................................................................11
5.1. Nodejs là gì?...................................................................................................................... 11
5.2. Đặc điểm............................................................................................................................ 11
5.3. Ưu điểm của Nodejs.......................................................................................................... 12
5.4. Nhược điểm của Nodejs....................................................................................................12
CHƯƠNG III. XÂY DỰNG HỆ THỐNG................................................................................................12
1. Xây dựng kiến trúc hệ thống...................................................................................................... 12
1.1. Công nghệ sử dụng........................................................................................................... 12
1.2. Sơ đồ Use case................................................................................................................. 13
1.3. Mô tả Use case user..........................................................................................................15
1.4. Mô tả use case admin app.................................................................................................16
1.5. Mô tả use case admin hotel...............................................................................................17
CHƯƠNG IV. ĐẶC TẢ USE CASE..................................................................................................... 18
1.1. Đặc tả use case user............................................................................................................... 18
1.1.1. Đăng ký...........................................................................................................................18
1.1.2. Đăng nhập với email và mật khẩu.................................................................................. 19
1.1.3. Đăng nhập bằng Google.................................................................................................20
1.1.4. Tạo đơn đặt phòng......................................................................................................... 22
1.1.5. Chọn số lượng khách hàng............................................................................................ 23
1.1.6. Tìm kiếm khách sạn........................................................................................................24
1.1.7. Xem đơn đặt phịng........................................................................................................ 25
1.1.8. Đánh giá......................................................................................................................... 26
1.1.9. Hủy đặt phòng................................................................................................................ 27
1.1.10. Cài đặt cá nhân.............................................................................................................28
1.1.11. Đổi mật khẩu................................................................................................................. 30
1.1.12. Đăng xuất..................................................................................................................... 31

1.2. Đặc tả use case admin app..................................................................................................... 32
1.2.1. Đăng nhập...................................................................................................................... 32
1.2.2. Đăng ký tài khoản cho admin khách sạn........................................................................ 33
1.2.3. Tạo mới khách sạn......................................................................................................... 34
1.2.4. Xem khách sạn............................................................................................................... 35
1.2.5. Xóa khách sạn................................................................................................................ 36


1.2.6. Bật tắt active khách sạn..................................................................................................37
1.2.7. Chỉnh sửa thông tin ứng dụng........................................................................................ 38
1.2.8. Đăng xuất....................................................................................................................... 39
1.2.9. Doanh thu....................................................................................................................... 40
1.3. Đặc tả use case admin khách sạn...........................................................................................41
1.3.1. Đăng nhập...................................................................................................................... 41
1.3.2. Tạo phịng.......................................................................................................................43
1.3.3. Sửa phịng...................................................................................................................... 44
1.3.4. Xóa phịng...................................................................................................................... 45
1.3.5. Xác nhận đặt phịng........................................................................................................46
1.3.6. Hủy đặt phịng................................................................................................................ 47
1.3.7. Sửa thơng tin khách sạn.................................................................................................49
1.3.8. Xem doanh thu............................................................................................................... 50
1.3.9. Đăng xuất....................................................................................................................... 51
2. Mô tả các màn hình.................................................................................................................... 52
2.1. Màn hình đăng nhập..........................................................................................................52
2.2. Màn hình đăng ký.............................................................................................................. 53
2.3. Màn hình chính.................................................................................................................. 54
2.4. Màn hình thơng tin khách sạn............................................................................................55
2.5. Màn hình thơng tin khách sạn (Danh sách phịng)............................................................ 56
2.6. Màn hình chọn ngày đặt phịng......................................................................................... 57
2.7. Màn hình tìm kiếm............................................................................................................. 58

2.8. Màn hình kết quả tìm kiếm................................................................................................ 59
2.9. Màn hình thơng tin phịng của khách sạn..........................................................................60
2.10. Màn hình đặt phịng.........................................................................................................61
2.11. Màn hình profile............................................................................................................... 63
2.12. Màn hình lịch sử đặt phịng............................................................................................. 64
2.13. Màn hình chính admin app.............................................................................................. 65
2.14. Màn hình thêm mới khách sạn........................................................................................ 65
2.15. Màn hình doanh thu.........................................................................................................67
2.16. Màn hình chính của admin khách sạn............................................................................. 67
2.17. Màn hình thêm phịng......................................................................................................68
2.18. Màn hình xác nhận đơn đặt phịng..................................................................................69
2.19. Màn hình chỉnh sửa thơng tin phịng............................................................................... 69
3. Sơ đồ lớp....................................................................................................................................71
4. Sơ đồ hoạt động......................................................................................................................... 72
4.1. Hoạt động đăng nhập........................................................................................................ 72
4.2. Hoạt động đăng ký.............................................................................................................73
4.3. Hoạt động xác nhận đặt phòng..........................................................................................73
CHƯƠNG V. KẾT LUẬN......................................................................................................................74
1. Kết quả đạt được........................................................................................................................74
2. Ưu điểm......................................................................................................................................74
3. Nhược điểm và giải pháp........................................................................................................... 74


TÀI LIỆU THAM KHẢO........................................................................................................................74

CHƯƠNG I. GIỚI THIỆU ĐỀ TÀI
1. Giới thiệu chung
Hiện tại, công nghệ đang phát triển ngày càng nhanh và được sử dụng trong nhiều
lĩnh vực khác nhau, bao gồm cả kinh tế và cuộc sống hàng ngày. Một trong những điểm
nổi bật là việc áp dụng công nghệ thông tin vào hầu hết các hoạt động, giúp nhanh chóng

thực hiện cơng việc và đạt được kết quả tốt hơn.
Xã hội phát triển đã đem đến một cuộc sống tốt hơn và thu nhập kinh tế tăng lên.
Điện thoại thông minh đã trở thành một mặt hàng phổ biến và không thể thiếu trong cuộc
sống hàng ngày. Tuy nhiên, việc đặt phòng trực tuyến đã trở nên phổ biến hơn vì nó tiết
kiệm thời gian và cơng sức cho khách hàng, cho phép họ tìm kiếm và chọn lựa các phịng
khách sạn u thích mà khơng cần phải đến nhiều nơi. Vì nhu cầu đặt phịng khách sạn là
một nhu cầu cơ bản của người du lịch và các nhà lữ hành. Đặt phòng khách sạn qua một
ứng dụng rất tiện lợi và thuận tiện cho người dùng, giúp họ tìm kiếm và so sánh các khách
sạn trong vùng đến, xem hình ảnh và đánh giá của khách hàng trước khi đặt phòng, và hủy
hoặc thay đổi đặt phòng của họ một cách dễ dàng.
Đặt phòng khách sạn qua một ứng dụng cũng là một công cụ hữu ích cho các
khách sạn để quảng bá và bán các phòng của họ, tăng số lượng khách hàng và tăng doanh
thu của họ.
Việc tạo ra một ứng dụng đặt phòng khách sạn cũng có thể là một cơ hội kinh
doanh khá lớn và có khả năng phát triển, bạn có thể kiếm được thu nhập từ việc hợp tác
với các khách sạn và cung cấp dịch vụ đặt phòng cho người dùng.
Cùng với các lý do đã nêu trên, nhóm em đã quyết định chọn đề tài "Xây dựng ứng
dụng đặt phòng khách sạn". Người dùng chỉ cần các thao tác đơn giản trên điện thoại di
động là có thể đặt khách sạn một cách nhanh chóng.

2. Mục tiêu đề tài
2.1. Lý thuyết
- Nghiên cứu về các công nghệ liên quan đến việc xây dựng một ứng dụng đặt phòng
khách sạn, bao gồm các ngơn ngữ lập trình, cơng cụ phát triển, cơ sở dữ liệu và các


dịch vụ đám mây.
- Học cách sử dụng các công cụ và môi trường phát triển phù hợp để xây dựng ứng
dụng đặt phịng khách sạn.
- Tìm hiểu và sử dụng các tính năng và dịch vụ của các nền tảng đám mây, như

Firebase, để lưu trữ và quản lý dữ liệu cho ứng dụng.
- Nghiên cứu các phương pháp phát triển ứng dụng đa nền tảng để có thể triển khai
ứng dụng trên nhiều hệ điều hành khác nhau.

2.2. Mục tiêu
- Xây dựng một ứng dụng đặt phòng khách sạn với giao diện thân thiện và dễ sử
dụng, cho phép người dùng dễ dàng tìm kiếm và đặt phịng khách sạn theo yêu cầu
của họ.
- Cung cấp cho người dùng thông tin chi tiết về các khách sạn, bao gồm hình ảnh,
giá phịng, đánh giá của khách hàng và các tiện nghi khác.
- Hỗ trợ người dùng trong việc thanh tốn và xác nhận đặt phịng thơng qua các
phương thức thanh tốn an tồn và tiện lợi.
- Cung cấp chức năng để người dùng có thể quản lý và theo dõi các đơn đặt phòng
của họ, bao gồm cả việc hủy hoặc thay đổi đặt phịng.

3. Q trình hiện thực:
- Nghiên cứu thị trường và khách hàng cần: Trước khi bắt đầu phát triển ứng dụng,
chúng tôi sẽ tiến hành nghiên cứu thị trường và khách hàng cần để hiểu rõ nhu cầu
của người dùng và các yêu cầu của họ về một ứng dụng đặt phòng khách sạn.
- Thiết kế giao diện người dùng: Sau khi nghiên cứu xong, chúng tôi sẽ tiến hành
thiết kế giao diện người dùng cho ứng dụng, bao gồm cả các màn hình và chức
năng cần thiết cho việc đặt phòng khách sạn.
- Xây dựng cơ sở dữ liệu: Tiếp theo, chúng tôi sẽ xây dựng cơ sở dữ liệu cho ứng
dụng đặt phịng khách sạn. Cơ sở dữ liệu sẽ chứa thơng tin về các khách sạn,
phòng, giá phòng, đánh giá khách hàng và các đơn đặt phòng của người dùng.
- Xây dựng các chức năng cơ bản: Sau khi cơ sở dữ liệu được xây dựng xong, chúng
tôi sẽ tiến hành xây dựng các chức năng cơ bản của ứng dụng, bao gồm các chức


năng tìm kiếm và đặt phịng khách sạn theo u cầu người dùng, xem thông tin chi

tiết về khách sạn và phịng, thanh tốn và xác nhận đặt phịng.
- Xây dựng chức năng quản lý và theo dõi đơn đặt phòng: Để giúp người dùng dễ
dàng quản lý và theo dõi các đơn đặt phịng của họ, chúng tơi sẽ xây dựng chức
năng cho phép người dùng có thể xem lại các đơn đặt phòng đã đặt, huỷ hoặc thay
đổi các đơn đặt phịng cũ.
- Kiểm thử và bảo trì: Sau khi hồn thành việc xây dựng, chúng tơi sẽ tiến hành kiểm
thử ứng dụng để đảm bảo nó hoạt động tốt và đáp ứng các yêu cầu của người
dùng. Sau đó, chúng tơi sẽ bảo trì và cập nhật thường xuyên để đảm bảo ứng dụng
hoạt động tốt

4. Tổng quan về chức năng
- Tìm kiếm và đặt phịng khách sạn: Người dùng có thể tìm kiếm và đặt phịng
khách sạn theo địa điểm, ngày đến và ngày đi, số người lưu trú và giá phịng. - Xem
thơng tin chi tiết về khách sạn và phịng: Người dùng có thể xem thơng tin chi tiết
về khách sạn và các phịng có sẵn, bao gồm hình ảnh, mơ tả, tiện ích và đánh giá
khách hàng.
- Thanh toán và xác nhận đặt phịng: Sau khi chọn phịng, người dùng sẽ có thể thanh
tốn cho đơn đặt phịng. Sau khi hồn tất thanh tốn, người dùng sẽ nhận được
xác nhận đặt phịng và có thể xem lại thơng tin đặt phịng tại màn hình "Lịch sử
đặt phịng" của ứng dụng.
- Quản lý và theo dõi đơn đặt phịng: Người dùng có thể xem lại các đơn đặt phòng
đã đặt, huỷ hoặc thay đổi các đơn đặt phịng cũ tại màn hình "Lịch sử đặt phòng"
của ứng dụng.
- Đánh giá khách sạn và phòng: Sau khi sử dụng dịch vụ của khách sạn, người dùng
có thể đánh giá khách sạn và phịng mình đã sử dụng, góp ý và đóng góp cho việc
cải thiện dịch vụ của khách sạn trong tương lai.

- Quản lý khách sạn:
- Xem thơng tin về khách sạn: Admin có thể xem các thông tin về khách sạn trong hệ
thống, bao gồm tên khách sạn, địa chỉ, mơ tả, hình ảnh và tiện ích cung cấp. - Quản lý

thơng tin khách sạn: Admin có thể thêm, sửa hoặc xóa thơng tin về khách sạn trong
hệ thống.
- Quản lý phòng: Admin có thể thêm, sửa hoặc xóa thơng tin về các phịng trong
khách sạn, bao gồm thơng tin về loại phịng, số người lưu trú, giá phịng và hình
ảnh.
- Quản lý đơn đặt phịng: Admin có thể xem và quản lý các đơn đặt phịng trong hệ
thống, bao gồm thơng tin về người dùng, khách sạn, phòng và trạng thái của đơn


đặt phòng.

- Quản lý ứng dụng:
- Quản lý người dùng: Admin có thể xem và quản lý danh sách người dùng trong hệ
thống, bao gồm các thông tin về tên người dùng, địa chỉ email và quyền hạn. - Thống
kê và báo cáo: Admin có thể xem và tạo các báo cáo về hoạt động của hệ thống, bao
gồm số lượng đơn đặt phòng theo từng thời gian, doanh thu theo từng khách sạn,
thông tin về người dùng đăng ký và sử dụng dịch vụ. Các báo cáo này có thể giúp cho
admin có cái nhìn tổng quan hơn về hoạt động của hệ thống và có thể dựa trên đó để
quyết định các chiến lược và kế hoạch phát triển trong tương lai.

CHƯƠNG II. CƠ SỞ LÝ THUYẾT
1. Hệ điều hành Android
- Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho
các thiết bị di động có màn hình cảm ứng như điện thoại thơng minh và máy
tính bảng. Ban đầu, Android được phát triển bởi Android Inc. với sự hỗ trợ
tài chính từ Google và sau này được chính Google mua lại vào năm 2005.
- Android ra mắt vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết
bị cầm tay mở: một hiệp hội gồm các công ty phần cứng, phần mềm, và viễn
thông với mục tiêu đẩy mạnh các tiêu chuẩn mở cho các thiết bị di
động. Chiếc điện thoại đầu tiên chạy Android được bán vào năm 2008. Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép

Apache. Chính mã nguồn mở cùng với một giấy phép khơng có nhiều ràng
buộc đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình
viên nhiệt huyết được điều chỉnh và phân phối Android một cách tự do. Ngồi
ra, Android cịn có một cộng đồng lập trình viên đơng đảo chun viết các
ứng dụng để mở rộng chức năng của thiết bị, bằng một loại ngơn ngữ lập trình
Java có sửa đổi. Tháng 10 năm 2012, có khoảng 700.000 ứng dụng trên
Android, và số lượt tải ứng dụng từ Google Play, cửa hàng ứng dụng chính
của Android, ước tính khoảng 25 tỷ lượt.
2. Ngơn ngữ lập trình JavaScript
- JavaScript thường được viết tắt JS, là một ngơn ngữ lập trình đó là một trong những
công nghệ cốt lõi của World Wide Web, cùng với HTML và CSS. Hơn 97% trang
web sử dụng JavaScript ở phía máy khách cho hành vi của trang web , thường kết
hợp các thư viện của bên thứ ba . Tất cả các trình duyệt web chính đều có một
cơng cụ JavaScript chun dụng để thực thi mã trên thiết bị của người dùng.
- JavaScript là một ngôn ngữ lập trình máy tính động. Nó nhẹ và được sử dụng phổ
biến nhất như một phần của các trang web, mà việc triển khai của chúng cho phép
tập lệnh phía máy khách tương tác với người dùng và tạo các trang động. Nó là
một ngơn ngữ lập trình thơng dịch với khả năng hướng đối tượng. JavaScript lần
đầu tiên được biết đến với cái tên LiveScript, nhưng Netscape đã đổi tên nó thành


JavaScript, có thể vì sự thú vị được tạo ra bởi Java. JavaScript xuất hiện lần đầu
tiên trong Netscape 2.0 vào năm 1995 với tên LiveScript . Cốt lõi mục đích chung
của ngơn ngữ đã được nhúng trong Netscape, Internet Explorer và các trình duyệt
web khác.
- JavaScript là ngơn ngữ biên dịch cấp cao , thường vừa kịp thời , tn theo tiêu chuẩn
ECMAScript . Nó có tính năng nhập động , hướng đối tượng dựa trên nguyên mẫu
và các chức năng hạng nhất . Nó là đa mơ hình , hỗ trợ các phong cách lập trình
theo hướng sự kiện , chức năng và mệnh lệnh . Nó có các giao diện lập trình ứng
dụng (API) để làm việc với văn bản, ngày tháng, biểu thức chính quy , cấu trúc dữ

liệu chuẩn và Mơ hình đối tượng tài liệu (DOM).
3. Hệ quản trị cơ sở dữ liệu Firebase

3.1. Firebase là gì?
Firebase là một nền tảng mà Google cung cấp để phát triển các ứng dụng di động và trang
web, hỗ trợ Developer trong việc đơn giản hóa các thao tác với dữ liệu và không cần tác
động tới backend hay server

3.2. Firebase Realtime database
Đầu tiên, để sử dụng nền tảng này tạo ứng dụng, lập trình viên cần đăng ký tài khoản
Firebase. Đăng ký xong, bạn sẽ sở hữu một Realtime Database có dạng JSON được đồng
bộ thời gian đến tất cả kết nối client
Dữ liệu trong các database được tự động cập nhật liên tục khi lập trình viên tiến hành
phát triển ứng dụng. Sau khi được cập nhật, những dữ liệu này sẽ được truyền tải thơng
qua kết nối SSL có chứng nhận 2048 bit
Tại những ứng dụng đa nền tảng toàn bộ máy khách đều dùng chung một database. Trong
trường hợp kết nối Internet bị gián đoạn, các dữ liệu sẽ được lưu trữ trên local và cập nhật
khi đường truyền ổn định

3.3. Firebase Authentication
Hoạt động kế tiếp của Firebase là tạo lập quy trình xác thực người dùng thông qua các
phương tiện như Google, Email, GitHub, Facebook, Twitter và xác thực nặc danh đối với
các ứng dụng. Việc xác thực giúp bảo vệ an tồn dữ liệu về thơng tin cá nhân của người
dùng mạng

3.4. Firebase Hosting
Các thức hoạt động tiêu biểu cuối cùng, không thể không nhắc đến của Firebase là cung
cấp hosting. Firebase hosting thông qua sự hỗ trợ của SSL đến từ mạng CDN. Nhờ vậy
mà lập trình viên có thể tiết kiệm rất nhiều thời gian thiết kế cũng như phát triển ứng
dụng.


3.5. Ưu điểm của Firebase
- Tốc độ cao: Firebase hỗ trợ phát triển ứng dụng với tốc độ nhanh chóng, giảm bớt
thời gian phát triển và tiếp thị ứng dụng


- Đơn giản, dễ dàng trong sử dụng: Người dùng có thể tạo tài khoản Firebase bằng tài
khoản Google và cũng như sử dụng nền tảng này trong phát triển ứng dụng một
cách dễ dàng
- Một nền tảng, đa dịch vụ: Firebase cung cấp đầy đủ các dịch vụ hỗ trợ phát triển
web, bạn có thể chọn database Firestore hoặc Realtime theo ý muốn
- Là một phần của Google: Firebase đã được mua lại và hiện tại đang là một phần của
Google. Nó khai thác triệt để sức mạnh và các dịch vụ sẵn có của Google - Tập trung
phát triển chủ yếu về giao diện người dùng: Firebase cho phép lập trình viên tập
trung chủ yếu vào phát triển phần giao diện người dùng nhờ kho Backend mẫu phong
phú đa dạng
- Khơng có máy chủ: Điều này giúp Firebase có khả năng tối ưu hóa về hiệu suất
làm việc thông qua mở rộng cụm database
- Học máy: Firebase cung cấp học máy cho lập trình viên, hỗ trợ tối đa cho việc phát
triển ứng dụng
- Tạo ra lưu lượng truy cập: Với khả năng hỗ trợ tạo lập các chỉ mục, Firebase giúp
nâng cao thứ hạng của ứng dụng trên bảng xếp hạng Google, từ đó tăng lượt traffic Theo dõi lỗi: Firebase là công cụ phát triển, khắc phục lỗi tuyệt vời - Sao lưu:
Firebase sao lưu thường xun, giúp đảm bảo tính sẵn có và bảo mật thông tin cho dữ
liệu

3.6. Nhược điểm của Firebase
- Không phải mã nguồn mở
- Chỉ hoạt động trên CSDL NoSQL
- Lập trình viên khơng được truy cập vào mã nguồn
- Truy vấn chậm

- Phạm vi hoạt động bị hạn chế ở một vài quốc gia
- Một vài dịch vụ cần trả phí, chi phí dành cho Firebase tương đối lớn và không ổn
định
- Thiếu Dedicated Servers và cả hợp đồng doanh nghiệp
4. Hệ quản trị cơ sở dữ liệu Mongodb
4.1. Mongodb là gì?
- MongoDB là một hệ quản trị cơ sở dữ liệu phi quan hệ, lưu trữ dữ liệu dưới dạng
JSON-like (BSON).
- MongoDB sử dụng NoSQL để quản lý và truy xuất dữ liệu.

4.2. Đặc điểm
+ Có thể lưu trữ dữ liệu dưới nhiều dạng khác nhau, bao gồm JSON-like (BSON), giúp
dễ dàng lưu trữ và truy xuất dữ liệu.
+ Sử dụng cấu trúc tài liệu linh động (Flexible document model), khác với mơ hình
bảng của hệ quản trị cơ sở dữ liệu quan hệ, giúp dễ dàng thay đổi cấu trúc của tài liệu và
quản lý dữ liệu phức tạp hơn.


+ Hỗ trợ các tính năng Quản lý dữ liệu phân tán (Distributed data management), giúp
mở rộng quy mô hệ thống và tăng tính sẵn sàng của hệ thống.
+ Cung cấp query ngôn ngữ được gọi là MongoDB Query Language (MQL) cùng với
các tính năng truy xuất hiệu quả dữ liệu và bạn cũng có thể sử dụng các thư viện để kết
nối và thực hiện query cho MongoDB từ các ngơn ngữ lập trình phổ biến khác như
Javascript, Java, Python, Ruby, C#.

4.3. Ưu điểm của Mongodb
- MongoDB có các ưu điểm sau:
+ Mongodb hỗ trợ quản lý dữ liệu phân tán, có khả năng mở rộng hồn tồn mà khơng
bị giới hạn bởi chi phí phần cứng.
+ MongoDB có các API dễ sử dụng và tài liệu hướng dẫn phong phú, giúp cho nhà phát

triển có thể nhanh chóng học và triển khai những ứng dụng mới.
+ Hỗ trợ các tính năng bảo mật và khóa dữ liệu riêng tư cực kỳ cao, khơng có giới hạn
gì đối với việc lập trình các ứng dụng nhỏ và có giá thành thấp.
+ Có thể lưu trữ các tài liệu (document) có cấu trúc linh hoạt và phong phú, khơng giới
hạn về kích cỡ và số lượng.
4.4. Nhược điểm của Mongodb
- Tuy nhiên, MongoDB cũng có một số nhược điểm:
+ MongoDB không phù hợp khi xử lý dữ liệu liên quan tới giao dịch, bởi vì MongoDB
khơng có các tính năng giao dịch như các hệ quản trị cơ sở dữ liệu quan hệ truyền thống.
+ MongoDB không hỗ trợ các tính năng thu thập dữ liệu (data aggregations) phức tạp
như nhóm dữ liệu, nhiều phép tính tốn, v.v.
+ Sử dụng MongoDB có thể yêu cầu một lượng bộ nhớ lớn hơn so với các hệ quản trị cơ sở
dữ liệu quan hệ.

5. NodeJs
5.1. Nodejs là gì?
- Node.js là một nền tảng phát triển ứng dụng web mã nguồn mở, được xây dựng trên
nền tảng V8 của Google, cho phép lập trình viên sử dụng Javascript để xây dựng các ứng
dụng web phía server.
5.2. Đặc điểm
- Nodejs bao gồm các tính năng sau:
+ Các thư viện Javascript có sẵn trong Node.js cung cấp cho người lập trình những hàm
có sẵn để xử lý các tác vụ cơ bản, như xử lý file, gửi yêu cầu HTTP, xử lý dữ liệu JSON,
cũng như các cơng cụ bảo mật và mã hóa.
+ Node.js sử dụng cơ chế đưa ra các yêu cầu I/O vào một hàng đợi sự kiện sử dụng khối
lệnh non-blocking cho phép Node.js có khả năng xử lí hàng ngàn phiên đồng thời cùng
một lúc.


+ Có thể sử dụng Node.js để xây dựng các ứng dụng web thời gian thực (real-time) như

các ứng dụng game trực tuyến, ứng dụng chat real-time, ứng dụng dữ liệu thời gian thực.
+ Node.js cũng cung cấp các công cụ cho phép phát triển các ứng dụng đơn giản bản đồ
để bất kỳ ai cũng có thể tự xây dựng ứng dụng nhanh chóng.

5.3. Ưu điểm của Nodejs
- Node.js có một số ưu điểm sau:
+ Dễ dàng để học và sử dụng, vì nó sử dụng ngơn ngữ lập trình Javascript phổ biến.
+ Có thể sử dụng lại các thành phần một cách dễ dàng, giúp cho các người phát triển
nhanh chóng xây dựng các ứng dụng một cách nhanh chóng.
+ Có tính năng non-blocking I/O, cho phép xử lý đồng thời nhiều phiên kết nối với độ
trễ thấp.
+ Có khả năng xử lý các yêu cầu đồng thời, vì Node.js sử dụng cơ chế đưa ra các yêu
cầu IO vào một hàng đợi sự kiện.
5.4. Nhược điểm của Nodejs
- Một số nhược điểm của Node.js là:
+ Nếu không được chỉnh sửa đúng cách, Node.js có thể gây ra các lỗi bảo mật như các
lỗ hổng Cross-Site Scripting (XSS) hoặc các lỗ hổng trong quản lý cơ sở dữ liệu.
+ Vì Node.js sử dụng Javascript để lập trình các ứng dụng side-server, nên Node.js
mang lại kết quả xử lý chậm hơn so với các ngôn ngữ như Java hoặc C#, đặc biệt là trong
việc xử lý các tác vụ phức tạp.

CHƯƠNG III. XÂY DỰNG HỆ THỐNG
1. Xây dựng kiến trúc hệ thống
1.1. Công nghệ sử dụng
● Ngôn ngữ: JavaScript
● UI Framework: React Native
● UI Design tool: Figma
● Database: MongoDB + Nodejs, Firebase
● IDE:Visual Studio Code



1.2. Sơ đồ Use case

Hình 1. Sơ đồ use case user


Hình 2. Sơ đồ use case admin app


Hình 3. Sơ đồ use case admin khách sạn

1.3. Mơ tả Use case user
STT

Chức năng

Mô tả


1

Đăng nhập

Người dùng sửa dụng tài khoản có role user để đăng
nhập vào ứng dụng

2

Đăng ký


Cho phép người dùng tạo tài khoản để sử dụng
nhiều chức năng hơn của ứng dụng

3

Đăng xuất

Cho phép người dùng đăng xuất tài khoản hiện tại
khỏi ứng dụng

4

Tìm kiếm

Người dùng có thể tìm kiếm tên khách sạn

5

Chọn số
lượng khách

Người dùng có thể thêm dữ liệu số lượng người cho
đơn đặt phịng

6

Tạo đơn đặt
phịng

Người dùng có thể tạo đơn đặt phòng với phòng

trong khách sạn

7

Xem đơn đặt
phịng

Người dùng có thể xem các đơn đặt phịng của mình

8

Đánh giá
khách sạn

Người dùng có thể đánh giá khách sạn sau khi sử dụng.

9

Hủy đơn đặt
phịng

Người dùng có thể hủy đơn đặt phịng

10

Cài đặt cá nhân

Người dùng có thể cá nhân hóa các cài đặt cũng như
thay đổi thơng tin cá nhân.


11

Đổi mật khẩu

Người dùng có thể thay đổi Mật khẩu của tài khoản

12

Đăng xuất

Người dùng có thể thốt khỏi tài khoản đang sử dụng.

Bảng 1. Mô tả use case user

1.4. Mô tả use case admin app
STT

Chức năng

Mô tả

1

Đăng nhập

Admin đăng nhập vào app bằng tải khoản có role
admin app

2


Đăng ký tải
khoản admin
khách sạn

Admin tạo mới 1 tài khoản cho admin khách sạn hợp
tác với ứng dụng


3

Tạo mới khách

Admin tạo mới thông tin của khách sạn hợp tác với ứng

sạn

dụng

4

Xem khách sạn

Admin xem thông tin của khách sạn

5

Xóa khách sạn

Admin quyết định hủy bỏ hợp đồng với khách sạn và
xóa khách sạn ra khỏi hệ thống


6

Bật tắt active
khách sạn

Admin có thể tắt trạng thái hoạt động của các khách sạn

7

Chỉnh sửa
phiên bản,
chính sách và
bảo mật

Admin chỉnh sửa phiên bản, chính sách và bảo mật
cho ứng dụng

8

Doanh thu
các khách
sạn

Admin có thể xem được doanh thu của các khách sạn

9

Đăng xuất


Admin có thể thốt khỏi tài khoản đang sử dụng.

Bảng 2. Mô tả use case admin app

1.5. Mô tả use case admin hotel
STT

Chức năng

Mô tả

1

Đăng nhập

Admin đăng nhập vào app bằng tải khoản có role
admin hotel

2

Tạo phịng

Tạo thêm phịng mới cho khách sạn để người dùng có
thể đặt

3

Sửa phịng

Sửa thơng tin của phịng hiện có


4

Xóa phịng

Xóa phịng hiện có

5

Xác nhận đặt
phịng

Xác nhận phịng mà user đặt

6

Hủy phịng

Hủy phịng mà user đặt


7

Doanh thu

Xem doanh thu của khách sạn

8

Đăng xuất


Đăng xuất khỏi tài khoản admin

Bảng 3. Mô tả use case admin hotel

CHƯƠNG IV. ĐẶC TẢ USE CASE
1.1. Đặc tả use case user
1.1.1. Đăng ký
Use case ID

UC1

Tên

Đăng ký

Mơ tả tóm tắt

Cho phép người dùng tạo tài khoản để sử dụng
nhiều chức năng hơn của ứng dụng

Người thực hiện (Actors)

Người dùng (User)

Sự kiện kích hoạt (Trigger)

Bấm chọn nút Đăng ký

Điều kiện tiên quyết


Email được nhập chưa được đăng ký trước đó và

(Pre conditions)

mật khẩu đủ 6 ký tự

Điều kiện kết quả

Tài khoản mới và thông tin người dùng được lưu vào

(Post conditions)

hệ thống


Kịch bản chính

1. Người dùng bấm chọn nút Đăng ký ngay.

(Basic flow)

2. Hệ thống hiện bản nhập liệu thông tin đăng ký
tài khoản.
3. Nhập thông tin và bấm Đăng ký.
4. Hệ thống kiểm tra tính hợp lệ và tạo tài khoản.

5. Hệ thống lưu lại thông tin người dùng và điều
hướng đến màn hình chính của ứng dụng.
Kịch bản thay thế

(Alternative flow)

3.1. Người dùng nhập thiếu thông tin và bấm Đăng
ký 3.2. Hệ thống hiện thông báo điền thiếu thông
tin. 4.1. Hệ thống hiện tài khoản đã tồn tại.
4.2 Người dùng phải thay đổi tài khoản đăng ký để
tiếp tục.

Bảng 4. Đặc tả chức năng đăng ký

1.1.2. Đăng nhập với email và mật khẩu
Use case ID

UC2

Tên

Đăng nhập bằng email và mật khẩu

Mơ tả tóm tắt

Cho phép người dùng đăng nhập vào ứng dụng với
tài khoản đã được tạo trước đó.

Người thực hiện (Actors)

Người dùng (User)


Sự kiện kích hoạt (Trigger)


Điều kiện tiên quyết

Bấm chọn nút Đăng nhập

Tài khoản và mật khẩu được nhập vào phải hợp lệ.

(Pre conditions)

Điều kiện kết quả

Ứng dụng thông báo đăng nhập thành cơng và

(Post conditions)

điều hướng đến màn hình chính của ứng dụng.

Kịch bản chính

1. Người dùng nhập thơng tin email, mật khẩu

(Basic flow)

và bấm nút Đăng nhập.
2. Hệ thống sẽ kiểm tra tính hợp lệ của tài
khoản. 3. Ứng dụng sẽ điều hướng người dùng
đến màn hình chính của ứng dụng.

Kịch bản thay thế
(Alternative flow)


2.1. Người dùng nhập sai thông tin đăng nhập.
2.2. Hệ thống thông báo tài khoản không hợp lệ,
đăng nhập thất bại.

Bảng 5. Đặc tả chức năng đăng nhập với email và mật khẩu

1.1.3. Đăng nhập bằng Google
Use case ID

UC3

Tên

Đăng nhập bằng Google


Mơ tả tóm tắt

Cho phép người dùng đăng nhập vào ứng dụng với
tài khoản Google

Người thực hiện (Actors)

Sự kiện kích hoạt (Trigger)

Điều kiện tiên quyết

Người dùng (User)


Bấm chọn nút Đăng nhập với Google

Tài khoản Google phải hợp lệ

(Pre conditions)

Điều kiện kết quả

Ứng dụng thông báo đăng nhập thành công và

(Post conditions)

điều hướng đến màn hình chính của ứng dụng.

Kịch bản chính
(Basic flow)

1. Người dùng bấm nút Đăng nhập với Google
và nhập thông tin tài khoản Google
2. Hệ thống sẽ kiểm tra tính hợp lệ của tài
khoản. 3. Ứng dụng sẽ điều hướng người dùng
đến màn hình chính của ứng dụng.

Kịch bản thay thế
(Alternative flow)

2a.1. Người dùng nhập sai thông tin tài khoản Google.
2a.2. Hệ thống thông báo tài khoản không hợp lệ,
đăng nhập thất bại.


Bảng 6. Đặc tả chức năng đăng nhập bằng Google


1.1.4. Tạo đơn đặt phịng
Use case ID

UC4

Tên

Tạo đơn đặt phịng

Mơ tả tóm tắt

Người dùng có thể tạo đơn đặt phịng với phòng
trong khách sạn

Người thực hiện (Actors)

Người dùng (User)

Sự kiện kích hoạt (Trigger)

Bấm vào nút đặt phịng.

Điều kiện tiên quyết (Pre
conditions)
Điều kiện kết quả

Người dùng phải đăng nhập trước

đó

Chuyển đến màn hình thơng tin đặt phịng

(Post conditions)

Kịch bản chính
(Basic flow)

1. Người dùng bấm dấu nút đặt phịng ở màn
hình khách sạn
2. Hệ thống chuyển đến màn hình thơng tin
đặt phịng


Kịch bản thay thế
(Alternative flow)

Bảng 7. Đặc tả chức năng tạo đơn đặt phòng

1.1.5. Chọn số lượng khách hàng
Use case ID

UC5

Tên

Chọn số lượng khách

Mơ tả tóm tắt


Người dùng có thể thêm dữ liệu số lượng người cho
đơn đặt phòng

Người thực hiện (Actors)

Người dùng (User)

Sự kiện kích hoạt (Trigger) Người dùng chọn tăng giảm số lượng ở màn hình thơng
tin đặt phòng
Điều kiện tiên quyết

Người dùng phải đăng nhập và đang tạo đơn đặt hàng.

(Pre conditions)

Điều kiện kết quả
(Post conditions)

Đơn hàng được thêm đúng với số lượng người dùng nhập


Kịch bản chính

1. Người dùng chọn tăng hoặc giảm số lượng ở

(Basic flow)

màn hình thơng tin đặt phfong
2. Đơn hàng có số lượng người đã đặt


Kịch bản thay thế
(Alternative flow)

Bảng 8. Đặc tả chức năng chọn số lượng khách

1.1.6. Tìm kiếm khách sạn
Use case ID

UC6

Tên

Tìm kiếm khách sạn

Mơ tả tóm tắt

Người dùng có thể tìm kiếm tên khách sạn

Người thực hiện (Actors) Người dùng (User)
Sự kiện kích hoạt (Trigger)

Người dùng bấm nút tìm kiếm tại màn hình home.

Điều kiện tiên quyết

Người dùng phải đăng nhập.

(Pre conditions)



Điều kiện kết quả

Hiển thị ra khách sạn người dùng nhập

(Post conditions)

Kịch bản chính

1. Người dùng bấm nút tìm kiếm ở màn hình

(Basic flow)

home 2. Người dùng nhập tên khách sạn.
3. hiển thị khách sạn thành công.

Kịch bản thay thế
(Alternative flow)

Bảng 9. Đặc tả chức năng tìm kiếm

1.1.7. Xem đơn đặt phịng
Use case ID

UC7

Tên

Xem phịng đã đặt


Mơ tả tóm tắt Người dùng có thể xem được phịng vừa đặt và trạng thái của chúng
Người thực hiện (Actors)

Người dùng (User)

Sự kiện kích hoạt (Trigger)

Người dùng chọn vào tab booking,


×