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

(Đồ án tốt nghiệp) Xây dựng website đặt tour du lịch

175 35 1

Đ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 Đặt Tour Du Lịch
Tác giả Võ Nguyễn Minh Hiền, Nguyễn Thị Xuân Mai
Người hướng dẫn Nguyễn Đức Khoan
Trường học Trường Đại Học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh
Chuyên ngành Công nghệ Thông tin
Thể loại đề tài tốt nghiệp
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 175
Dung lượng 7,04 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • Chương 1 Tổng quan (14)
    • 1.1 Lý do chọn đề tài (14)
    • 1.2 Mục đích của đề tài (14)
    • 1.3 Quy trình nghiệp vụ và phương pháp tiếp cận (15)
      • 1.3.1 Quy trình nghiệp vụ (15)
      • 1.3.2 Phương pháp tiếp cận (15)
    • 1.4 Khảo sát hiện trạng (16)
      • 1.4.1 Website: mytour.vn (16)
      • 1.4.2 Website: saigontourist.net (20)
  • Chương 2 Công nghệ áp dụng (24)
    • 2.1 ExpressJS Framework (24)
      • 2.1.1 ExpressJS là gì? (24)
      • 2.1.2 Một vài tính năng nổi bật (24)
      • 2.1.3 Các thành phần chính (25)
    • 2.2 Công nghệ ReactJS (25)
      • 2.2.1 ReactJS là gì? (25)
      • 2.2.2 Đặc trưng của ReactJS (26)
  • Chương 3 Phân tích yêu cầu (30)
    • 3.1 Lược đồ use case (30)
    • 3.2 Thống kê nghiệp vụ cho từng đối tượng (30)
      • 3.2.1 Người dùng chưa đăng nhập (30)
      • 3.2.2 Người dùng đã đăng nhập (32)
      • 3.2.3 Quản trị viên (44)
  • Chương 4 Thiết kế hệ thống (51)
    • 4.1 Mô hình kiến trúc (51)
    • 4.2 Lược đồ lớp (51)
    • 4.3 Lược đồ tuần tự (52)
      • 4.3.1 Chức năng “Đăng ký” (52)
      • 4.3.2 Chức năng “Đăng nhập” (53)
      • 4.3.3 Chức năng “Sửa thông tin cá nhân” (54)
      • 4.3.4 Chức năng “Xác nhận email” (55)
      • 4.3.5 Chức năng “Thêm tour mới” (56)
      • 4.3.6 Chức năng “Tìm kiếm tour” (57)
      • 4.3.7 Chức năng “Đánh giá tour” (58)
      • 4.3.8 Chức năng “Đặt tour” (59)
      • 4.3.9 Chức năng “Thanh toán tour” (60)
      • 4.3.10 Chức năng “Xem trang chủ admin” (61)
      • 4.3.11 Chức năng “Thống kê” (62)
    • 4.4 Physical diagram (63)
      • 4.4.1 Mô tả bảng (63)
      • 4.4.2 Danh sách chi tiết các bảng (64)
  • Chương 5 Giao diện (74)
    • 5.1 Giao diện trang khách (74)
      • 5.1.1 Trang chủ (74)
      • 5.1.2 Trang đăng ký (79)
      • 5.1.3 Trang đăng nhập (80)
      • 5.1.4 Trang thông tin cá nhân (81)
      • 5.1.5 Trang danh sách tour (82)
      • 5.1.6 Trang chi tiết tour (84)
      • 5.1.7 Trang chi tiết đặt tour (89)
      • 5.1.8 Trang thanh toán momo (91)
      • 5.1.9 Trang chi tiết hóa đơn (92)
      • 5.1.10 Trang danh sách bài viết (93)
      • 5.1.11 Trang chi tiết bài viết (94)
      • 5.1.12 Trang lịch sử đặt tour (95)
    • 5.2 Giao diện trang quản trị (97)
      • 5.2.1 Trang chủ (97)
      • 5.2.2 Trang quản lý danh sách booking (99)
      • 5.2.3 Trang quản lý danh sách tour (100)
      • 5.2.4 Trang thêm tour mới (103)
      • 5.2.5 Trang hình ảnh tour (105)
      • 5.2.6 Trang lịch trình tour (106)
      • 5.2.7 Trang mô tả chi tiết tour (107)
      • 5.2.8 Trang quản lý danh sách dịch vụ (109)
      • 5.2.9 Trang quản lý danh sách bài viết (110)
      • 5.2.10 Trang quản lý danh sách đánh giá (112)
      • 5.2.11 Trang thông tin cá nhân (113)
  • Chương 6 Cài đặt và kiểm thử (115)
    • 6.1 Deploy (115)
      • 6.1.1 Deploy on AWS: back-end (môi trường NodeJS) (115)
      • 6.1.2 Deploy front-end (React app với môi trường NodeJS) (118)
    • 6.2 Kiểm thử (119)
      • 6.2.1 Mục tiêu kiểm thử (119)
      • 6.2.2 Kiểm thử trang khách (119)
      • 6.2.3 Kiểm thử trang quản trị (148)
  • Chương 7 Kết luận (171)
    • 7.1 Kết quả đạt được (171)
    • 7.2 Ưu điểm (172)
    • 7.3 Nhược điểm (173)
    • 7.4 Hướng phát triển (173)
  • TÀI LIỆU THAM KHẢO (174)

Nội dung

(Đồ án tốt nghiệp) Xây dựng website đặt tour du lịch(Đồ án tốt nghiệp) Xây dựng website đặt tour du lịch(Đồ án tốt nghiệp) Xây dựng website đặt tour du lịch(Đồ án tốt nghiệp) Xây dựng website đặt tour du lịch(Đồ án tốt nghiệp) Xây dựng website đặt tour du lịch(Đồ án tốt nghiệp) Xây dựng website đặt tour du lịch(Đồ án tốt nghiệp) Xây dựng website đặt tour du lịch(Đồ án tốt nghiệp) Xây dựng website đặt tour du lịch(Đồ án tốt nghiệp) Xây dựng website đặt tour du lịch(Đồ án tốt nghiệp) Xây dựng website đặt tour du lịch(Đồ án tốt nghiệp) Xây dựng website đặt tour du lịch(Đồ án tốt nghiệp) Xây dựng website đặt tour du lịch(Đồ án tốt nghiệp) Xây dựng website đặt tour du lịch(Đồ án tốt nghiệp) Xây dựng website đặt tour du lịch(Đồ án tốt nghiệp) Xây dựng website đặt tour du lịch

Tổng quan

Lý do chọn đề tài

Trước đây, việc kinh doanh bán tour du lịch chủ yếu dựa vào quản lý thủ công qua giấy tờ và bảng tính Excel, gây ra khó khăn trong quá trình quản lý Khi nhu cầu đi tour của khách hàng tăng, việc sử dụng phương pháp truyền thống không còn hiệu quả, dẫn đến mất thời gian và dễ xảy ra thiếu sót trong quản lý đặt tour và doanh thu Chính vì vậy, hệ thống quản lý bán tour trực tuyến ra đời nhằm tối ưu hóa quy trình kinh doanh, tăng hiệu quả và chính xác trong quản lý khách hàng, đặt tour và doanh thu.

Hệ thống bán tour trực tuyến là một giải pháp giúp khách hàng dễ dàng đặt chỗ và thanh toán trực tuyến, tiết kiệm thời gian và công sức cho người dùng Website du lịch trực tuyến là hình thức thể hiện rõ nhất của hệ thống này, mang lại trải nghiệm đặt tour nhanh chóng, tiện lợi cho khách du lịch.

Hệ thống bán tour trực tuyến ra đời đã giúp giảm thiểu hạn chế về không gian và thời gian trong quá trình liên kết bán tour Nó nâng cao khả năng quản trị doanh nghiệp một cách hiệu quả, giảm thiểu thời gian cho nhân viên và ban quản trị Ngoài ra, hệ thống này còn giúp tăng doanh thu bán hàng và tạo cầu nối gắn kết khách hàng với công ty du lịch Khách hàng có thể dễ dàng tra cứu thông tin du lịch trong và ngoài nước mọi lúc mọi nơi qua các kênh thông tin đa chiều, tiện ích của website.

Mục đích của đề tài

Discover how ExpressJS, Ant Design, Bootstrap Framework, and ReactJS libraries function, configure, and integrate into projects to build secure and high-performance servers with ExpressJS, create user-friendly interfaces using Ant Design, and develop seamless single-page applications (SPAs) with ReactJS This knowledge enables the development of fast, secure, and engaging web applications that deliver optimal user experiences.

Nhóm chọn đề tài “Xây dựng website đặt tour du lịch” với những mục đích sau:

Xây dựng một website kinh doanh tour du lịch là giải pháp hiệu quả giúp cá nhân hoặc doanh nghiệp quảng bá tour của họ trực tuyến và tiếp cận lượng khách hàng lớn hơn Website này đóng vai trò là kênh trao đổi thông tin hữu ích giữa người bán và người mua tour, tạo điều kiện thuận lợi cho việc giới thiệu dịch vụ, tăng doanh số và nâng cao nhận diện thương hiệu trong ngành du lịch.

− Tìm hiểu ExpressJS để xây dựng web application

− Tìm hiểu thư viện ReactJS để xây dựng giao diện người dùng

− Tìm hiểu và sử dụng Ant Design

Nâng cao kỹ năng giải quyết vấn đề và tìm kiếm thông tin là yếu tố then chốt giúp các doanh nghiệp du lịch thích nghi với thị trường cạnh tranh Ứng dụng các công nghệ mới trong xây dựng và phát triển các tính năng phổ biến về lĩnh vực tour du lịch không chỉ nâng cao trải nghiệm khách hàng mà còn thúc đẩy sự đổi mới sáng tạo Việc tích hợp công nghệ tiên tiến giúp tối ưu hóa quy trình, nâng cao hiệu quả hoạt động và đáp ứng nhanh chóng các yêu cầu của thị trường du lịch hiện đại.

Quy trình nghiệp vụ và phương pháp tiếp cận

Công ty du lịch chuyên thiết kế các tour riêng biệt, xây dựng lịch trình chi tiết cho từng chuyến đi Bộ phận văn phòng có trách nhiệm cập nhật đầy đủ thông tin về các tour lên website, bao gồm giá cả, loại hình tour, lịch trình, địa điểm đến và hình ảnh minh họa nếu có, giúp khách hàng dễ dàng lựa chọn Khách hàng truy cập website để xem thông tin chi tiết của các tour hiện có hoặc tìm kiếm theo yêu cầu về giá cả, địa phương muốn đến và ngày khởi hành, từ đó có thể đặt chỗ trực tiếp nếu ưng ý Các đơn đặt chỗ này sẽ được lưu trữ vào cơ sở dữ liệu và quản trị viên có thể xem, chỉnh sửa, xóa hoặc xác nhận sau khi kiểm tra độ chính xác của thông tin Ngoài ra, khách hàng còn có thể gửi yêu cầu hoặc liên hệ qua trang Liên hệ để cung cấp thông tin hoặc yêu cầu dịch vụ, các dữ liệu này cũng được lưu trữ và quản lý bởi hệ thống để đảm bảo hiệu quả vận hành.

− Cách tiếp cận: Nghiên cứu các trang web đặt tour đã có trên internet

− Sử dụng phương pháp nghiên cứu: o Phương pháp đọc tài liệu o Phương pháp phân tích mẫu o Phương pháp thực nghiệm làm những module nhỏ

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

Mytour.vn là một trong những ứng dụng đặt phòng trực tuyến hàng đầu tại Việt Nam, giúp người dùng dễ dàng tìm kiếm phòng khách sạn với giá cả hợp lý Với Mytour.vn, bạn sẽ nhận được thông tin khách sạn rõ ràng và chính xác, đồng thời có nhiều chương trình khuyến mãi hấp dẫn Đây là nền tảng tin cậy cho chuyến đi của bạn, cung cấp trải nghiệm đặt phòng tiện lợi, nhanh chóng và tiết kiệm.

Hình 1.1 Trang chủ website mytour.vn (1)

Hình 1.2 Trang chủ website mytour.vn (2)

Hình 1.3 Trang chủ website mytour.vn (3) 1.4.1.2 Ưu điểm

− Tông màu: Chủ đạo là màu trắng, xanh dương và điểm nhấn là màu hồng cùng font chữ kích cỡ vừa phải

Dịch vụ du lịch của chúng tôi cung cấp thông tin chi tiết về sản phẩm gồm tiêu đề mô tả ngắn gọn nội dung tour, đánh giá sao từ khách hàng đã đặt tour, thời lượng, loại tour phù hợp, quy mô nhóm, địa điểm tham quan, hình ảnh minh họa sinh động, giá cả cạnh tranh, ngày khởi hành cụ thể và số lượng người tham gia dự kiến (người lớn, trẻ em) Mỗi tour đều đi kèm lịch trình chi tiết và các chính sách hỗ trợ nhằm đảm bảo trải nghiệm thú vị và an toàn cho khách hàng.

Hình 1.4 Trang chi tiết tour của website mytour.vn (1)

Hình 1.5 Trang chi tiết tour của website mytour.vn (2)

Bố cục sắp xếp hài hòa và rõ ràng giúp tạo trải nghiệm người dùng tốt hơn Việc sử dụng cách sắp xếp quen thuộc cùng với thông tin cần thiết đảm bảo tính rõ ràng và dễ hiểu cho người xem Chất lượng hình ảnh cao góp phần nâng cao giá trị nội dung và thu hút sự chú ý của khách hàng.

− Hiệu ứng: Các hiệu ứng không nhiều, đơn giản (chủ yếu là chuyển tiếp và di chuyển ngang, đưa chuột vào sẽ nổi bật lên)

− Dữ liệu sản phẩm: Đầy đủ các thông tin quan trọng và có các thông tin liên quan 1.4.1.2.2 Chức năng

− Tìm kiếm: Có gợi ý tìm kiếm theo từ khóa thu hút

Hình 1.6 Chức năng tìm kiếm tour của website mytour.vn

− Sắp xếp, bộ lọc: Theo khoảng giá, địa điểm, chủ đề

Bạn có thể đặt tour dễ dàng qua tổng đài hoặc gửi đơn đặt tour để lựa chọn chương trình phù hợp Trước khi xác nhận, hãy xem kỹ lịch trình khởi hành, các điều khoản chính sách, dịch vụ đi kèm và đánh giá tour từ khách hàng trước để đảm bảo trải nghiệm tốt nhất.

Hình 1.7 Chức năng đặt tour của website mytour.vn

− Đăng nhập: Đăng nhập bằng email đã đăng ký, lưu thông tin người dùng và gợi ý các chuyến đi liên quan

Hình 1.8 Chức năng đăng nhập của website mytour.vn

− Thanh toán: Đặt tour qua tổng đài và gửi đơn đặt tour

− Các chức năng đặc biệt khác: Góp ý website, cẩm nang du lịch, chương trình khuyến mãi, thông báo đến người dùng, chia sẻ và like trên facebook

− Khi nhấn vào điểm đến phổ biến nước ngoài thì chuyển hướng sang trang web có tên miền khác

− Không gợi ý search tour theo địa điểm, ngày đi…

− Chưa có chức năng sắp xếp tour tăng, giảm dần theo giá…

− Chưa có phương thức thanh toán thuận tiện

− Chưa có tính năng đặc biệt khác như liên kết Messenger, Zalo…

Saigontourist là doanh nghiệp hàng đầu trong ngành dịch vụ - du lịch, đóng góp tích cực vào sự phát triển của ngành du lịch Việt Nam Các mô hình kinh doanh của công ty bao gồm lưu trú, nhà hàng, lữ hành, vui chơi giải trí, thương mại, xuất nhập khẩu, cửa hàng miễn thuế, vận chuyển, xây dựng, đào tạo nghiệp vụ du lịch và khách sạn, cùng với sản xuất và chế biến thực phẩm.

Hình 1.9 Trang chủ phần đầu của website saigontourist.net

Hình 1.10 Trang chủ phần các tour mùa hè của website saigontourist.net

Hình 1.11 Trang chủ các gói khuyến mãi của website saigontourist.net

− Tông màu: Tương phản, dịu mắt

− Chi tiết sản phẩm: Mô tả chi tiết về chuyến đi, có hình ảnh tham khảo, lịch trình đầy đủ…

Hình 1.12 Trang chi tiết tour của website saigontourist.net (1)

− Bố cục sắp xếp: Sắp xếp các thông tin dễ nhìn và tìm kiếm, các mục hài hòa

− Hiệu ứng: Hiệu ứng đơn giản, chủ yếu là chuyển tiếp trang, hiệu ứng zoom ảnh và các slider show bắt mắt

− Dữ liệu sản phẩm: Cung cấp được đầy đủ các thông tin cần thiết của một chuyến đi và những thông tin liên quan khác

Hình 1.13 Trang chi tiết tour của website saigontourist.net (2)

− Tìm kiếm: UX tốt – mờ nền, có chọn địa điểm đến, ngày đi, ngày về Kết quả trả về khá tốt nhưng còn giới hạn số tour

Hình 1.14 Chức năng tìm kiếm của website saigontourist.net

− Sắp xếp: Trang có 3 sự lựa chọn: ngày gần nhất, giá thấp nhất, hấp dẫn nhất

Trang web cung cấp đầy đủ thông tin về đặt tour, bao gồm giá cả chi tiết cho người lớn, trẻ em và em bé, ngày khởi hành, mã tour và các thông tin hấp dẫn về chương trình tour Người dùng dễ dàng tra cứu và lựa chọn tour phù hợp, tích hợp chức năng in chương trình để tiện lợi khi du lịch.

10 tour, lịch trình rõ ràng, hình ảnh nhiều, chính sách tour, các câu hỏi thường gặp, dịch vụ đi kèm và các tour liên quan

− Đăng nhập giúp lưu thông tin chuyến đi và nâng cấp tài khoản, đồng thời giúp đặt tour nhanh hơn ở lần sau

− Hỗ trợ khách hàng: hotline, trả lời thắc mắc qua email và chatbot (đa ngôn ngữ)

− Pop-up ở hình dưới luôn xuất hiện khi chuyển tới bất kỳ trang nào và khi người dùng xác nhận hoặc tắt mới biến mất

Hình 1.15 Pop-up hỏi người dùng ở khu vực nào của website saigontourist.net

Hiện tại, chưa có chức năng đánh giá chuyến đi, khiến người dùng khó có thể có cái nhìn tổng quan hoặc trải nghiệm thực tế từ những đánh giá của người dùng trước đó Việc bổ sung chức năng này sẽ giúp nâng cao trải nghiệm người dùng, cung cấp thông tin chân thực, từ đó đưa ra quyết định phù hợp hơn khi lựa chọn tour du lịch.

Công nghệ áp dụng

ExpressJS Framework

ExpressJS là một framework nhỏ gọn nhưng linh hoạt, xây dựng trên nền tảng của NodeJS, giúp phát triển các ứng dụng web và di động một cách dễ dàng Nó hỗ trợ các phương thức HTTP và middleware, cho phép tạo ra API mạnh mẽ, hiệu quả và dễ sử dụng Với hệ sinh thái phong phú các package hỗ trợ, ExpressJS cung cấp nhiều tính năng nâng cao mà không làm giảm tốc độ của NodeJS Chính nhờ điều này, các framework nổi tiếng như SailsJS và MEAN đều dựa trên ExpressJS như một thành phần cốt lõi, góp phần thúc đẩy phát triển ứng dụng web hiện đại.

2.1.2 Một vài tính năng nổi bật

Hình 2.2 Sơ đồ mô tả các lớp trung gian xử lý HTTP

− Thiết lập router cho phép sử dụng với các hành động khác nhau dựa trên phương thức HTTP và URL

− Cho phép trả về các trang HTML dựa vào các tham số với template engines

− Hiệu suất cao, super-high test coverage

− HTTP helpers (redirection, caching, etc)

− Tạo ứng dụng nhanh chóng

− Thiết lập các lớp trung gian để tiếp nhận và trả về các HTTP request (như hình dưới)

− Express (): một Express application, là hàm đầu tiên được gọi

− Application: một app object, có những phương thức để: Routing HTTP requests,

Cấu hình middleware, Rendering HTML views, đăng ký một template engine

Request (req) đại diện cho HTTP request trong quá trình xử lý, có các thuộc tính quan trọng như request query string, parameters, body và HTTP headers để xử lý dữ liệu một cách linh hoạt Đây là một phiên bản nâng cao của Node’s request, giúp xây dựng các ứng dụng web mạnh mẽ, tối ưu hơn trong việc quản lý và xử lý các yêu cầu từ phía client.

− Response: Đối tượng res đại diện cho HTTP response mà ứng dụng Express gửi khi nhận được HTTP request

Trong Express.js, router được xem như một đối tượng riêng biệt, đóng vai trò như một ứng dụng nhỏ với khả năng xử lý định tuyến và middleware độc lập Mỗi ứng dụng Express đều tích hợp sẵn bộ định tuyến ứng dụng, giúp tổ chức các tuyến đường và middleware một cách hiệu quả, nâng cao khả năng mở rộng và quản lý mã nguồn của dự án.

Công nghệ ReactJS

ReactJS là một thư viện JavaScript mã nguồn mở được phát triển bởi Facebook nhằm tạo ra các ứng dụng website hấp dẫn với tốc độ nhanh và hiệu quả cao Mục đích chính của ReactJS là phát triển các website chạy mượt, nhanh, dễ mở rộng và dễ bảo trì bằng cách tối giản mã nguồn ReactJS giúp xây dựng các ứng dụng web có hiệu năng cao, dễ thao tác và tối ưu hóa trải nghiệm người dùng.

ReactJS nổi bật với khả năng tập trung vào các phần riêng lẻ của giao diện người dùng, giúp xây dựng các thành phần độc lập và dễ quản lý hơn Thay vì hoạt động toàn bộ trên ứng dụng web, ReactJS cho phép phá vỡ giao diện phức tạp thành các thành phần đơn giản, tối ưu hóa quá trình render dữ liệu Ngoài ra, ReactJS hỗ trợ render dữ liệu không chỉ trên server mà còn tại phía client, mang lại hiệu suất cao và trải nghiệm người dùng mượt mà hơn.

Trong React, thay vì phải sử dụng JavaScript thuần để tạo bố cục trang web, chúng ta sử dụng JSX, một cú pháp đơn giản hơn giúp trích dẫn HTML và render các thành phần con một cách dễ dàng JSX giúp tối ưu hóa mã nguồn, làm cho quá trình biên soạn nhanh hơn và hiệu quả hơn so với viết mã JavaScript thông thường Điều này giúp giảm thiểu phức tạp và tăng hiệu suất cho ứng dụng React.

Hình 2.5 Single-way data flow (Luồng dữ liệu một chiều)

ReactJS không có module chuyên dụng để xử lý dữ liệu, vì vậy nó chia nhỏ giao diện thành các component nhỏ liên kết chặt chẽ với nhau Việc hiểu rõ cấu trúc và mối quan hệ giữa các component là rất quan trọng vì luồng dữ liệu trong ReactJS là một chiều từ cha xuống con, giúp kiểm soát và quản lý dữ liệu hiệu quả Mặc dù cơ chế truyền dữ liệu một chiều có thể gây khó khăn cho người mới bắt đầu, nhưng chính nhờ ưu điểm này, ReactJS phát huy hiệu quả rõ rệt khi ứng dụng vào các dự án phức tạp với cấu trúc và chức năng mở rộng.

Frameworks như ReactJS sử dụng Virtual-DOM để tối ưu hóa việc cập nhật giao diện, giúp phản ánh mọi thay đổi mà không cần thao tác trực tiếp với DOM trên View Khi Virtual-DOM thay đổi, nó tự động cập nhật giao diện, giữ cho ứng dụng luôn nhất quán và phản hồi nhanh chóng Virtual-DOM đóng vai trò làm Model và View đồng thời, giúp đơn giản hóa quá trình quản lý trạng thái và hiển thị dữ liệu trong ứng dụng web Điều này giúp phát triển các ứng dụng web hiệu quả hơn, tối ưu về hiệu suất và dễ bảo trì hơn.

Trong mô hình này, 15 thay đổi trên Model sẽ tự động kéo theo sự cập nhật trên View, và ngược lại, tạo thành một cơ chế phản hồi dữ liệu (Data-binding) mạnh mẽ mà không cần tác động trực tiếp vào các phần tử DOM trong View Nhờ vào cơ chế này, tốc độ của ứng dụng được nâng cao rõ rệt, đặc biệt khi kết hợp với công nghệ Virtual-DOM, mang lại hiệu suất tối ưu và trải nghiệm người dùng mượt mà hơn.

2.2.2.4 Lợi ích khi sử dụng ReactJS

Hình 2.7 Lợi ích của ReactJS

Lợi ích đầu tiên của ReactJS là tạo ra một DOM ảo nơi các component được lưu trữ, giúp cải thiện hiệu suất làm việc đáng kể bằng cách tính toán trước các thay đổi Khi cần cập nhật nội dung, ReactJS chỉ thực hiện các thao tác đã được xử lý sẵn trên DOM ảo, từ đó tránh các thao tác không cần thiết trên DOM thực tế và giảm thiểu chi phí hoạt động.

Viết các đoạn mã JavaScript trở nên dễ dàng hơn nhờ vào cú pháp JSX đặc biệt, cho phép trộn lẫn mã HTML và JavaScript một cách linh hoạt JSX còn giúp chèn đoạn code vào trong hàm render mà không cần phải nối chuỗi phức tạp, đây chính là một trong những ưu điểm nổi bật của ReactJS Ngoài ra, việc chuyển đổi các đoạn HTML thành các hàm khởi động cũng được thực hiện dễ dàng thông qua bộ biến đổi chính là JSX, tăng tính hiệu quả trong phát triển ứng dụng.

ReactJS mang lại nhiều lợi ích phát triển, trong đó có các công cụ hỗ trợ mạnh mẽ Khi bắt đầu làm việc với ReactJS, đừng quên cài đặt tiện ích mở rộng Chrome dành riêng cho ReactJS để dễ dàng debug mã nguồn hơn Sau khi cài đặt, bạn có thể trực tiếp xem Virtual DOM, giúp bạn hiểu rõ hơn về cách React cập nhật giao diện Điều này giúp quá trình phát triển trở nên hiệu quả và thuận tiện hơn, mang lại trải nghiệm làm việc tối ưu cho lập trình viên.

ReactJS hỗ trợ mạnh mẽ cho SEO nhờ vào khả năng render trước (server-side rendering) và trả về trình duyệt dưới dạng web page hoàn chỉnh, giúp nội dung hiển thị đầy đủ và tối ưu cho các công cụ tìm kiếm Các Virtual DOM của React giúp tối ưu hiệu suất và khả năng SEO bằng cách cải thiện tốc độ tải trang và khả năng lập chỉ mục của Sitemap Nhờ các yếu tố này, React đảm bảo website của bạn thân thiện với các yêu cầu của các công cụ tìm kiếm, nâng cao khả năng hiển thị và xếp hạng trên các trang kết quả tìm kiếm.

Phân tích yêu cầu

Lược đồ use case

Hình 3.1 Lược đồ use case

Thống kê nghiệp vụ cho từng đối tượng

3.2.1 Người dùng chưa đăng nhập

Đây là nhóm các đối tượng chưa đăng nhập vào hệ thống, sử dụng ứng dụng web để đăng ký tài khoản, đặt tour du lịch, xem danh sách các tour, tìm kiếm tour phù hợp, truy cập danh sách blog và tìm kiếm các bài viết liên quan.

Bảng 3.1 Đặc tả nghiệp vụ xem trang chủ của người dùng chưa đăng nhập

Use case name Xem trang chủ

Brief description Hiển thị nội dung của trang chủ cho người dùng chưa đăng nhập truy cập vào đường dẫn tương ứng dẫn đến trang chủ

Preconditions Người dùng chưa đăng nhập truy cập vào đường dẫn đến trang chủ

Post-conditions Nội dung của website được hiển thị đầy đủ lên trình duyệt

Actor(s) Người dùng chưa đăng nhập

Secondary actor Người dùng đã đăng nhập, Người quản trị

Trigger Người dùng chưa đăng nhập truy cập vào đường dẫn tương ứng với trang chủ

1 Hệ thống nhận request từ trình duyệt

2 Hệ thống trả dữ liệu của trang chủ cho trình duyệt

Bảng 3.2 Đặc tả nghiệp vụ đăng ký của người dùng chưa đăng nhập

Use case name Đăng ký

Brief description Người dùng chưa đăng nhập tiến hành đăng ký tài khoản cho mình, hệ thống kiểm tra và lưu trữ tài khoản vào database

Preconditions Người dùng chưa đăng nhập truy cập đường dẫn đến trang đăng ký

Post-conditions Người dùng chưa đăng nhập đăng ký tài khoản thành công Hệ thống thông báo cho khách đăng ký thành công và gợi ý đến trang đăng nhập

Actor(s) Người dùng chưa đăng nhập

Trigger Người dùng chưa đăng nhập đã chọn đăng ký

1 Hệ thống trả về form đăng ký cho khách

2 Người dùng chưa đăng nhập nhập thông tin tài khoản theo yêu cầu (username, email, phone, password)

3 Hệ thống kiểm tra dữ liệu nhập vào từ form có hợp lệ không

4 Hệ thống trả về kết quả đăng ký

3.1 Nếu không hợp lệ đưa ra thông báo đến khách, yêu cầu nhập lại thông tin

Open issues 4 Hệ thống gợi ý khách đến trang đăng nhập

3.2.2 Người dùng đã đăng nhập

Người dùng đã đăng nhập vào hệ thống để sử dụng ứng dụng web, có thể đặt tour du lịch, xem thông tin chi tiết về các tour, lịch trình, và bài viết blog liên quan Họ còn có thể bình luận, đánh giá tour để chia sẻ trải nghiệm, đồng thời dễ dàng tiến hành đặt tour, xem lịch trình, và đăng xuất khi hoàn thành thao tác.

Bảng 3.3 Đặc tả nghiệp vụ đăng nhập của người dùng đã đăng nhập

Use case name Đăng nhập

Người dùng đăng nhập vào hệ thống bằng email và mật khẩu, sau đó cookie được khởi tạo để xác thực phiên làm việc Trang web hiển thị trạng thái đã đăng nhập bằng cách thay thế chữ “sign in” bằng avatar của người dùng ở phần header, mang lại trải nghiệm người dùng thuận tiện và trực quan.

Hệ thống ghi nhận người dùng đã đăng nhập thành công và hiển thị các chức năng phù hợp với quyền của người dùng, bao gồm mua tour, bình luận và truy cập các hóa đơn cùng dữ liệu khách hàng trước đó Các thông tin này được lưu trữ liên tục để cung cấp trải nghiệm cá nhân hóa, giúp người dùng dễ dàng thao tác và quản lý các hoạt động của mình trên nền tảng.

Actor(s) Người dùng đã đăng nhập

Trigger Người dùng nhấn vào các button hoặc link dẫn đến trang đăng nhập

1 Người dùng nhập thông tin login (email, password và tùy chọn ghi nhớ)

2 Hệ thống hiển thị trạng thái chờ và xử lý nghiệp vụ

3 Hệ thống hiển thị kết quả của nghiệp vụ

3.1 Nếu thông tin đăng nhập có email không hợp lệ thì trả về thông báo không tồn tại email trong hệ thống dữ liệu 3.2 Nếu password sai với email tương ứng thì trả về thông báo password không đúng 3.3 Nếu thông tin đăng nhập thành công thì chuyển về trang chủ và hiển thị avatar ở header thay cho chữ “sign in” Hệ thống lưu token ở trong cookie mà back-end gửi lên

Open issues 4 Hệ thống gợi ý người dùng đến trang đăng nhập và trang chủ

Bảng 3.4 Đặc tả nghiệp vụ xem thông tin của người dùng đã đăng nhập

Use case name Xem thông tin tài khoản

Người dùng có thể xem thông tin cá nhân và đơn hàng của mình trong một cửa sổ drawer phía bên phải, giúp dễ dàng truy cập và quản lý Trong drawer này, họ cũng có thể chỉnh sửa thông tin cá nhân, đơn hàng và tour một cách nhanh chóng và thuận tiện, mang lại trải nghiệm người dùng tối ưu.

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

Post-conditions Thông tin tài khoản không thay đổi gì so với lúc ban đầu drawer được hiển thị

Actor(s) Người dùng đã đăng nhập

Trigger Người dùng hover vào [avatar] ở thanh navigation

1 Người dùng chọn [profile] trong dropdown của [avatar]

2 Hệ thống kiểm tra tính hợp lệ của phiên và hiển thị thông tin của người dùng dưới dạng là drawer (bên phải)

2.1 Nếu token không hợp lệ thông báo lỗi cho client Front-end xóa token và cookie hiện tại và chuyển đến trang đăng nhập

Bảng 3.5 Đặc tả nghiệp vụ sửa thông tin tài khoản của người dùng đã đăng nhập

Use case name Sửa thông tin tài khoản

Khi người dùng chọn chức năng sửa tài khoản, hệ thống cho phép họ điền các thông tin muốn chỉnh sửa một cách dễ dàng Sau đó, hệ thống xác nhận các thay đổi và lưu trữ dữ liệu mới vào cơ sở dữ liệu một cách an toàn và chính xác Điều này giúp đảm bảo thông tin tài khoản luôn được cập nhật đúng và nhanh chóng.

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

Post-conditions Thông tin tài khoản thay đổi thành công

Actor(s) Người dùng đã đăng nhập

Trigger Người dùng đã chọn sửa tài khoản

1 Hệ thống hiển thị form nhập liệu với những thông tin tài khoản của người dùng tương ứng với phiên đăng nhập

2 Người dùng nhập liệu các thông tin muốn thay đổi

3 Hệ thống kiểm tra các thông tin nhập hợp lệ hay không

4 Hệ thống lưu trữ các thông tin và trả về thông tin mới đồng thời thông báo thành công cho người dùng

3.1 Nếu không hợp lệ thì thông báo đến người dùng và yêu cầu người dùng nhập lại thông tin

Bảng 3.6 Đặc tả nghiệp vụ xem danh sách tour của người dùng đã đăng nhập

Use case name Xem danh mục tour

Người dùng dễ dàng truy cập trang danh mục tour qua menu chính hoặc chức năng tìm kiếm trên trang chủ Danh sách tour được hiển thị dựa trên ngày khởi hành gần nhất hoặc theo kết quả tìm kiếm phù hợp, giúp khách hàng dễ dàng lựa chọn tour phù hợp nhất.

Actor(s) Người dùng đã đăng nhập

Trigger Người dùng truy cập vào link dẫn tới trang danh mục tour

1 Hệ thống gửi yêu cầu lấy dữ liệu theo param tại trình duyệt

2 Hệ thống tính toán và hiển thị tour theo điều kiện sắp xếp và lọc

2.1 Nếu không có sản phẩm hiển thị dòng chữ “Chưa có dữ liệu phù hợp” và trạng thái chờ dữ liệu

Bảng 3.7 Đặc tả nghiệp vụ thanh toán tour của người dùng đã đăng nhập

Use case name Thanh toán tour

Brief description Người dùng chọn hình thức thanh toán online ở bước 3 của đặt tour

Người dùng tiến hành thanh toán với cổng thanh toán đã chọn, hệ thống hiển thị kết quả trả về

Preconditions Người dùng đã hoàn thành bước 2 của đặt tour (mã đặc tả: 14-U-

Actor(s) Người dùng đã đăng nhập

Secondary actor Cổng thanh toán

Trigger Người dùng nhấn [Thanh toán ngay] của một trong các cổng thanh toán

1 Người dùng chọn hình thức thanh toán

2 Người dùng chọn một trong số các cổng thanh toán và chọn [Thanh toán ngay]

3 Hệ thống chuyển dữ liệu thanh toán tới trang của cổng thanh toán tương ứng

4 Người dùng tiến hành thanh toán với các yêu cầu của cổng thanh toán (nhập thông tin thẻ) và tiến hành xác nhận thanh toán

5 Hệ thống hiển thị kết quả thanh toán cho người dùng

3.1 Nếu người dùng chọn thanh toán chuyển khoản và chọn

[done], hệ thống chuyển tới trang kết quả đơn hàng đang được chờ thanh toán và hiển thị mã PIN cho người dùng lưu lại

5.1 Nếu người dùng chọn hủy thanh toán hệ thống hiển thị lại trang thanh toán ở bước 1 – xác nhận tour muốn mua

Open issues Hệ thống gửi mail xác nhận đã thanh toán đơn hàng với mã PIN tương ứng cho người dùng

Cổng thanh toán gửi mail xác nhận cho người dùng Trang kết quả thanh toán có điều hướng về trang chủ

Bảng 3.8 Đặc tả nghiệp vụ tìm kiếm tour của người dùng đã đăng nhập

Use case name Tìm kiếm tour

Người dùng có thể tìm kiếm dễ dàng trên trang chủ hoặc trang danh mục sản phẩm bằng cách nhập từ khóa liên quan đến địa chỉ, địa danh, tên tour hoặc loại tour mong muốn Họ cũng có thể tùy chỉnh các tùy chọn tìm kiếm như ngày dự định đi, chọn khoảng thời gian từ ngày nào đến ngày nào để có kết quả phù hợp Việc cung cấp các bộ lọc linh hoạt giúp nâng cao trải nghiệm người dùng và tối ưu hóa khả năng tìm thấy tour phù hợp nhanh chóng.

Actor(s) Người dùng đã đăng nhập

Trigger Người dùng đang ở một trong các trang: trang chủ, trang danh mục tour, và nhấn [Tìm kiếm Tour]

Người dùng nhập dữ liệu tìm kiếm và chọn các tùy chọn phù hợp để tìm tour du lịch, bao gồm ngày dự định khởi hành từ ngày nào đến ngày nào, cùng các tiêu chí như tên tour, địa chỉ, địa danh hoặc loại tour Việc lựa chọn các tùy chọn tìm kiếm chính xác giúp nâng cao hiệu quả tìm kiếm và giúp người dùng dễ dàng tìm thấy tour phù hợp với nhu cầu của mình.

2 Hệ thống hiển thị danh mục tour theo điều kiện tương ứng

Open issues Nếu dữ liệu tìm kiếm không có gợi ý người dùng đến các kết quả tìm kiếm có dữ liệu nhiều hơn

Bảng 3.9 Đặc tả nghiệp vụ xem chi tiết một tour của người dùng

Use case name Xem chi tiết một tour

Người dùng muốn xem thông tin chi tiết của một tour du lịch, do đó họ thường nhấn vào hình ảnh, tiêu đề hoặc nút [Xem chi tiết] trên mỗi tour để dễ dàng truy cập thông tin cần thiết Việc cung cấp các liên kết rõ ràng, hấp dẫn giúp nâng cao trải nghiệm người dùng và tăng khả năng tương tác trên trang Đảm bảo nội dung mô tả tour hấp dẫn, tối ưu hóa từ khóa liên quan để cải thiện thứ hạng tìm kiếm và thu hút nhiều khách hàng hơn.

Actor(s) Người dùng đã đăng nhập

Trigger Người dùng nhấn vào hình ảnh, tiêu đề của tour, hoặc nút [Xem chi tiết] tại một tour bất kỳ

1 Người dùng nhấn vào ảnh hoặc tiêu đề của tour

2 Hệ thống hiển thị trang chi tiết tour tương ứng với tour mà người dùng chọn

Bảng 3.10 Đặc tả nghiệp vụ thanh toán tour của người dùng đã đăng nhập

Use case name Thanh toán tour

Brief description Sau khi người dùng chọn được tour ưng ý, họ tiến hành đặt tour, hệ thống hiển thị trang với 3 bước:

Vui lòng xác nhận lại tour mà bạn muốn đặt để hệ thống có thể tính toán chính xác chi phí Tiếp theo, người dùng cần nhập đầy đủ thông tin cần thiết để hệ thống xử lý và tính toán giá cả một cách nhanh chóng và chính xác Sau đó, bạn chọn hình thức thanh toán phù hợp, bao gồm thanh toán trực tuyến hoặc chuyển khoản ngân hàng, để hoàn tất quá trình đặt tour một cách thuận tiện nhất.

Sau khi hoàn tất thanh toán, thông tin hóa đơn sẽ được gửi đến email của người dùng đã đăng ký, giúp họ dễ dàng lưu trữ và tra cứu sau này Họ còn nhận được kết quả thanh toán cho các khoản thanh toán trực tuyến cùng mã PIN riêng biệt để bảo mật và thuận tiện trong việc lưu trữ thông tin.

Actor(s) Người dùng đã đăng nhập

Secondary actor Quản lý, cổng thanh toán

Trigger Người dùng chọn [Thanh toán ngay] của tour họ muốn tiến hành thanh toán

1 Người dùng nhấn vào [Thanh toán ngay]

2 Hệ thống chuyển hướng đến trang thanh toán với 3 bước

3 Người dùng xác nhận thông tin và chọn next

Hệ thống hiển thị trang form cho người dùng nhập các thông tin cần thiết như tên, email, số điện thoại, địa chỉ, số người lớn và trẻ em, giúp thu thập dữ liệu một cách dễ dàng Trang form còn yêu cầu người dùng đồng ý với các điều khoản và chính sách để đảm bảo quyền lợi và sự đồng thuận từ phía người dùng Việc thiết kế trang form rõ ràng, dễ sử dụng không những nâng cao trải nghiệm khách hàng mà còn tối ưu hóa khả năng thu thập dữ liệu chính xác Điều này giúp doanh nghiệp xây dựng mối quan hệ tin cậy và phát triển các chiến dịch marketing hiệu quả dựa trên thông tin đã nhập.

5 Người dùng nhập các thông tin và chọn [Xác nhận thông tin là chính xác]

6 Hệ thống thông báo cho người dùng và yêu cầu đến bước tiếp theo

7 Người dùng chọn hình thức thanh toán và tiến hành thanh toán

8 Hệ thống hiển thị kết quả đặt tour cho người dùng

8.1 Nếu người dùng chọn thanh toán chuyển khoản và chọn

[done], hệ thống chuyển tới trang kết quả đơn hàng đang được chờ thanh toán và hiển thị mã PIN cho người dùng lưu lại

8.2 Nếu người dùng chọn hủy thanh toán hệ thống hiển thị lại trang thanh toán ở bước 1 – xác nhận tour muốn mua

Open issues Hệ thống gửi mail xác nhận đã thanh toán đơn hàng với mã PIN tương ứng cho người dùng

Bảng 3.11 Đặc tả nghiệp vụ xem danh sách các tour đã đặt của người dùng đã đăng nhập

Use case name Xem danh sách tour đã đặt

Brief description Người dùng muốn xem tour mà họ đã đặt, hệ thống hiển thị danh sách tour đã đặt dưới dạng drawer

Actor(s) Người dùng đã đăng nhập

Trigger Người dùng hover vào “Tên người dùng” ở thanh navigation

1 Người dùng chọn [Danh sách tour đã đặt] trong dropdown của “Tên người dùng”

2 Hệ thống kiểm tra người dùng có đăng nhập không và hiển thị dữ liệu tour đã đặt

2.1 Nếu token không hợp lệ thông báo lỗi cho client Front-end xóa token và cookie hiện tại và chuyển đến trang đăng nhập

2.2 Nếu người người dùng chưa đăng nhập, lấy dữ liệu được lưu ở local storage

Bảng 3.12 Đặc tả nghiệp vụ đánh giá tour đã đi của người dùng đã đăng nhập

Use case name Đánh giá tour đã đi

Hệ thống gửi email tự động cho người dùng sau khi tour du lịch kết thúc nhằm khuyến khích họ đánh giá mức độ hài lòng về trải nghiệm của mình Người dùng có thể dễ dàng chia sẻ phản hồi hoặc bỏ qua nếu không muốn đánh giá Việc này giúp nâng cao chất lượng dịch vụ và cải thiện trải nghiệm khách hàng trong các chuyến đi tiếp theo.

Preconditions Người dùng đã đặt tour và thời gian tour đã kết thúc

Actor(s) Người dùng đã đăng nhập

Trigger Người dùng nhấn vào link mà hệ thống gửi yêu cầu đánh giá tour sau thời gian tour kết thúc

1 Hệ thống hiển thị các input star để người dùng bình chọn và input cho người dùng nhập nhận xét của họ

2 Hệ thống ghi nhận và hiển thị trang cảm ơn người dùng

Bảng 3.13 Đặc tả nghiệp vụ xem blog du lịch của người dùng đã đăng nhập

Use case name Xem blog du lịch

Thiết kế hệ thống

Mô hình kiến trúc

Hình 4.1 Mô hình kiến trúc

Lược đồ lớp

Lược đồ tuần tự

Hình 4.3 Lược đồ tuần tự “Đăng ký”

Hình 4.4 Lược đồ tuần tự “Đăng nhập”

4.3.3 Chức năng “Sửa thông tin cá nhân”

Hình 4.5 Lược đồ tuần tự “Sửa thông tin cá nhân”

4.3.4 Chức năng “Xác nhận email”

Hình 4.6 Lược đồ tuần tự “Xác nhận email”

4.3.5 Chức năng “Thêm tour mới”

Hình 4.7 Lược đồ tuần tự “Thêm tour mới”

4.3.6 Chức năng “Tìm kiếm tour”

Hình 4.8 Lược đồ tuần tự “Tìm kiếm tour”

4.3.7 Chức năng “Đánh giá tour”

Hình 4.9 Lược đồ tuần tự “Đánh giá tour”

Hình 4.10 Lược đồ tuần tự “Đặt tour”

4.3.9 Chức năng “Thanh toán tour”

Hình 4.11 Lược đồ tuần tự “Thanh toán tour”

4.3.10 Chức năng “Xem trang chủ admin”

Hình 4.12 Lược đồ tuần tự “Xem trang chủ admin”

Hình 4.13 Lược đồ tuần tự “Thống kê”

Physical diagram

Hình 4.14 Physical diagram 4.4.1 Mô tả bảng

Bảng 4.1 Mô tả các bảng trong lược đồ cơ sở dữ liệu

STT Tên bảng Mô tả

Trong hệ thống quản lý tour du lịch, cả admin và người dùng đều cần có tài khoản để đăng nhập Tùy thuộc vào loại tài khoản và chức vụ của người dùng, hệ thống sẽ hiển thị các chức năng phù hợp, đảm bảo quản lý hiệu quả và trải nghiệm người dùng tối ưu.

2 evaluates Sau khi người dùng đã booking và đã đi, thì sẽ được đánh giá và bình luận về chất lượng cũng như dịch vụ của tour

3 images Lưu thông tin hình ảnh của từng tour du lịch và các bài viết

4 schedules Lưu thông tin lịch trình của tour du lịch như giá, chính sách, các ghi chú và cách thức liên lạc

5 timelines Lưu thông tin chi tiết về ngày, giờ và địa điểm di chuyển của từng tour du lịch

6 services Thông tin các dịch vụ được áp dụng cho tour

7 categories Thông tin các loại tour

8 orders Lưu trữ thông tin tour du lịch mà người dùng đã mua

9 posts Thông tin của các bài viết trên trang web

10 tours Lưu các thông tin của từng tour du lịch

4.4.2 Danh sách chi tiết các bảng

Bảng 4.2 Mô tả chi tiết bảng Accounts

STT Thuộc tính Mô tả Kiểu dữ liệu Ràng buộc

1 idAccount Mã tài khoản INT(11) PK, NN, AI

2 name Tên người dùng VARCHAR(100) / NULL

4 phone Số điện thoại VARCHAR(100) / NULL

5 role Quyền (user, admin) VARCHAR(100) NN / ‘user’

6 username Tên đăng nhập VARCHAR(100) / NULL

7 password Mật khẩu VARCHAR(100) / NULL

8 avatar Ảnh đại diện VARCHAR(200) NN / ‘img/ avatarDafault.jpg’

9 address Địa chỉ VARCHAR(200) / NULL

10 gender Giới tính VARCHAR(100) NN / ‘none’

11 dob Ngày sinh DATETIME / NULL

12 verify Xác thực tài khoản TINYINT(10) NN / 0

13 verifyToken Xác thực token VARCHAR(100) / ‘new’

Trạng thái của dữ liệu (new, edited, deleted)

15 dateAdded Ngày thêm DATETIME CURRENT_

16 dateEdited Ngày sửa DATETIME / NULL

17 dateDeleted Ngày xóa DATETIME / NULL

Bảng 4.3 Mô tả chi tiết bảng Evaluates

STT Thuộc tính Mô tả Kiểu dữ liệu Ràng buộc

1 idEvaluate Mã đánh giá INT(11) PK, NN, AI

2 idTour Mã tour INT(11) FK

3 numberStarService Số sao đánh giá dịch vụ INT(10) / NULL

4 numberStarLocation Số sao đánh giá địa điểm INT(10) / NULL

5 numberStarPrice Số sao đánh giá giá cả INT(10) / NULL

6 numberStarCleanliness Số sao đánh giá sự sạch sẽ INT(10) / NULL

Số sao đánh giá cơ sở vật chất

8 titleEvaluate Tiêu đề VARCHAR(100) NN / ‘’

9 content Nội dung VARCHAR(2000) / NULL

11 status Trạng thái đánh giá VARCHAR(45) /NULL

12 rateAverage Điểm trung bình INT(10) / NULL

13 typeEvaluate Loại đánh giá VARCHAR(100) / NULL

Trạng thái của dữ liệu (new, edited, deleted)

15 dateAdded Ngày thêm DATETIME CURRENT_

16 dateEdited Ngày sửa DATETIME / NULL

17 dateDeleted Ngày xóa DATETIME / NULL

Bảng 4.4 Mô tả chi tiết bảng Images

STT Thuộc tính Mô tả Kiểu dữ liệu Ràng buộc

1 idImage Mã hình ảnh INT(11) PK, NN, AI

2 idTour Mã tour INT(11) FK

3 idPost Mã bài viết INT(11) FK

4 url Đường dẫn hình ảnh VARCHAR(200) NN / ‘img/ error.jpg’

5 status Trạng thái của hình VARCHAR(200) / ‘done’

6 name Tên hình ảnh VARCHAR(200) / ‘error’

Trạng thái của dữ liệu (new, edited, deleted)

8 dateAdded Ngày thêm DATETIME CURRENT_

9 dateEdited Ngày sửa DATETIME / NULL

10 dateDeleted Ngày xóa DATETIME / NULL

Bảng 4.5 Mô tả chi tiết bảng Timelines

STT Thuộc tính Mô tả Kiểu dữ liệu Ràng buộc

1 idTimeline Mã lịch trình INT(11) PK, NN, AI

2 idTour Mã tour INT(11) FK

3 title Tiêu đề lịch trình VARCHAR(200) / NULL

4 dayIndex Chỉ ngày số thứ INT(100) / NULL

5 Image Hình ảnh về lịch trình VARCHAR(200) / NULL

6 description Mô tả lịch trình VARCHAR(500) / NULL

Trạng thái của dữ liệu (new, edited, deleted)

8 dateAdded Ngày thêm DATETIME CURRENT_

9 dateEdited Ngày sửa DATETIME / NULL

10 dateDeleted Ngày xóa DATETIME / NULL

Bảng 4.6 Mô tả chi tiết bảng Services

STT Thuộc tính Mô tả Kiểu dữ liệu Ràng buộc

1 idService Mã dịch vụ INT(11) PK, NN, AI

2 titleService Tên dịch vụ VARCHAR(100) / NULL

3 description Mô tả dịch vụ VARCHAR(100) / NULL

Trạng thái của dữ liệu (new, edited, deleted)

5 dateAdded Ngày thêm DATETIME CURRENT_

6 dateEdited Ngày sửa DATETIME / NULL

7 dateDeleted Ngày xóa DATETIME / NULL

Bảng 4.7 Mô tả chi tiết bảng Categories

STT Thuộc tính Mô tả Kiểu dữ liệu Ràng buộc

1 idCategory Mã loại INT(11) PK, NN, AI

2 name Tên loại VARCHAR(100) / NULL

Trạng thái của dữ liệu (new, edited, deleted)

4 dateAdded Ngày thêm DATETIME CURRENT_

5 dateEdited Ngày sửa DATETIME / NULL

6 dateDeleted Ngày xóa DATETIME / NULL

Bảng 4.8 Mô tả chi tiết bảng Orders

STT Thuộc tính Mô tả Kiểu dữ liệu Ràng buộc

1 idOrder Mã đơn hàng INT(11) PK, NN, AI

2 idAccount Mã tài khoản INT(11) FK

3 idTour Mã tour INT(11) FK

4 PIN Mã PIN VARCHAR(100) / NULL

Trạng thái đơn hàng (chưa thanh toán, đã thanh toán)

6 totalPrice Tổng giá của đơn hàng DOUBLE / NULL

7 numberPeople Số lượng người lớn INT(11) / 1

8 address Địa chỉ VARCHAR(100) / NULL

9 phone Số điện thoại liên hệ VARCHAR(100) / NULL

10 email Hộp thư điện tử VARCHAR(100) / NULL

11 paymentMethod Phương thức thanh toán người dùng chọn VARCHAR(100) / NULL

12 notes Ghi chú của người dùng VARCHAR(100) / NULL

13 buyer Người mua tour VARCHAR(100) / NULL

Trạng thái của dữ liệu hiện tại (new, edited, deleted)

15 dateAdded Ngày thêm DATETIME CURRENT_

16 dateEdited Ngày sửa DATETIME / NULL

17 dateDeleted Ngày xóa DATETIME / NULL

Bảng 4.9 Mô tả chi tiết bảng Posts

STT Thuộc tính Mô tả Kiểu dữ liệu Ràng buộc

1 idPost Mã bài viết INT(11) PK, NN, AI

2 titlePost Tiêu đề bài viết VARCHAR(100) / NULL

3 describe Miêu tả bài viết VARCHAR(100) / NULL

4 contentPost Nội dung bài viết (html) MEDIUMTEXT / NULL

5 status Trạng thái bài viết (new

6 vote Bỏ phiếu bài viết INT(11) / 0

7 type Loại bài viết VARCHAR(100 / NULL

8 views Số lượt xem INT(11) / 0

9 tags Tag của bài viết VARCHAR(200) / ‘[]’

Trạng thái của dữ liệu hiện tại (new, edited, deleted)

11 dateAdded Ngày thêm DATETIME CURRENT_

12 dateEdited Ngày sửa DATETIME / NULL

13 dateDeleted Ngày xóa DATETIME / NULL

Bảng 4.10 Mô tả chi tiết bảng Schedule

STT Thuộc tính Mô tả Kiểu dữ liệu Ràng buộc

1 idSchedules Mã lịch trình INT(11) PK, NN, AI

2 data Lịch trình MEDIUMTEXT / NULL

Trạng thái của dữ liệu hiện tại (new, edited, deleted)

8 dateAdded Ngày thêm DATETIME CURRENT_

9 dateEdited Ngày sửa DATETIME / NULL

10 dateDeleted Ngày xóa DATETIME / NULL

Bảng 4.11 Mô tả chi tiết bảng Tours

STT Thuộc tính Mô tả Kiểu dữ liệu Ràng buộc

1 idTour Mã tour INT(11) PK, NN, AI

2 titleTour Tiêu đề tour VARCHAR(200) / NULL

3 price Giá tour DOUBLE / NULL

4 sale Khuyến mãi tour DOUBLE / NULL

5 departureDay Ngày khởi hành DATETIME / NULL

6 departureAddress Địa chỉ khởi hành VARCHAR(100) / ‘Hồ Chí

7 describe Mô tả VARCHAR(2000) / NULL

8 destination Địa chỉ VARCHAR(500) / NULL

9 vocationTime Thời lượng tour VARCHAR(200) / 1 ngày 0 đêm

10 groupSize Số lượng người tối đa INT(11) / NULL

11 minAge Độ tuổi thấp nhất được chấp nhận INT(11) / NULL

12 type Loại tour VARCHAR(100) / NULL

13 tags Tag của tour VARCHAR(200) / NULL

14 services Các dịch vụ của tour VARCHAR(200) / NULL

15 votes Số lượng đánh giá tour INT(11) 0

16 video Video giới thiệu tour VARCHAR(200) / NULL

Trạng thái của dữ liệu hiện tại (new, edited, deleted)

18 dateAdded Ngày thêm DATETIME CURRENT_

19 dateEdited Ngày sửa DATETIME / NULL

20 dateDeleted Ngày xóa DATETIME / NULL

Giao diện

Giao diện trang khách

Hình 5.5 Trang chủ (5) (user) Bảng 5.1 Mô tả trang chủ (user)

STT Tên Loại Thư viện Ghi chú

1 Trang chủ Link react-router-dom Dẫn tới trang chủ của khách

Hiển thị 2 lựa chọn xem: dạng lưới, dạng danh sách

3 Cẩm nang du lịch Link react-router-dom Dẫn tới trang các bài viết

4 Địa điểm yêu thích Link react-router-dom

5 Liên hệ Link react-router-dom

6 Đăng ký Button Ant Design Hiển thị modal đăng ký

7 Đăng nhập Link react-router-dom Hiển thị modal đăng nhập

8 Tiêu đề tour h3 html Hiển thị tiêu đề của tour

9 Mô tả tour p html Hiển thị mô tả của tour

10 Xem chi tiết Button Ant Design Dẫn tới trang chi tiết của tour tương ứng

11 Điểm đến Input Ant Design Ô nhập dữ liệu tìm kiếm

12 Thời gian RangePicker Ant Design Ô cho phép người dùng chọn ngày đến và đi Hiển thị dropdown lịch biểu để chọn ngày

13 Giá Seletc Ant Design Hiển thị các lựa chọn giá cả

14 Tìm kiếm Button Ant Design Dẫn tới trang danh sách tour đã được lọc

15 Hình ảnh tour Link react-router-dom Dẫn tới trang chi tiết của tour tương ứng

17 Điểm đánh giá Rate Ant Design

Hiển thị số sao trung bình mà người dùng đã đánh giá

18 Số lượt đánh giá p html Hiển thị số lượt được người dùng đánh giá

19 Số lượng ngày đi span html Hiển thị số lượng ngày đi

20 Giá span html Hiển thị số tiền của tour

ButtonNext Ant Design Chuyển slide sang trái và phải

23 Tên địa điểm Link Ant Design

Dẫn tới trang danh sách tour được lọc theo tên địa điểm

24 Hình ảnh bài viết img html Hiển thị hình ảnh của bài viết

25 Tiêu đề bài viết Link react-router-dom Hiển thị tiêu đề bài viết

26 Nội dung bài viết span html Hiển thị nội dung bài viết

27 Sao Rate Ant Design Hiển thị số sao bài viết được đánh giá

28 Nội dung đánh giá Typography Ant Design Hiển thị nội dung đánh giá

29 Tiêu đề đánh giá h4 html Hiển thị tên tiêu đề đánh giá

30 Email span html Hiển thị email người đánh giá

31 Thời gian đánh giá span html Hiển thị thời gian đã đánh giá

32 Sao đánh giá Rate Ant Design Hiển thị số sao trung bình được đánh giá

Hình 5.6 Trang đăng ký Bảng 5.2 Mô tả trang đăng ký

STT Tên Loại Thư viện Ghi chú

1 Họ và tên Input Ant Design Nhập họ và tên

2 Email Input Ant Design Nhập email

3 Mật khẩu Input Ant Design Nhập mật khẩu

4 Nhập lại mật khẩu Input Ant Design Nhập lại mật khẩu

5 Đăng ký Button Ant Design Đăng ký

6 Đóng modal Modal Ant Design Đóng modal

Hình 5.7 Trang đăng nhập Bảng 5.3 Mô tả trang đăng nhập

STT Tên Loại Thư viện Ghi chú

1 Email Input Ant Design Nhập email

2 Mật khẩu Input Ant Design Nhập mật khẩu

3 Đăng nhập Button Ant Design Đăng nhập

4 Đóng modal Modal Ant Design Đóng modal

5.1.4 Trang thông tin cá nhân

Hình 5.8 Trang thông tin cá nhân (user) Bảng 5.4 Mô tả trang thông tin cá nhân (user)

STT Tên Loại Thư viện Ghi chú

1 Hình ảnh Upload Ant Design Hiển thị và tải ảnh lên

2 Họ và tên Input Ant Design Chứa họ tên người dùng

3 Số điện thoại Input Ant Design Chứa số điện thoại người dùng

4 Email Input Ant Design Chứa email người dùng

5 Địa chỉ Input Ant Design Chứa địa chỉ người dùng

6 Lưu thông tin Button Ant Design Lưu thông tin người dùng nếu có thay đổi

7 Thông tin cá nhân Option Ant Design

Chuyến đến trang thông tin cá nhân của người dùng

8 Lịch sử đặt tour Option Ant Design

Chuyển đến trang các đơn đặt hàng người dùng đã đặt

9 Đăng xuất Option Ant Design Xóa cookie và quay lại trang chủ

Hình 5.9 Trang danh sách tour (1)

Hình 5.10 Trang danh sách tour (2) Bảng 5.5 Mô tả trang danh sách tour

STT Tên Loại Thư viện Ghi chú

1 Lọc theo địa chỉ Select Ant Design Hiển thị các lựa chọn

2 Mặc định Option Ant Design Hiển thị tour mặc định

3 Tour mới Option Ant Design Lọc các tour mới nhất

4 Giá: Thấp đến cao Option Ant Design Lọc theo giá từ thấp tới cao

5 Giá: Cao tới thấp Option Ant Design Lọc theo giá từ cao tới thấp

6 A đến z Option Ant Design Lọc theo bảng chữ cái

7 Dạng lưới Link react-router-dom Dẫn tới trang danh sách tour dạng lưới

8 Dạng danh sách Link react-router-dom Dẫn tới trang danh sách tour dạng danh sách

9 Điểm đến Input Ant Design Nhập địa điểm muốn đi

10 Ngày đi DatePicker Ant Design Chọn ngày đi

11 Ngày về DatePicker Ant Design Chọn ngày về

12 Loại tour Select Ant Design Hiển thị các lựa chọn loại tour

13 Tìm kiếm Button Ant Design Lọc danh sách tour theo các giá trị đã chọn

14 Chọn giá Select Ant Design Hiển thị các lựa chọn giá

Hình 5.11 Trang chi tiết tour (1)

Hình 5.12 Trang chi tiết tour (2)

Hình 5.13 Trang chi tiết tour (3)

Hình 5.14 Trang chi tiết tour (4) Bảng 5.6 Mô tả trang chi tiết tour

STT Tên Loại Thư viện Ghi chú

1 Hình ảnh Button Ant Design Hiển thị các hình ảnh của tour

2 Video Button Ant Design Hiển thị video của tour

3 Mô tả ngắn a html Di chuyển tới phần mô tả và các dịch vụ của tour

4 Hành trình a html Di chuyển tới phần lịch trình của tour

5 Chi tiết a html Di chuyển tới phần mô tả chi tiết lịch trình tour

6 Bản đồ a html Di chuyển tới bản đồ

7 Đánh giá a html Di chuyển tới phần đánh giá tour

8 Tiêu đề tour h3 html Hiển thị tiêu đề tour

9 Địa điểm p html Hiển thị địa điểm

10 Khoảng thời gian span html Hiển thị số ngày đi

11 Số lượng span html Hiển thị số lượng người tối đa

12 Loại tour span html Hiển thị loại tour

13 Ngày khởi hành span html Hiển thị ngày khởi hành

14 Độ tuổi nhỏ nhất span html Hiển thị độ tuổi nhỏ nhất được cho phép

15 Địa điểm khởi hành span html Hiển thị địa điểm khởi hành

16 Giá tiền span html Hiển thị giá tiền của tour

17 Giá gốc span html Hiển thị giá gốc của tour

18 Phần trăm giảm giá span html Hiển thị phần trăm giảm giá của tour

19 Thời gian RangePicker Ant Design Hiển thị ngày đi và ngày về

20 Giảm số lượng i html Giảm số lượng người đi

21 Tăng số lượng i html Tăng số lượng người đi

22 Đặt ngay Button Ant Design Dẫn tới trang đặt tour

23 Lịch trình đi Accordion Ant Design Hiển thị ngày đi, tiêu đề và nội dung

24 Mô tả chi tiết CKEditor Ckeditor4- react

Hiển thị nội dung mô tả chi tiết tour bao gồm hình ảnh, youtube, nội dung

25 Điểm đánh giá h2 html Hiển thị số điểm đánh giá trung bình

26 Trung bình số sao của ‘Dịch vụ’ Rate Ant Design

Hiển thị số sao trung bình được đánh giá cho ‘Dịch vụ’

27 Trung bình số sao của ‘Giá tiền’ Rate Ant Design

Hiển thị số sao trung bình được đánh giá cho ‘Giá tiền’

28 Trung bình số sao của ‘Tiện nghi’ Rate Ant Design

Hiển thị số sao trung bình được đánh giá cho ‘Tiện nghi’

29 Trung bình số sao của ‘Vị trí’ Rate Ant Design Hiển thị số sao trung bình được đánh giá cho ‘Vị trí’

30 Trung bình số sao của ‘Sạch sẽ’ Rate Ant Design

Hiển thị số sao trung bình được đánh giá cho ‘Sạch sẽ’

31 Tổng số bình luận span html Hiển thị tổng số bình luận của tour

32 Xem thêm đánh giá Button Ant Design Hiển thị thêm các đánh giá

‘Dịch vụ’ Rate Ant Design Hiển thị số sao ‘Dịch vụ’ để người dùng đánh giá

‘Giá tiền’ Rate Ant Design Hiển thị số sao ‘Giá tiền’ để người dùng đánh giá

35 Đánh giá số sao ‘Vị trí’ Rate Ant Design Hiển thị số sao ‘Vị trí’ để người dùng đánh giá

‘Sạch sẽ’ Rate Ant Design Hiển thị số sao ‘Sạch sẽ’ để người dùng đánh giá

‘Tiện nghi’ Rate Ant Design

Hiển thị số sao ‘Tiện nghi’ để người dùng đánh giá

38 Tiêu đề input html Ô nhập dữ liệu tiêu đề

39 Email input html Ô nhập dữ liệu email

40 Nội dung textarea html Ô nhập dữ liệu nội dung

41 Đánh giá Button Ant Design Đánh giá tour

5.1.7 Trang chi tiết đặt tour

Hình 5.15 Trang chi tiết đặt tour Bảng 5.7 Mô tả trang chi tiết đặt tour

STT Tên Loại Thư viện Ghi chú

1 Nhập họ và tên input html Nhập họ và tên của khách hàng

2 Nhập số điện thoại input html Nhập số điện thoại của khách hàng

3 Nhập email input html Nhập email của khách hàng

4 Nhập địa chỉ input html Nhập địa chỉ của khách hàng

5 Hình ảnh MOMO img html Hình ảnh phương thức thanh toán bằng MOMO

6 Hình ảnh Chuyển khoản img html

Hình ảnh phương thức thanh toán bằng Chuyển khoản

7 Hình ảnh Tiền mặt img html Hình ảnh phương thức thanh toán bằng Tiền mặt

8 Số người span html Số người đặt tour

9 Giá gốc span html Giá chưa có khuyến mãi

10 Khuyến mãi span html Số tiền được khuyến mãi

11 Tổng tiền span html Tổng tiền khi đã áp dụng khuyến mãi

Hình 5.16 Trang thanh toán momo Bảng 5.8 Mô tả trang thanh toán momo

STT Tên Loại Thư viện Ghi chú

1 Số tiền span html Hiển thị số tiền của hóa đơn

2 Email span html Hiển thị email của người dùng đặt tour

3 Mã đơn hàng span html Hiển thị mã đơn hàng

4 Mã QR QR MOMO Hiển thị mã QR để người dùng thanh toán

Hiển thị nút quay lại hóa đơn khi người dùng không muốn thanh toán nữa

5.1.9 Trang chi tiết hóa đơn

Hình 5.17 Trang chi tiết hóa đơn Bảng 5.9 Mô tả trang chi tiết hóa đơn

STT Tên Loại Thư viện Ghi chú

1 Các bước đặt tour li html Hiển thị các bước đặt tour

Hiển thị trạng thái của hóa đơn (Mới, Chờ thanh toán, Đã thanh toán, Đã hoàn thành, Đã hủy)

3 Giá gốc span html Hiển thị giá gốc của tour khi chưa có khuyến mãi

4 Phương thức thanh toán span html Phương thức thanh toán mà người dùng chọn

5 Khuyến mãi span html Hiển thị số tiền khuyến mãi

6 Tổng cộng span html Tổng cộng số tiền khách hàng phải thanh toán

7 Hoàn tất Link react-router-dom Dẫn đến trang danh sách các tour đã đặt

5.1.10 Trang danh sách bài viết

Hình 5.18 Trang danh sách bài viết Bảng 5.10 Mô tả trang danh sách bài viết

STT Tên Loại Thư viện Ghi chú

1 Tiêu đề danh sách bài viết title html Hiển thị tiêu đề danh sách bài viết

2 Tổng số bài viết title html Hiển thị tổng số bài viết

3 Hình ảnh bài viết img html Hiển thị hình ảnh đại diện của bài viết

4 Tiêu đề bài viết h3 html Hiển thị tiêu đề của bài viết

5 Nội dung bài viết span html Hiển thị nội dung của bài viết

6 Đánh giá và bình luận span html Hiển thị số lượt đánh giá và bình luận

5.1.11 Trang chi tiết bài viết

Hình 5.19 Trang chi tiết bài viết Bảng 5.11 Mô tả trang chi tiết bài viết

STT Tên Loại Thư viện Ghi chú

1 Tiêu đề bài viết h2 html Hiển thị tiêu đề bài viết

2 Lượt xem bài viết span html Hiển thị số lượt xem bài viết

3 Nội dung mô tả ngắn span html Hiển thị nội dung mô tả ngắn của bài viết

4 Nội dung bài viết CKEditor ckeditor4-react Hiển thị toàn bộ nội dung bài viết gồm hình ảnh, video, nội dung

5.1.12 Trang lịch sử đặt tour

Hình 5.20 Trang lịch sử đặt tour Bảng 5.12 Mô tả trang lịch sử đặt tour

STT Tên Loại Thư viện Ghi chú

1 Trạng thái: Mới Select.Option Ant Design

Hiển thị các đơn hàng có trạng thái ‘Mới’ của người dùng

2 Trạng thái: Chờ thanh toán Select.Option Ant Design

Hiển thị các đơn hàng có trạng thái ‘Chờ thanh toán’ của người dùng

3 Trạng thái: Đã thanh toán Select.Option Ant Design

Hiển thị các đơn hàng có trạng thái ‘Đã thanh toán’ của người dùng

4 Trạng thái: Đã hoàn thành Select.Option Ant Design

Hiển thị các đơn hàng có trạng thái ‘Đã hoàn thành’ của người dùng

5 Trạng thái: Đã hủy Select.Option Ant Design

Hiển thị các đơn hàng có trạng thái ‘Đã hủy’ của người dùng

6 Tiêu đề tour h3 html Hiển thị tiêu đề của tour

7 Hình ảnh tour img html Hiển thị hình ảnh tour

8 Trạng thái đơn hàng span html Hiển thị trạng thái của đơn hàng

9 Số người span html Hiển thị số người tham gia

10 Tên khách hàng span html Hiển thị tên khách hàng đặt tour

Giao diện trang quản trị

Hình 5.21 Trang chủ (admin) Bảng 5.13 Mô tả trang chủ (admin)

STT Tên Loại Thư viện Ghi chú

1 Trang chủ Link react-router-dom Dẫn tới trang chủ của admin

2 Quản lý booking Link react-router-dom

Dẫn tới trang quản lý danh sách các tour đã được đặt

3 Danh sách tour Link react-router-dom

Dẫn tới trang quản lý danh sách tour của doanh nghiệp

4 Danh sách dịch vụ Link react-router-dom Dẫn tới trang quản lý các dịch vụ

5 Đánh giá Link react-router-dom

Dẫn tới trang quản lý các tour được đánh giá bởi khách hàng

6 Danh sách bài viết Link react-router-dom Dẫn tới trang quản lý các bài viết

7 Danh sách yêu thích Link react-router-dom

Dẫn tới trang quản lý các tour được yêu thích

8 Avatar img Ant Design Avatar của người dùng

9 Tên người dùng Dropdown Ant Design Tên người dùng và các lựa chọn

10 Tổng lượt đặt tour p html Hiển thị số lượng các tour đã được đặt

11 Đơn đặt hàng mới p html Hiển thị số lượng các đơn đặt hàng mới

12 Tổng số tour p html Hiển thị số lượng tour hiện có

13 Tổng số bài viết p html Hiển thị số lượng các bài viết

14 Xem thêm Link react-router-dom Dẫn tới trang tương ứng

15 Doanh thu strong html Hiển thị doanh thu của doanh nghiệp

16 Doanh số strong html Hiển thị doanh số của doanh nghiệp

Biểu đồ thống kê doanh thu và doanh số của từng tháng

5.2.2 Trang quản lý danh sách booking

Hình 5.22 Trang quản lý danh sách booking Bảng 5.14 Mô tả trang quản lý danh sách booking

STT Tên Loại Thư viện Ghi chú

1 Bộ lọc trạng thái Select Ant Design Hiển thị các lựa chọn

2 Hình ảnh chuyến đi img html Hình ảnh của chuyến đi

3 Tên chuyến đi h3 html Tên của chuyến đi

4 Trạng thái span html Hiển thị trạng thái của đơn hàng

5 Ngày khởi hành span html Hiển thị ngày khởi hành của chuyến đi

6 Ngày kết thúc span html Hiển thị ngày kết thúc của chuyến đi

7 Số người span html Hiển thị số người đi

8 Tên khách hàng span html Hiển thị người đặt chuyến đi

9 Phê duyệt Button Ant Design Xác nhận chuyến đi

10 Hủy bỏ Button Ant Design Hủy bỏ chuyến đi

5.2.3 Trang quản lý danh sách tour

Hình 5.23 Trang quản lý danh sách tour Bảng 5.15 Mô tả trang quản lý danh sách tour

STT Tên Loại Thư viện Ghi chú

1 Thêm tour Button Ant Design Mở khung nhập dữ liệu cho tour mới

Biểu thị hình ảnh của chuyến đi ở từng dòng trong bảng

Biểu thị tên của chuyến đi ở từng dòng trong bảng

4 Địa chỉ khởi hành th html

Biểu thị địa chỉ khởi hành của chuyến đi ở từng dòng trong bảng

5 Ngày khởi hành th html

Biểu thị ngày khởi hành của chuyến đi ở từng dòng trong bảng

Biểu thị giá của chuyến đi ở từng dòng trong bảng

Biểu thị địa chỉ của chuyến đi ở từng dòng trong bảng

Biểu thị các dịch vụ của chuyến đi ở từng dòng trong bảng

Biểu thị mô tả của chuyến đi ở từng dòng trong bảng

10 Độ tuổi thấp nhất th html

Biểu thị yêu cầu độ tuổi thấp nhất ở từng dòng trong bảng

11 Số người tối đa th html

Biểu thị số người tối đa của chuyến đi ở từng dòng trong bảng

Biểu thị trạng thái chỉnh sửa và xóa ở từng dòng trong bảng

13 Chỉnh sửa tour Button Ant Design Mở khung chỉnh sửa dữ liệu tour

14 Xóa tour Button Ant Design Xóa dòng dữ liệu tương ứng

4 Phân trang Pagination Ant Design Phân trang theo danh sách tour đang có

Hình 5.24 Trang thêm tour mới Bảng 5.16 Mô tả trang thêm tour mới

STT Tên Loại Thư viện Ghi chú

1 Thông tin tour Tabs Ant Design Tab chứa thông tin tour

2 Hình ảnh tour Tabs Ant Design Tab chứa hình ảnh tour

3 Lịch trình tour Tabs Ant Design Tab chứa lịch trình tour

4 Mô tả chi tiết tour Tabs Ant Design Tab chứa mô tả chi tiết tour

5 Tên tour Input Ant Design Nhập tên tour

6 Ngày khởi hành DatePicker Ant Design Chọn ngày khởi hành

7 Youtube Input Ant Design Nhập link url của tour

8 Số người Input Ant Design Nhập số người giới hạn đối với tour

9 Loại tour Select Ant Design Chọn loại tour tương ứng

10 Giá Input Ant Design Nhập giá

11 Địa điểm khởi hành Select Ant Design Chọn địa điểm khởi hành

12 Độ tuổi thấp nhất Input Ant Design Nhập độ tuổi giới hạn của tour

13 Địa điểm Select Ant Design Chọn địa điểm

14 Dịch vụ Select Ant Design Chọn các dịch vụ có trong tour

15 Mô tả Input Ant Design Nhập mô tả tour

16 Thêm tour Button Ant Design

Lưu thông tin tour và quay lại trang danh sách tour

Hủy các dữ liệu đã nhập nếu có và quay lại trang danh sách tour

Hình 5.25 Trang hình ảnh tour Bảng 5.17 Mô tả trang hình ảnh tour

STT Tên Loại Thư viện Ghi chú

1 Hình ảnh tour Upload Ant Design Hiển thị hình ảnh dưới database của tour

2 Thêm hình Upload Ant Design Thêm hình cho tour

3 Đóng Button Ant Design Đóng form và quay lại danh sách tour

Hình 5.26 Trang lịch trình tour Bảng 5.18 Mô tả trang lịch trình tour

STT Tên Loại Thư viện Ghi chú

1 Ngày số th html Hiển thị ngày đi thứ mấy của tour

2 Tiêu đề th html Hiển thị tiêu đề của từng ngày đi

3 Mô tả th html Hiển thị mô tả cho từng ngày đi

4 Hoạt động th html Hiển thị trạng thái chỉnh sửa và xóa

5 Thêm lịch trình Button Ant Design Thêm số dòng lịch trình mới cho tour

6 Đóng Button Ant Design Đóng form và quay lại danh sách tour

7 Sửa lịch trình Typography Ant Design

Sửa chi tiết cho từng dòng lịch trình tương ứng

8 Xóa lịch trình Typography Ant Design Xóa dòng tương ứng

5.2.7 Trang mô tả chi tiết tour

Hình 5.27 Trang mô tả chi tiết tour Bảng 5.19 Mô tả trang mô tả chi tiết tour

STT Tên Loại Thư viện Ghi chú

1 Chọn heading CKEditor Ckeditor4-react Chọn loại heading cho dữ liệu đã chọn

2 In đậm CKEditor Ckeditor4-react In đậm dữ liệu đã chọn

3 In nghiêng CKEditor Ckeditor4-react In nghiêng dữ liệu đã chọn

4 Link CKEditor Ckeditor4-react Thêm link cho mô tả

5 Bulleted list CKEditor Ckeditor4-react Danh sách có gạch đầu dòng

6 Numbered list CKEditor Ckeditor4-react Danh sách đánh số

7 Tăng thụt lề CKEditor Ckeditor4-react Tăng thụt lề cho dữ liệu

8 Giảm thụt lề CKEditor Ckeditor4-react Giảm thụt lề cho dữ liệu

9 Thêm ảnh CKEditor Ckeditor4-react Thêm hình ảnh cho mô tả

10 Block quote CKEditor Ckeditor4-react Trích dẫn văn bản từ một nguồn khác

11 Thêm bảng CKEditor Ckeditor4-react Thêm bảng cho mô tả

12 Thêm video CKEditor Ckeditor4-react Thêm video cho mô tả

13 Undo CKEditor Ckeditor4-react Quay lại thao tác trước

14 Redo CKEditor Ckeditor4-react Khôi phục lại những thao tác đã undo

15 Lưu mô tả Button Ant Design Lưu thông tin mô tả

16 Đóng Button Ant Design Đóng form và quay lại danh sách tour

5.2.8 Trang quản lý danh sách dịch vụ

Hình 5.28 Trang quản lý danh sách dịch vụ Bảng 5.20 Mô tả trang quản lý danh sách dịch vụ

STT Tên Loại Thư viện Ghi chú

1 Thêm dịch vụ Button Ant Design Mở khung nhập dữ liệu cho dịch vụ mới

2 Tên dịch vụ th html

Biểu thị tên của dịch vụ cho các dòng trong bảng

Biểu thị mô tả của dịch vụ cho các dòng trong bảng

Biểu thị trạng thái chỉnh sửa và xóa cho các dòng trong bảng

5 Chỉnh sửa dịch vụ Button Ant Design Mở khung chỉnh sửa dữ liệu dịch vụ

6 Xóa dịch vụ Button Ant Design Xóa dòng dữ liệu tương ứng

7 Phân trang Pagination Ant Design Phân trang theo danh sách dịch vụ đang có

5.2.9 Trang quản lý danh sách bài viết

Hình 5.29 Trang quản lý danh sách bài viết Bảng 5.21 Mô tả trang quản lý danh sách bài viết

STT Tên Loại Thư viện Ghi chú

1 Thêm bài viết Button Ant Design Mở khung nhập dữ liệu cho bài viết mới

Biểu thị hình ảnh của bài viết cho các dòng trong bảng

Biểu thị tiêu đề của bài viết cho các dòng trong bảng

Biểu thị mô tả của bài viết cho các dòng trong bảng

Biểu thị trạng thái chỉnh sửa và xóa ở từng dòng trong bảng

6 Chỉnh sửa bài viết Button Ant Design Mở khung chỉnh sửa dữ liệu bài viết

7 Xóa bài viết Button Ant Design Xóa dòng dữ liệu tương ứng

8 Phân trang Pagination Ant Design Phân trang theo danh sách bài viết đang có

5.2.10 Trang quản lý danh sách đánh giá

Hình 5.30 Trang quản lý danh sách đánh giá Bảng 5.22 Mô tả trang quản lý danh sách đánh giá

STT Tên Loại Thư viện Ghi chú

1 Tiêu đề h3 html Tiêu đề của bài đánh giá

2 Sao Rate Ant Design Hiển thị số sao được đánh giá

3 Thời gian p html Hiển thị thời gian người dùng đánh giá

4 Nội dung p html Hiển thị nội dung đánh giá

5 Phê duyệt Button Ant Design Thay đổi trạng thái bài viết đánh giá

6 Hủy Button Ant Design Hủy bài viết đánh giá

7 Email p html Hiển thị email người đánh giá

8 Trạng thái: Chờ duyệt Option Ant Design Hiển thị danh sách các đánh giá cần duyệt

9 Trạng thái: Đã duyệt Option Ant Design Hiển thị danh sách các đánh giá đã duyệt

10 Trạng thái: Đã hủy Option Ant Design Hiển thị danh sách các đánh giá đã hủy

5.2.11 Trang thông tin cá nhân

Hình 5.31 Trang thông tin cá nhân (admin) Bảng 5.23 Mô tả trang thông tin cá nhân (admin)

STT Tên Loại Thư viện Ghi chú

1 Hình ảnh Upload Ant Design Hiển thị và tải ảnh lên

2 Họ và tên Input Ant Design Chứa họ tên người dùng

3 Số điện thoại Input Ant Design Chứa số điện thoại người dùng

4 Email Input Ant Design Chứa email người dùng

5 Địa chỉ Input Ant Design Chứa địa chỉ người dùng

6 Lưu thông tin Button Ant Design Lưu thông tin người dùng nếu có thay đổi

Cài đặt và kiểm thử

Ngày đăng: 26/12/2022, 14:44

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] topdev.vn. Expressjs là gì? Tất tần tật về Expressjs, https://topdev.vn/blog/express-js-la-gi/ Link
[3] mytour.vn, https://mytour.vn/ Link
[4] saigontourist.net, https://saigontourist.net/ Link
[5] AWS, https://aws.amazon.com/vi/ Link
[6] Github, https://github.com Link
[7] MoMo, https://developers.momo.vn/ Link
[8] PuTTY, https://www.putty.org/ Link

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w