1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch

149 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng website cung cấp các dịch vụ du lịch
Tác giả Đinh Minh Khôi, Phạm Văn Đức Tiến
Người hướng dẫn ThS. Nguyễn Trần Thi Văn
Trường học Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ Thông tin
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 149
Dung lượng 27,19 MB

Cấu trúc

  • CHƯƠNG 1: MỞ ĐẦU (19)
    • 1.1. Giới thiệu tổng quan về đề tài (19)
    • 1.2. Lý do chọn đề tài (19)
    • 1.3. Mục tiêu đề tài (19)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (20)
    • 2.1. NextJS [1] (20)
      • 2.1.1. NextJS là gì? (20)
      • 2.1.2. Ưu điểm (20)
      • 2.1.3. Nhược điểm (21)
      • 2.1.4. Vận dụng (21)
    • 2.2. NodeJS [2] (21)
      • 2.2.1. NodeJS là gì? (21)
      • 2.2.2. Ưu điểm (21)
      • 2.2.3. Nhược điểm (22)
      • 2.2.4. Vận dụng (22)
    • 2.3. Google Map API [3] (22)
      • 2.3.1. Giới thiệu Google Map API (22)
      • 2.3.2. Ứng dụng (22)
  • CHƯƠNG 3: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU (23)
    • 3.1. Khảo sát hiện trạng (23)
      • 3.1.1. Trang web Traveloka (https://www.traveloka.com/) (23)
      • 3.1.2. Trang Booking.com (https://www.booking.com/) (28)
      • 3.1.3. Trang Agoda (https://www.agoda.com/) (31)
      • 3.1.4. Kết luận (34)
    • 3.2. Xác định yêu cầu (35)
      • 3.2.1. Yêu cầu chức năng (35)
      • 3.2.2. Yêu cầu phi chức năng (42)
      • 3.2.3. Nội dụng, chức năng đã có và được sử dụng lại (43)
  • CHƯƠNG 4: THIẾT KẾ HỆ THỐNG (45)
    • 4.2.1. Use case authorization (45)
    • 4.2.2. Use case “manage” của super admin (54)
    • 4.2.3. Use case “manage” của admin (56)
    • 4.2.4. Use case “manage” của Enterprise (64)
    • 4.2.5. Use case “manage” của Staff (69)
    • 4.2.6. Use case search (79)
    • 4.2.7. Use case check room availability (81)
    • 4.2.8. Use case book service (83)
    • 4.2.9. Use case feedback (85)
    • 4.2.10. Use case “manage” của Customer (88)
    • 4.3. Lược đồ lớp (class diagram) (95)
      • 4.3.1. Lược đồ (95)
      • 4.3.2. Mô tả (96)
    • 4.4. Thiết kế giao diện (99)
      • 4.4.1. Trang chủ (99)
      • 4.4.2. Trang danh sách tour (103)
      • 4.4.3. Trang chi tiết tour (104)
      • 4.4.4. Phần đánh giá của khách hàng (có ở trang chi tiết tour và nơi ở) (105)
      • 4.4.5. Trang danh sách nơi ở (108)
      • 4.4.6. Trang chi tiết nơi ở (109)
      • 4.4.7. Trang danh sách sự kiện (111)
      • 4.4.8. Trang chi tiết sự kiện (112)
      • 4.4.9. Trang hồ sơ của tôi (113)
      • 4.4.10. Các trang đặt tour (115)
      • 4.4.11. Các trang thanh toán của VNPAY (117)
      • 4.4.12. Trang quản lý của Enterprise và Staff (118)
      • 4.4.13. Trang quản lý của Super admin và Admin (120)
      • 4.4.14. Trang đăng nhập (121)
      • 4.4.15. Trang đăng ký (122)
      • 4.4.16. Trang quên mật khẩu (123)
      • 4.5.2. Mô tả (125)
  • CHƯƠNG 5: CÀI ĐẶT VÀ THỬ NGHIỆM (137)
    • 5.1. Cài đặt ứng dụng (137)
      • 5.1.1. Chuẩn bị phần mềm, môi trường và source code (137)
      • 5.1.2. Các bước cài đặt (137)
    • 5.2. Thử nghiệm hệ thống (139)
      • 5.2.1. Đăng nhập (139)
      • 5.2.2. Tìm kiếm tour du lịch (140)
      • 5.2.3. Tìm kiếm nơi ở (141)
      • 5.2.4. Đặt tour du lịch (141)
      • 5.2.5. Đặt nơi ở (142)
      • 5.2.6. Thanh toán (143)
      • 5.2.7. Đổi lịch (144)
      • 5.2.8. Thêm mới tour (144)
  • CHƯƠNG 6: KẾT LUẬN (146)
    • 6.1. Kết quả đạt được (146)
      • 6.1.1. Kiến thức (146)
      • 6.1.2. Kỹ năng, thái độ (146)
      • 6.1.3. Sản phẩm (146)
    • 6.2. Ưu và nhược điểm (147)
      • 6.2.1. Ưu điểm (147)
      • 6.2.2. Nhược điểm (147)
    • 6.3. Hướng phát triển (147)
  • TÀI LIỆU THAM KHẢO (0)

Nội dung

CƠ SỞ LÝ THUYẾT

NextJS [1]

Các chức năng chính của trang web đã thể hiển đầy đủ trên trang chủ về những loại dịch vụ mà họ cung cấp, giao diện đơn giản, đẹp mắt, dễ sử dụng

Next.js là một framework dựa trên React, từ đó có thể tối ưu hoá hiệu năng, hỗ trợ Search Engine Optimization (SEO) tốt và tăng trải nghiệm người dùng nhờ tính năng pre-rendering: Server Side Rendering (SSR) và Static Site Generation (SSG).

- Search Engine Optimization (SEO): là kỹ thuật giúp tối ưu hóa công cụ tìm kiếm, giúp website hiển thị cao hơn trên các trang kết quả của công cụ tìm kiếm, đặc biệt là Google.

- Server Side Rendering (SSR): là cơ mà đa số việc xử lý logic đều nằm ở phía server Server sẽ xử lý và thao tác với database để render ra HTML gửi về cho client, từ đó browser của client sẽ hiển thị HTML ra cho người dùng.

- Static Site Generation (SSG): là website được render ra HTML, như vậy HTML luôn sẵn sàng cho mỗi request Giúp tối ưu hóa tốc độ, tiết kiệm chi phí và thân thiện với SEO.

+ NexJS hỗ trợ tự động chia code thành nhiều gói khác nhau Việc chia code như thế cho phép trình duyệt tải toàn bộ nội dung web một lần và người dùng có thể chuyển bất kỳ trang nào mà không tải lại trang Chính vì thế các website hiện nay đều xây dựng bằng NextJS.

- Mang lại khả năng SEO tốt

- Trải nghiệm người dùng tốt

+ Sau tốc độ, thì trải nghiệm người dùng là điều cần thiết đối với một trang web, với tính chất này sẽ giúp trang web được nổi bật so với các đối thủ cạnh tranh.

+ Vì không có liên kết trực tiếp đến database, dependencies, user data hoặc thông tin bí mật khác nên có tính an toàn cao.

- Ít plug-in thích ứng.

- Website được xây dựng dựa trên NextJS thì phải sử dụng bộ định tuyến trên tệp của source code, chúng ta không thể sửa đổi cách giao với các tuyến.

- Nhờ kết hợp giữa Typescript và NextJS nên việc định nghĩa các interface mà đối tượng cần để thực thi do đó tính ràng buộc cao, giúp kiểm soát và dễ dàng phát hiện lỗi.

- Một đặc điểm nổi bật của NextJS so với ReactJS đó là định tuyến url cho website một các dễ dàng tự động xử lý tất cả các file với các đuôi js, jsx, ts hoặc tsx trong cây thư mục như một route vì thế giúp định tuyến route một cách nhanh chóng.

NodeJS [2]

NodeJS là một nền tảng Javascript phát triển các ứng dụng web, ứng dụng chat online, IOT, NodeJS chạy đa nền tảng Window, IOS, Linux cung cấp nhiều thư viện phong phú để giúp đơn giản hóa việc lập trình.

- Có tốc độ xử lý nhanh nhờ cơ chế bất đồng bộ.

- Dễ dàng nâng cấp và mở rộng.

- Với co chế single-thread, cho phép nhận và xử lý nhiều kết nối, giúp tiết kiệm RAM.

- Có khả năng xử lý hàng ngàn tiến trình và request đạt được hiệu suất tối đa.

- Gây tốn hao tài nguyên CPU như encoding, convert file, decoding encryption (do NodeJS được viết bằng ngôn ngữ C++ và Javascript ).

- NodeJS có thể bị bị treo máy hoặc không phản hồi

- Sử dụng một framework của NodeJS là ExpressJS để tạo ra API để client tương tác với server.

- Sử dụng một ORM (Object Relational Mapping) dành cho NodeJS làSequelize để thực hiện ánh xạ CSDL MySql sang các đối tượng, thuận tiện cho việc ràng buộc và truy vấn dữ liệu.

Google Map API [3]

2.3.1 Giới thiệu Google Map API

Google Map API là một dụng công nghệ bản đồ trực tuyến do Google cung cấp như tìm vị trí, tính khoảng cách, hiển thị bản đồ, Hiện nay Google Map API đã có phiên bản hỗ trên điện thoại và tablet xử lý nhanh chóng, hiệu quả đối với các ứng dụng vừa và nhỏ Đối với các ứng dụng lớn cần phải trả một khoản phí để đảm việc khai thác triệt để các tính năng của Google Map API.

- Xác định vị trí trên google map bằng một chuỗi địa chỉ.

- Thiết lập môi trường Google Map API trên dự án.

KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU

Khảo sát hiện trạng

3.1.1 Trang web Traveloka (https://www.traveloka.com/)

Các chức năng chính của trang web đã thể hiển đầy đủ trên trang chủ về những loại dịch vụ mà họ cung cấp, giao diện đơn giản, đẹp mắt, dễ sử dụng

Hình 3.1: Màn hình khi mới truy cập vào trang Traveloka

Người dùng có thể search thông tin mìn cần tìm theo các loại dịch vụ mà họ đã hiển thị

Chức các thông tin về giảm giá, tin tức về các loại dịch vụ, các thông tin đối tác ngân hàng, máy bay, các chính sách và điều khoản…

Hình 3.3: Thông tin về đối tác của Traveloka

Người dùng có thể chọn các loại thông tin mình cần tìm theo category

Hình 3.4: Thông tin tìm kiếm theo category của Traveloka

Khi người dùng nhấn vào một category bất kỳ các danh sách về category sẽ được hiện thị

Hình 3.5: Danh sách thông tin được tìm kiếm theo category của Traveloka

Bao gồm các thông tin tour du lịch được giảm giá, được lọc theo địa điểm trong và ngoài nước, hoặc người dùng có thể chủ động tìm kiếm lọc theo địa điểm đơn giá, danh mục, tính năng,… mà phù hợp với người dùng

Hình 3.6: Danh sách một vài tour du lịch của Traveloka

Khi người dùng nhấn xem chi tiết vào một tour hoặc khánh sạn bất kỳ thể hiện đầy đủ các thông tin như hình ảnh, mô tả, địa điểm trên bản đồ, đánh giá, giá tiền,khung giờ hoạt động tour, các điều khoản dịch vụ,…

Hình 3.7: Thông tin về một tour du lịch của Traveloka Đối với người dùng chọn xem chi tiết khách sạn sẽ có các thông tin hình ảnh, các tiện nghi, những địa điểm gần khách sạn, thông tin chọn phòng,…

Hình 3.8: Thông tin về giá của một khách sạn trên Traveloka

Khi người dùng tìm kiếm tour hoặc phòng (khách sạn) phù hợp đến phần thanh toán, các thông tin của người dùng đã được lưu sẽ được hiển thị (nếu đã đăng nhập), có phần tóm tắt tour đã chọn, tổng tiền cần thanh toán,…

Hình 3.9: Màn hình đặt dịch vụ của Traveloka

Phần thanh toán tích hợp nhiều chức năng như chuyển khoản, thanh toán tại cửa hàng,…giúp người dùng có nhiều lựa chọn hơn trong việc thanh toán mà không mất nhiều thời gian

Hình 3.10: Màn hình thanh toán trên Traveloka

Tóm lại trang web Traveloka nó là một trang web đa quốc gia nên nó đã thể hiện đầy đủ các thông tin về tour du lịch, khách sạn, máy bay,…Có thể áp dụng các

3.1.2 Trang Booking.com (https://www.booking.com/)

Tương tự như các trang web du lịch khác trang Booking.com cũng hiển thị đầy đủ các thông tin chức năng mà nó cung cấp Chọn các tính năng lưu trú, chuyến bay, chuyến bay + khách sạn, thuê xe, địa điểm tham quan, taxi sân bay.

Hình 3.11: Header của trang Booking.com

Tuy nhiên khác với trang Traveloka ở chỗ thanh search nằm riêng biệt đối với từng loại category.

Hình 3.12: Thanh tìm kiếm của trang Booking.com

Trang cũng có các thông tin giảm giá, deal,…Ngoài ra còn thể danh sách các địa điểm du lịch phổ biến và được yêu thích nhất tại trang chủ Khác với trang Traveloka, Booking không để danh sách các đối tác mà họ hợp tác tại trang chủ. Khi người dùng nhấn vào category nào đó danh sách các dịch vụ hiển thị tương tự như trang Traveloka

Hình 3.13: Danh sách category theo địa điểm của trang Booking.com

Hoặc có thể lọc theo giá, danh mục, thời gian checkin, checkout (nếu chọn đặt phòng)…

Hình 3.14: Tìm kiếm phòng trên trang Booking.com

Khi nhấn vào xem chi tiết trang cũng thể hiện đầy đủ các thông tin như tên tour(khách sạn), hình ảnh, đánh giá, mô tả,… Một điểm rất hay ở trang Booking là tích hợp sẵn chọn số lượng vé trong chi tiết sản phẩm để tăng trải nghiệm người dùng (khác với trang Traveloka). Đối với xem chi tiết khách sạn người dùng sẽ xem được thêm các tiện tích mà khách sạn có ( nhưng không có thông tin các địa điểm gần khách sạn),…Có thể chọn phòng, số lượng giường mà người dùng thấy phù hợp

Hình 3.16: Tìm kiếm phòng trống và chọn phòng trên trang Booking.com

Tương tự ở trang thanh toán Booking sẽ lưu thông tin người dùng khi họ đã đăng nhập thông tin trước đó giúp tăng trải nghiệm người dùng, có tóm tắt sản phẩm mà người dùng đã chọn

Hình 3.17: Lưu thông tin thanh toán trên trang Booking.com Đối với chức năng thanh toán Booking.com sử dụng Paypal và chuyển khoản để thanh toán (ít chức năng thanh toán hơn Traveloka)

Tóm lại trang Booking.com có điểm khác và tương đồng với trang Traveloka, nó có những tính năng giúp tăng trải nghiệm người dùng và một số tính năng khác.Mặt khác Booking.com có giao diện đơn giản, chức năng dễ sử dụng,…

3.1.3 Trang Agoda (https://www.agoda.com/)

Giao diện khi mới vào trang chủ rất hài hòa, người dùng có thể nhấn chọn những dịch vụ mà họ muốn tìm kiếm

Hình 3.18: Phần header của trang Agoda

Khi cuộn xuống dưới thì tại thanh header sẽ chuyển thành ô tìm kiếm, và lần lượng những nội dung phía bên dưới sẽ có thông tin về sự kiện, các địa điểm, các gợi ý, …

Hình 3.19: Thông tin sự kiện và các gợi ý trên trang Agoda

Hình 3.20: Các gợi ý trên trang Agoda

Nơi ở cho thuê có đầy đủ thông tin cần thiết: tổng quan, mô tả, những tiện nghi, đánh giá, vị trí, chính sách, giá, …

Hình 3.21: Một phần của trang chi tiết phòng trên Agoda

Việc đặt phòng tại trang web này cũng như mọi trang thương mại điện tử khác, đều có các bước nhập thông tin người đặt, thanh toán online:

Hình 3.22: Trang thanh toán trên Agoda

Bảng 3.1: Kết luận của khảo sát hiện trạng

Website Những điểm cần áp dụng vào dự Những điểm không cần án áp dụng vào dự án và giải pháp

Traveloka - Giao diện thu hút người dùng

- Các dịch vụ chính được hiển thị tại trang chính của web

- Có nhiều chương trình khuyến mãi và các gói dịch vụ hấp dẫn người dùng

- Các thông tin cơ bản của một dịch vụ được hiển thị đầy đủ cung cấp cho người dùng thông tin mà họ cần

- Việc tìm và thanh toán dịch vụ cho người dùng đơn giản, đa dạng và nhanh

Booking.co - Giao diện cân đối hài hòa - Thanh header của trang bị m - Các dịch vụ của trang được hiển ẩn đi khi cuộn → giảm trải thị tại trang chính nghiệm người dùng

Xác định yêu cầu

STT Công việc Quy định / công Biễu Ghi chú thức liên quan mẫu liên quan

1 Tìm kiếm tour, Nhập tên tour, địa nơi ở điểm và ngày đi để tìm kiếm tour Nhập địa điểm, ngày nhận phòng, ngày trả phòng, số lượng phòng, số lượng người để tìm kiếm nơi ở.

2 Xem thông tin dịch vụ du lịch

3 Xem thông tin dịch vụ nơi ở

4 Xem thông tin sự kiện

6 Đăng ký Không được sử dụng gmail đã tồn tại trong hệ thống.

Bao gồm toàn bộ chức năng của admin và có thêm những chức năng sau:

Bảng 3.3: Chức năng của Super admin

STT Công việc Quy định / công Biễu Ghi chú thức liên quan mẫu liên quan

1 Quản lý doanh Xem được doanh thu của dịch vụ thu của các nhà du lịch cung cấp dịch vụ tour và chi tiết doanh thu của mỗi tour

2 Quản lý doanh Xem được doanh thu của dịch vụ thu của các nhà nơi ở cung cấp dịch vụ nơi ở và chi tiết doanh thu của mỗi nơi ở

3 Quản lý tài Xem và phân khoản quyền tất cả tài khoản của hệ thống

Bảng 3.4: Chức năng của Admin

STT Công việc Quy định / công Biễu Ghi chú thức liên quan mẫu liên quan

1 Thêm sự kiện BM- Quản trị viên

SK01 thêm thông tin sự kiện

2 Cập nhập sự BM- Quản trị viên cập kiện SK01 nhật thông tin sự kiện

4 Thêm hoa hồng BM- Quản trị viên

HH01 thêm thông tin hoa hồng

5 Cập nhập hoa BM- Quản trị viên cập hồng HH01 nhật thông tin hoa hồng

7 Quản lý tài Chỉ được đổi quyền Xem và thay đổi khoản cho doanh nghiệp và quyền của người người dùng dùng trong hệ thống

Hình 3.23: Biểu mẫu BM-SK01

Hình 3.24: Biểu mẫu BM-HH01

Bao gồm toàn bộ chức năng của “Staff” và có thêm những chức năng sau:

Bảng 3.5: Chức năng của Enterprise

STT Công việc Quy định / công Biễu Ghi chú thức liên quan mẫu liên quan

1 Quản lý doanh Xem doanh thu thu của dịch vụ những dịch vụ du lịch du lịch của họ

2 Xem thống kê Xem doanh thu doanh thu của những dịch vụ dịch vụ nơi ở nơi ở của họ

3 Thêm nhân viên Người dùng phải Gửi email đến nhấn link chấp nhận người dùng từ email muốn trở thành nhân viên

4 Xóa nhân viên Loại bỏ những người dùng không còn là nhân viên tại trang quản lý nhân viên

Bảng 3.6: Chức năng của Staff

STT Công việc Quy định / công Biễu Ghi chú thức liên quan mẫu liên quan

1 Thêm dịch vụ du BM- lịch DL01

2 Cập nhập dịch BM- vụ du lịch DL01

3 Xóa dịch vụ du Những tour đã có lịch người đặt thì không được xóa

4 Thêm dịch vụ BM- nơi ở NO01

5 Cập nhập dịch BM- vụ nơi ở NO01

6 Xóa dịch vụ nơi Nếu có đơn đã đặt ở trước đó thì vẫn được sử dụng phòng bình thường

7 Thêm mã giảm BM- giá GG01

8 Cập nhập mã BM- giảm giá GG01

10 Cập nhập trạng Cập nhật trạng thái cho các đơn thái cho hóa đơn đã đặt theo từng giai đoạn (đổi lịch, hủy, chưa liên lạc, liên lạc, sử dụng, chưa sử dụng)

Hình 3.25: Biểu mẫu BM-DL01

Hình 3.26: Biểu mẫu BM-NO01

Hình 3.27: Biểu mẫu BM-GG01

Bảng 3.7: Chức năng của User

STT Công việc Quy định / công Biễu Ghi chú thức liên quan mẫu liên quan

1 Đặt dịch vụ du Chọn số lượng lịch vé, ngày, nhập thông tin người đặt, chọn mã giảm giá và thanh toán

2 Đặt dịch vụ nơi Chọn ngày đi, ở ngày về, số lượng người đi, số lượng phòng đặt, nhập thông tin người đặt, chọn mã giảm giá và thanh toán

3 Xem thông tin Có thể đổi, hủy hóa đơn vé hoặc lịch đã đặt trong thời gian cho phép

4 Đổi lịch Nếu trong thời gian Chọn lịch hoặc được đổi theo chính phòng mới sau đó sách của dịch vụ (du lặp lại bước đặt lịch hoặc nơi ở) thì dịch vụ cho phép đổi

5 Đánh giá, bình Nếu chưa sử dụng Bình luận những luận dịch vụ đó thì cũng dịch vụ đã sử có thể trả lời những dụng thông qua bình luận để tham hệ thống khảo dịch vụ

3.2.2 Yêu cầu phi chức năng

Bảng 3.8: Yêu cầu phi chức năng

1 Giao diện thân thiện, dễ sử dụng Tính tiện dụng

2 Dễ dàng mở rộng, nâng cấp và bảo trì Tính tiến hóa

3 Đảm bảo hệ thống chạy ổn định, hạn chế xảy ra lỗi Tính hiệu quả

4 Hoạt động được trên nhiều trình duyệt web khác Tính tương thích nhau.

5 Đảm bảo quyền riêng tư Tính bảo mật

3.2.3 Nội dụng, chức năng đã có và được sử dụng lại

Dưới đây là một số nội dung và chức năng được sử dụng lại từ Tiểu luận chuyên ngành:

Bảng 3.9: Nội dung, chức năng được sử dụng lại từ Tiểu luận chuyên ngành

Chức năng Tỉ lệ Phiên bản cũ Phiên bản mới dùng lại

Lý thuyết 100% Đã có lý thuyết về Bổ sung thêm lý thuyết

NodeJS và NextJS của NodeJs và NextJs, tìm hiểu thêm về Map API của google. Đăng nhập, đăng 100% Đăng nhập, đăng ký Như phiên bản cũ. xuất, đăng ký vào hệ thống. Đăng xuất khỏi hệ thống.

Quản lý thông 100% Người dùng quản lý Như phiên bản cũ. tin tài khoản thông tin của chính họ.

Xem thông tin 20% Đã có trang thông tin Điều chỉnh lại giao trang dịch vụ các dịch vụ thông tin dịch vụ.

Xây dựng mới hoàn toàn trang chi tiết dịch vụ. Quản lý doanh 40% Đã có quản lý doanh Làm thêm quản lý doanh thu thu của Enterprise thu cho Admin.

Cải thiện lại giao diện và dữ liệu được trả về.

Quản lý tài 100% Admin xem các tài Thêm chức năng xóa và khoản khoản của hệ thống chỉnh sửa quyền.

Quản lý dịch vụ 15% Bị thiếu sót và sai logic Gần như phải xây dựng rất nhiều dẫn đến giao mới hoàn toàn về giao diện cũng sai, chỉ tận diện và API. dụng được một số thông tin được thiết lập dưới Database.

Quản lý đơn đã 25% Xem và tải xuống Thêm chức năng đổi lịch đặt thông tin hóa đơn và hủy đơn. Đánh giá dịch vụ 40% Đã có API trả về thông Làm mới giao diện, thêm tin các bình luận chức năng thảo luận trong mỗi đánh giá (cho phép những người chưa đặt dịch vụ thảo luận với người đã đặt). Đặt dịch vụ 15% Tận dụng được phần Làm mới giao diện, thay nhỏ database và APIs đổi logic của back-end, tích hợp chức năng thanh toán.

Kiểm tra phòng 50% Kiểm tra phòng trống Thay đổi giao diện và trống của một nơi ở kiểm tra cái tiến back- end.

THIẾT KẾ HỆ THỐNG

Use case authorization

Bảng 4.1: Mô tả usecase sign up

Short Description Người dùng cần đăng ký tài khoản của hệ thốngActor Enterprise và Customer

Post-Conditions Người dùng có tài khoản để đăng nhập vào hệ thống

(1) Nhấn vào nút đăng ký để chuyển đến trang đăng ký.

(2) Điền các thông tin vào form (E1) (E2) (A1) (3) Nhấn nút đăng ký để hệ thống xác nhận (4) Thông báo yêu cầu người dùng kiểm tra Main Flow email để xác nhận đăng ký

(5) Kiểm tra email và nhấn vào link trong email để xác nhận (6) Chuyển đến trang xác nhận thành công và nhấn vào nút “Trở về trang đăng nhập” để về trang đăng nhập

(A1) Khi người dùng thoát khỏi trang đăng ký Alternate Flow(s) thì quá trình tạo tài khoản không được diễn ra nữa.

(E1) Nếu tài khoản đăng ký đã tồn tại thì thông báo cho người dùng biết tài khoản đã tồn tại Exception Flow(s) (E2) Nếu thông tin điền theo yêu cầu không đỳng thỡ thụng bỏoãngười dựng nhập lại thụng tin.

Hình 4.2: Activity diagram của usecase sign up

Bảng 4.2: Mô tả usecase login

Short Description Người dùng cần đăng nhập tài khoản để sử dụng những tác vụ cần được đăng nhập

Actor Super admin, Admin, Enterprise, Staff,

Requirements Pre-Conditions Cung cấp thông tin tài khoản, mật khẩu Post-Conditions Đăng nhập thành công vào hệ thống.

(1) Nhấn nút đăng nhập hoặc khi thực hiện một tác vụ nào đó cần được đăng nhập thì sẽ chuyển Main Flow người dùng đến trang đăng nhập

(2) Điền các thông tin vào form (E1) (A1) (3) Nhấn nút đăng nhập để hệ thống xác nhận

(A1) Khi thoát khỏi trang đăng nhập hoặc thực Alternate Flow(s) hiện đăng ký thì quá trình đăng nhập không được diễn ra nữa.

Exception Flow(s) (E1) Nếu tên tài khoản không tồn tại hoặc nhập tài khoản không đúng thì thông báo cho người dùng sai thông tin.

Hình 4.4: Activity diagram của usecase login

Bảng 4.3: Mô tả usecase forgot password

Short Description Người dùng thực hiện tạo lại mật khẩu mới để có thể đăng nhập vào hệ thống Actor Super admin, Admin, Enterprise, Staff, Customer Requirements

Pre-Conditions Có tài khoản của hệ thống

Post-Conditions Tạo mật khẩu mới thành công

(1) Nhấn vào mục quên mật khẩu thì sẽ chuyển đến trang nhập email

(2) Điền email vào form (E1) (A1) (3) Nhấn nút “Gửi”, một thông báo hiển thị mã xác Main Flow nhận được gửi đến gmail của người dùng và chuyển đến trang nhập thông tin tạo mật khẩu mới (4) Nhập mã xác nhận, mật khẩu mới và xác nhận mật khẩu mới (E2) (A2)

Alternate Flow(s) (A1), (A2) Khi thoát khỏi trang “quên mật khẩu” thì quá trình tạo mật khẩu mới không được diễn ra nữa.

Exception (E1) Điền email không hợp lệ.

Flow(s) (E2) Điền mã xác nhận hoặc mật khẩu mới không hợp lệ.

Hình 4.6: Activity diagram của usecase forgot password

Bảng 4.4: Mô tả usecase change password

Short Description Người dùng thực hiện thay đổi mật khẩu

Actor Super admin, Admin, Enterprise, Staff, Customer Requirements

Pre-Conditions Đã đăng nhập vào hệ thống

Post-Conditions Đổi mật khẩu mới thành công

(1) Người dùng nhấn vào mục “Hồ sơ” và vào mục Main Flow “Thay đổi mật khẩu”

(2) Điền thông tin cần thiết vào form (E1) (A1) (3) Nhấn nút “Lưu” để thay đổi mật khẩu

Alternate Flow(s) (A1) Khi hủy quá trình đổi mật khẩu thì quá trình tạo mật khẩu mới không được diễn ra nữa.

ExceptionFlow(s) (E1) Người dùng điền thông tin không hợp lệ.

Hình 4.8: Activity diagram của usecase change password

Hình 4.9: Sequence diagram của usecase change password

Use case “manage” của super admin

Bảng 4.5: Mô tả usecase manage turnover

Short Description Người quản trị hệ thống thực hiện việc kiểm tra doanh thu của hệ thống

Pre-Conditions Đăng nhập vào website với quyền là “Super admin” và truy cập vào trang “Quản lý”.

Post-Conditions Xem doanh thu của hệ thống

(1) Tại mục “Thống kê”, nhấn vào nút “Du lịch” hoặc “Nơi ở”

(2.1) Thống kê của dịch vụ du lịch (2.1.1) Danh sách doanh thu theo doanh nghiệp được hiển thị

(2.1.2) Nhấn vào nút “Xem chi tiết” của 1 doanh Main Flow nghiệp bất kì thì doanh thu theo các tour du lịch của doanh nghiệp đó sẽ được thống kê (2.1.3) Nhấn vào nút “Xem chi tiết” của 1 tour bất kì thì doanh thu theo các ngày diễn ra tour đó sẽ được thống kê

(2.1.4) Nhấn vào nút “Xem chi tiết” của 1 ngày diễn ra tour bất kì thì doanh thu của ngày diễn ra tour đó sẽ được thống kê

(2.2) Thống kê của dịch vụ nơi ở (2.2.1) Danh sách doanh thu theo doanh nghiệp được hiển thị

(2.2.2) Nhấn vào nút “Xem chi tiết” của một doanh nghiệp bất kỳ thì doanh thu theo nơi ở của doanh nghiệp đó sẽ được thống kê

(2.2.3) Nhấn vào nút “Xem chi tiết” của một nơi ở bất kỳ thì doanh thu theo phòng sẽ được thống kê (2.2.4) Nhấn vào nút “Xem chi tiết” của một phòng bất kỳ thì doanh thu của phòng đó được thống kê

Hình 4.11: Sequence diagram của usecase manage turnover

Use case “manage” của admin

Bảng 4.6: Mô tả usecase manage account

Short Description Quản trị hệ thống thực hiện việc quản lý các tài khoản trong hệ thốngActor Super admin, AdminRequirements Đăng nhập vào website với quyền là “Super Pre-Conditions admin” hoặc “Admin” và truy cập vào trang

Post-Conditions Quản trị hệ thống thực hiện được các tác vụ xem, thay đổi quyền các tài khoản

(1) Nhấn vào nút “Tài khoản”

Main Flow (2) Danh sách thông tin người dùng của hệ thống được hiển thị (3) Có thể thay đổi quyền của người dùng (A1)

Alternate Flow(s) (A1) Chỉ super admin mới có quyền thay đổi cho quyền của super admin và admin Exception Flow(s)

Hình 4.13: Sequence diagram của usecase manage account

Bảng 4.7: Mô tả usecase manage commission

Short Description Quản trị hệ thống quản lý các điều khoản và điều kiện về tiền hoa hồng của hệ thống

Actor Super admin, Admin Requirements

Pre-Conditions Đăng nhập vào website với quyền là “Super admin” hoặc “Admin” và truy cập vào trang “Quản lý”

Quản trị hệ thống quản lý các điều khoản và điều Post-Conditions kiện về tiền hoa hồng của hệ thống

(1) Nhấn vào mục “Hoa hồng”

(2) Danh sách các tỉ lệ tiền hoa hồng của hệ thống được hiển thị (A1)

(3) Có thể thực hiện một trong các tác vụ sau: Kiểm tra thông tin

Thêm mới: Nhấn “Thêm” → điền thông tin vào form → Nhấn “Lưu” (A1)

Sửa: Nhấn “Sửa” → sửa thông tin tại form→ Nhấn

Xóa: Nhấn “Xóa” → Chọn “Đồng ý” để xóa Alternate Flow(s)

Bảng 4.2.2.2 Use Case Manage Feedback

Hình 4.14: Activity diagram của usecase manage commission

Hình 4.15: Sequence diagram của usecase manage commission

Bảng 4.8: Mô tả usecase manage events

Short Description Quản trị hệ thống quản lý các sự kiện

Actor Super admin, Admin Requirements

Pre-Conditions Đăng nhập vào website với quyền là “Super admin” hoặc “Admin” và truy cập vào trang “Quản lý”

Post-Conditions Quản trị hệ thống thực hiện được các tác vụ thêm, sửa hoặc xóa các sự kiện

(1) Nhấn vào nút “Sự kiện”

(2) Danh sách các sự kiện được hiển thị (3) Có thể thực hiện một trong các tác vụ sau:

Kiểm tra thông tin Main Flow Thêm mới: Nhấn “Thêm” → điền vào form thông tin sự kiện được tạo mới → Nhấn “Lưu”

Sửa: Nhấn “Sửa” tại sự kiện cần sửa → sửa thông tin của sự kiện → Nhấn “Lưu”

Xóa: Nhấn “Xóa” → Chọn “Đồng ý” để xóa Alternate Flow(s)

Hình 4.16: Activity diagram của usecase manage events

Use case “manage” của Enterprise

Bảng 4.9: Mô tả usecase manage turnover của Enterprise

Short Description Enterprise quản lý doanh thu của họ

Pre-Conditions Đăng nhập hệ thống với quyền là “Enterprise” và truy cập vào trang “Quản lý”

Post-Conditions Enterprise kiểm tra được doanh thu của họ

(1) Tại mục “Thống kê”, nhấn vào nút “Du lịch” hoặc “Nơi ở”

(2.1) Thống kê của dịch vụ du lịch (2.1.1) Danh sách doanh thu theo các tour du lịch được thống kê

(2.1.2) Nhấn vào nút “Xem chi tiết” của 1 tour bất kì Main Flow thì doanh thu theo các ngày diễn ra tour đó sẽ được thống kê (2.1.3) Nhấn vào nút “Xem chi tiết” của 1 ngày diễn ra tour bất kì thì doanh thu của ngày diễn ra tour đó sẽ được thống kê(2.2) Thống kê của dịch vụ nơi ở

(2.2.1) Danh sách doanh thu theo nơi ở được thống kê

(2.2.2) Nhấn vào nút “Xem chi tiết” của một nơi ở bất kỳ thì doanh thu theo phòng sẽ được thống kê (2.2.3) Nhấn vào nút “Xem chi tiết” của một phòng bất kỳ thì doanh thu của phòng đó được thống kê

Hình 4.18: Activity diagram của usecase manage turnover

Hình 4.19: Sequence diagram của usecase manage turnover

Bảng 4.10: Mô tả usecase manage staff

Short Description Enterprise quản lý nhân viên của họ

Pre-Conditions Đăng nhập với quyền là “Enterprise” và truy cập vào trang “Quản lý”

Post-Conditions Thực hiện được các tác vụ xem, thêm, xóa nhân viên

(2) Danh sách các nhân viên được hiển thị (3) Có thể thực hiện một trong các tác vụ sau:

Kiểm tra thông tin Thêm mới: Nhấn “Thêm” → điền gmail (gmail này Main Flow đã đăng ký tài khoản trên hệ thống) của nhân viên vào form → Nhấn “Gửi” (A1) Xóa: Nhấn nút “Xóa” bên cạnh thông tin của nhân viên cần xóa→ Chọn “Đồng ý” để xóa (A1)

Tìm kiếm: Nhập tên nhân viên vào ô tìm kiếm → danh sách nhân viên có tên tương ứng được hiển thị

(A1) Muốn hủy tác vụ đang thực hiện thì chỉ cần Alternate Flow(s) thoát khỏi hộp thoại được hiện lên hoặc nhấn nút

Hình 4.20: Activity diagram của usecase manage staff

Use case “manage” của Staff

Bảng 4.11: Mô tả usecase manage tour

Short Description Người dùng quản lý các thông tin về tour

Pre-Conditions Đăng nhập với quyền là “Enterprise” hoặc “Staff” và truy cập vào trang “Quản lý”

Post-Conditions Thực hiện được các tác vụ xem, thêm, sửa, xóa, tìm kiếm tour

(2) Danh sách các tour được hiển thị (3) Có thể thực hiện một trong các tác vụ sau: Kiểm tra thông tin

Thêm mới: Nhấn “Tạo mới” → điền vào form Main Flow thông tin tour được tạo mới → Nhấn “Lưu” (A1)

Sửa: Nhấn “Sửa” tại tour cần sửa → sửa thông tin của tour → Nhấn “Lưu”

Xóa: Nhấn “Xóa” → Chọn “Đồng ý” để xóa (A2) Tìm kiếm: Nhập tên tour vào ô tìm kiếm → danh sách tour tương ứng được hiển thị

Alternate Flow(s) (A1) Muốn hủy tác vụ đang thực hiện thì chỉ cần thoát khỏi hộp thoại được hiện lên hoặc nhấn nút

(A2) Nếu tour có đã có người đặt và có ngày đang diễn ra thì một thông báo không được xóa được hiển thị

Hình 4.22: Activity diagram của usecase manage tour

Hình 4.23: Sequence diagram của usecase manage tour

Bảng 4.12: Mô tả usecase manage stay

Short Description Người dùng quản lý các thông tin về nơi ở

Pre-Conditions Người dùng đăng nhập với quyền là “Enterprise” hoặc “Staff” và truy cập vào trang “Quản lý”

Post-Conditions Người dùng thực hiện được các tác vụ xem, thêm, sửa, xóa, tìm kiếm các nơi ở của họ

(2) Danh sách các nơi ở được hiển thị (3) Có thể thực hiện một trong các tác vụ sau:

Thêm mới: Nhấn “Tạo mới” → điền vào form thông tin phòng được tạo mới → Nhấn “Lưu” (A1) Main Flow

Sửa: Nhấn “Sửa” tại nơi ở cần sửa → sửa thông tin của nơi ở đó→ Nhấn “Lưu” (A1)

Xóa: Nhấn “Xóa” → Chọn “Đồng ý” để xóa (A1) (A2)

Tìm kiếm: Nhập tên nơi ở vào ô tìm kiếm → danh sách nơi ở tương ứng được hiển thị

(A1) Muốn hủy tác vụ đang thực hiện thì chỉ cần thoát khỏi hộp thoại được hiện lên hoặc nhấn nút Alternate Flow(s) “Hủy”.

(A2) Nếu nơi ở có đã có người một thông báo không được xóa được hiển thị

Hình 4.24: Activity diagram của usecase manage stay

Bảng 4.13: Mô tả usecase manage feedback

Short Description Enterprise quản lý các đánh giá từ khách hàng Actor Enterprise

Pre-Conditions Đăng nhập với quyền là “Enterprise” hoặc “Staff” và truy cập vào trang “Quản lý”

Thực hiện được các tác vụ xem, trả lời các đánh giá Post-Conditions của khách hàng và xóa những thảo luận không đúng của những người chưa sử dụng dịch vụ

(2) Danh sách các đánh giá được hiển thị Main Flow (3.1) Thực hiện xem và trả lời các đánh giá của khách hàng

(3.2) Thực hiện xem và xóa những thảo luận không đúng của những người chưa sử dụng dịch vụ

Hình 4.26: Activity diagram của usecase manage feedback

Hình 4.27: Sequence diagram của usecase manage feedback

Bảng 4.14: Mô tả usecase manage order

Short Description Quản lý các đơn của tour hoặc nơi ở được đặt Actor Enterprise, staff

Pre-Conditions Đăng nhập với quyền là “Enterprise” hoặc “Staff” và truy cập vào trang “Quản lý”

Post-Conditions Thực hiện được các tác vụ tìm kiếm, kiểm tra, chuyển đổi trạng thái đơn đã đặt

(1) Nhấn “Du lịch” hoặc “Nơi ở” tại mục “Đơn hàng”

(2) Danh sách các đơn đã đặt được hiển thị (3) Có thể thực hiện một trong các tác vụ sau: Main Flow Tìm kiếm, lọc đơn theo tên du lịch, trạng thái, ngày đi, đang diễn ra

Chuyển đổi trạng thái của đơn (bao gồm những trạng thái: chưa liên hệ, đã liên hệ, đã sử dụng, đã hủy, đã đổi lịch) Đối với những đơn chưa thanh toán thì không thể thay đổi trạng thái được.

Hình 4.28: Activity diagram của usecase manage order

Use case search

Bảng 4.15: Mô tả usecase search

Short Description Người dùng muốn tìm kiếm thông tin cần thiết để phục vụ cho việc đặt dịch vụ.

Actor Tất cả actor Requirements

Pre-Conditions Người dùng đang sử dụng hệ thống.

Post-Conditions Hiển thị ra các thông tin liên quan đến input của người dùng.

(1) Click vào ô tìm kiếm nhập thông tin cần tìm (tên hoặc vị trí), ngày đi (đối với du lịch) hoặc tên, Main Flow ngày đi, ngày về, số người, số phòng (đối với nơi ở) hoặc chọn các danh mục lọc có sẵn của hệ thống

(2) Nhấn nút “Search” để thực hiện tìm kiếm (A1) (3) Hiển thị thông tin phù hợp

Alternate Flow(s) (A1) Khi người dùng hủy tìm kiếm thì quá trình tìm kiếm không được diễn ra nữa.

Hình 4.30: Activity diagram của usecase search

Use case check room availability

Bảng 4.16: Mô tả usecase check room availability

Use case Check room availability

Short Description Người dùng có thể kiểm tra phòng trống của stay

Actor Tất cả actor Requirements

Pre-Conditions Người dùng đang truy cập đến trang chủ của 1 stay Post-Conditions Biết được phòng nào của stay còn trống.

(1) Click vào chọn ngày tại ô “Start date”

(2) Click vào chọn ngày tại ô “End date”

Main Flow (3) Click vào chọn số người lớn, trẻ em, số phòng

(4) Click chọn lọc theo giá cao nhất, giá thấp nhất, đánh giá cao nhất

(5) Danh sách phòng còn trống được hiển thị Alternate Flows)

Hình 4.32: Activity diagram của usecase check room availability

Hình 4.33: Sequence diagram của usecase check room availability

Use case book service

Bảng 4.17: Mô tả usecase book tour

Short Description Người dùng thực hiện việc đặt vé tour

Actor Tất cả actor Requirements

Pre-Conditions Người dùng đã đăng nhập vào hệ thống.

Post-Conditions Đặt tour thành công.

(1) Nhấn vào từng thẻ tour tại tại màn hình chi tiết của tour.

(2) Chọn ngày đi, số lượng và các thông tin khác(A1) (3) Nhấn “Đặt” chuyển đến trang nhập thông tin người đặt

Main Flow (4) Điền thông tin người nhận và nhấn “Tiếp tục đến

Xem lại” để xem review về đơn hàng đã đặt (A1) (5) Nhấn “Tiếp tục đến Thanh toán”.

(6) Chuyển đến trang thanh toán (7) Điền các thông tin cần thiết vào form thanh toán (A1)

Alternate Flow(s) (A1) Khi người dùng thoát ra khỏi màn hình điền thông tin cá nhân thì quá trình đặt không được diễn ra nữa.Exception Flow(s)

Hình 4.34: Activity diagram của usecase book tour

Hình 4.35: Sequence diagram của usecase book tour

(Tương tự như usecase book tour)

Use case feedback

Bảng 4.18: Mô tả usecase feedback

Người dùng thực hiện việc đánh giá dịch vụ mà họ đã Short Description đặt

Actor Tất cả actor Requirements

Pre-Conditions Người dùng đã đặt và đã sử dụng dịch vụ (du lịch, nơi ở) mà họ đang muốn đánh giá.

Post-Conditions Đánh giá dịch vụ thành công theo ý của người dùng

(1) Tại trang chi tiết dịch vụ (du lịch, nơi ở) nhấn vào nút “Thêm đánh giá” hoặc tại trang “Danh sách giao dịch” chọn “Đánh giá” vào dịch vụ muốn đánh giá. Main Flow (2) Có thể thực hiện một trong các tác vụ sau:

Thêm đánh giá Sửa đánh giá Xóa đánh giá (3) Nhấn “Đăng”

Alternate Flow(s) (A1) Khi người dùng thoát ra khỏi hộp thoại đánh giá thì quá trình đánh giá không diễn ra nữaException Flow(s)

Hình 4.36: Activity diagram của usecase feedback

Use case “manage” của Customer

Bảng 4.19: Mô tả usecase manage information

Short Description Người dùng quản lý các thông tin của họ

Actor Tất cả actor Requirements

Pre-Conditions Người dùng đã đăng nhập vào hệ thống

Post-Conditions Thực hiện được các tác vụ xem, thêm, xóa, sửa các thông tin

(1) Nhấn vào mục “Hồ sơ của tôi”

(2) Các thông tin cá nhân được hiển thị Main Flow (3) Người dùng có thể thực hiện kiểm tra, thêm, sửa, xóa thông tin (4) Nhấn vào nút xác nhận để hoàn thành tác vụ (A1) (E1)

Alternate Flow(s) (A1) Người dùng chỉ vào xem để kiểm tra thông tin thì không cần nhấn xác nhậnException Flow(s) (E1) Người dùng điều chỉnh các thông tin không hợp lệ

Hình 4.38: Activity diagram của usecase manage information

Hình 4.39: Sequence diagram của usecase manage information

Bảng 4.20: Mô tả usecase manage booked ticket

Use case Manage booked ticket

Short Description Người dùng quản lý các đơn mà họ đã đặt

Actor Tất cả actor Requirements

Pre-Conditions Người dùng đã đăng nhập vào hệ thống

Người dùng thực hiện được các tác vụ xem, thêm Post-Conditions thông tin, đổi lịch, hủy, tải xuống thông tin hóa đơn của họ

(1) Nhấn vào mục đơn “Danh sách các giao dịch” (2) Thông tin đơn đã đặt được hiển thị theo loại du lịch hoặc nơi ở

(3.1) Nhấn vào biểu tượng “Tải xuống / Xem” để Main Flow xem và tải hóa đơn về máy (A1)

(3.2) Nhấn vào mục “Đổi lịch” hoặc “Hủy” để đổi hoặc hủy đơn đã đặt (nếu còn trong thời gian được phép hủy) (A1)

(3.3) Nhấn vào mục “Cập nhật thông tin liên lạc” để thêm thông tin liên lạc

Alternate Flow(s) (A1) Người dùng chỉ vào xem để kiểm tra thông tin thì không cần thực hiện bước nàyException Flow(s)

Hình 4.40: Activity diagram của usecase manage booked ticket

Hình 4.41: Sequence diagram của usecase manage booked ticket

Lược đồ lớp (class diagram)

Hình 4.42: Lược đồ lớp (class diagram)

Bảng 4.21: Mô tả lược đồ lớp

Tên bảng Ý nghĩa Quan hệ

User - Chứa các thông tin của người - 1 Enterprise sở hữu và dùng quản lý nhiều Tour

- Có các phướng thức: login(), - 1 Enterprise sở hữu, và register(), verifyRegister(), quản lý nhiều Stay getProfile(), updateUser() - 1 Enterprise quản lý nhiều bình luận của Tour và Stay

- 1 User có thể đặt nhiều Tour và Room

- 1 User có thể bình luận nhiều Tour và Stay

Tour - Chứa các thông tin của Tour - Nhiều Tour được quản lý

- Có các phương thức: create(), bởi 1 Enterprise update(), delete(), - 1 Tour có nhiều bình getInformation(), search(), luận

- 1 Tour hiển thị thông tin trên nhiều TourBill

TourBill - Chứa các thông tin của - Nhiều Tour được đặt bởi

- Có các phương thức: create(), - 1 Tour hiển thị thông tin getInformation(), trên nhiều TourBill verifyBookTour(), getRevenue()

Stay - Chứa các thông tin của Stay - Nhiều Stay được quản lý

- Có các phương thức: create(), bởi 1 Enterprise update(), delete(), - Nhiều Stay có nhiều getInformation(), search(), Room

- 1 Stay có nhiều bình luận

Room - Chứa các thông tin của Room - Nhiều Room thuộc 1

- Có các phương thức: create(), Hotel update(), delete(), - 1 Room hiển thị thông getInformation(), tin trên nhiều RoomBill

StayBill - Chứa các thông tin của - Nhiều Stay được đặt bởi

- Có các phương thức: create(), - 1 StayBill hiển thị nhiều getInformation(), RoomBillDetail verifyBookStay(), - 1 StayBill hiển thị thông getRevenue() tin trên nhiều StayBill

- 1 Stay được hiển thị trên nhiều StayBill

RoomBillDetail - Chứa các thông tin của - 1 Room hiển thị nhiều

- Có các phương thức: create(), - 1 StayBill hiển thị thông getInformation(), tin nhiều RoomBillDetail verifyBookRoom(), getRevenue()

Comment - Chứa các thuộc tính như thông - Nhiều Comment được tin của Comment quản lý bởi 1 Enterprise

- Có các phương thức: create(), - 1 Tour có nhiều bình update(), delete(), reply() luận

-1 Stay có nhiều bình luận

Event - Chứa các thuộc tính như thông - Nhiều Event được quản tin của Event lý bởi 1 Admin

- Có các phương thức: create(), - Nhiều Event được áp update(), delete() dụng cho nhiều Tour và

Voucher - Chứa các thuộc tính như thông - Nhiều Voucher được tin của Voucher quản lý bởi 1 Admin

- Có các phương thức: create(), - Nhiều Voucher được áp update(), delete() dụng cho nhiều Tour và

Commission - Chứa các thuộc tính như thông - Nhiều Commission được tin của Voucher quản lý bởi 1 Admin

- Có các phương thức: create(), - Nhiều Commission được update(), delete() áp dụng cho Enterprise

Policy - Chứa các thuộc tính như thông - Nhiều Policy được quản tin của Policy lý bởi 1 Enterprise

- Có các phương thức: create(), - 1 Policy được áp dụng update(), delete() cho nhiều Tour và Stay

Schedule - Chứa các thuộc tính như thông - 1 Tour có nhiều tin của Schedule Schedule

- Có các phương thức: create(), update(), delete()

Account - Chứa các thuộc tính như thông 1 User quản lý 1 Account tin của Account

- Có các phương thức: login(),register(), verifyRegister(),getProfile(), updateUser()

Thiết kế giao diện

Hình 4.43: Thiết kế - Trang chủ - Header - 1

Bảng 4.22: Thiết kế - Trang chủ - Header - 1 - Các thành phần

STT Tên Loại Mô tả

1 Mục “Hoạt Button Chuyển đổi thanh tìm kiếm điểm du lịch động”

2 Ô tìm kiếm thông Input Nhập thông tin điểm du lịch tin du lịch

3 Ô chọn ngày Input Chọn ngày đi

4 Nút tìm kiếm Button Nhấn nút “Tìm kiếm” để tra thông tin tìm kiếm và được chuyển đến trang danh sách điểm du lịch

Hình 4.44: Thiết kế - Trang chủ - Header - 2

Bảng 4.23: Thiết kế - Trang chủ - Header - 2 - Các thành phần

STT Tên Loại Mô tả

1 Mục “Nơi ở” Div Chuyển đổi thanh tìm kiếm nơi ở

2 Ô tìm kiếm Input Nhập thông tin điểm du lịch thông tin nơi ở

3 Ô chọn ngày đi Input Chọn ngày đi

4 Ô chọn ngày Input Chọn ngày về về

5 Ô chọn số Input, Chọn hoặc nhập số lượng người lớn lượng người button lớn

6 Ô chọn số Input, Chọn hoặc nhập số lượng trẻ em lượng trẻ em button

7 Ô chọn số Input, Chọn hoặc nhập số lượng phòng lượng phòng button

4 Nút tìm kiếm Button Nhấn nút “Tìm kiếm” để tra thông tin tìm kiếm và được chuyển đến trang danh sách điểm nơi ở

4.4.1.3 Thông tin các sự kiện

Hình 4.45: Thiết kế - Trang chủ - Thông tin sự kiện

Bảng 4.24: Thiết kế - Trang chủ - Thông tin sự kiện - Các thành phần

STT Tên Loại Mô tả

1 Danh sách sự Div Hiển thị danh sách sự kiện kiện

2 Nút “Xem Button Xem dánh sách sự kiện, khi nhấn vào sẽ được thêm” chuyển đến trang danh sách sự kiện

4.4.1.4 Đề xuất các địa điểm du lịch

Hình 4.46: Thiết kế - Trang chủ - Đề xuất địa điển du lịch

Bảng 4.25: Thiết kế - Trang chủ - Đề xuất địa điển du lịch - Các thành phần

STT Tên Loại Mô tả

1 Danh sách các địa Div Khi nhấn vào từng mục sẽ được chuyển điểm nổi bật đến trang danh sách điểm du lịch theo địa điểm đã chọn

Hình 4.47: Thiết kế - Trang chủ - Đề xuất nơi ở

Bảng 4.26: Thiết kế - Trang chủ - Đề xuất nơi ở - Các thành phần

STT Tên Loại Mô tả

1 Danh sách các địa Div Khi nhấn vào từng mục sẽ được chuyển điểm có nơi ở nổi bật đến trang danh sách điểm nơi ở theo địa điểm đã chọn

4.4.1.6 Thông tin chung về hệ thống

Hình 4.48: Thiết kế - Trang chủ - Thông tin chung

4.4.1.7 Thông tin liên lạc của hệ thống

Hình 4.50: Thiết kế - Trang danh sách tour

Bảng 4.27: Thiết kế - Trang danh sách tour - Các thành phần

STT Tên Loại Mô tả

1 Ô tìm kiếm thông Input Nhập thông tin điểm du lịch

2 Ô chọn ngày đi Input Chọn ngày đi

3 Danh mục chọn bộ Input Chọn bộ lọc theo giá cao nhất, thấp lọc nhất, theo đánh giá cao nhất

4 Thẻ điểm du lịch Div Chọn vào một thẻ bất kỳ sẽ chuyển đến trang thông tin chi tiết của điểm du lịch đó

5 Đặt lại bộ lọc Button Khi nhấn vào sẽ đặt lại bộ lọc bao gồm ô tìm kiếm, ngày đi, danh mục chọn bộ lọc

6 Mục chuyển đổi Button Khi nhấn vào sẽ chuyển đổi trình bày trình bày của thẻ dạng danh sách hay lưới

Hình 4.51: Thiết kế - Trang chi tiết tour

Bảng 4.28: Thiết kế - Trang chi tiết tour - Các thành phần

STT Tên Loại Mô tả

1 Ô chọn ngày đi Input Chọn ngày đi

2 Ô chọn số Input, Chọn hoặc nhập số lượng người lớn lượng người lớn Button

2 Ô chọn số Input, Chọn hoặc nhập số lượng trẻ em lượng trẻ em button

4 Đặt điểm du Button Sau khi chọn xong số lượng người lớn và lịch trẻ em thì khi nhấn nút đặt sẽ được chuyển đến trang thanh toán

5 Lịch trình từng Tab Khi nhấn vào sẽ lịch trình từng ngày ngày

6 Điều khoản điều Button Xem chi tiết điều khoản điều kiện của kiện điểm du lịch

4.4.4 Phần đánh giá của khách hàng (có ở trang chi tiết tour và nơi ở)

Hình 4.52: Thiết kế - Phần đánh giá dịch vụ

Bảng 4.29: Thiết kế - Phần đánh giá dịch vụ - Các thành phần

STT Tên Loại Mô tả

1 Thêm bình luận Button Khi đặt hàng và đã sử dụng dịch vụ thì

2 Danh mục thao tác Button Thực hiện các thao tác chỉnh sửa, trả lời, xóa

3 Chỉnh sửa, Trả lời, Button Chỉnh sửa đánh giá, trả lời đánh giá,

Hình 4.53: Thiết kế - Form đánh giá dịch vụ

Bảng 4.30: Thiết kế - Form đánh giá dịch vụ - Các thành phần

STT Tên Loại Mô tả

1 Sao đánh Button, Chọn số lượng sao cần đánh giá và số sao giá div hiển thị tương ứng

2 Nội dung Input Nhập nội dung đánh giá

3 Tải hình Input Tải hình ảnh trải nghiệm về dịch vụ của ảnh người dùng

4 Đăng Button Đăng đánh giá

5 Quay lại Button Thoát đánh giá

4.4.4.3 Phần nhập thảo luận tại mỗi đánh giá

Hình 4.54: Thiết kế - Thảo luận dịch vụ Bảng 4.31: Thiết kế - Thảo luận dịch vụ - Các thành phần

STT Tên Loại Mô tả

1 Nội dung thảo luận Input Nhập nội dung thảo luận

2 Đăng Button Đăng đánh giá

3 Quay lại Button Thoát đánh giá

Hình 4.55: Thiết kế - Trang danh sách nơi ở

Bảng 4.32: Thiết kế - Trang danh sách nơi ở - Các thành phần

STT Tên Loại Mô tả

1 Ô tìm kiếm Input Nhập thông tin điểm nơi ở thông tin

2 Ô chọn ngày đi Input Chọn ngày đi

3 Ô chọn ngày Input Chọn ngày về về

4 Danh mục Input Chọn bộ lọc theo giá cao nhất, thấp nhất, theo chọn bộ lọc đánh giá cao nhất

5 Đặt lại bộ lọc Button Khi nhấn vào sẽ đặt lại bộ lọc bao gồm ô tìm kiếm, ngày đi, danh mục chọn bộ lọc

6 Thẻ điểm du Div Chọn vào một thẻ bất kỳ sẽ chuyển đến trang lịch thông tin chi tiết của nơi ở đó

Hình 4.56: Thiết kế - Trang chi tiết nơi ở - Thông tin chung

Bảng 4.33: Thiết kế - Trang chi tiết nơi ở - Thông tin chung - Các thành phần

STT Tên Loại Mô tả

1 Xem tất cả hình ảnh Div Khi nhấn vào sẽ xem tất cả các ảnh

2 Chọn phòng Button Khi nhấn vào sẽ chuyển đến mục chọn

4.4.6.2 Phần kiểm tra phòng trống và chọn phòng

Hình 4.57: Thiết kế - Trang chi tiết nơi ở - Kiểm tra phòng trống

Bảng 4.34: Thiết kế - Trang chi tiết nơi ở - Kiểm tra phòng trống - Các thành phần

STT Tên Loại Mô tả

1 Ô chọn ngày Input Chọn ngày đi đi

2 Ô chọn ngày Input Chọn ngày về về

3 Ô chọn số Input Khi nhấn vào thanh input sẽ hiện ra danh lượng mục chọn, nhập số lượng người lớn, trẻ em, phòng

4 Bộ lọc Select Lọc theo giá thấp nhất, cao nhất, đánh giá cao nhất

5 Đặt lại bộ Button Khi nhấn vào sẽ đặt lại bộ lọc bao gồm ô lọc tìm kiếm, ngày đi, danh mục chọn bộ lọc

6 Xem chi tiết Button Khi nhấn vào sẽ hiển thị chi tiết phòng phòng

7 Chi tiết giá Div Hiển thị chi tiết giá theo từng ngày mà người dùng tìm kiếm

8 Số lượng Input, Chọn hoặc nhập số lượng phòng button

9 Đặt Button Khi nhấn vào chuyển đến trang thanh toán

4.4.7 Trang danh sách sự kiện

Hình 4.58: Thiết kế - Trang danh sách sự kiện

Bảng 4.35: Thiết kế - Trang danh sách sự kiện - Các thành phần

STT Tên Loại Mô tả

1 Xem chi Button Khi nhấn vào sẽ chuyển đến trang chi tiết sự kiện tiết

4.4.8 Trang chi tiết sự kiện

Hình 4.59: Thiết kế - Trang chi tiết sự kiện

Bảng 4.36: Thiết kế - Trang chi tiết sự kiện - Các thành phần

STT Tên Loại Mô tả

1 Mã sự kiện Input Thông tin mã sự kiện

2 Sao chép Button Sao chép mã sự kiện

3 Tìm kiếm Button Tìm kiếm dịch vụ tương ứng để áp dụng mã giảm giá

4.4.9 Trang hồ sơ của tôi

4.4.9.1 Phần thông tin cá nhân

Hình 4.60: Thiết kế - Trang hồ sơ của tôi - Thông tin cá nhân

Bảng 4.37: Thiết kế - Trang hồ sơ của tôi - Thông tin cá nhân - Các thành phần

STT Tên Loại Mô tả

1 Tải ảnh diện Input Tải hình đại diện cá nhân

5 Số điện thoại Input Nhập số điện thoại

6 Địa chỉ Input Địa chỉ nếu cần

7 Lưu Button Lưu thông tin thay đổi

8 Mục “Hồ sơ” Tab Chuyển đổi mục thành “Hồ sơ”

9 Mục “Thay đổi mật Tab Chuyển đổi mục thành “Thay đổi khẩu” mật khẩu”

4.4.9.2 Phần thay đổi mật khẩu

Hình 4.61: Thiết kế - Trang hồ sơ của tôi - Đổi mật khẩu Bảng 4.38: Thiết kế - Trang hồ sơ của tôi - Đổi mật khẩu - Các thành phần

STT Tên Loại Mô tả

1 Mật khẩu hiện tại Input Nhập mật khẩu hiện tại

2 Mật khẩu mới Input Nhập mật khẩu mới

3 Xác nhận mật khẩu Input Nhập xác nhận mật khẩu

4 Lưu Button Lưu thông tin thay đổi

Hình 4.62: Thiết kế - Trang đặt tour - Điền thông tin

Bảng 4.39: Thiết kế - Trang đặt tour - Điền thông tin - Các thành phần

STT Tên Loại Mô tả

4 Số điện thoại Input Nhập số điện thoại

5 Yêu cầu đặt biệt Input Nhập yêu cầu đặt biệt nếu cần

6 Chi tiết giá Div Hiển thị chi tiết giá

7 Chọn mã giảm giá Div Chọn mã giảm giá của doanh nghiệp

8 Mã sự kiện Input Nhập mã sự kiện của hệ thống

9 Sử dụng Button Sử dụng mã giảm giá

10 Tiếp tục đến Xem lại Button Chuyển đến trang xem lại

4.4.10.2 Trang xem lại thông tin

Hình 4.63: Thiết kế - Trang đặt tour - Xem lại thông tin

Bảng 4.40: Thiết kế - Trang đặt tour - Xem lại thông tin - Các thành phần

STT Tên Loại Mô tả

1 Chi tiết chính sách Div Xem chi tiết chính sách hủy và đổi lịch

4.4.11 Các trang thanh toán của VNPAY

Hình 4.64: Trang thanh toán VNPAY - 1

4.4.12 Trang quản lý của Enterprise và Staff

Hình 4.66: Thiết kế - Trang quản lý của Enterprise và Staff - Danh mục

Bảng 4.41: Thiết kế - Trang quản lý của Enterprise và Staff - Danh mục - Các thành phần

STT Tên Loại Mô tả

1 Quản lý dịch vụ du lịch Tab Quản lý dịch vụ du lịch

2 Quản lý dịch vụ nơi ở Tab Quản lý dịch vụ nơi ở

3 Quản lý dịch mã giảm giá Tab Quản lý dịch mã giảm giá

4 Quản lý nhân viên Tab Quản lý nhân viên

5 Quản lý đơn hàng du lịch Tab Quản lý đơn hàng du lịch

6 Quản lý doanh thu du lịch Tab Quản lý doanh thu du lịch

Hình 4.67: Thiết kế - Trang quản lý của Enterprise và Staff - Quản lý tour

Bảng 4.42: Thiết kế - Trang quản lý của Enterprise và Staff - Quản lý tour

STT Tên Loại Mô tả

1 Tìm kiếm Input Tìm kiếm gói du lịch

2 Lọc Input Lọc theo trạng thái

3 Tạo Button Tạo tour điểm du lịch mới

4 Danh mục thao Button Hiển thị danh sách thao tác tác

5 Xóa Button Xóa điểm du lịch nếu chưa có người đặt hoặc chưa có ngày diễn ra

6 Mặc định Button Chỉnh sửa loại mặc định

7 Tiếng việt Button Chỉnh sửa loại tiếng việt

8 Tiếng Anh Button Chỉnh sửa loại tiếng anh

Bảng 4.43: Thiết kế - Màn hình tạo tour - Các thành phần

STT Tên Loại Mô tả

1 Mục thông tin Input Mục điền thông tin

2 Mục Lịch trình Input Mục điền lịch trình

3 Mục giá và ngày Button Mục điền giá và ngày

4 Mục chính sách Button Mục điền chính sách

5 Tên Input Nhập tên du lịch

6 Số điện thoại Input Nhập số điện thoại liên lạc

7 Thành phố Input Nhập thành phố

10 Chi tiết địa Input Nhập chi tiết địa điểm điểm

11 Số ngày Input Nhập số ngày

12 Số đêm Input Nhập số đêm

13 Trở lại Button Trở lại trang trước đó

4.4.13 Trang quản lý của Super admin và Admin

Hình 4.69: Thiết kế - Trang quản lý của Super admin và Admin - Danh mục

Bảng 4.44: Thiết kế - Trang quản lý của Super admin và Admin - Danh mục - Các thành phần

STT Tên Loại Mô tả

1 Quản lý dịch vụ người dùng Tab Quản lý dịch vụ du lịch

2 Quản lý dịch vụ sự kiện Tab Quản lý dịch vụ nơi ở

3 Quản lý hoa hồng Tab Quản lý nhân viên

4 Quản lý đơn hàng du lịch Tab Quản lý đơn hàng du lịch

Hình 4.70: Thiết kế - Trang đăng nhập

Bảng 4.45: Thiết kế - Trang đăng nhập - Các thành phần

STT Tên Loại Mô tả

1 Email Input Nhập email người dùng

2 Mật khẩu Input Nhập mật khẩu người dùng

3 Đăng nhập Button Nhấn nút “Đăng nhập” để vào hệ thống

4 Quên mật Link Nếu quên mật khẩu để chuyển sang trang lấy khẩu lại mật khẩu

5 Tạo tài khoản Link Nếu chưa có tài khoản nhấn để sang trang đăng ký

Hình 4.71: Thiết kế - Trang đăng ký

Bảng 4.46: Thiết kế - Trang đăng ký - Các thành phần

STT Tên Loại Mô tả

1 Họ Input Họ người đăng ký

2 Tên Input Tên người đăng ký

3 Email Input Email người đăng ký

4 Mật khẩu Input Nhập mật khẩu người dùng

5 Xác nhận Input Xác nhận mật khẩu mật khẩu

6 Số điện Input Số điện thoại đăng ký thoại

7 Người dùng Checkbox Nếu là người dùng bình thường thì chọn vào

8 Doanh Checkbox Nếu là doanh nghiệp thì chọn vào “Doanh nghiệp nghiệp”

9 Đồng ý Checkbox Đối với doanh nghiệp thì phải chọn đồng ý với điều khoản điều kiện, nếu không chọn thì không được đăng ký

10 Điều khoản Button Xem điều khoản điều kiện điều kiện

11 Tạo tài Button Nhấn để tạo tài khoản (sau khi tạo tài khoản sẽ khoản được yêu cầu kiểm tra email để xác nhận)

Hình 4.72: Thiết kế - Trang quên mật khẩu

Bảng 4.47: Thiết kế - Trang quên mật khẩu - Các thành phần

STT Tên Loại Mô tả

1 Email Input Nhập email người dùng đã đăng ký hệ thống

2 Gửi Button Nhấn “Gửi” để được gửi mã lấy mật khẩu (sau khi nhấn sẽ được thông báo kiểm tra email để nhập mã xác nhận lấy lại mật khẩu)

3 Trở về trang Button Trở về trang đăng nhập đăng nhập

Bảng 4.48: Mô tả bảng User

STT Tên Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id Integer Giá trị ID được tạo tự động

2 avatar String Link ảnh đại diện cho người dùng hoặc doanh nghiệp

3 firstName String Tên người dùng

4 lastName String Họ người dùng

5 address String Địa chỉ người dùng

6 phoneNumber String Số điện thoại người dùng

Bảng 4.49: Mô tả bảng Account

STT Tên Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id Integer Giá trị ID được tạo tự động

2 email String Email người dùng

3 password String Mật khẩu người dùng

4 role Integer Quyền truy cập hệ thống của người dùng

5 userId Integer Id được tham chiếu đến bản

6 enterpriseId Integer Id của doanh nghiệp

Bảng 4.50: Mô tả bảng Commission

STT Tên Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id Integer Giá trị ID được tạo tự động

2 serviceType Integer Loại dịch vụ

3 minPrice Double Giá trị giá nhỏ nhất của đơn hàng được áp dụng

4 maxPrice Double Giá trị giá lớn nhất của đơn hàng được áp dụng

5 rate Double Phần trăm hoa hồng

Bảng 4.51: Mô tả bảng Tour

STT Tên Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id Integer Giá trị ID được tạo tự động

2 title String Tên của tour

3 images String[] Danh sách cái link của hình ảnh

4 numberOfDays Integer Số ngày tham gia tour

5 numberOfNights Integer Số đêm tham gia tour

6 city String Tên thành phố của tour

7 district String Tên quận của tour

8 communue String Tên xã của tour

9 moreLocation String Chi tiết địa điểm của tour

10 contact String Số điện thoại để liên lạc

11 description String Mô tả tour

12 suitablePerson String Mô tả phù hợp với loại người dùng

13 highlight String Điểm nổi bật của tour

14 termsAndCondition String Điều khoản điều kiện của tour

15 numberOfReviewer Integer Số lượng người đánh giá

16 rate Integer Số đánh giá

17 policyId Integer Id được tham chiếu đến bảng

18 minPrice Double Giá thấp nhất của tour trong những ngày diễn ra tour

19 maxPrice Double Giá cao nhất của tour trong những ngày diễn ra tour

20 latestTourDate Date Ngày gần nhất diễn ra tour

21 creator Integer Id người tạo

22 owner Integer Id của doanh nghiệp sở hữu tour

23 isDeleted Boolean Biến xác định có được xóa tour không

24 parentLanguage Integer Id của tour mặc định

25 language String Loại ngôn ngữ

Bảng 4.52: Mô tả bảng Schedule

STT Tên Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id Integer Giá trị ID được tạo tự động

2 tourId Integer Id của của tour

3 day Integer Số ngày diễn ra tour

4 startTime DateTime Thời gian bắt đầu

5 endTime DateTime Thời gian kết thúc

Bảng 4.53: Mô tả bảng TourOnSales

STT Tên Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id Integer Giá trị ID được tạo tự động

2 tourId Integer Id của của tour

3 discount Double Giá trị giảm giá

4 quantity Integer Số lượng vé

5 quantityOrdered Integer Số lượng vé đã đặt

6 startDate Date Ngày bắt đầu diễn ra tour

7 childrenAgeMin Integer Giá trị tuổi trẻ em nhỏ nhất

8 childrenAgeMax Integer Giá trị tuổi trẻ em lớn nhất

9 childrenPrice Double Giá dành cho trẻ em

10 adultPrice Double Giá dành cho người lớn

Bảng 4.54: Mô tả bảng Stay

STT Tên Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id Integer Giá trị ID được tạo tự động

2 name String Tên của nơi ở

4 images String[] Danh sách cái link của hình ảnh

5 city String Tên thành phố của nơi ở

6 district String Tên quận của nơi ở

7 communue String Tên xã của nơi ở

8 moreLocation String Chi tiết địa điểm của nơi ở

9 contact String Số điện thoại để liên lạc

10 description String Mô tả nơi ở

11 checkInTime DateTime Thời gian vào

12 checkOutTime DateTime Thời gian ra

13 highlight String Điểm nổi bật của nơi ở

14 convenient String[] Danh sách các tiện nghi của nơi ở

15 termsAndCondition String Điều khoản điều kiện của nơi ở

16 minPrice Double Giá thấp nhất của nơi ở trong những phòng

17 maxPrice Double Giá cao nhất của tour trong những phòng

16 numberOfReviewer Integer Số lượng người đánh giá

17 rate Double Giá trị đánh giá

18 creator Integer Id người tạo

19 owner Integer Id của doanh nghiệp sở hữu nơi ở

20 isDeleted Boolean Biến xác định có được xóa nơi ở không

21 parentLanguage Integer Id của nơi ở mặc định

22 language String Loại ngôn ngữ

Bảng 4.55: Mô tả bảng Room

STT Tên Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id Integer Giá trị ID được tạo tự động

2 title String Tên của nơi ở

3 images String[] Danh sách cái link của hình ảnh

4 description String Mô tả nơi ở

7 numberOfAdult Integer Số lượng người lớn cho 1 phòng

8 numberOfChildren Integer Số lượng trẻ em cho 1 phòng

9 discount Double Giá trị giảm giá

10 mondayPrice Double Giá vào ngày thứ hai

11 tuesdayPrice Double Giá vào ngày thứ ba

12 wednesdayPrice Double Giá vào ngày thứ tư

13 thursdayPrice Double Giá vào ngày thứ năm

14 fridayPrice Double Giá vào ngày thứ sáu

15 saturdayPrice Double Giá vào ngày thứ bảy

16 sundayPrice Double Giá vào ngày chủ nhật

17 language String Loại ngôn ngữ

Bảng 4.56: Mô tả bảng CheckRoom

STT Tên Thuộc tính Kiểu dữ Ý nghĩa liệu

1 id Integer Giá trị ID được tạo tự động

2 bookedDate Date Ngày đã đặt

3 numberOfRoomsAvailable Integer Số phòng có sẵn

4 stayId Integer Id của nơi ở

5 roomId Integer Id của phòng

Bảng 4.57: Mô tả bảng Policy

STT Tên Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id Integer Giá trị ID được tạo tự động

2 serviceId Integer Id của dịch vụ

3 serviceType Integer Loại dịch vụ

4 policyType Integer Loại chính sách

6 moneyRate Double Phần trăm số tiền

Bảng 4.58: Mô tả bảng Event

STT Tên Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id Integer Giá trị ID được tạo tự động

2 name String Tên của sự kiện

4 description String Mô tả sự kiện

5 startTime Date Thời gian bắt đầu

6 endTime Date Thời gian kết thúc

7 banner String Link hình ảnh sự kiện

8 code String Mã sự kiện

9 stayIds Integer [] Danh sách id của các stay được áp dụng sự kiện

10 tourIds Integer[] Danh sách id của các tour được áp dụng sự kiện

11 discountType Integer Loại giảm giá

12 discountValue Double Giá trị giảm giá

13 minOrder Double Giá trị thấp nhất của hóa đơn được áp dụng sự kiện

14 maxDiscount Double Giá trị cao nhất có thể giảm cho hóa đơn

15 isQuantityLimit Boolean Biến xác định số có giới hạn số lượng mã sự kiện

16 numberOfCodes Integer Số lượng mã

17 numberOfCodesUsed Integer Số lượng mã được sử dụng

18 creator Integer Id của người tạo

19 owner Integer Id của doanh nghiệp sở hữu sự kiện

20 isDeleted Boolean Biến xác định có được xóa phòng không

21 parentLanguage Integer Id của nơi ở mặc định

22 language String Loại ngôn ngữ

Bảng 4.59: Mô tả bảng TourBill

STT Tên Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id Integer Giá trị ID được tạo tự động

2 userId Integer Id của người dùng

4 tourId Integer Id của tour

6 amountChild Integer Số lượng trẻ em

7 amountAdult Integer Số lượng người lớn

8 price Double Giá của hóa đơn

9 discount Double Giá trị giảm giá

10 totalBill Double Giá của hóa đơn

11 commissionRate Double Số phần trăm hoa hồng

12 commission Double Số tiền hoa hồng

13 email String Email người đặt

14 phoneNumber String Số điện người đặt

15 firstName String Họ người đặt

16 lastName String Tên người đặt

17 paymentStatus Integer Trạng thái thanh toán

18 status Integer Trạng thái hóa đơn

19 participantsInfo String[] Danh sách người tham giá tour

20 expiredTime Date Thời gian hết hạn

21 oldBillId Integer Id của hóa đơn cũ khi người đặt đổi lịch

22 extraPay Double Số tiền phải trả thêm

23 moneyRefund Double Số tiền được hoàn trả

Bảng 4.60: Mô tả bảng StayBill

STT Tên Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id Integer Giá trị ID được tạo tự động

2 userId Integer Id của người dùng

4 stayBillId Integer Id của stay

7 price Double Giá của hóa đơn

8 discount Double Giá trị giảm giá

9 totalBill Double Giá của hóa đơn

10 commissionRate Double Số phần trăm hoa hồng

11 commission Double Số tiền hoa hồng

12 email String Email người đặt

13 phoneNumber String Số điện người đặt

14 firstName String Họ người đặt

15 lastName String Tên người đặt

16 paymentStatus Integer Trạng thái thanh toán

17 status Integer Trạng thái hóa đơn

18 expiredTime Date Thời gian hết hạn

19 oldBillId Integer Id của hóa đơn cũ khi người đặt đổi lịch

20 extraPay Double Số tiền phải trả thêm

Bảng 4.61: Mô tả bảng RoomBillDetail

STT Tên Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id Integer Giá trị ID được tạo tự động

2 billId Integer Id của hóa đơn

4 roomId Integer Id của phòng

5 amount Integer Số lượng đã đặt

6 price Double Giá của hóa đơn

7 discount Double Giá trị giảm giá

8 commission Double Số tiền hoa hồng

Bảng 4.62: Mô tả bảng Comment

STT Tên Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id Integer Giá trị ID được tạo tự động

2 serviceId Integer Id của loại dịch vụ

4 serviceType Integer Loại dịch vụ

5 userId Integer Id người dùng

6 billId Integer Id hóa đơn

7 content String Nội dung đánh giá

8 images String[] Danh sách tải hình ảnh đánh giá

9 rate Integer Số sao đánh giá

10 commentRepliedId Integer Id của đánh giá được trả lời

CÀI ĐẶT VÀ THỬ NGHIỆM

Cài đặt ứng dụng

5.1.1 Chuẩn bị phần mềm, môi trường và source code

Cài đặt các phần mềm, môi trường và source code thì các đường link sau:

Bảng 5.1: Các phần mềm, môi trường và source code cần cài đặt

STT Phần mềm/ môi Link trường/ source code

1 Visual Studio Code https://code.visualstudio.com/download

2 Xampp https://www.apachefriends.org/download.html

2 Git https://git-scm.com/downloads

3 MySQL https://www.mysql.com/

4 Nodejs https://nodejs.org/en

5 Source code của front- https://gitlab.com/DucTien2001/travel-service end

6 Source code của back- https://gitlab.com/DucTien2001/travel-service- end be

Bỏ qua bước sử dụng Xampp và MySql vì database đã được deploy Dưới đây là các bước khởi động back-end:

Bước 1: Clone hoặc tải source code từ link gitlab ở mục 5.2.1

Bước 2: Mở Visual studio code Chọn File =>chọn Open Folder =>chọn thư mục “travel-service-be" để mở BackEnd.

Hình 5.1: Hướng dẫn cài đặt back-end - 1

Bước 3: Sau khi mở được project “travel-service-be" bằng Visual Studio

Code, chọn “Terminal” trên thanh taskbar, chọn tiếp “New Terminal” nhập

“npm install” để cài đặt thư viện sau đó nhập “npm run server” để chạy

Backend Back-end sẽ được khởi động thành công nếu xuất hiện màn hình sau:

Hình 5.2: Hướng dẫn cài đặt back-end - 2

Bước 1: Clone hoặc tải source code từ link gitlab ở mục 5.2.1

Bước 2: Mở một tab khác của Visual studio code Chọn File =>chọn Open

Folder =>chọn thư mục “travel-service" để mở FrontEnd.

Hình 5.3: Hướng dẫn cài đặt front-end

Bước 3: Sau khi mở được project “travel-service" bằng Visual Studio Code, chọn “Terminal” trên thanh taskbar, chọn tiếp “New Terminal” nhập “npm install” để cài đặt thư viện sau đó nhập “npm run dev” để chạy Frontend.

Sau khi chạy thành công, khởi động trình duyệt web và truy cập vào http://localhost:3000/ để sử dụng hệ thống.

Lưu ý: Có thể truy cập vào https://travel-service.vercel.app/ để sử dụng hệ thống mà không cần cài đặt hay khởi động trên máy local.

Thử nghiệm hệ thống

Mục đích của viêc kiểm thử là đảm bảo website đáp ứng được toàn bộ nhu cầu về kĩ thuật và chức năng của hệ thống Đảm bảo không có lỗi xãy ra và giúp người dùng có trải nghiệm tốt về hệ thống.

Dưới đây là một số trường hợp thử nghiệm của các chức năng chính của hệ thống:

Bảng 5.2: Thử nghiệm chức năng đăng nhập

ID Mô tả Các bước thực hiện Kết quả mong đợi Kết testcase quả

DN- Đăng nhập 1 Điền thông tin đăng Chuyển đến trang Pass

2 Nhấn nút “Đăng người dùng, nhập” chuyển đến trang quản lý của doanh nghiệp nếu là loại doanh nghiệp, chuyển đến trang quản lý của quản lý hệ thống nếu là loại quản lý hệ thống

DN- Đăng nhập 1 Điền thông tin đăng Thông báo nhập Pass

002 với email (email, password) sai mật khẩu hoặc chưa đăng ký 2 Nhấn nút “Đăng email nhập”

5.2.2 Tìm kiếm tour du lịch

Bảng 5.3: Thử nghiệm chức năng tìm kiếm tour du lịch

ID Mô tả Các bước thực hiện Kết quả mong đợi Kết testcase quả

DL- Tìm kiếm hoạt 1 Chọn mục “Hoạt Lọc, chuyển trang Pass

001 động du lịch động” danh sách du lịch tại trang chủ 2 Nhập địa chỉ hoặc từ và cho ra kết quả khóa hoạt động du lịch theo thông tin tìm cần tìm kiếm kiếm

3 Chọn ngày bắt đầu đi

DL- Tìm kiếm hoạt 1 Chọn mục “Hoạt Lọc, chuyển trang Pass

002 động du lịch động” danh sách du lịch tại trang chủ 2 Nhập địa chỉ hoặc từ và cho ra kết quả nếu không có khóa hoạt động du lịch “KHÔNG TÌM thông tin thích 3 Chọn ngày bắt đầu đi THẤY DỮ LIỆU” hợp 4 Nhấn nút “Tìm kiếm”

Bảng 5.4: Thử nghiệm chức năng tìm kiếm nơi ở

ID Mô tả Các bước thực hiện Kết quả mong đợi Kết testcase quả

NO- Tìm kiếm nơi 1 Chọn mục “Nơi ở” Lọc, chuyển trang Pass

001 ở tại trang chủ 2 Nhập địa chỉ hoặc từ danh sách nơi ở và khóa nơi ở cần tìm kiếm cho ra kết quả theo

3 Chọn ngày bắt đầu đi thông tin tìm kiếm

5 Chọn số lượng người lớn, trẻ em, phòng

NO- Tìm kiếm nơi 1 Chọn mục “Nơi ở” Lọc, chuyển trang Pass

002 ở tại trang chủ 2 Nhập địa chỉ hoặc từ danh sách nơi ở và nếu không có khóa nơi ở cần tìm kiếm cho ra kết quả thông tin 3 Chọn ngày bắt đầu đi “KHÔNG TÌM thích hợp 4 Chọn ngày về THẤY DỮ LIỆU”

5 Chọn số lượng người lớn, trẻ em, phòng

Bảng 5.5: Thử nghiệm chức năng đặt tour du lịch

ID Mô tả Các bước thực hiện Kết quả mong Kết testcase đợi quả

DL- Đặt dịch vụ 1 Chọn ngày đi Chuyển đến trang Pass

003 du lịch bất kỳ 2 Chọn số lượng vé người điền thông tin đã đăng nhập lớn thanh thanh toán

3 Chọn số lượng vé trẻ em

DL- Đặt dịch vụ 1 Chọn ngày đi Chuyển đến trang Pass

003 du lịch bất kỳ 2 Chọn số lượng vé người đăng nhập khi chưa đăng lớn nhập 3 Chọn số lượng vé trẻ em

Bảng 5.6: Thử nghiệm chức năng đặt nơi ở

ID Mô tả Các bước thực hiện Kết quả mong Kết testcase đợi quả

NO- Đặt dịch vụ 1 Chọn ngày đi Chuyển đến trang Pass

003 nơi ở bất kỳ 2 Chọn ngày về điền thông tin đã đăng nhập 3 Chọn số lượng người thanh thanh toán lớn, trẻ em, phòng

4 Tìm kiếm phòng thích hợp

5 Chọn số lượng phòng cần đặt

NO- Đặt dịch vụ 1 Chọn ngày đi Chuyển đến trang Pass

004 nơi ở bất kỳ 2 Chọn ngày về đăng nhập chưa đăng 3 Chọn số lượng người nhập lớn, trẻ em, phòng

4 Tìm kiếm phòng thích hợp

1 Chọn số lượng phòng cần đặt

Bảng 5.7: Thử nghiệm chức năng thanh toán

ID Mô tả Các bước thực hiện Kết quả mong đợi Kết testcase quả

TT- Thanh toán 1 Điền thông tin người Đặt dịch vụ thành Pass

001 dịch vụ du đặt công, chuyển trang lịch bất kỳ 2 Chọn mã giảm giá hoặc và tạo hóa đơn sự kiện nếu có

3 Nhấn nút “Tiếp tục đến Xem lại”

4 Xem lại thông tin đã điền

5 Nhấn nút “Tiếp tục đến Thanh toán”

6 Nhập thông tin thanh toán

TT- Thanh toán 1 Không điền thông tin Thông báo điền Pass

002 dịch vụ du người thanh toán thông tin người lịch bất kỳ khi 2 Chọn mã giảm giá hoặc thanh toán chưa điền sự kiện nếu có thông tin 3 Nhấn nút “Tiếp tục đến người thanh Xem lại” toán 4 Xem lại thông tin đã điền

5 Nhấn nút “Tiếp tục đến Thanh toán”

6 Nhập thông tin thanh toán

Bảng 5.8: Thử nghiệm chức năng đổi lịch

ID Mô tả Các bước thực hiện Kết quả mong đợi Kết testcase quả

DL- Đổi lịch khi 1 Tại trang “Đơn hàng Đổi lịch theo ngày Pass

005 còn thời gian và giao dịch” chọn hóa muốn đồi đổi lịch đơn muốn đổi

4 Điền lại thông tin thanh toán

DL- Đổi lịch khi 1 Tại trang “Đơn hàng Không hiển thị nút Pass

006 không còn và giao dịch” chọn hóa đổi lịch thời gian đổi đơn muốn đổi

Bảng 5.9: Thử nghiệm chức năng thêm mới tour

ID Mô tả Các bước thực hiện Kết quả mong Kết testcase đợi quả

TMT- Thêm mới 1 Tại mục danh sách Tạo mới thành Pass

001 dịch vụ du dịch vụ du lịch nhấn công dịch vụ du lịch nút “Tạo” lịch

2 Điền thông tin du lịch

3 Điền thông tin lịch trình

4 Chọn và điền thông tin ngày diễn ra du lịch

5 Chọn và điền thông tin chính sách của du lịch

TMT- Thêm mới 1 Tại mục danh sách Thông báo nhập Pass

002 dịch vụ du dịch vụ du lịch nhấn thiếu thông tin lịch khi điền nút “Tạo” thiếu thông 2 Điền thiếu thông tin tin tạo du lịch

Ngày đăng: 11/12/2023, 09:39

HÌNH ẢNH LIÊN QUAN

Hình 3.6: Danh sách một vài tour du lịch của Traveloka - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 3.6 Danh sách một vài tour du lịch của Traveloka (Trang 25)
Hình 3.7: Thông tin về một tour du lịch của Traveloka - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 3.7 Thông tin về một tour du lịch của Traveloka (Trang 26)
Hình 3.10: Màn hình thanh toán trên Traveloka - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 3.10 Màn hình thanh toán trên Traveloka (Trang 27)
Hình 3.9: Màn hình đặt dịch vụ của Traveloka - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 3.9 Màn hình đặt dịch vụ của Traveloka (Trang 27)
Hình 4.2: Activity diagram của usecase sign up - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.2 Activity diagram của usecase sign up (Trang 47)
Hình 4.4: Activity diagram của usecase login - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.4 Activity diagram của usecase login (Trang 49)
Hình 4.6: Activity diagram của usecase forgot password - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.6 Activity diagram của usecase forgot password (Trang 51)
Hình 4.8: Activity diagram của usecase change password - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.8 Activity diagram của usecase change password (Trang 53)
Hình 4.11: Sequence diagram của usecase manage turnover - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.11 Sequence diagram của usecase manage turnover (Trang 56)
Hình 4.13: Sequence diagram của usecase manage account - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.13 Sequence diagram của usecase manage account (Trang 58)
Hình 4.14: Activity diagram của usecase manage commission - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.14 Activity diagram của usecase manage commission (Trang 60)
Hình 4.15: Sequence diagram của usecase manage commission - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.15 Sequence diagram của usecase manage commission (Trang 61)
Hình 4.16: Activity diagram của usecase manage events - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.16 Activity diagram của usecase manage events (Trang 63)
Hình 4.19: Sequence diagram của usecase manage turnover - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.19 Sequence diagram của usecase manage turnover (Trang 66)
Hình 4.20: Activity diagram của usecase manage staff - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.20 Activity diagram của usecase manage staff (Trang 68)
Hình 4.23: Sequence diagram của usecase manage tour - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.23 Sequence diagram của usecase manage tour (Trang 71)
Hình 4.24: Activity diagram của usecase manage stay - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.24 Activity diagram của usecase manage stay (Trang 73)
Hình 4.26: Activity diagram của usecase manage feedback - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.26 Activity diagram của usecase manage feedback (Trang 75)
Hình 4.28: Activity diagram của usecase manage order - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.28 Activity diagram của usecase manage order (Trang 78)
Hình 4.36: Activity diagram của usecase feedback - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.36 Activity diagram của usecase feedback (Trang 87)
Hình 4.38: Activity diagram của usecase manage information - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.38 Activity diagram của usecase manage information (Trang 89)
Hình 4.39: Sequence diagram của usecase manage information - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.39 Sequence diagram của usecase manage information (Trang 90)
Hình 4.41: Sequence diagram của usecase manage booked ticket - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.41 Sequence diagram của usecase manage booked ticket (Trang 93)
Hình 4.42: Lược đồ lớp (class diagram) - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.42 Lược đồ lớp (class diagram) (Trang 95)
Hình 4.50: Thiết kế - Trang danh sách tour - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.50 Thiết kế - Trang danh sách tour (Trang 103)
Hình 4.55: Thiết kế - Trang danh sách nơi ở - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.55 Thiết kế - Trang danh sách nơi ở (Trang 108)
Hình 4.57: Thiết kế - Trang chi tiết nơi ở - Kiểm tra phòng trống - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.57 Thiết kế - Trang chi tiết nơi ở - Kiểm tra phòng trống (Trang 110)
Hình 4.62: Thiết kế - Trang đặt tour - Điền thông tin - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 4.62 Thiết kế - Trang đặt tour - Điền thông tin (Trang 115)
Hình 5.1: Hướng dẫn cài đặt back-end - 1 - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 5.1 Hướng dẫn cài đặt back-end - 1 (Trang 138)
Hình 5.3: Hướng dẫn cài đặt front-end - Khóa luận tốt nghiệp xây dựng website cung cấp các dịch vụ du lịch
Hình 5.3 Hướng dẫn cài đặt front-end (Trang 139)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w