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