ĐẠ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 WEBSITE ĐẶT PHÒNG KHÁCH SẠN
ONLINE
GV HƯỚNG DẪN:
THS. HUỲNH HỒ THỊ MỘNG TRINH
SV THỰC HIỆN:
NGUYỄN NGỌC TRINH - 20520824
NGUYỄN THÀNH TRUNG - 20520831
TP. HỒ CHÍ MINH, 2023
ĐẠ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 WEBSITE ĐẶT PHÒNG KHÁCH SẠN
ONLINE
GV HƯỚNG DẪN:
THS. HUỲNH HỒ THỊ MỘNG TRINH
SV THỰC HIỆN:
NGUYỄN NGỌC TRINH - 20520824
NGUYỄN THÀNH TRUNG - 20520831
TP. HỒ CHÍ MINH, 2023
LỜI CẢM ƠN
Đầu tiên, nhóm chúng em xin gửi lời cảm ơn chân thành đến tập thể Quý Thầy
Cô Trường Đại học Công nghệ thông tin – Đại học Quốc gia TP. HCM và Quý Thầy
Cô khoa Công nghệ Phần mềm đã giảng dạy và giúp đỡ chúng em trong suốt thời
gian học tập tại trường để chúng em có những kiến thức quý báu làm nền tảng để thực
hiện đề tài này.
Đặc biệt, chúng em xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới Thạc sĩ
Huỳnh Hồ Thị Mộng Trinh – là giảng viên hướng dẫn nhóm trong đề tài này. Cơ đã
trực tiếp hướng dẫn tận tình, sửa chữa và đóng góp nhiều ý kiến quý báu giúp chúng
em vượt qua khó khăn trong quá trình tìm hiểu và thực hiện đề tài của mình. Nhờ có
sự giúp đỡ nhiệt tình của Cơ mà chúng em có thể hồn thành được đề tài này một
cách tốt nhất.
Trong thời gian một học kỳ thực hiện vừa qua, chúng em đã nỗ lực áp dụng
những kiến thức nền tảng được tích lũy đồng thời kết hợp với việc học hỏi và nghiên
cứu những kiến thức mới. Tuy nhiên, do kiến thức và kinh nghiệm khi thực hiện của
nhóm cịn nhiều hạn chế, khó khăn ở từng giai đoạn thực hiện, từ đó có thể dẫn đến
các sai sót trong q trình thực hiện đồ án. Chính vì vậy, chúng em rất mong nhận
được ý kiến góp ý từ phía Q Thầy Cơ nhằm hồn thiện những kiến thức mà chúng
em cịn thiếu sót và có thêm hành trang để chúng em thực hiện tiếp các đề tài khác
trong tương lai.
Một lần nữa nhóm chúng em xin chân thành gửi lời cảm ơn sâu sắc!
Thành phố Hồ Chí Minh, tháng 07 năm 2023
Nguyễn Ngọc Trinh – Nguyễn Thành Trung
NHẬN XÉT CỦA GIẢNG VIÊN
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
MỤC LỤC
TÓM TẮT ĐỒ ÁN ........................................................................................ 13
MỞ ĐẦU ........................................................................................................ 15
1.1. Tên đề tài .....................................................................................................15
1.2. Lý do chọn đề tài .........................................................................................15
1.3. Mục tiêu .......................................................................................................16
1.4. Khảo sát các website cùng đề tài .................................................................16
1.5. Đối tượng và yêu cầu ...................................................................................18
1.5.1.
Đối tượng ...........................................................................................18
1.5.2.
Yêu cầu ..............................................................................................18
1.5.2.1. Yêu cầu chức năng.........................................................................18
1.5.2.2. Yêu cầu phi chức năng ..................................................................19
1.6. Thơng tin nhóm ...........................................................................................20
Chương 2.
CƠ SỞ LÝ THUYẾT........................................................... 21
2.1. Quy trình phát triển phần mềm Scrum – Agile ...........................................21
2.1.1.
Tổng quan về quy trình Scrum – Agile .............................................21
2.1.2.
Ưu nhược điểm của Scrum ................................................................22
2.1.3.
Lý do lựa chọn quy trình Scrum ........................................................23
2.2. Các công nghệ sử dụng ................................................................................24
2.2.1.
ReactJS ..............................................................................................24
2.2.2.
NodeJS ...............................................................................................25
2.2.3.
Firebase..............................................................................................26
2.2.3.1. Firebase Authentication .................................................................27
2.2.3.2. Firebase Firestore...........................................................................27
2.2.3.3. Firebase Hosting ............................................................................28
Chương 3.
PHÂN TÍCH THIẾT KẾ HỆ THỐNG HỆ THỐNG ....... 29
3.1. Sơ đồ Use Case ............................................................................................29
3.2. Danh sách Actor ..........................................................................................31
3.3. Danh sách Use Case ....................................................................................32
3.4. Đặc tả Use Case ...........................................................................................34
3.4.1.
Use Case “Đăng nhập” ......................................................................34
3.4.2.
Use Case “Quên mật khẩu” ...............................................................35
3.4.3.
Use Case “Quản lý tài khoản” ...........................................................37
3.4.4.
Use Case “Quản lý thành viên” .........................................................38
3.4.5.
Use Case “Quản lý khách sạn” ..........................................................39
3.4.6.
Use Case “Quản lý loại khách sạn” ...................................................41
3.4.7.
Use Case “Quản lý phòng” ................................................................42
3.4.8.
Use Case “Quản lý loại phòng” .........................................................44
3.4.9.
Use Case “Quản lý đánh giá” ............................................................45
3.4.10.
Use Case “Quản lý phiếu đặt phòng” ................................................46
3.4.11.
Use Case “Thống kê và lập báo cáo” ................................................47
3.4.12.
Use Case “Quản lý khuyến mãi” .......................................................48
3.4.13.
Use Case “Quản lý phiếu đặt phịng” ................................................50
3.4.14.
Use Case “Quản lý thơng tin cá nhân” ..............................................51
3.4.15.
Use Case “Phản hồi lại đánh giá của khách hàng” ............................52
3.4.16.
Use Case “Đăng nhập” ......................................................................53
3.4.17.
Use Case “Đăng ký” ..........................................................................54
3.4.18.
Use Case “Thay đổi mật khẩu” .........................................................55
3.4.19.
Use Case “Tìm kiếm phịng và khách sạn” .......................................56
3.4.20.
Use Case “Xem chi tiết khách sạn” ...................................................57
3.4.21.
Use Case “Xem chi tiết phịng” .........................................................57
3.4.22.
Use Case “Đặt phịng” .......................................................................58
3.4.23.
Use Case “Thay đổi thơng tin đặt phòng” .........................................59
3.4.24.
Use Case “Hủy đặt phòng” ................................................................60
3.4.25.
Use Case “Đánh giá khách sạn” ........................................................60
3.4.26.
Use Case “Thêm khách sạn vào danh mục u thích” ......................61
3.4.27.
Use Case “Xóa khách sạn khỏi danh mục yêu thích” .......................62
3.4.28.
Use Case “Xem lịch sử đặt phòng” ...................................................63
3.4.29.
Use Case “Xem chi tiết đặt phòng” ...................................................63
3.4.30.
Use Case “Quản lý mã khuyến mãi” .................................................64
3.4.31.
Use Case “Quản lý thông tin cá nhân” ..............................................65
Chương 4.
THIẾT KẾ DỮ LIỆU .......................................................... 66
4.1. Sơ đồ logic ...................................................................................................66
4.2. Danh sách các bảng dữ liệu .........................................................................66
4.3. Mô tả chi tiết các bảng dữ liệu ....................................................................67
4.3.1.
Bảng NguoiDung ...............................................................................67
4.3.2.
Bảng ChoO ........................................................................................67
4.3.3.
Bảng LoaiChoO .................................................................................67
4.3.4.
Bảng Phong .......................................................................................67
4.3.5.
Bảng LoaiPhong ................................................................................68
4.3.6.
Bảng DiaChi ......................................................................................68
4.3.7.
Bảng DanhGia ...................................................................................68
4.3.8.
Bảng YeuThich..................................................................................69
4.3.9.
Bảng PhieuDatPhong ........................................................................69
4.3.10.
Bảng HoaDon ....................................................................................69
4.3.11.
Bảng PhuongThucTT ........................................................................69
4.3.12.
Bảng TienIch .....................................................................................69
Chương 5.
THIẾT KẾ GIAO DIỆN ..................................................... 71
5.1. Sơ đồ màn hình ............................................................................................71
5.2. Danh sách các màn hình ..............................................................................71
5.3. Chi tiết giao diện các màn hình ...................................................................72
5.3.1.
Màn hình trang chủ ............................................................................72
5.3.2.
Màn hình kết quả tìm kiếm................................................................74
5.3.3.
Màn hình chi tiết khách sạn ...............................................................74
5.3.4.
Màn hình đặt phịng ...........................................................................77
5.3.5.
Màn hình thanh tốn ..........................................................................78
5.3.6.
Màn hình thơng tin tài khoản ............................................................78
5.3.7.
Màn hình đăng ký ..............................................................................79
5.3.8.
Màn hình đăng nhập ..........................................................................79
5.3.9.
Màn hình khách sạn u thích ...........................................................80
5.3.10.
Màn hình thay đổi thông tin cá nhân .................................................80
Chương 6.
KẾT LUẬN........................................................................... 82
6.1. Các kết quả đạt được ...................................................................................82
6.2. Một vài hạn chế ...........................................................................................82
6.3. Hướng phát triển ..........................................................................................82
6.3.1.
Hướng phát triển về mặt tính năng ....................................................82
6.3.2.
Hướng phát triển về mặt kỹ thuật ......................................................82
TÀI LIỆU THAM KHẢO ............................................................................ 83
DANH MỤC HÌNH ẢNH
Hình 2.1: Tổng quan về phương pháp Scrum ...........................................................21
Hình 3.1: Sơ đồ Use Case Actor Admin ...................................................................29
Hình 3.2: Sơ đồ Use Case Actor Quản lý khách sạn ................................................30
Hình 3.3: Sơ đồ Use Case Actor Quản lý Khách hàng .............................................31
Hình 4.1: Sơ đồ logic ................................................................................................66
Hình 5.1: Sơ đồ tổng quan các màn hình ..................................................................71
Hình 5.2: Giao diện màn hình trang chủ (1) .............................................................72
Hình 5.3: Giao diện màn hình trang chủ (2) .............................................................73
Hình 5.4: Giao diện màn hình trang chủ (3) .............................................................73
Hình 5.5: Giao diện màn hình trang chủ (4) .............................................................74
Hình 5.6: Giao diện màn hình kết quả tìm kiếm .......................................................74
Hình 5.7: Giao diện màn hình chi tiết khách sạn (1) ................................................75
Hình 5.8: Giao diện màn hình chi tiết khách sạn (2) ................................................75
Hình 5.9: Giao diện màn hình chi tiết khách sạn (3) ................................................76
Hình 5.10: Giao diện màn hình chi tiết khách sạn (4) ..............................................76
Hình 5.11: Giao diện màn hình chi tiết khách sạn (5) ..............................................77
Hình 5.12: Giao diện màn hình đặt phịng (1) ..........................................................77
Hình 5.13: Giao diện màn hình đặt phịng (2) ..........................................................78
Hình 5.14: Giao diện màn hình thanh tốn ...............................................................78
Hình 5.15: Giao diện màn hình thơng tin tài khoản ..................................................79
Hình 5.16: Giao diện màn hình đăng ký ...................................................................79
Hình 5.17: Giao diện màn hình đăng nhập ...............................................................80
Hình 5.18: Giao diện màn hình khách sạn u thích ................................................80
Hình 5.19: Giao diện màn hình thay đổi thơng tin cá nhân ......................................81
DANH MỤC BẢNG BIỂU
Bảng 1.1: So sánh các website đặt phịng online phổ biến .......................................16
Bảng 1.2 :Thơng tin nhóm đồ án ...............................................................................20
Bảng 3.1: Danh sách Actor .......................................................................................31
Bảng 3.2: Danh sách Use Case .................................................................................32
Bảng 3.3: Đặc tả Use Case Đăng nhập .....................................................................34
Bảng 3.4: Đặc tả Use Case Quên mật khẩu ..............................................................35
Bảng 3.5: Đặc tả Use Case Quản lý tài khoản ..........................................................37
Bảng 3.6: Đặc tả Use Case Quản lý thành viên ........................................................38
Bảng 3.7: Đặc tả Use Case Quản lý khách sạn .........................................................39
Bảng 3.8: Đặc tả Use Case Quản lý loại khách sạn ..................................................41
Bảng 3.9: Đặc tả Use Case Quản lý phòng ...............................................................42
Bảng 3.10: Đặc tả Use Case Quản lý loại phòng ......................................................44
Bảng 3.11: Đặc tả Use Case Quản lý đánh giá .........................................................45
Bảng 3.12: Đặc tả Use Case Quản lý phiếu đặt phòng .............................................46
Bảng 3.13: Đặc tả Use Case Thống kê và lập báo cáo..............................................48
Bảng 3.14: Đặc tả Use Case Quản lý khuyến mãi ....................................................48
Bảng 3.15: Đặc tả Use Case Quản lý phiếu đặt phòng .............................................50
Bảng 3.16: Đặc tả Use Case Quản lý thông tin cá nhân ...........................................51
Bảng 3.17: Đặc tả Use Case Phản hồi lại đánh giá của khách hàng .........................52
Bảng 3.18: Đặc tả Use Case Đăng nhập ...................................................................53
Bảng 3.19: Đặc tả Use Case Đăng ký .......................................................................54
Bảng 3.20: Đặc tả Use Case Thay đổi mật khẩu .......................................................55
Bảng 3.21: Đặc tả Use Case Tìm kiếm phịng và khách sạn ....................................56
Bảng 3.22: Đặc tả Use Case Xem chi tiết khách sạn ................................................57
Bảng 3.23: Đặc tả Use Case Xem chi tiết phòng ......................................................57
Bảng 3.24: Đặc tả Use Case Đặt phòng ....................................................................58
Bảng 3.25: Đặc tả Use Case Thay đổi thơng tin đặt phịng ......................................59
Bảng 3.26: Đặc tả Use Case Hủy đặt phòng .............................................................60
Bảng 3.27: Đặc tả Use Case Đánh giá khách sạn .....................................................61
Bảng 3.28: Đặc tả Use Case Thêm khách sạn vào danh mục yêu thích ...................61
Bảng 3.29: Đặc tả Use Case Xóa khách sạn khỏi danh mục u thích.....................62
Bảng 3.30: Đặc tả Use Case Xem lịch sử đặt phòng ................................................63
Bảng 3.31: Đặc tả Use Case Xem chi tiết đặt phòng ................................................64
Bảng 3.32: Đặc tả Use Case Quản lý mã khuyến mãi ..............................................64
Bảng 3.33: Đặc tả Use Case Quản lý thông tin cá nhân ...........................................65
Bảng 4.1: Danh sách các bảng dữ liệu ......................................................................66
Bảng 4.2: Mô tả chi tiết bảng NguoiDung ................................................................67
Bảng 4.3: Mô tả chi tiết bảng ChoO .........................................................................67
Bảng 4.4: Mô tả chi tiết bảng LoaiChoO ..................................................................67
Bảng 4.5: Mô tả chi tiết bảng Phong .........................................................................67
Bảng 4.6: Mô tả chi tiết bảng LoaiPhong .................................................................68
Bảng 4.7: Mô tả chi tiết bảng DiaChi .......................................................................68
Bảng 4.8: Mô tả chi tiết bảng DanhGia ....................................................................68
Bảng 4.9: Mô tả chi tiết bảng YeuThich ...................................................................69
Bảng 4.10: Mô tả chi tiết bảng PhieuDatPhong ........................................................69
Bảng 4.11: Mô tả chi tiết bảng HoaDon ...................................................................69
Bảng 4.12: Mô tả chi tiết bảng PhuongThucTT........................................................69
Bảng 4.13: Mô tả chi tiết bảng TienIch ....................................................................70
Bảng 5.1: Danh sách các màn hình ...........................................................................71
TÓM TẮT ĐỒ ÁN
Thương mại điện tử là một trong những xu hướng nổi bật và tất yếu của nền
kinh tế hiện đại. Với sự hỗ trợ của công nghệ thông tin, sự bùng nổ của các thiết bị
kết nối Internet, các doanh nghiệp ngày càng có cơ hội mở rộng kênh bán hàng và
tiếp thị sản phẩm của mình đến với người tiêu dùng. Các website ra đời đã góp phần
quan trọng và to lớn trong việc thúc đẩy kinh doanh phát triển nhanh chóng các sản
phẩm và dịch vụ đến gần hơn với khách hàng. Đặc biệt, tiềm năng trong số đó phải
kể đến các website đặt phịng.
Đồ án “Xây dựng website đặt phòng khách sạn online” là đồ án tập trung
nghiên cứu và xây dựng một nền tảng trực tuyến cung cấp dịch vụ cho người dùng
và các khách sạn dưới sự quản lý và sở hữu của chủ doanh nghiệp. Thơng qua website,
người dùng có thể tìm kiếm, so sánh và lựa chọn đặt phịng phù hợp với nhu cầu của
mình; các Quản lý khách sạn có thể quản lý thơng tin khách sạn và xử lý các vấn đề
về đơn đặt phòng trên trang web; admin quản lý tất cả thông tin về người dùng có
nhu cầu đặt phịng và khách sạn.
Mục đích của đề tài là nâng cao trải nghiệm người dùng khi sử dụng dịch vụ
đặt phòng trực tuyến, đồng thời giúp việc quản lý các thông tin của khách sạn trở nên
dễ dàng hơn.
Để bắt đầu thực hiện đồ án, nhóm tiến hành khảo sát hiện trạng và nghiệp vụ
của các trang web có cùng đề tài đang có mặt trên thị trường. Q trình này giúp
nhóm xác định các chức năng cần có của một website đặt phịng cùng với những hạn
chế cần khắc phục.
Trong quá trình phát triển đề tài, nhóm sử dụng mơ hình Agile – Scrum để
phân chia cơng việc và quản lý các thành viên. Mơ hình này giúp nhóm theo dõi sát
sao tiến độ cơng việc của các thành viên và linh hoạt trong việc thay đổi các yêu cầu,
chức năng. Các kết quả từ giai đoạn thiết kế như kiến trúc hệ thống, cơ sở dữ liệu và
giao diện được thể hiện bằng sơ đồ use-case và bản thiết kế giao diện. Trong suốt quá
trình thực hiện đồ án, source code sẽ được quản lý bằng Github. Đồ án sử dụng các
13
công nghệ xây dựng web hiện đại là framework ReactJS và NodeJS kết hợp với dữ
liệu được xây dựng trên server của Firebase. Giai đoạn kiểm thử unit-test cũng được
thực hiện xuyên suốt quá trình thực hiện đồ án để đảm bảo hạn chế xuất hiện lỗi nhất
có thể.
Trải qua q trình phát triển đồ án, nhóm đã có được những kết quả như sau:
• Xây dựng được một nền tảng trực tuyến hồn chỉnh cung cấp dịch vụ đặt
phịng online.
• Xây dựng được hệ thống admin quản lý các thơng tin của người dùng.
• Hiểu được nghiệp vụ của một website đặt phòng, cách vận hành và quản lý
các thơng tin trong hệ thống.
• Học hỏi được nhiều cơng nghệ và những kiến thức mới.
Quá trình và kết quả thực hiện đồ án được thể hiện trong cuốn báo cáo gồm 5 chương
với các nội dung chính sau:
-
Chương 1: Mở đầu
-
Chương 2: Cơ sở lý thuyết
-
Chương 3: Phân tích thiết kế hệ thống
-
Chương 4: Thiết kế dữ liệu
-
Chương 5: Thiết kế giao diện
-
Chương 6: Kết luận
14
MỞ ĐẦU
Tên đề tài
1.1.
XÂY DỰNG WEBSITE ĐẶT PHÒNG KHÁCH SẠN ONLINE
1.2.
Lý do chọn đề tài
Ngày nay, làn sóng phát triển của công nghệ thông tin ngày càng mạnh mẽ kéo
theo sự phổ biến của mạng Internet. Mạng Internet là một trong những sản phẩm có
giá trị lớn lao và là công cụ hỗ trợ và giải quyết các vấn đề trong cuộc sống. Sinh hoạt
của con người ngày càng tiện dụng và tối đa hóa nhờ vào các ứng dụng của công nghệ
thông tin. Xu hướng phát triển nổi bật hiện nay là mua sắm và sử dụng các dịch vụ
trực tuyến với nhiều lợi ích thiết thực. Nhờ vào tính tiện lợi và nhanh chóng của dịch
vụ trực tuyến, các website thương mại điện tử được xây dựng và sử dụng một cách
rộng rãi. Một trong những dịch vụ trực tuyến phổ biến phải kể đến dịch vụ đặt phòng
khách sạn online được phát triển dựa trên nhu cầu khi đi du lịch hoặc công tác xa nhà
của khách hàng.
Việc đặt phịng trước thơng qua trực tuyến mang lại rất nhiều lợi ích và trở
thành sự lựa chọn hàng đầu của nhiều khách hàng. Đầu tiên, đặt phòng online giúp
khách hàng tiết kiệm được thời gian và công sức hơn so với việc đến trực tiếp khách
sạn hoặc thông qua các đại lý du lịch. Người dùng có thể dễ dàng tra cứu các thơng
tin về khách sạn, phịng trống, giá cả và các dịch vụ đi kèm, từ đó so sánh được cái
lợi và hại giữa các kết quả mà trang web mang lại. Ngồi ra, họ cịn có thể thay đổi
thơng tin đặt phịng một cách linh hoạt hoặc hủy phòng đã đặt dễ dàng, đảm bảo ngăn
chặn các rủi ro như hết phòng, giá cao khi đi du lịch hoặc công tác, … Khi tiến hành
khảo sát các website đặt phòng phổ biến trên thị trường, nhóm nhận thấy giao diện
của một vài website chưa được hiện đại, chứa quá nhiều thông tin làm người tiếp cận
cảm thấy rối mắt. Bộ lọc khi tìm kiếm đơi khi chưa được chính xác hoặc phức tạp
quá mức cần thiết. Thủ tục đặt phòng ở một số website còn rườm rà, chưa minh bạch
về mức giá.
15
Từ những lý do trên, nhóm quyết định thực hiện đề tài “Xây dựng website
đặt phòng khách sạn online” để hỗ trợ tối đa trải nghiệm người dùng đồng thời đây
cũng là một giải pháp cho các chủ doanh nghiệp khi cần một sản phẩm về website đặt
phòng khách sạn online.
1.3.
Mục tiêu
-
Tìm hiểu và nghiên cứu các cơng nghệ ReactJS, NodeJS, Firebase, …
-
Tìm hiểu, xây dựng và phát triển được một website đặt phòng khách sạn online
đạt được các yêu cầu sau:
+ Website hỗ trợ đầy đủ các tính năng để người dùng có thể tìm kiếm, đặt
phịng, thay đổi hoặc hủy đặt phịng, đánh giá khách sạn, …
+ Cơng cụ tìm kiếm và bộ lọc phải chính xác, phù hợp với thơng tin được
nhập vào.
+ Website có giao diện hiện đại, thân thiện và dễ sử dụng.
+ Giao diện quản lý phịng và thơng tin đặt phịng của các Quản lý khách sạn
trực quan, thao tác thực hiện dễ học, dễ nhớ và dễ làm.
-
Xây dựng được sản phẩm có tính ứng dụng cao, có khả năng đưa vào thực tế.
1.4.
Khảo sát các website cùng đề tài
Bảng 1.1: So sánh các website đặt phịng online phổ biến
Tiêu chí
so sánh
Booking.com
Airbnb
Mytour.vn
Giao
Đơn giản, trực quan
Hiện đại, tối giản
Hiện đại, rõ ràng, đủ
diện
Có quá nhiều thông tin
nhưng vẫn đủ
thông tin
dễ gây rối khách hàng
thông tin
16
Chức
Đa dạng các loại chỗ ở:
Đa dạng các loại
Loại chỗ ở chưa được
năng đặt
nhà nghỉ, khách sạn,
chỗ ở: nhà nghỉ,
đa dạng: khách sạn,
phòng
căn hộ, …
khách sạn, căn hộ, căn hộ, khu nghỉ dưỡng
Quy mơ lớn, phổ biến
…
trên tồn thế giới
Có các loại lưu trú tại khu vực Việt Nam
Quy mô nhỏ, tập trung
đặc biệt như nhà
trên cây, …
Quy mô lớn, phổ
biến trên tồn thế
giới
Chức
Cho phép hủy phịng và
Cho phép hủy và
Tùy vào khách sạn sẽ
năng
có phí hủy tùy vào nhà
khơng hồn tiền
có quy định riêng
hủy
cung cấp
trước đó
Dịch vụ
Giao dịch trực tiếp giữa
Giao dịch trung
thanh
khách hàng và nhà cung gian qua airbnb
qua mytour
toán
cấp chỗ ở
Yêu cầu thanh
Yêu cầu thanh toán
Tùy vào nhà cung cấp
tốn trước
trước
phịng
Giao dịch trung gian
có u cầu thanh tốn
trước hay khơng
Tìm
Tích hợp bộ lọc chi tiết
Bộ lọc chi tiết và
Bộ lọc chưa đa dạng
kiếm
tuy nhiên độ chính xác
chính xác
nhưng có độ chính xác
Hai chiều từ phía
Đánh giá cịn chung
khách hàng đã trải
người dùng và
chung từ các khách
nghiệm
host
hàng đã trải nghiệm
chưa cao
Đánh giá Đánh giá chi tiết từ các
17
Tích hợp Đặt vé máy bay, th
Ngơn
Chỉ chun về đặt Đặt vé máy bay, nhà
xe, taxi, …
chỗ ở
hàng, tour du lịch, …
Hỗ trợ 45 ngôn ngữ
Hỗ trợ 26 ngôn
Hỗ trợ 7 ngôn ngữ
ngữ
ngữ
1.5.
Đối tượng và yêu cầu
1.5.1. Đối tượng
-
Khách hàng
Người dùng có nhu cầu cần đặt phịng trước khi đi du lịch hoặc cơng tác xa
nhà. Họ thường có thói quen lên mạng tìm kiếm các chỗ nghỉ và thực hiện so sánh
giá cả giữa các khách sạn và trang web khác nhau.
-
Quản lý khách sạn
Các khách sạn đăng ký với chủ sở hữu website để trở thành một nhà cung cấp
dịch vụ cho thuê phòng và các dịch vụ khác của khách sạn. Họ có nhiệm vụ cung cấp
các thông tin về khách sạn, về loại khách sạn, tổng số phòng, cung cách phục vụ, giá
cả, các dịch vụ bổ sung... Những thông tin này sẽ được cập nhật vào những thời điểm
thích hợp để đảm bảo thơng tin chính xác.
-
Admin website
Admin có quyền kiểm sốt tất cả các hoạt động của website, cụ thể như: xem
các danh sách thành viên, thêm, xóa, cập nhật thơng tin...
1.5.2. u cầu
1.5.2.1.
-
u cầu chức năng
Tìm kiếm phịng: Cho phép người dùng nhập thông tin cụ thể như địa điểm,
thời gian lưu trú, số lượng người lớn/trẻ em để tìm kiếm các phịng phù hợp.
-
Đặt phòng online: Cho phép người dùng đặt phòng trực tuyến thông qua
website mà không cần phải liên lạc với khách sạn qua điện thoại hoặc email.
18
-
Thay đổi thơng tin và hủy đặt phịng: Cho phép người dùng thay đổi thơng tin
về phịng và có thể hủy đặt phòng.
-
Đánh giá khách sạn: Cho phép người dùng đánh giá và đọc đánh giá của người
dùng khác về khách sạn.
-
Thêm sản phẩm yêu thích: Cho phép người dùng thêm sản phẩm vào u thích.
-
Lưu lịch sử đặt phịng: Cho phép người dùng xem danh sách các đặt phòng
sắp đến, các phòng đã sử dụng và các phòng đã hủy đặt.
-
Quản lý tài khoản: Cho phép người dùng đăng ký tài khoản trên website, đăng
nhập, quên mật khẩu và đổi mật khẩu.
-
Quản lý khách sạn: Cho phép người dùng quản lý chỗ ở bao gồm xem, thêm,
xóa, sửa.
-
Quản lý loại khách sạn: Cho phép người dùng quản lý loại chỗ ở bao gồm xem,
thêm, xóa, sửa.
-
Quản lý phịng: Cho phép người dùng quản lý phòng bao gồm xem, thêm, xóa,
sửa.
-
Quản lý loại phịng: Cho phép người dùng quản lý loại phịng bao gồm xem,
thêm, xóa, sửa.
-
Quản lý thành viên: Cho phép người dùng quản lý thành viên bao gồm xem,
thêm, xóa, sửa.
-
Quản lý phiếu đặt phịng: Cho phép người dùng quản lý phiếu đặt phịng bao
gồm xem, thêm, xóa, sửa.
1.5.2.2.
-
Yêu cầu phi chức năng
Yêu cầu về giao diện:
+ Giao diện thân thiện, bố cục hợp lý, dễ sử dụng và thao tác.
+ Giao diện thống nhất đồng bộ, không gây sự bất ngờ cho người sử dụng.
+ Màu sắc, vị trí, hiển thị của các component có tính đồng bộ.
-
Yêu cầu về bảo mật:
+ Đảm bảo phân quyền nhóm người dùng và tồn vẹn dữ liệu.
+ Vai trị của từng nhóm người dùng phải được thể hiện rõ ràng.
19
+ Dữ liệu ln được backup.
-
u cầu về tính tương thích:
+ Thích hợp sử dụng trên các trình duyệt web như Microsoft Edge, Google
Chrome, Cốc cốc, Opera, ...
-
Yêu cầu về tính tiến hóa:
+ Dễ dàng nâng cấp tính năng đã có nhờ vào sự hệ thống hóa trong khâu xử
lý.
+ Dễ dàng khắc phục lỗi khi có sự cố xảy ra.
-
Yêu cầu về tính hiệu quả:
+ Quản lý dữ liệu một cách logic
+ Dữ liệu truy xuất nhanh chóng và chính xác
1.6.
Thơng tin nhóm
Bảng 1.2 :Thơng tin nhóm đồ án
STT
Tên thành viên
MSSV
Email
1
Nguyễn Ngọc Trinh
20520824
2
Nguyễn Thành Trung
20520831
20
Chương 2. CƠ SỞ LÝ THUYẾT
2.1.
Quy trình phát triển phần mềm Scrum – Agile
2.1.1. Tổng quan về quy trình Scrum – Agile
Agile là một phương pháp phát triển phần mềm linh hoạt và tập trung vào việc
làm việc nhóm, tương tác với khách hàng và đáp ứng nhanh chóng thay đổi yêu cầu.
Xu hướng sử dụng Agile trong các công ty và doanh nghiệp phần mềm ngày nay ngày
càng gia tăng, vì nó mang lại nhiều lợi ích, bao gồm khả năng thích ứng với các yêu
cầu được thay đổi, tăng cường tương tác giữa các nhóm, tạo ra sản phẩm chất lượng
cao và tối ưu hóa quy trình phát triển.
Trong Agile, Scrum là một quy trình phát triển phần mềm được áp dụng phổ
biến, giúp tăng cường sự linh hoạt và tập trung vào việc phân chia dự án thành các
chu kỳ ngắn gọi là Sprint, thường kéo dài từ 1 đến 4 tuần. Mỗi Sprint tập trung vào
việc tạo ra một phần của sản phẩm cuối cùng, được gọi là Increment. Các công việc
được tổ chức thành danh sách các User Story và được quản lý trong Product Backlog.
Hình 2.1: Tổng quan về phương pháp Scrum
Các bước thực hiện Scrum bao gồm:
21
-
Xác định Product Backlog: Product Owner (Chủ sở hữu sản phẩm) là người
chịu trách nhiệm xác định, ưu tiên các yêu cầu và chức năng của sản phẩm
trong Product Backlog. Product Backlog là danh sách các User Story (Yêu cầu
của người dùng) và các công việc liên quan.
-
Sprint Planning: Đội phát triển và Product Owner họp để chọn ra các User
Story và công việc cần thực hiện trong Sprint (Chu kỳ phát triển). Sprint
Planning bao gồm việc xác định mục tiêu của Sprint và lập kế hoạch chi tiết
cho các công việc.
-
Sprint: Sprint kéo dài trong một khoảng thời gian ngắn (Thường từ 1 đến 4
tuần). Trong khoảng thời gian này, đội phát triển hồn thành các cơng việc đã
được lựa chọn trong Sprint Planning. Tất cả công việc được thực hiện, quản lý
và theo dõi tiến độ trong một công cụ quản lý công việc.
-
Daily Scrum: Mỗi ngày, đội phát triển sẽ họp một buổi để thông tin tiến độ
cơng việc, đánh giá tiến trình và giải quyết các rủi ro hoặc vấn đề gặp phải.
Cuộc họp Daily Scrum diễn ra trong một thời gian ngắn và trả lời câu hỏi như
"Công việc của bạn đang ở đâu?", "Bạn có gặp khó khăn nào khơng?".
-
Sprint Review: Sau khi hồn thành Sprint, một cuộc họp được tổ chức để
đánh giá và xem xét Increment (Phiên bản phần mềm hoàn chỉnh) đã được tạo
ra. Đội phát triển và các bên liên quan cùng nhau xem xét các yêu cầu đã được
thực hiện và thu thập phản hồi từ khách hàng hoặc người sử dụng cuối.
-
Sprint Retrospective: Cuộc họp này diễn ra sau cuộc họp Sprint Review và
đánh giá quá trình phát triển của Sprint. Đội phát triển đánh giá các điểm mạnh
và điểm yếu, tìm hiểu những cách để cải thiện quá trình làm việc và áp dụng
chúng vào Sprint tiếp theo.
2.1.2. Ưu nhược điểm của Scrum
-
Ưu điểm:
+ Scrum giúp tăng tính linh hoạt trong q trình phát triển phần mềm: Nhờ
vào các Sprint ngắn và khả năng thay đổi ưu tiên trong Product Backlog,
22
Scrum cho phép đội phát triển thích ứng với yêu cầu thay đổi và phản hồi
từ khách hàng.
+ Khuyến khích sự tương tác và làm việc nhóm: Các cuộc họp thường xuyên
như Daily Scrum, Sprint Review và Sprint Retrospective giúp đội phát
triển liên tục giao tiếp, chia sẻ thông tin và giải quyết các vấn đề nhanh
chóng.
+ Với việc tạo ra Increment sau mỗi Sprint, Scrum giúp tăng cường giá trị
sớm cho khách hàng hoặc người dùng cuối: Điều này cho phép khách hàng
có thể kiểm tra, đánh giá và cung cấp phản hồi sớm hơn trong quá trình
phát triển.
+ Scrum tạo ra môi trường làm việc đồng đội mạnh mẽ: Tất cả các thành viên
trong đội phát triển đều có vai trị và trách nhiệm trong q trình phát triển,
tạo điều kiện cho sự đồng lòng, tương trợ và trách nhiệm chung.
-
Nhược điểm của Scrum:
+ Scrum yêu cầu sự cam kết mạnh mẽ từ tất cả các thành viên trong đội phát
triển và khách hàng: Điều này có thể gây áp lực và đòi hỏi sự tận dụng tối
đa thời gian và năng lực của mọi người.
+ Khả năng dự đốn thấp: Do tính linh hoạt và khả năng thay đổi yêu cầu
trong Scrum, việc dự đoán và lập kế hoạch cho tương lai có thể khó khăn.
Điều này có thể gây khó khăn trong việc định lượng cơng việc và xác định
thời gian hồn thành.
+ Địi hỏi sự phối hợp cao: Scrum đòi hỏi sự phối hợp chặt chẽ giữa các thành
viên trong đội phát triển và khách hàng. Nếu khơng có sự tương tác và phối
hợp tốt, hiệu suất và chất lượng của quá trình phát triển có thể bị ảnh hưởng.
+ Khó khăn trong quản lý dự án lớn: Scrum thường phù hợp với các dự án
nhỏ và trung bình. Đối với các dự án lớn và phức tạp, việc quản lý và điều
phối các Sprint có thể trở nên khó khăn và phức tạp hơn.
2.1.3. Lý do lựa chọn quy trình Scrum
23
Việc sử dụng quy trình Scrum thỏa mãn các đặc điểm sau của một website đặt
phòng online:
-
Linh hoạt trong việc thay đổi các yêu cầu.
-
Tạo ra giá trị sớm và nhận được phản hồi từ khách hàng.
-
Phân công công việc và trách nhiệm một cách rõ ràng.
-
Dễ dàng kiểm soát và theo dõi tiến độ.
-
Tăng cường sự tương tác giữa đội ngũ phát triển và khách hàng.
-
Tăng cường động lực và cam kết.
Dựa vào sự phù hợp của quy trình phát triển phần mềm Scrum cho việc phát
triển website đặt phịng khách sạn online, nhóm chúng em quyết định chọn quy trình
phát triển này nhằm đảm bảo hiệu quả và thành công của dự án.
2.2.
Các công nghệ sử dụng
2.2.1. ReactJS
ReactJS là một thư viện JavaScript phổ biến được sử dụng để xây dựng giao
diện người dùng động và tương tác trên các ứng dụng web. Nó được phát triển bởi
Facebook và được sử dụng rộng rãi trong cộng đồng phát triển phần mềm.
ReactJS có một cộng đồng lớn người dùng và đồng thời nhận được sự hỗ trợ
và cải tiến liên tục từ cộng đồng nhà phát triển. Xu hướng sử dụng ReactJS ngày càng
tăng cao, với nhiều công ty và dự án lựa chọn nền tảng này để xây dựng các ứng dụng
đa dạng và tương tác.
Các đặc điểm nổi bật của ReactJS gồm:
-
Component-Based Architecture: ReactJS sử dụng mô hình component-based,
cho phép chia giao diện người dùng thành các thành phần độc lập. Điều này
giúp tái sử dụng mã, tăng tính module và dễ dàng quản lý và bảo trì ứng dụng.
-
Virtual DOM: ReactJS sử dụng Virtual DOM để tối ưu hóa q trình cập nhật
giao diện. Virtual DOM là một bản sao của DOM thực tế được lưu trữ trong
24
bộ nhớ, và ReactJS sẽ so sánh và cập nhật chỉ các phần tử thay đổi trong DOM
thực tế. Điều này giúp cải thiện hiệu suất và tăng tốc độ render của ứng dụng.
-
JSX: ReactJS hỗ trợ JSX (JavaScript XML), một cú pháp mở rộng của
JavaScript cho phép viết mã HTML tương tự như viết trong file template. JSX
giúp kết hợp mã JavaScript và HTML trong cùng một file, giúp dễ dàng quản
lý và tái sử dụng các thành phần.
-
One-Way Data Binding: ReactJS sử dụng one-way data binding, trong đó dữ
liệu di chuyển một chiều từ thành phần cha đến thành phần con. Điều này giúp
duy trì tính nhất qn của dữ liệu và dễ dàng theo dõi và debug.
-
Cộng đồng lớn và hỗ trợ đa dạng: ReactJS có cộng đồng lớn và mạnh mẽ, cung
cấp nhiều tài liệu, thư viện và công cụ hỗ trợ phát triển. Cộng đồng ln cập
nhật và đóng góp vào việc phát triển ReactJS, giúp cải thiện và mở rộng khả
năng của nó.
2.2.2. NodeJS
Node.js là một mơi trường chạy mã JavaScript phía máy chủ (Server-side)
được xây dựng trên JavaScript Engine của Chrome (V8 Engine). Với Node.js, ta có
thể phát triển ứng dụng mạng nhanh chóng và hiệu quả.
Node.js đã trở thành một cơng nghệ phổ biến và được sử dụng rộng rãi trong
việc phát triển ứng dụng web, ứng dụng di động, Internet of Things (IoT) và nhiều
lĩnh vực khác. Với cộng đồng lớn và sự phát triển liên tục, Node.js đang tiếp tục thu
hút sự quan tâm và trở thành một công nghệ quan trọng trong ngành phát triển phần
mềm.
Các đặc điểm nổi bật của Node.js bao gồm:
-
Khả năng xử lý không đồng bộ (Asynchronous): Node.js sử dụng mơ hình I/O
khơng đồng bộ, cho phép xử lý đa luồng mà không tạo ra blocking trong quá
trình xử lý. Điều này giúp tăng hiệu suất và khả năng mở rộng của ứng dụng.
-
Hệ sinh thái module phong phú: Node.js có một hệ sinh thái module rất mạnh
mẽ với hàng ngàn các module có sẵn. Điều này giúp ta tiết kiệm thời gian và
25