Vì thế, việc xây dựng một ứng dụng đặt tour cóthể giải quyết vấn đề trên là cần thiết - Bắt nguồn từ ý tưởng như trên, nhóm đã xây dựng và phát triển đồ án “XÂYDỰNG WEBSITE HỖ TRỢ ĐẶT TO
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Giảng viên hướng dẫn: ThS Thái Thụy Hàn Uyển
Sinh viên: Nguyễn Công Đoàn - 20520447
Phan Nhật Lâm - 20520608
Tp.Hồ Chí Minh, tháng 06 năm 2023
Trang 2Lời cảm ơn
Lời đầu tiên, nhóm chúng em xin được cảm ơn cô Thái Thụy Hàn Uyển đã tạo điều kiện cho nhóm được thực hiện đồ án, và đã cung cấp những kiến thức hữu ích, những góp ý thực tế nhất để từ đó nhóm có thể phát triển thêm hiểu biết của mình trong mảng lập trình web, nhất là trong dự án hiện tại này
Dù có nhiều cố gắng thực hiện, song lượng kiến thức về mảng này cũng như thời gian đểphát triển dự án là có hạn, nên nhóm không thể tránh khỏi những thiếu sót Nhóm mong nhận được sự thông cảm, những góp ý hữu ích nhất từ cô để từ đó nhóm có thể hoàn thiện sản phẩm hơn nữa
Nhóm thực hiện
Trường Đại học Công nghệ Thông tin, tháng 6 năm 2023
Trang 3MỤC LỤC
CHƯƠNG I GIỚI THIỆU ĐỀ TÀI
1.1 Giới thiệu chung
1.2 Mục tiêu đề tài
1.2.1 Lý thuyết
1.2.2 Mục tiêu
1.3 Quá trình hiện thực
1.4 Tổng quan về chức năng
1.4.1 Khách du lịch
1.4.2 Quản lý
CHƯƠNG II CƠ SỞ LÝ THUYẾT
2.1 ReactJS
2.1.1 Tổng quan
2.1.2 Đặc trưng của ReactJS
2.1.3 Ưu điểm và nhược điểm
2.1.3.1 Ưu điểm
2.1.3.2 Nhược điểm
2.2 NodeJS
2.2.1 Tổng quan
2.2.2 Lý do nên sử dụng NodeJS
2.2.3 Ưu và nhược điểm
2.2.3.1 Ưu điểm
2.2.3.2 Nhược điểm
2.3 MongoDB
2.3.1 Tổng quan
Trang 42.3.2 Cách thức hoạt động
2.3.3 Ưu điểm và nhược điểm
CHƯƠNG III XÂY DỰNG HỆ THỐNG
3.1 Xây dựng kiến trúc hệ thống
3.1.1 Công nghệ sử dụng
3.1.2 Kiến trúc hệ thống: Mô hình MVC
3.1.3 Sơ đồ Use-case
3.1.4 Mô tả Use-case
3.1.5 Đặc tả Use-case
3.2 Mô tả các màn hình
3.2.1 Màn hình đăng nhập
3.2.2 Màn hình đăng ký
3.2.3 Màn hình trang chủ
3.2.4 Màn hình tour du lịch
3.2.5 Màn hình chi tiết tour du lịch
3.2.6 Màn hình thanh toán hóa đơn
3.2.7 Màn hình chọn hình chuyển khoản
3.2.8 Màn hình cập nhật tài khoản
3.2.9 Màn hình danh sách người dùng
3.2.10 Màn hình thêm người dùng mới
3.2.11 Màn hình chỉnh sửa thông tin người dùng
3.2.12 Màn hình danh sách tour du lịch
3.2.13 Màn hình tour du lịch mới
3.2.14 Màn hình chỉnh sửa thông tin tour du lịch
3.2.15 Màn hình danh sách đặt tour du lịch
Trang 53.2.16 Màn hình chi tiết đặt tour du lịch
3.3 Sơ đồ lớp
3.4 Sơ đồ hoạt động
3.4.1 Đăng nhập
3.4.2 Đăng ký
3.4.3 Đặt tour và thanh toán
3.4.4 Tìm kiếm tour
CHƯƠNG IV: KẾT LUẬN
4.1 Kết quả đạt được
4.2 Ưu điểm
4.3 Nhược điểm và giải pháp
Trang 6CHƯƠNG I GIỚI THIỆU ĐỀ TÀI1.1 Giới thiệu chung
- Ngày nay, công nghệ thông tin càng phát triển nhanh chóng, và ngày càng nhiềulĩnh vực cần ứng dụng của nó như sản xuất, tài chính, y tế, Và việc ứng dụngcông nghệ thông tin đã giúp cho các thao tác cơ bản trong từng lĩnh vực trở nên
dễ dàng và nhanh chóng
- Nhất là trong lĩnh vực du lịch, công nghệ thông tin đã giúp tiết kiệm thời gian vàtiền bạc của người dân khi đi du lịch Việc đặt tour sẽ không còn là vấn đề quá lớnkhi giờ đây họ có thể đặt tour trực tuyến, mà không cần phải đến trực tiếp cáctrung tâm tư vấn tour
- Tuy nhiên, khi nhu cầu ngày càng tăng cao, và số lượng địa điểm du lịch càngtăng, người dân lại càng hoang mang, không biết nên đặt tour du lịch nào Hơnnữa, họ cũng phân vân, không biết lịch trình, hay chất lượng tour là như thế nào,dẫn đến việc khi hoàn thành đặt tour và đi du lịch, chất lượng trải nghiệm thực tếcủa họ sẽ không như mong muốn Vì thế, việc xây dựng một ứng dụng đặt tour cóthể giải quyết vấn đề trên là cần thiết
- Bắt nguồn từ ý tưởng như trên, nhóm đã xây dựng và phát triển đồ án “XÂYDỰNG WEBSITE HỖ TRỢ ĐẶT TOUR DU LỊCH” để hỗ trợ cho người dân có đượcnhững gợi ý tour du lịch hay, những nguồn thông tin tham khảo hữu ích, cũngnhư trải nghiệm người dùng được thuận lợi nhất
1.2 Mục tiêu đề tài
1.2.1 Lý thuyết
- Nghiên cứu về ngôn ngữ lập trình Javascript và framework ReactJS
- Nghiên cứu về các thao tác làm việc và phát triển ứng dụng web trên VisualStudio Code
- Nghiên cứu và sử dụng ứng dụng lưu trữ cơ sở dữ liệu trên đám mây - MongoDB
- Nghiên cứu phát triển ứng dụng trên nhiều nền tảng
Trang 7- Trải qua quá trình tìm hiểu và thực hiện đề tài, nhóm đã giải quyết được các vấn
đề đặt ra ban đầu, từng bước giải quyết và liên tục đặt ra những vấn đề mới đểngày càng hoàn thiện sản phẩm Những bước thực hiện:
- Phân tích yêu cầu bài toán
- Lựa chọn nền tảng công nghệ phù hợp với yêu cầu
- Nghiên cứu cơ sở lý thuyết của công nghệ lựa chọn
- Áp dụng lý thuyết vào xây dựng ứng dụng thực tiễn
- Kiểm tra và khám phá các ứng dụng tương tự để tối ưu hóa trải nghiệmngười dùng và cải thiện các tính năng cho ứng dụng
- Khách hàng có thể sắp xếp thời gian chuyến đi, đặt chỗ tour du lịch
- Khách hàng có thể xem review của những người dùng khác, hoặc có thể đểlại đánh giá của mình
- Khách hàng có thể thêm địa điểm du lịch vào danh sách yêu thích củamình
- Khách hàng có thể tìm kiếm thông tin tour du lịch, thông qua từ khóa mà
Trang 8họ nhập vào, hoặc thông qua những nhóm tour được phân loại.
1.4.2 Quản lý
Quản lý có trách nhiệm thêm những tour mới, xóa những tour cũ, hoặc khôngphù hợp, và cập nhật thông tin của các tour (VD: thời gian chuyến đi, địa điểm dừngchân, )
Trang 9CHƯƠNG II CƠ SỞ LÝ THUYẾT2.1 ReactJS
2.1.1 Tổng quan
- ReactJS là một thư viện JavaScript mã nguồn mở được thiết kế bởi Facebook đểtạo ra những ứng dụng web hấp dẫn, nhanh và hiệu quả với mã hóa tối thiểu.Mục đích cốt lõi của ReactJS không chỉ khiến cho trang web phải thật mượt màcòn phải nhanh, khả năng mở rộng cao và đơn giản
- Sức mạnh của nó xuất phát từ việc tập trung vào các thành phần riêng lẻ Chính vìvậy, thay vì làm việc trên toàn bộ ứng dụng web, ReactJS cho phép mộtdeveloper có thể phá vỡ giao diện người dùng phức tạp thành các thành phầnđơn giản hơn
2.1.2 Đặc trưng của ReactJS
2.1.2.1 JSX
Hình 2.1 Đặc trưng đầu tiên - JSX
- Trong React, thay vì thường xuyên sử dụng JavaScript để thiết kế bố cục trangweb thì sẽ dùng JSX JSX được đánh giá là sử dụng đơn giản hơn JavaScript và chophép trích dẫn HTML cũng như việc sử dụng các cú pháp thẻ HTML để render cácsubcomponent JSX tối ưu hóa code khi biên soạn, vì vậy nó chạy nhanh hơn sovới code JavaScript tương đương
Trang 102.1.2.2 Redux
Hình 2.2 Đặc trưng thứ hai - Redux
- Redux là một predictable state management tool cho các ứng dụng Javascript Nógiúp bạn viết các ứng dụng hoạt động một cách nhất quán, chạy trong các môitrường khác nhau (client, server, and native) và dễ dàng để test Redux ra đời lấycảm hứng từ tư tưởng của ngôn ngữ Elm và kiến trúc Flux của Facebook Do vậyRedux thường dùng kết hợp với React
2.1.2.3 Single-way data flow (Luồng dữ liệu một chiều)
Trang 11Hình 2.3 Đặc trưng thứ ba - Single-way Data flow
- ReactJS không có những module chuyên dụng để xử lý data, vì vậy ReactJS chianhỏ view thành các component nhỏ có mối quan hệ chặt chẽ với nhau Tại saochúng ta phải quan tâm tới cấu trúc và mối quan hệ giữa các component trongReactJS?
- Câu trả lời chính là luồng truyền dữ liệu trong ReactJS: Luồng dữ liệu một chiều
từ cha xuống con Việc ReactJS sử dụng one-way data flow có thể gây ra một chútkhó khăn cho những người muốn tìm hiểu và ứng dụng vào trong các dự án Tuynhiên, cơ chế này sẽ phát huy được ưu điểm của mình khi cấu trúc cũng nhưchức năng của view trở nên phức tạp thì ReactJS sẽ phát huy được vai trò củamình
2.1.2.4 Virtual DOM
Hình 2.4 Đặc trưng thứ tư - Virtual DOM
Trang 12- Những Framework sử dụng Virtual-DOM như ReactJS khi Virtual-DOM thay đổi,chúng ta không cần thao tác trực tiếp với DOM trên View mà vẫn phản ánh được
sự thay đổi đó Do Virtual-DOM vừa đóng vai trò là Model, vừa đóng vai trò làView nên mọi sự thay đổi trên Model đã kéo theo sự thay đổi trên View và ngượclại Có nghĩa là mặc dù chúng ta không tác động trực tiếp vào các phần tử DOM ởView nhưng vẫn thực hiện được cơ chế Data-binding Điều này làm cho tốc độứng dụng tăng lên đáng kể – một lợi thế không thể tuyệt vời hơn khi sử dụngVirtual-DOM
2.1.3 Ưu điểm và nhược điểm
2.1.3.1 Ưu điểm
- Reactjs dễ học và sử dụng:
- Công nghệ này được cung cấp rất nhiều tài liệu và hướng dẫn cụ thể, bêncạnh đó rất cộng đồng đông đảo nên phần lớn thắc mắc của bạn sẽ đượcgiải quyết
- Vì Reactjs là thư viện mã nguồn mở của Javascript, cho nên bất kì developnào có nền tảng về Javascript đều tiếp cận công nghệ này dễ dàng
- Nâng cao hiệu suất:
- Reactjs cải thiện hiệu suất nhờ DOM ảo DOM là API lập trình và xử lý đanền tảng Hầu hết các lập trình viên đều gặp vấn đề về DOM khi chúngđược cập nhật, khi đó sẽ làm giảm đi hiệu suất của trang web React giảiquyết vấn đề này bằng việc cung cấp DOM ảo Khi viết các component,chúng ta không viết trực tiếp vào DOM Thay vào đó chúng ta viết vào cáccomponents ảo, và sau đó sẽ chuyển thành DOM Vì thế, React sẽ cải thiệnhiệu suất của trang web
- React component:
- Với React component, trang web của bạn sẽ được chia ra thành các thành
Trang 13phần nhỏ để việc quản lý dễ dàng hơn Hơn thế thế, các component cótính tái sử dụng cao Cho nên bạn có thể sử dụng lại nó một cách độc lập.
- React Developer Tools:
- Reactjs không chỉ là một thư viện tốt để thiết kế giao diện người dùng, mà
nó còn được hỗ trợ bởi React Developer Tools Đây là extension trên trìnhduyệt giúp bạn tránh được nhiều lỗi bằng cách cung cấp cho bạn cái nhìntổng quan về các state và prop hiện tại của từng Component, Componenttree cụ thể, cũng như theo dõi được hiệu năng các quá trình trongcomponent với các khoảng thời điểm khác nhau
Trang 142.2 NodeJS
2.2.1 Tổng quan
Hình 2.5 Tổng quan về NodeJS
- NodeJS là một môi trường runtime chạy JavaScript đa nền tảng và có mã nguồn
mở, được sử dụng để chạy các ứng dụng web bên ngoài trình duyệt của client.Nền tảng này được phát triển bởi Ryan Dahl vào năm 2009, được xem là một giảipháp hoàn hảo cho các ứng dụng sử dụng nhiều dữ liệu nhờ vào mô hình hướng
sự kiện (event-driven) không đồng bộ
(non Không có buffering: Node.JS giúp tiết kiệm thời gian xử lý file khi cần upload âm
Trang 15thanh hoặc video vì các ứng dụng này không bao giờ buffer dữ liệu mà chỉ xuất
dữ liệu theo từng phần (chunk)
- Đơn luồng: Node.JS sử dụng mô hình đơn luồng với vòng lặp sự kiện Do đó cácứng dụng có thể xử lý số lượng request lớn hơn rất nhiều so với các server truyềnthống như Apache HTTP Server
2.2.3 Ưu và nhược điểm
2.2.3.1 Ưu điểm
- IO hướng sự kiện không đồng bộ, cho phép xử lý nhiều yêu cầu đồng thời
- Sử dụng JavaScript – một ngôn ngữ lập trình dễ học
- Chia sẻ cùng code ở cả phía client và server
- NPM(Node Package Manager) và module Node ngày càng phát triển mạnh mẽ
- Khó thao tác với cơ sử dữ liệu quan hệ
- Mỗi callback sẽ đi kèm với rất nhiều callback lồng nhau khác
- Cần có kiến thức tốt về JavaScript
- Không phù hợp với các tác vụ đòi hỏi nhiều CPU
Trang 172.3.2 Cách thức hoạt động
Hình 2.7 Kiến trúc MongoDB
- MongoDB hoạt động dưới một tiến trình ngầm service, luôn mở một cổng (Cổngmặc định là 27017) để lắng nghe các yêu cầu truy vấn, thao tác từ các ứng dụnggửi vào sau đó mới tiến hành xử lý
- Mỗi một bản ghi của MongoDB được tự động gắn thêm một field có tên “_id”thuộc kiểu dữ liệu ObjectId mà nó quy định để xác định được tính duy nhất củabản ghi này so với bản ghi khác, cũng như phục vụ các thao tác tìm kiếm và truyvấn thông tin về sau Trường dữ liệu “_id” luôn được tự động đánh index (chỉmục) để tốc độ truy vấn thông tin đạt hiệu suất cao nhất
- Mỗi khi có một truy vấn dữ liệu, bản ghi được cache (ghi đệm) lên bộ nhớ Ram,
để phục vụ lượt truy vấn sau diễn ra nhanh hơn mà không cần phải đọc từ ổcứng
- Khi có yêu cầu thêm/sửa/xóa bản ghi, để đảm bảo hiệu suất của ứng dụng mặcđịnh MongoDB sẽ chưa cập nhật xuống ổ cứng ngay, mà sau 60 giây MongoDB
Trang 18mới thực hiện ghi toàn bộ dữ liệu thay đổi từ RAM xuống ổ cứng.
2.3.3 Ưu điểm và nhược điểm
2.3.3.1 Ưu điểm
- Ít schema hơn: Vì schema được sinh ra là để nhóm các đối tượng vào 1 cụm, dễquản lý Ví dụ như tạo 1 schema tên là Students chẳng hạn thì chỉ có những gì liênquan đến student thì mới được cho vào schema này Trong khi đó trongmongodb thì chỉ 1 collection ta có thể chứa nhiều document khác nhau Với mỗidocument thì số trường, nội dung, kích thước lại có thể khác nhau
- Cấu trúc của một đối tượng rõ ràng
- Không có các Join phức tạp
- Khả năng mở rộng cực lớn: việc mở rộng dữ liệu mà không phải lo đến các vấn đềnhư khóa ngoại, khóa chính, kiểm tra ràng buộc, MongoDB cho phép thực hiệnreplication và sharding nên việc mở rộng cũng thuận lợi hơn
- Sử dụng bộ nhớ trong để lưu giữ cửa sổ làm việc cho phép truy cập dữ liệu nhanhhơn Việc cập nhật được thực hiện nhanh gọn nhờ update tại chỗ (in-place)
Trang 19CHƯƠNG III XÂY DỰNG HỆ THỐNG3.1 Xây dựng kiến trúc hệ thống
- View là một phần của ứng dụng đại diện cho việc trình bày dữ liệu
- View được tạo bởi các dữ liệu mà chúng ta lấy từ dữ liệu trong model Mộtview yêu cầu model cung cấp đầy đủ dữ liệu để nó hiển thị đầu ra chongười dùng
- View chính là nơi chứa những giao diện như một nút bấm, khung nhập,menu, hình ảnh… nó đảm nhiệm nhiệm vụ hiển thị dữ liệu và giúp ngườidùng tương tác với hệ thống
- Controller
- Controller là một phần của ứng dụng xử lý tương tác của người dùng Bộ
Trang 20điều khiển diễn giải đầu vào chuột và bàn phím từ người dùng, thông báocho model và view để thay đổi khi thích hợp.
- Controller là nơi tiếp nhận những yêu cầu xử lý được gửi từ người dùng,
nó sẽ gồm những class/ function xử lý nhiều nghiệp vụ logic giúp lấy đúng
dữ liệu thông tin cần thiết nhờ các nghiệp vụ lớp Model cung cấp và hiểnthị dữ liệu đó ra cho người dùng nhờ lớp View
- Controller gửi các lệnh đến model để làm thay đổi trạng thái của nó (Ví dụ:
ta thêm mới 1 user hoặc cập nhật tên 1 user) Controller cũng gửi các lệnhđến view liên quan của nó để thay đổi cách hiển thị của view (Ví dụ: xemthông tin 1 user)
- Model: Thành phần model lưu trữ dữ liệu và logic liên quan của nó Bao gồm các
class function xử lý các tác vụ như truy vấn, thêm, sửa hoặc xóa dữ liệu Ví dụ,một đối tượng Controller sẽ lấy thông tin khách hàng từ cơ sở dữ liệu Nó thaotác dữ liệu và gửi trở lại cơ sở dữ liệu hoặc sử dụng nó để hiển thị dữ liệu
3.1.3 Sơ đồ Use-case
Trang 213.1.4 Mô tả Use-case
STT Tên Use-case Mô tả
1 Đăng nhập User Đăng nhập bằng tài khoản đã đăng ký
2 Đăng ký User đăng ký tài khoản mới bằng các thông tin hợp lệ
3 Đặt tour User điển các thông tin tương ứng trong tour đã chọn và
đặt chỗ
4 Thanh toán User thực hiện thanh toán chi phí sau khi đã cung cấp các
thông tin đặt tour
5 Tìm kiếm tour Tìm kiếm tour thông qua các filter
6 Thêm user mới Admin thêm một tài khoản khách du lịch mới
7 Sửa thông tin user Admin cập nhật thông tin trong tài khoản khách du lịch
8 Xóa user Admin xóa tài khoản User nếu không còn hợp lệ
9 Thêm tour mới Admin thêm một tour du lịch mới từ địa điểm cung cấp
10 Sửa thông tin tour Admin cập nhật thông tin tour du lịch (nếu có thay đổi)
11 Xóa tour Admin xóa tour du lịch nếu địa điểm đó không còn tồn tại
3.1.5 Đặc tả Use-case
3.1.5.1 Đăng nhập
Use-case ID UC-U-1
Tên use-case Đăng nhập
Mô tả tóm tắt User Đăng nhập bằng tài khoản đã đăng ký
Email và password phải hợp lệ với tài khoản đã đăng ký
Điều kiện kết quả Ứng dụng đăng nhập thành công và chuyển đến màn hình chính
Trang 22Luồng đi chính - Bước 1: User truy cập website “Travelo” để đăng nhập
- Bước 2: Ứng dụng hiển thị màn hình đăng nhập để ngườidùng đăng nhập
- Bước 3: User nhập email và mật khẩu của mình
- Bước 4: User nhấn nút “Login” để thể hiện muốn truy cậpvào hệ thống
- Bước 5: Ứng dụng kiểm tra và xác nhận chấp nhận
- Bước 6: Ứng dụng cho phép User đó sử dụng website
Luồng đi thay thế - Bước 1: User nhấn vào nút “Register”
- Bước 2: User nhập các thông tin được gợi ý
- Bước 3: Nhấn nút “Create Account”
- Bước 4: Quay lại màn hình đăng nhập
- Bước 5: Quay lại bước 3 trong luồng đi chính
Trang 233.1.5.2 Đăng ký
Use-case ID UC-U-2
Tên use-case Đăng ký
Mô tả tóm tắt User đăng ký tài khoản mới bằng các thông tin hợp lệ
Người dùng đăng ký tài khoản thành công
Luồng đi chính - Bước 1: User truy cập website “Travelo”
- Bước 2: Ứng dụng hiển thị màn hình đăng nhập để ngườidùng đăng nhập
- Bước 3: User nhấn nút “Create” chuyển đến màn hìnhRegister
- Bước 4: User nhập thông tin: Username, Email, Password
- Bước 5: User nhấn nút “Create Account”
Luồng đi thay thế Không có
Trang 243.1.5.3 Đặt tour
Use-case ID UC-U-3
Tên use-case Đặt tour du lịch mới
Mô tả tóm tắt User điển các thông tin tương ứng trong tour đã chọn và đặt
Người dùng nhấn nút “Book Now”
Điều kiện tiên
(Pre-conditions)
Người dùng đăng nhập thành công
Điều kiện kết quả
(Post-conditions)
Người dùng đặt tour thành công
Luồng đi chính - Bước 1: Đi đến màn hình chính
- Bước 2: Đi đến phần “Our featured tours” trong màn hìnhchính
- Bước 3: Chọn một tour bất kỳ
- Bước 4: Nhập các thông tin cần thiết trong phần
“Information”
- Bước 5: Nhấn nút “Book Now”
Luồng đi thay thế - Bước 1: Đăng nhập vào ứng dụng
- Bước 2: Đi đến màn hình “Tour”
- Bước 3: Quay lại bước 3 trong luồng đi chính
Trang 25Use-case ID UC-U-4
Tên use-case Thanh toán
Mô tả tóm tắt User thực hiện thanh toán chi phí sau khi đã cung cấp các thông
Người dùng đã đăng nhập thành công
Điều kiện kết quả
(Post-conditions)
Người dùng đã thanh toán đặt tour thành công
Luồng đi chính - Bước 1: Đi đến màn hình chính
- Bước 2: Đi đến phần “Our featured tours” trong màn hìnhchính
Trang 26Use-case ID UC-U-5
Tên use-case Tìm kiếm tour
Mô tả tóm tắt Tìm kiếm tour thông qua các filter
Người dùng nhấn nút có icon “tìm kiếm”
Điều kiện tiên
(Pre-conditions)
Người dùng đã nhập thông tin cần tìm
Điều kiện kết quả
(Post-conditions)
Người dùng nhận được những tour phù hợp với những từ khóa
đã nhập
Luồng đi chính - Bước 1: Đi đến màn hình chính
- Bước 2: Nhập các thông tin trong khung tìm kiếm (Địađiểm, khoảng cách, số người tối đa)
- Bước 3: Nhấn nút “Tìm kiếm”
Luồng đi thay thế - Bước 1: Đi đến màn hình “Tour”
- Bước 2: Quay lại bước 2 trong luồng đi chính
Trang 273.1.5.6 Thêm user mới
Use-case ID UC-A-1
Tên use-case Thêm user mới
Mô tả tóm tắt Admin thêm một tài khoản khách du lịch mới
Admin nhấn nút “Add User”
Điều kiện tiên
(Pre-conditions)
Admin đã đăng nhập vào hệ thống
Điều kiện kết quả
(Post-conditions)
Admin đã thêm user mới thành công
Luồng đi chính - Bước 1: Đăng nhập vào ứng dụng
- Bước 2: Đi đến màn hình “Dashboard”
- Bước 3: Đi đến màn hình “Thêm user mới”
- Bước 4: Nhập các thông tin có liên quan tới user
- Bước 5: Nhấn nút “Create”
Luồng đi thay thế Không có
3.1.5.7 Sửa thông tin user