The urgency of the topic
In the new normal, prioritizing the restoration and development of the smokeless industry is crucial Localities and tourist destinations must swiftly digitize their advertising campaigns to provide users with accurate and timely information The rise of various advertising formats, from TikTok short videos to social media shares, often misrepresents reality, impacting both tourist perceptions and genuine tourism advertisers Therefore, developing an application to present tourist attractions in Vietnam is essential for unifying information and ensuring high reliability.
Research object
There are two main target groups studied:
Users seeking information about popular tourist destinations can be divided into two groups The first group consists of individuals who have not yet found a suitable place and rely on an app to gather relevant information tailored to their needs For this group, developing an app with highly-rated, accurate content that integrates various usage requirements is crucial The second group includes travelers who have visited these destinations and are eager to share their experiences and feelings.
To engage users effectively, the application should implement features such as promotions, point accumulation, and friend connections, encouraging them to visit, revisit, and provide feedback.
To effectively promote an application for viewing geographic information, it is essential for the service organizer to prioritize objectivity, exceptional service, and a strong reputation These factors are crucial for managers when evaluating advertising and information campaigns.
Research scope
The study gets location information, mainly in Ho Chi Minh City and Ba Ria Vung Tau…
Expected results
Complete admin content creation site on mobile applications, complete the essential function of an application to introduce tourist information, implement and develop features for convenience and personalization.
Scientific and practical significance
The effective combination of virtual assistant capabilities, personalized recommendation systems, and a robust search API highlights the advancement of technology and the development of user-centric solutions.
The finalized application will enhance the digitalization of tourist information and services, allowing travel developers to effectively visualize their needs and desired features for deployment campaigns.
THEORETICAL BASIS
MongoDB
MongoDB is an open-source, document-oriented, non-relational database management system that enables users to store vast amounts of data Unlike traditional relational databases such as MySQL or SQL Server, which utilize tables for data storage, MongoDB organizes data in collections using BSON format This flexible structure allows collections to operate without a predefined schema or constraints, resulting in faster and simpler data retrieval.
MongoDB, developed and managed by MongoDB Inc., is a NoSQL database released under the Server Side Public License (SSPL) in February 2009 It offers extensive support libraries for various programming languages, including C, C++, C#, NET, Go, Java, Node.js, Perl, PHP, Python, Ruby, Scala, and Swift, enabling developers to create applications in their preferred language Today, numerous companies, such as Facebook, Nokia, eBay, Adobe, and Google, utilize MongoDB to efficiently store and manage large volumes of data.
The MongoDB environment offers a server capable of hosting multiple databases, each containing various collections Within these collections, records store key-value data fields that can utilize any BSON data type, including doubles and strings.
GRADUATION THESIS 5 boolean, etc The documents can have the same or different structure according to the user’s discretion
Figure 1 Organize storage in MongoDB
MongoDB stores data in the BSON document format, which is a binary representation of JSON documents This conversion from JSON to BSON allows the MongoDB server to store and query data more efficiently.
MongoDB documents enable the storage of nested data and the representation of complex relationships within a single document This approach simplifies data retrieval and storage, making it more efficient compared to relational database management systems (DBMSs), which often require complex joins to access data from multiple tables.
ExpressJs
Express is a completely free and open-source framework built on top of Nodejs, providing powerful features for building web or mobile applications Due to its
GRADUATION THESIS 6 relatively light weight, Expressjs helps organize web applications into a more organized MVC architecture
Express.js offers essential functionalities such as creating middleware to handle HTTP requests, defining routers for various HTTP actions (CRUD), and enabling the return of HTML pages through template engines like Jade and Pug.
ReactJs
React, developed by Facebook, is a powerful library for building user interfaces that enables the creation of reusable application components It efficiently compares the current render's values with those from the previous render, updating the DOM with minimal changes.
The Virtual DOM technology enhances application performance by ensuring that only the root node maintains state, leading to a complete restructuring only when necessary This approach minimizes the impact on processing speed, as real DOM manipulation is considerably slower than that of the Virtual DOM In a React application, when an object's state changes, the Virtual DOM is updated and compared to its previous state, allowing for selective updates to the real DOM This efficient method of updating only the changed objects significantly accelerates performance, especially when contrasted with other front-end technologies that require updates to all objects, even if only one has changed.
ReactJS utilizes a virtual DOM to enhance performance by comparing its previous state and selectively updating only the necessary objects in the real DOM, rather than refreshing all elements Additionally, React offers a variety of development tools that facilitate a more efficient development process.
GRADUATION THESIS 7 libraries to help developers reduce coding time High performance for applications with constantly changing data, easy maintenance and debugging
ReactJS is primarily a View library, focusing solely on the View layer rather than functioning as a full MVC framework like others Developed by Facebook, it specializes in rendering views but lacks built-in Model and Controller components Consequently, developers must integrate React with other libraries and technologies to create a comprehensive development toolkit.
React is quite heavy when compared to other frameworks
React is quite heavy compared to other frameworks React is similar in size to Angular (About 35kb compared to 39kb of Angular) Whereas Angular is a complete framework.
React Native
React Native, a framework created by Facebook, facilitates cross-platform mobile app development using JavaScript This allows developers to build applications that run seamlessly on both Android and iOS devices Notable apps like Instagram, Facebook, and Skype utilize React Native for their mobile solutions.
React Native operates by utilizing two threads: the Main Thread and the JS Thread The Main Thread is responsible for updating the user interface (UI) and managing user interactions, while the JS Thread executes and processes JavaScript code.
The Main Thread and JS Thread operate independently, interacting through a Bridge that facilitates data conversion between them.
React Native enables developers to efficiently reuse code for cross-platform applications, leading to significant time savings and reduced development costs This approach optimizes human resource utilization, minimizes code maintenance, and decreases the likelihood of bugs Additionally, both platforms offer similar features, including a robust user community, high stability, and effective optimization.
While React Native offers several benefits, it also has notable drawbacks It is not ideal for developing high-graphic games or applications with complex game mechanics, as its performance lags behind that of native apps due to its reliance on JavaScript Additionally, security concerns arise, and the customization options for certain modules are limited Consequently, React Native is not suitable for applications requiring significant computing power.
Redux toolkit
Single-page applications are increasingly popular, leading to more complex source code as they manage extensive shared state This complexity has given rise to state management solutions like Redux.
Redux is a tool for managing the state of javascript applications With Redux, the application state is stored in the store, and each component can access any state it
GRADUATION THESIS 9 needs from the store Make the application work consistently, run in different environments (client, server, and native) and easy to test
Redux consists of 3 basic components: action, reducer and store:
Actions are events or actions to send data from the app to the Redux store The data appears through user interactions or through the app, api calls,
Reducers are fundamental functions that take the current state of an application, execute an action, and return a new state These states are stored as objects, representing the application states that change in response to actions dispatched to the store.
Store is the type that saves application state and is unique in any Redux application Users can access saved, updated, or registered states and unregister listeners through helper methods
Redux is a widely used state management tool, yet it faces criticism for its complexity and the numerous steps required for implementation, which can deter programmers from adopting it To address these challenges, the Redux Toolkit was introduced, streamlining state management and providing a standardized approach.
Redux Toolkit, created by the Redux team, is an official toolkit designed to streamline common Redux tasks It offers various utility functions that simplify the setup of a store, the definition of reducers, and the implementation of immutable update logic, while also facilitating the creation of entire applications.
"slices" of state at the same time without handwriting any action generator or action
GRADUATION THESIS 10 type It also includes the most widely used redux libraries, like Redux Thunk for asynchronous logic and reselect for writing selector functions.
Recombee
A recommendation system is a key application of machine learning that focuses on predicting user interests in products It primarily involves two entities: users, who are the customers, and items, which represent the products The goal is to develop effective recommendation strategies tailored to individual preferences The two main approaches to constructing a recommendation system are collaborative filtering and content-based systems.
Content-based recommendation systems analyze the features and characteristics of the current item to evaluate its similarity with other items within the same system, ultimately providing tailored suggestions.
Collaborative filtering recommendation systems leverage the similarities between users and items to provide tailored suggestions By analyzing the behavior of users with comparable preferences, these systems recommend items that align with a specific user's interests.
Recombee is an AI-driven recommendation service that tailors product suggestions to individual customers by analyzing their behaviors and interactions By leveraging a blend of collaborative filtering and content-based algorithms, Recombee delivers highly relevant recommendations, even in cases where user-item interactions are minimal This personalized approach aims to optimize business performance and enhance customer satisfaction.
(cold start) In case of a sufficient number of interactions, collaborative filtering algorithms are preferred as they in most cases give the best results
STATUS SURVEY AND DETERMINATION OF
Status survey
Vietnam's tourism industry has experienced significant growth in recent years, with a steady increase in both domestic and international visitors This rising interest in tourist destinations has led to a surge in travel and information search applications.
Our team is excited to develop an application that showcases Vietnamese tourist destinations, allowing users to easily search for and access information about attractions they wish to visit Additionally, the app features a virtual voice assistant, enhancing user interaction through convenient voice commands.
Some outstanding features of the application:
● Provide information on more than 1 million hotels across the country
● Easily find places to eat, hotels, and homestays that suit the needs of users
● Discover the top tourist attractions; famous sightseeing should go
● The interface is simple, not attractive yet
● The search function is limited
Some outstanding features of the application:
● Support to search for hotel booking services, airline tickets, and restaurants in the country and abroad with many attractive incentives easily
● Many incentives, attractive discount vouchers
● Explore restaurants by type of food
● Easily compare hotel room rates, and airline tickets
● Users can rate the places they have visited
Airbnb is a convenient travel app that enables users to find excellent accommodations and unique experiences for their vacations It provides valuable information about tourist attractions, dining options, and facilitates easy interaction with fellow travelers who share similar interests.
Some outstanding features of the application:
● Easily find places to eat, hotels, and homestays that suit the needs of users
● Discover the top tourist attractions; famous sightseeing should go
● View and write personal comments about places you have gone.
Determination requirement
Register Do not have or have an account on the system
See all the locations displayed on the home page
Search places by name, by type, and by city
Search for a destination on the map, view location information and get directions
See reviews from other users in each location
See information about each location
User has registered an account
Log in The user must have an account on the system
Comments, reviews for places Users can report other users' reviews
Add, delete, edit, review trip plans
Add, delete, review favorite places
Edit personal information (name, picture, password)
Find friends; send, receive, accept friend requests
Receive notifications about friend requests, friend consents, invitations to join trips
Web app Admin Log in Admin has successfully logged in
View chart reports, most searched locations
Manage user reports and contributions
Information management of provinces (province)
Manage sets of featured destinations (explore)
Responses to viewing information will not take more than 5 seconds to appear on the screen.
2.2.2.2 Safety requirements The use of the system must not cause harm to the user.
The database must meet the security requirements.
The system will have many different types of users, and each user has access rights constraints.
The interface is attractive, user-friendly, and has transition effects between screens, manipulation
2.2.2.5 Error handling The application will handle expected and unexpected failures in a way that prevents information loss and long downtime
Requirements modeling
Figure 6 User functional decomposition diagram
Figure 7 Administrator functional decomposition diagram
2.3.2.1 Systems usecase diagrams 2.3.2.1.1 Usecase web module
2.3.2.2 Usecase specification 2.3.2.2.1 Usecase description for mobile application
1) Sign up for a regular account
Table 2 Normal account registration usecase
Name Register for a user account
Short description Users register an account on the application
1 User goes to account registration page
2 Enter information in the fields email, fullname, password and confirm password
2.1 When entering an invalid email, the system will display a red error below the email field, saying "Invalid email"
4 The system checks the input fields, then sends the account information to the server, the server will check the account and return a successful registration
GRADUATION THESIS 24 message The system will display the message “Successfully” to the user, then redirect to the homepage
Check Invalid Input Error messages are displayed below the field in error
The server responded that the login failed
The server responded that the login failed Show failed login message
2) Log in to your account
Name Log in to your account
Short description Users log into their accounts with email and password
Pre-conditions User has successfully registered for an account
1 User arrives at the login page
2 The user enters the email and password fields
3 Click the “Sign in” button”
4 The system checks the input fields, then sends the account information to the server, the server checks the account and returns a successful login message The system redirects to the home page
Invalid input check Error messages are displayed below the error field
Email or password is incorrect
Shows incorrect email or password error
The server responded that the login failed
Table 4 See user reviews usecase
Short description View user reviews of each location, users can favorite that review if successfully logged in
Pre-conditions User must successfully login if want to favorite review
1 User clicks on a place, that location details page appears
2 Users click on the “Review” tab, an overview of the number of review types and the most recent reviews appear
3 Click the “View more” button to see all the reviews of the place
4 The system redirects to the review page
5 User if logged in, can press favorite for each review or review report
5.1 Tap the icon like under the review, if successful, it will change to blue
5.2 Tap the icon on each review, then click “Report” to report it Information will be sent to the administrator for review
5.1 Failed favorite An error message appeared, favorite failed
5.2 Report failed An error message appears, the report fails
Short description Locations are displayed by category on the home page, and the same person can see specific locations for each item
1 The user enters the homepage or presses the “Home” icon
2 Locations are displayed by categories: popular places, voted places, suggested areas
3 To see more locations in each category, click “More” on each category 3.1 Enter the name of the place in the search box to check the place in the 3.2 Click on the location button to filter the locations of your desired genre
4 Tap the place category button to view places by category
5 Click on the location to see details (usecase “View location details)
6 Users after logging in will see their recently viewed locations
System error System error an error message appears
Table 6 Search for places usecase
Short description Users search for places by entering the name of the place they want to find
1 Click on the search box in the home page, the application goes to the search page
2 Enter the name of the place you want to search in the search box
3 The system uploads places with the same or similar name as the user entered
4 Users select the location to view detailed information about the location
6) Search the place on the map
Table 7 Search the place on the map usecase
Name Search for places on the map
Short description Users search for places on the map by entering the name of the place they want to find
1 Click the search icon on the bottom navbar, the application redirects to the search page
2 The map appears, the user clicks on the search box, a search page opens
3 Users enter keywords to search or select on the map when clicking "Choose in map"
3.1 Enter keywords in the search box:
3.1.1 Suggested locations are displayed, the user selects the place to find
3.1.2 The place name will appear in the search box, click “Find”
3.2.1 Move the map to place the location icon on the desired location
3.2.2 Press the “OK” button, the application will return to the search page Click “Find”
4 Return to the map screen, the point coordinates are displayed on the map
5 Click the location on the map, the menu appears Users select "Direct" for directions, select "More info" to view location information
6 Select the location classification, the points of the selected classification will appear on the map
5 The location has no detailed information in the system
Currently notification of location information is not available in the application
7) Find the route between two places
Table 8 Find the route between two places usecase
Name Find the route between two places
Short description User finds route between two places on map by entering place name
1 Click the search icon on the bottom navbar, the application redirects to the search page
2 The map appears, the user presses the button , the application redirects to the location input page
3 Users enter the search point keyword in the destination and starting point or select it on the map when clicking “Choose in map”
3.1 Enter keywords in the search box, the suggested locations are displayed, the user chooses the place to search
3.2 Search on the map, move the map so that the location icon is placed on the place you want to find, press “Ok” to return to the location input screen
5 The system will send point coordinates via google api to find the fastest route, the route will be displayed on the map
6 Tap the icon to see the distance and travel time
Error from google api route not found
Show message not found route
Table 9 View details of place usecase
Name View details of locations
Short description Click on any displayed place to see more information about that place
1 User selects a place, the application redirects to the detailed screen of that location information
2 Tab “Overview” default display, including location description, nearby locations, operating time, and price
3 Select the “Direction” tab to see the location of the place on the map and directions
4 Select the “Reviews” tab to see the user reviews of this place For more details see the usecase “View user reviews”
5 Users press the icon on the upper right corner to add the place to their favorites list if they have successfully logged in Notification of success if adding successful
6 An error occurred from the system
Table 10 View created trip planner
Name View created trip planner
Short description Click on the “Plan” tab to view the created trip plan
Pre-conditions User is logged in
1 Click tab “Plan” or “Kế hoạch” at the bottom nav
2 The list of created plans is displayed with items “Active”, “Upcoming”,
3 Click on the plan to see more details
Display “You have no plan here”
Table 11 Create a trip plan usecase
Short description In the “Plan” screen, press “Create Trip” to create a new trip plan
Pre-conditions User logged in
1 Select “Create Trip” to create a trip in the planner screen
2 The create trip screen appears
3 Tap “Choose background image” to choose an image in your phone
4 Enter the trip name, description and select the time to take place
5 Select status of that trip
6 Invite friend to trip by click “Invite friend”, to delete selected user, take a long press on that user’s avatar
7 Click the "Create New" button, the system saves the data on the server
8 The application notifies the successful creation, then navigates to the detailed planning screen for the newly created trip
9 If user invite any other user, a notification will be send to each user
Table 12.View plan details usecase
Short description Select a plan in the plan screen to view the plan details
Pre-conditions User logged in and created a plan
1 Select a plan in the plan list screen, the application redirects to the detail screen of that plan
2 The default tab is “Overview”, the application displays information about the plan: name, date, description, location schedule of each day
2.1 The user clicks on the place name, the application redirects to that location details
2.2 Click “Notes” to view notes
2.3 Click to see the marker of the place on the map
2.4 Click “Collection” to view saved locations
3 Click on the “Schedule” tab to see the travel route and location of all the places listed on the map on a day-to-day basis
3.1 Swipe left, to see the location for each day, the point coordinates will also be displayed on the map respectively
3.2 Click “See more” on the place to see information about the place
System error Display error message
Table 13 Edit plan information usecase
Short description In the plan details screen, select edit to go to the edit screen
1 At the detail plan screen , select Edit
2 The edit screen appears, the information of the current plan is displayed accordingly (same as the new creation screen)
3 Users change the information they want
4 Click “Save”, the system updates the plan information
5 5 After successful update, the application displays a message, then redirects back to the plan details screen
Table 14 Delete trip plan usecase
Short description In the plan details screen, select delete to delete the current plan
Pre-conditions Users who are logged in and have already created a plan
1 At the detail plan screen, click , select Delete
2 The application displays the confirmation message form
3 Select “Delete” to delete plan
4 The system deletes the plan in the storage, the application notices the successful deletion Then navigate to the screen showing the plans
3 Click “Cancel” The confirmation message closes, no other changes
4 Deletion failed Error messages delete failed
14) Create a plan for each day
Table 15 Create a plan for each day usecase
Name Create a plan for each day
Short description In the plan details screen, tap “Plan” to create a schedule for each day
Pre-conditions User logged in and created a plan
1 Click on the date you want to create
2 Click the “Add destination” button, the app goes to the gallery screen
4 The application returns to the old screen, adds the selected location to the existing list, with the default time and cost of 0
5 Select to change the time, change the estimated cost for the destination
7 The locations of the day are saved in the system After successful saving, the screen shows a success message
7 Save failed Save failed message
15) Clear plans for each day
Table 16 Clear plans for each day usecase
Name Clear plans for each day
Short description In the day-by-day schedule screen, the user can choose to delete a location planning all the locations of that day
Pre-conditions User logged in and created a plan
1 Click on the date you want to delete
2 To delete an already scheduled place, tap the trash can icon on the right corner of each location:
3 The application displays a deletion confirmation message
4 The user selects "Delete" the system will delete that place in the interface but not in the database yet
5 After editing is done, the user selects "Save All", the system sends the edited plan to the server and saves it
6 The system notifies the successful save
6 Save failed Save failed message
Table 17 Create a place review usecase
Short description Users type the places they have experienced
Pre-conditions User is logged in
1 Click “Create Review” in the place details page, “Reviews” tab, the application will switch to the review creation page
2 Select rating, time visited, title, detailed review
3 Select images in the device, the selected images are displayed under
4 Click "Save", the application checks the input validity and sends the data to the server, the server saves to the database, returns success
Show error below each error field
5 Save failed Show failed save message
17) Make suggestions for the place
Table 18 Make suggestions for the place usecase
Name Make suggestions for the place
Short description Users contribute opinions about information, images, displayed on the application
Pre-conditions User is logged in
1 User enters the location details page, tab “Overview”
2 Enter your comments in the comments field and click “Submit”
3 The system saves data, displays a successful message when sending is completed
3 Send failed The application shows a failed save message
Table 19 Report rating inappropriate usecase
Short description Users report reviews that use inappropriate words or false images
Pre-conditions The user is logged in and has a review created
1 In the place details screen or review view page, click per review
2 Click “Báo cáo” or “Report”, a dialog box containing the reason for the reported review is displayed
3 User enters reason, then press send
4 The data is sent to the server and saved, after successful saving, the success message is displayed
4 Send failed Application notifying save failed
Table 20 Add places to favorites usecase
Name Add places to favorites
Short description Add any place on the application to the user's favorites list
Pre-conditions User is logged in
2 The system sends to the server and saves the user's favorite list
3 Successful save message, icon turns red
3 Save failed Application notifying save failed
Table 21 Remove places from favorites usecase
Name Remove places from favorites
Short description Remove a place from the user's favorites list
Pre-conditions User is logged in
2 The system sends to the server and removes the place from the user's favorite list
3 Notification of successful shuffling, icon turns white
3 Deletion failed Application notifying delete failed
Table 22 Sign out the app usecase
Name Sign out of the app
Short description User logs out of the app
Pre-conditions User is logged in
1 In the Profile Management screen, click on three dots button, drop down menu showed
2 Click “Sign Out”, display a confirmation message to log out
3 Click 'OK', the system deletes user data and logs out of the app and gives a success message
4 Profile page no longer displays information
3 Sign out failed Logout failed message
Short description The user wants to create a new password
Pre-conditions User is logged in
1 In the Profile Management screen, click on three dots button, drop down menu showed
2 Click "Change password", display the waiting page (loading page)
3 Go to the Create new password page
4 User enters old password, new password, reconfirms new password
6 The system displays a successful password change message
3 Display the message that the account is not using a password to log in
User selects "Close" to close the notification, continue using the application
6 Invalid input Display the message “Confirmation password does not match” in the box to re-enter new password
6 The old password is incorrect
Display the message "Invalid password" in the old password input box
Short description The user forgot his password and wants to create a new password
Pre-conditions User is not logged in
1 At the Login screen, the user selects “Forgot Password”, the system will go to the Forgot Password page
2 At step 1 in the page, the user enters the email related to the account, clicks
4 At step 2 in the page, the user enters the confirmation code sent to the corresponding email, clicks "Confirm"
6 At step 3 in the page, the user enters a new password, confirms the new password, clicks "Confirm"
7 The system displays a successful new password creation message
3 Email is not in the systems; email does not use password to login
Displays a message that the email does not exist, or the email does not use the password to log in
Shows invalid authentication code message
Table 25 Edit personal information usecase
Short description In the Personal Information Management screen (profile) select Edit information
Pre-conditions The user has logged into the system
1 In the Personal Information Management screen, click on three dots button, drop down menu showed, click on “Edit”
2 System navigates to Edit profile screen
3 Users edit information (change name, select image)
4 User clicks “Save”, the button displays the loading icon (spinner )
5 The loading icon is hidden, complete the information update
The loading icon is hidden, showing an error message
Short description In the Personal Information Management screen (profile) select change language
1 In the Personal Information Management screen, click on three dots button, drop down menu showed, click on “Change language”
2 System navigates to Change language screen; list languages were showed
3 User selects the language he wants
4 The system changes the current language accordingly
Table 27 Sign in with Google usecase
Name Sign in with google
Short description At the login screen, the user selects “Sign in with Google”
1 In the login screen, the user selects “Sign in with Google”
2 Display dialog select google account
3 Users click on the account they want to log in to
4 Go to the page where the account is being verified
5 Go to the home page of the app
1 Sync with google account error occurred
Close the dialog, return to the Login screen
27) Create a plan with a voice assistant
Table 28 Create a plan with a voice assistant usecase
Name Create a plan with a voice assistant (Alan)
Short description Users use voice to create trip plans
Pre-conditions Signed in successfully
1 User activates Alan by saying “Hey Alan” or clicking on the Alan icon
2 User uses voice to answer Alan's requests, the user's reply to data will be saved on Alan studio
3 After having enough data, Alan sends the data to the application, and the application sends the information to the server to save
4 The system displays a message after successful creation
5 Creation failed The system displays the error message creating the plan
Short description User can view announcements related to them
Pre-conditions Signed in successfully
1 User click icon announcement in bottom tab to view his announcement
2 System shows all announcement by default
3 User can click on an announcement to mark as read
4 User can click on filter “All”, “Read” or “Unread” to filter his announcements
4.1 When user click on “All”, all announcements will be loaded
4.2 When user click on “Read”, all read announcements will be loaded 4.3 When user click on “Unread”, all unread announcements will be loaded
5 There are two types of announcements: added to plan and new request make friend
5.1 Added to plan: when logged user was added to another user’s plan, system will send notification to added account
5.2 New make friend request: if another user want to make friend with you, you will receive a notification, with 2 choices: agree or reject
5.3 Click “Agree”: system will create connect friend Click reject, this request will be canceled
The system displays the error message agree make friend request fail
Short description User can search and add new friend
Pre-conditions Signed in successfully
1 Click icon profile in bottom tab, system navigates to Profile screen
2 User can view his list friend, click “More” to search, and view more friend
3 User can click button “Add” in each friend he wants to make connect
4 User can click on that friend to view him/her profile
5 User can search by input email, system will load all user that has corresponding email
6 When user click “Add” with another user, he/she will receive an announcement to accept or reject the request When adding successfully, system will show an message “Send friend request successfully”
The system displays the error message make friend request fail
2.3.2.2.2 Usecase description for web application
Short description Admin added new location
Pre-conditions Admin has logged into the system
1 Admin to the location management section
2 Click the + button "add location" in the upper right corner, the form to enter new location information will appear
3 Fill in the information about the new location you want to create
5 The system displays a message that successfully added a new location
6 Go to the edit detail page of the newly added location
Input form will be closed
Error messages are displayed below the error field Admin continues to add locations
5 The server responded that adding a new location failed
- Admin selects Summit button to continue other operations
- Admin selects the Cannel button; the input form is closed
Name Location management: Edit information
Short description Admin changes the information of a location
Pre-conditions Admin has logged into the system
1 Admin to the location management section
2 Click the edit button (pen-shaped icon) in the middle of the location display frame, the system will go to the edit detail page of the selected location
4 Click the save button to save the changes
5 Display the message of successful data update
Return to previous location view page
Error messages are displayed below the error field Admin continues to update the location
5 The server responded that adding a new location failed
- Admin selects the Save button to continue the operation
- Admin selects the back button (arrow), returns to the previous page
3) Manage cards; types; districts: Create
Table 33 Manage cards; types; districts: Create usecase
Name Manage cards; types; districts: Create
Short description Admin creates new (tag | category | district)
Pre-conditions Admin has logged into the system
2 Select the respective tabs (tag | category | district)
3 Select the button create tag | category | province Display the new form to fill in the information
4 Fill in the information about the new type you want to create
6 The input form is closed
7 Show new successful message, object's list is reloaded
The form to fill in the information is closed End usecase
5 Server responds adding new object failed
- Admin selects the Save button to continue the operation
- Admin selects the Cancel button, and the form fills in information closes End usecase
4) Manage cards; types; districts: Update
Table 34 Manage cards; types; districts: Update
Name Manage cards; type; districts: Update
Short description Admin edit and update information (card | type | district)
Pre-condition Admin has logged into the system
2 Select the corresponding tab (tag | category | district)
3 At the object you want to change, click the edit button (the pen shape) in the Action column The form to edit the information of the object is displayed
5 The form closes, showing a successful update message The list in the table is updated according to the newly edited data
The form is closed End usecase
5 The server responded that the object editing is not successful
- Admin selects Save button and continues other activities
- Admin selects Cancel button, the form fills in information closes End usecase
Table 35 Manage explore – create usecase
Short description Admin creates new a explorer
Pre-conditions Admin has logged into the system
1 Admin go to Explores section
2 Click on Create explore The form to create a new object is displayed
5 The form is closed Displays a message that the Explore is successful
The form to fill in the information is closed End usecase
5 The server response is that adding a new object failed
- Admin selects the Save button and continues the operation
- Admin selects the Cancel button, and the form closes End usecase
Table 36 Manage explore – update usecase
Short description Admin updated explorer information
Pre-conditions Admin has logged into the system
2 Admin moves the mouse to explore to edit information, and displays the edit button and selects The form containing information about the explorer that needs to be edited is displayed
4 Click the button Submit to save the change
5 The form is closed Display the message of successful Explore update
The form to fill in the information is closed End usecase
5 The server responded that the object editing was not successful
- Admin selects the Save button to continue the operation
- Admin selects Cancel button, form closes End usecase
7) Manage user: Lock/unlock the user's account
Table 37 Lock/unlock the user's account - usecase
Name User management: Lock/unlock user accounts
Short description Admin locks/unlocks user's account
Pre-conditions Admin has logged into the system
2 In the users table In the row of the user to be updated, select the toggle button in the Update column
3 Show user lock/unlock confirmation message
5 Admin selects Cancel button, form closes End usecase
The confirmation form is closed End usecase
The form closes Display an error message End usecase
8) Manage Contributes: Mark viewed, hidden
Table 38 Manage Contributes: Mark viewed, hidden usecase
Name Manage Contributes: mark viewed, hidden
Short description Admin marks viewed/hidden
Pre-conditions Admin has logged into the system
2 In Contributes, select to Contributes (Newest/ Seen), select to button setting (ellipsis ) Select Hidden/mark as unread at Seen, mark as read at Newest)
Display an error message End usecase
9) Manage Contributes: View related information
Table 39 Manage Contributes: View related information usecase
Name Manage Contributes: view related information
Short description Admin review information related to contribute
Pre-conditions Admin has logged into the system
2 At Contributes, select Contributes (Newest/ Seen), click the button setting (ellipsis ) Select Go to this place/ Contirbutor info
- Go to this place: go to the edit detail page of the place to be contributed
- Contribute info: go to the user management page, display in the user panel the information that the user has contributed
3 Server/Web error, redirect failed
Display an error message End usecase
10) Manage Reported review: Mark viewed, hidden
Table 40 Manage reported view: mark viewed, hidden usecase
Name Reported review management: mark viewed, hidden
Short description Admin marks viewed/hidden
Pre-conditions Admin has logged into the system
2 At Reported review, select Reported review at (Newest/ Seen), select button setting (ellipsis ) Select Hide review/ mark as unread at Seen, mark as read at Newest
3 The server responded that editing the new object was not successful
Display an error message End usecase
11) Manage Reported review: View related information
Table 41 Manage reported review: view related information
Name Manage Reported review: view related information
Short description Admin review information related to contribute
Pre-conditions Admin has logged into the system
2 At Contributes, select Contributes at (Newest/ Seen), select button setting (ellipsis ) Select Edit this place/ Reviewer info/ never| show this report
- Edit this place: go to the edit detail page of the place to be contributed
- Reviewer info: go to the user management page, display in the user panel the information that the user has contributed
- Never| show this report: Display successful operation message
3 Server/Web error, redirect failed
Display an error message End usecase.
SOFTWARE DESIGNATION
Class Diagram
Sign up
Table 2 Normal account registration usecase
Name Register for a user account
Short description Users register an account on the application
1 User goes to account registration page
2 Enter information in the fields email, fullname, password and confirm password
2.1 When entering an invalid email, the system will display a red error below the email field, saying "Invalid email"
4 The system checks the input fields, then sends the account information to the server, the server will check the account and return a successful registration
GRADUATION THESIS 24 message The system will display the message “Successfully” to the user, then redirect to the homepage
Check Invalid Input Error messages are displayed below the field in error
The server responded that the login failed
The server responded that the login failed Show failed login message
2) Log in to your account
Name Log in to your account
Short description Users log into their accounts with email and password
Pre-conditions User has successfully registered for an account
1 User arrives at the login page
2 The user enters the email and password fields
3 Click the “Sign in” button”
4 The system checks the input fields, then sends the account information to the server, the server checks the account and returns a successful login message The system redirects to the home page
Invalid input check Error messages are displayed below the error field
Email or password is incorrect
Shows incorrect email or password error
The server responded that the login failed
Table 4 See user reviews usecase
Short description View user reviews of each location, users can favorite that review if successfully logged in
Pre-conditions User must successfully login if want to favorite review
1 User clicks on a place, that location details page appears
2 Users click on the “Review” tab, an overview of the number of review types and the most recent reviews appear
3 Click the “View more” button to see all the reviews of the place
4 The system redirects to the review page
5 User if logged in, can press favorite for each review or review report
5.1 Tap the icon like under the review, if successful, it will change to blue
5.2 Tap the icon on each review, then click “Report” to report it Information will be sent to the administrator for review
5.1 Failed favorite An error message appeared, favorite failed
5.2 Report failed An error message appears, the report fails
Short description Locations are displayed by category on the home page, and the same person can see specific locations for each item
1 The user enters the homepage or presses the “Home” icon
2 Locations are displayed by categories: popular places, voted places, suggested areas
3 To see more locations in each category, click “More” on each category 3.1 Enter the name of the place in the search box to check the place in the 3.2 Click on the location button to filter the locations of your desired genre
4 Tap the place category button to view places by category
5 Click on the location to see details (usecase “View location details)
6 Users after logging in will see their recently viewed locations
System error System error an error message appears
Table 6 Search for places usecase
Short description Users search for places by entering the name of the place they want to find
1 Click on the search box in the home page, the application goes to the search page
2 Enter the name of the place you want to search in the search box
3 The system uploads places with the same or similar name as the user entered
4 Users select the location to view detailed information about the location
6) Search the place on the map
Table 7 Search the place on the map usecase
Name Search for places on the map
Short description Users search for places on the map by entering the name of the place they want to find
1 Click the search icon on the bottom navbar, the application redirects to the search page
2 The map appears, the user clicks on the search box, a search page opens
3 Users enter keywords to search or select on the map when clicking "Choose in map"
3.1 Enter keywords in the search box:
3.1.1 Suggested locations are displayed, the user selects the place to find
3.1.2 The place name will appear in the search box, click “Find”
3.2.1 Move the map to place the location icon on the desired location
3.2.2 Press the “OK” button, the application will return to the search page Click “Find”
4 Return to the map screen, the point coordinates are displayed on the map
5 Click the location on the map, the menu appears Users select "Direct" for directions, select "More info" to view location information
6 Select the location classification, the points of the selected classification will appear on the map
5 The location has no detailed information in the system
Currently notification of location information is not available in the application
7) Find the route between two places
Table 8 Find the route between two places usecase
Name Find the route between two places
Short description User finds route between two places on map by entering place name
1 Click the search icon on the bottom navbar, the application redirects to the search page
2 The map appears, the user presses the button , the application redirects to the location input page
3 Users enter the search point keyword in the destination and starting point or select it on the map when clicking “Choose in map”
3.1 Enter keywords in the search box, the suggested locations are displayed, the user chooses the place to search
3.2 Search on the map, move the map so that the location icon is placed on the place you want to find, press “Ok” to return to the location input screen
5 The system will send point coordinates via google api to find the fastest route, the route will be displayed on the map
6 Tap the icon to see the distance and travel time
Error from google api route not found
Show message not found route
Table 9 View details of place usecase
Name View details of locations
Short description Click on any displayed place to see more information about that place
1 User selects a place, the application redirects to the detailed screen of that location information
2 Tab “Overview” default display, including location description, nearby locations, operating time, and price
3 Select the “Direction” tab to see the location of the place on the map and directions
4 Select the “Reviews” tab to see the user reviews of this place For more details see the usecase “View user reviews”
5 Users press the icon on the upper right corner to add the place to their favorites list if they have successfully logged in Notification of success if adding successful
6 An error occurred from the system
Table 10 View created trip planner
Name View created trip planner
Short description Click on the “Plan” tab to view the created trip plan
Pre-conditions User is logged in
1 Click tab “Plan” or “Kế hoạch” at the bottom nav
2 The list of created plans is displayed with items “Active”, “Upcoming”,
3 Click on the plan to see more details
Display “You have no plan here”
Table 11 Create a trip plan usecase
Short description In the “Plan” screen, press “Create Trip” to create a new trip plan
Pre-conditions User logged in
1 Select “Create Trip” to create a trip in the planner screen
2 The create trip screen appears
3 Tap “Choose background image” to choose an image in your phone
4 Enter the trip name, description and select the time to take place
5 Select status of that trip
6 Invite friend to trip by click “Invite friend”, to delete selected user, take a long press on that user’s avatar
7 Click the "Create New" button, the system saves the data on the server
8 The application notifies the successful creation, then navigates to the detailed planning screen for the newly created trip
9 If user invite any other user, a notification will be send to each user
Table 12.View plan details usecase
Short description Select a plan in the plan screen to view the plan details
Pre-conditions User logged in and created a plan
1 Select a plan in the plan list screen, the application redirects to the detail screen of that plan
2 The default tab is “Overview”, the application displays information about the plan: name, date, description, location schedule of each day
2.1 The user clicks on the place name, the application redirects to that location details
2.2 Click “Notes” to view notes
2.3 Click to see the marker of the place on the map
2.4 Click “Collection” to view saved locations
3 Click on the “Schedule” tab to see the travel route and location of all the places listed on the map on a day-to-day basis
3.1 Swipe left, to see the location for each day, the point coordinates will also be displayed on the map respectively
3.2 Click “See more” on the place to see information about the place
System error Display error message
Table 13 Edit plan information usecase
Short description In the plan details screen, select edit to go to the edit screen
1 At the detail plan screen , select Edit
2 The edit screen appears, the information of the current plan is displayed accordingly (same as the new creation screen)
3 Users change the information they want
4 Click “Save”, the system updates the plan information
5 5 After successful update, the application displays a message, then redirects back to the plan details screen
Table 14 Delete trip plan usecase
Short description In the plan details screen, select delete to delete the current plan
Pre-conditions Users who are logged in and have already created a plan
1 At the detail plan screen, click , select Delete
2 The application displays the confirmation message form
3 Select “Delete” to delete plan
4 The system deletes the plan in the storage, the application notices the successful deletion Then navigate to the screen showing the plans
3 Click “Cancel” The confirmation message closes, no other changes
4 Deletion failed Error messages delete failed
14) Create a plan for each day
Table 15 Create a plan for each day usecase
Name Create a plan for each day
Short description In the plan details screen, tap “Plan” to create a schedule for each day
Pre-conditions User logged in and created a plan
1 Click on the date you want to create
2 Click the “Add destination” button, the app goes to the gallery screen
4 The application returns to the old screen, adds the selected location to the existing list, with the default time and cost of 0
5 Select to change the time, change the estimated cost for the destination
7 The locations of the day are saved in the system After successful saving, the screen shows a success message
7 Save failed Save failed message
15) Clear plans for each day
Table 16 Clear plans for each day usecase
Name Clear plans for each day
Short description In the day-by-day schedule screen, the user can choose to delete a location planning all the locations of that day
Pre-conditions User logged in and created a plan
1 Click on the date you want to delete
2 To delete an already scheduled place, tap the trash can icon on the right corner of each location:
3 The application displays a deletion confirmation message
4 The user selects "Delete" the system will delete that place in the interface but not in the database yet
5 After editing is done, the user selects "Save All", the system sends the edited plan to the server and saves it
6 The system notifies the successful save
6 Save failed Save failed message
Table 17 Create a place review usecase
Short description Users type the places they have experienced
Pre-conditions User is logged in
1 Click “Create Review” in the place details page, “Reviews” tab, the application will switch to the review creation page
2 Select rating, time visited, title, detailed review
3 Select images in the device, the selected images are displayed under
4 Click "Save", the application checks the input validity and sends the data to the server, the server saves to the database, returns success
Show error below each error field
5 Save failed Show failed save message
17) Make suggestions for the place
Table 18 Make suggestions for the place usecase
Name Make suggestions for the place
Short description Users contribute opinions about information, images, displayed on the application
Pre-conditions User is logged in
1 User enters the location details page, tab “Overview”
2 Enter your comments in the comments field and click “Submit”
3 The system saves data, displays a successful message when sending is completed
3 Send failed The application shows a failed save message
Table 19 Report rating inappropriate usecase
Short description Users report reviews that use inappropriate words or false images
Pre-conditions The user is logged in and has a review created
1 In the place details screen or review view page, click per review
2 Click “Báo cáo” or “Report”, a dialog box containing the reason for the reported review is displayed
3 User enters reason, then press send
4 The data is sent to the server and saved, after successful saving, the success message is displayed
4 Send failed Application notifying save failed
Table 20 Add places to favorites usecase
Name Add places to favorites
Short description Add any place on the application to the user's favorites list
Pre-conditions User is logged in
2 The system sends to the server and saves the user's favorite list
3 Successful save message, icon turns red
3 Save failed Application notifying save failed
Table 21 Remove places from favorites usecase
Name Remove places from favorites
Short description Remove a place from the user's favorites list
Pre-conditions User is logged in
2 The system sends to the server and removes the place from the user's favorite list
3 Notification of successful shuffling, icon turns white
3 Deletion failed Application notifying delete failed
Table 22 Sign out the app usecase
Name Sign out of the app
Short description User logs out of the app
Pre-conditions User is logged in
1 In the Profile Management screen, click on three dots button, drop down menu showed
2 Click “Sign Out”, display a confirmation message to log out
3 Click 'OK', the system deletes user data and logs out of the app and gives a success message
4 Profile page no longer displays information
3 Sign out failed Logout failed message
Short description The user wants to create a new password
Pre-conditions User is logged in
1 In the Profile Management screen, click on three dots button, drop down menu showed
2 Click "Change password", display the waiting page (loading page)
3 Go to the Create new password page
4 User enters old password, new password, reconfirms new password
6 The system displays a successful password change message
3 Display the message that the account is not using a password to log in
User selects "Close" to close the notification, continue using the application
6 Invalid input Display the message “Confirmation password does not match” in the box to re-enter new password
6 The old password is incorrect
Display the message "Invalid password" in the old password input box
Short description The user forgot his password and wants to create a new password
Pre-conditions User is not logged in
1 At the Login screen, the user selects “Forgot Password”, the system will go to the Forgot Password page
2 At step 1 in the page, the user enters the email related to the account, clicks
4 At step 2 in the page, the user enters the confirmation code sent to the corresponding email, clicks "Confirm"
6 At step 3 in the page, the user enters a new password, confirms the new password, clicks "Confirm"
7 The system displays a successful new password creation message
3 Email is not in the systems; email does not use password to login
Displays a message that the email does not exist, or the email does not use the password to log in
Shows invalid authentication code message
Table 25 Edit personal information usecase
Short description In the Personal Information Management screen (profile) select Edit information
Pre-conditions The user has logged into the system
1 In the Personal Information Management screen, click on three dots button, drop down menu showed, click on “Edit”
2 System navigates to Edit profile screen
3 Users edit information (change name, select image)
4 User clicks “Save”, the button displays the loading icon (spinner )
5 The loading icon is hidden, complete the information update
The loading icon is hidden, showing an error message
Short description In the Personal Information Management screen (profile) select change language
1 In the Personal Information Management screen, click on three dots button, drop down menu showed, click on “Change language”
2 System navigates to Change language screen; list languages were showed
3 User selects the language he wants
4 The system changes the current language accordingly
Table 27 Sign in with Google usecase
Name Sign in with google
Short description At the login screen, the user selects “Sign in with Google”
1 In the login screen, the user selects “Sign in with Google”
2 Display dialog select google account
3 Users click on the account they want to log in to
4 Go to the page where the account is being verified
5 Go to the home page of the app
1 Sync with google account error occurred
Close the dialog, return to the Login screen
27) Create a plan with a voice assistant
Table 28 Create a plan with a voice assistant usecase
Name Create a plan with a voice assistant (Alan)
Short description Users use voice to create trip plans
Pre-conditions Signed in successfully
1 User activates Alan by saying “Hey Alan” or clicking on the Alan icon
2 User uses voice to answer Alan's requests, the user's reply to data will be saved on Alan studio
3 After having enough data, Alan sends the data to the application, and the application sends the information to the server to save
4 The system displays a message after successful creation
5 Creation failed The system displays the error message creating the plan
Short description User can view announcements related to them
Pre-conditions Signed in successfully
1 User click icon announcement in bottom tab to view his announcement
2 System shows all announcement by default
3 User can click on an announcement to mark as read
4 User can click on filter “All”, “Read” or “Unread” to filter his announcements
4.1 When user click on “All”, all announcements will be loaded
4.2 When user click on “Read”, all read announcements will be loaded 4.3 When user click on “Unread”, all unread announcements will be loaded
5 There are two types of announcements: added to plan and new request make friend
5.1 Added to plan: when logged user was added to another user’s plan, system will send notification to added account
5.2 New make friend request: if another user want to make friend with you, you will receive a notification, with 2 choices: agree or reject
5.3 Click “Agree”: system will create connect friend Click reject, this request will be canceled
The system displays the error message agree make friend request fail
Short description User can search and add new friend
Pre-conditions Signed in successfully
1 Click icon profile in bottom tab, system navigates to Profile screen
2 User can view his list friend, click “More” to search, and view more friend
3 User can click button “Add” in each friend he wants to make connect
4 User can click on that friend to view him/her profile
5 User can search by input email, system will load all user that has corresponding email
6 When user click “Add” with another user, he/she will receive an announcement to accept or reject the request When adding successfully, system will show an message “Send friend request successfully”
The system displays the error message make friend request fail
2.3.2.2.2 Usecase description for web application
Short description Admin added new location
Pre-conditions Admin has logged into the system
1 Admin to the location management section
2 Click the + button "add location" in the upper right corner, the form to enter new location information will appear
3 Fill in the information about the new location you want to create
5 The system displays a message that successfully added a new location
6 Go to the edit detail page of the newly added location
Input form will be closed
Error messages are displayed below the error field Admin continues to add locations
5 The server responded that adding a new location failed
- Admin selects Summit button to continue other operations
- Admin selects the Cannel button; the input form is closed
Name Location management: Edit information
Short description Admin changes the information of a location
Pre-conditions Admin has logged into the system
1 Admin to the location management section
2 Click the edit button (pen-shaped icon) in the middle of the location display frame, the system will go to the edit detail page of the selected location
4 Click the save button to save the changes
5 Display the message of successful data update
Return to previous location view page
Error messages are displayed below the error field Admin continues to update the location
5 The server responded that adding a new location failed
- Admin selects the Save button to continue the operation
- Admin selects the back button (arrow), returns to the previous page
3) Manage cards; types; districts: Create
Table 33 Manage cards; types; districts: Create usecase
Name Manage cards; types; districts: Create
Short description Admin creates new (tag | category | district)
Pre-conditions Admin has logged into the system
2 Select the respective tabs (tag | category | district)
3 Select the button create tag | category | province Display the new form to fill in the information
4 Fill in the information about the new type you want to create
6 The input form is closed
7 Show new successful message, object's list is reloaded
The form to fill in the information is closed End usecase
5 Server responds adding new object failed
- Admin selects the Save button to continue the operation
- Admin selects the Cancel button, and the form fills in information closes End usecase
4) Manage cards; types; districts: Update
Table 34 Manage cards; types; districts: Update
Name Manage cards; type; districts: Update
Short description Admin edit and update information (card | type | district)
Pre-condition Admin has logged into the system
2 Select the corresponding tab (tag | category | district)
3 At the object you want to change, click the edit button (the pen shape) in the Action column The form to edit the information of the object is displayed
5 The form closes, showing a successful update message The list in the table is updated according to the newly edited data
The form is closed End usecase
5 The server responded that the object editing is not successful
- Admin selects Save button and continues other activities
- Admin selects Cancel button, the form fills in information closes End usecase
Table 35 Manage explore – create usecase
Short description Admin creates new a explorer
Pre-conditions Admin has logged into the system
1 Admin go to Explores section
2 Click on Create explore The form to create a new object is displayed
5 The form is closed Displays a message that the Explore is successful
The form to fill in the information is closed End usecase
5 The server response is that adding a new object failed
- Admin selects the Save button and continues the operation
- Admin selects the Cancel button, and the form closes End usecase
Table 36 Manage explore – update usecase
Short description Admin updated explorer information
Pre-conditions Admin has logged into the system
2 Admin moves the mouse to explore to edit information, and displays the edit button and selects The form containing information about the explorer that needs to be edited is displayed
4 Click the button Submit to save the change
5 The form is closed Display the message of successful Explore update
The form to fill in the information is closed End usecase
5 The server responded that the object editing was not successful
- Admin selects the Save button to continue the operation
- Admin selects Cancel button, form closes End usecase
7) Manage user: Lock/unlock the user's account
Table 37 Lock/unlock the user's account - usecase
Name User management: Lock/unlock user accounts
Short description Admin locks/unlocks user's account
Pre-conditions Admin has logged into the system
2 In the users table In the row of the user to be updated, select the toggle button in the Update column
3 Show user lock/unlock confirmation message
5 Admin selects Cancel button, form closes End usecase
The confirmation form is closed End usecase
The form closes Display an error message End usecase
8) Manage Contributes: Mark viewed, hidden
Table 38 Manage Contributes: Mark viewed, hidden usecase
Name Manage Contributes: mark viewed, hidden
Short description Admin marks viewed/hidden
Pre-conditions Admin has logged into the system
2 In Contributes, select to Contributes (Newest/ Seen), select to button setting (ellipsis ) Select Hidden/mark as unread at Seen, mark as read at Newest)
Display an error message End usecase
9) Manage Contributes: View related information
Table 39 Manage Contributes: View related information usecase
Name Manage Contributes: view related information
Short description Admin review information related to contribute
Pre-conditions Admin has logged into the system
2 At Contributes, select Contributes (Newest/ Seen), click the button setting (ellipsis ) Select Go to this place/ Contirbutor info
- Go to this place: go to the edit detail page of the place to be contributed
- Contribute info: go to the user management page, display in the user panel the information that the user has contributed
3 Server/Web error, redirect failed
Display an error message End usecase
10) Manage Reported review: Mark viewed, hidden
Table 40 Manage reported view: mark viewed, hidden usecase
Name Reported review management: mark viewed, hidden
Short description Admin marks viewed/hidden
Pre-conditions Admin has logged into the system
2 At Reported review, select Reported review at (Newest/ Seen), select button setting (ellipsis ) Select Hide review/ mark as unread at Seen, mark as read at Newest
3 The server responded that editing the new object was not successful
Display an error message End usecase
11) Manage Reported review: View related information
Table 41 Manage reported review: view related information
Name Manage Reported review: view related information
Short description Admin review information related to contribute
Pre-conditions Admin has logged into the system
2 At Contributes, select Contributes at (Newest/ Seen), select button setting (ellipsis ) Select Edit this place/ Reviewer info/ never| show this report
- Edit this place: go to the edit detail page of the place to be contributed
- Reviewer info: go to the user management page, display in the user panel the information that the user has contributed
- Never| show this report: Display successful operation message
3 Server/Web error, redirect failed
Display an error message End usecase
3.2.1 Sequence diagram in mobile application
Figure 11 Sequence diagram of feature Sign up
Sign in
Figure 12 Sequence diagram of feature Login
View review
Figure 13 Sequence diagram of feature View review
Search place
Figure 14 Sequence diagram of feature Search places
View places
Figure 15 Sequence diagram of feature View places
Find the route
Table 8 Find the route between two places usecase
Name Find the route between two places
Short description User finds route between two places on map by entering place name
1 Click the search icon on the bottom navbar, the application redirects to the search page
2 The map appears, the user presses the button , the application redirects to the location input page
3 Users enter the search point keyword in the destination and starting point or select it on the map when clicking “Choose in map”
3.1 Enter keywords in the search box, the suggested locations are displayed, the user chooses the place to search
3.2 Search on the map, move the map so that the location icon is placed on the place you want to find, press “Ok” to return to the location input screen
5 The system will send point coordinates via google api to find the fastest route, the route will be displayed on the map
6 Tap the icon to see the distance and travel time
Error from google api route not found
Show message not found route
Table 9 View details of place usecase
Name View details of locations
Short description Click on any displayed place to see more information about that place
1 User selects a place, the application redirects to the detailed screen of that location information
2 Tab “Overview” default display, including location description, nearby locations, operating time, and price
3 Select the “Direction” tab to see the location of the place on the map and directions
4 Select the “Reviews” tab to see the user reviews of this place For more details see the usecase “View user reviews”
5 Users press the icon on the upper right corner to add the place to their favorites list if they have successfully logged in Notification of success if adding successful
6 An error occurred from the system
Table 10 View created trip planner
Name View created trip planner
Short description Click on the “Plan” tab to view the created trip plan
Pre-conditions User is logged in
1 Click tab “Plan” or “Kế hoạch” at the bottom nav
2 The list of created plans is displayed with items “Active”, “Upcoming”,
3 Click on the plan to see more details
Display “You have no plan here”
Table 11 Create a trip plan usecase
Short description In the “Plan” screen, press “Create Trip” to create a new trip plan
Pre-conditions User logged in
1 Select “Create Trip” to create a trip in the planner screen
2 The create trip screen appears
3 Tap “Choose background image” to choose an image in your phone
4 Enter the trip name, description and select the time to take place
5 Select status of that trip
6 Invite friend to trip by click “Invite friend”, to delete selected user, take a long press on that user’s avatar
7 Click the "Create New" button, the system saves the data on the server
8 The application notifies the successful creation, then navigates to the detailed planning screen for the newly created trip
9 If user invite any other user, a notification will be send to each user
Table 12.View plan details usecase
Short description Select a plan in the plan screen to view the plan details
Pre-conditions User logged in and created a plan
1 Select a plan in the plan list screen, the application redirects to the detail screen of that plan
2 The default tab is “Overview”, the application displays information about the plan: name, date, description, location schedule of each day
2.1 The user clicks on the place name, the application redirects to that location details
2.2 Click “Notes” to view notes
2.3 Click to see the marker of the place on the map
2.4 Click “Collection” to view saved locations
3 Click on the “Schedule” tab to see the travel route and location of all the places listed on the map on a day-to-day basis
3.1 Swipe left, to see the location for each day, the point coordinates will also be displayed on the map respectively
3.2 Click “See more” on the place to see information about the place
System error Display error message
Table 13 Edit plan information usecase
Short description In the plan details screen, select edit to go to the edit screen
1 At the detail plan screen , select Edit
2 The edit screen appears, the information of the current plan is displayed accordingly (same as the new creation screen)
3 Users change the information they want
4 Click “Save”, the system updates the plan information
5 5 After successful update, the application displays a message, then redirects back to the plan details screen
Table 14 Delete trip plan usecase
Short description In the plan details screen, select delete to delete the current plan
Pre-conditions Users who are logged in and have already created a plan
1 At the detail plan screen, click , select Delete
2 The application displays the confirmation message form
3 Select “Delete” to delete plan
4 The system deletes the plan in the storage, the application notices the successful deletion Then navigate to the screen showing the plans
3 Click “Cancel” The confirmation message closes, no other changes
4 Deletion failed Error messages delete failed
14) Create a plan for each day
Table 15 Create a plan for each day usecase
Name Create a plan for each day
Short description In the plan details screen, tap “Plan” to create a schedule for each day
Pre-conditions User logged in and created a plan
1 Click on the date you want to create
2 Click the “Add destination” button, the app goes to the gallery screen
4 The application returns to the old screen, adds the selected location to the existing list, with the default time and cost of 0
5 Select to change the time, change the estimated cost for the destination
7 The locations of the day are saved in the system After successful saving, the screen shows a success message
7 Save failed Save failed message
15) Clear plans for each day
Table 16 Clear plans for each day usecase
Name Clear plans for each day
Short description In the day-by-day schedule screen, the user can choose to delete a location planning all the locations of that day
Pre-conditions User logged in and created a plan
1 Click on the date you want to delete
2 To delete an already scheduled place, tap the trash can icon on the right corner of each location:
3 The application displays a deletion confirmation message
4 The user selects "Delete" the system will delete that place in the interface but not in the database yet
5 After editing is done, the user selects "Save All", the system sends the edited plan to the server and saves it
6 The system notifies the successful save
6 Save failed Save failed message
Table 17 Create a place review usecase
Short description Users type the places they have experienced
Pre-conditions User is logged in
1 Click “Create Review” in the place details page, “Reviews” tab, the application will switch to the review creation page
2 Select rating, time visited, title, detailed review
3 Select images in the device, the selected images are displayed under
4 Click "Save", the application checks the input validity and sends the data to the server, the server saves to the database, returns success
Show error below each error field
5 Save failed Show failed save message
17) Make suggestions for the place
Table 18 Make suggestions for the place usecase
Name Make suggestions for the place
Short description Users contribute opinions about information, images, displayed on the application
Pre-conditions User is logged in
1 User enters the location details page, tab “Overview”
2 Enter your comments in the comments field and click “Submit”
3 The system saves data, displays a successful message when sending is completed
3 Send failed The application shows a failed save message
Table 19 Report rating inappropriate usecase
Short description Users report reviews that use inappropriate words or false images
Pre-conditions The user is logged in and has a review created
1 In the place details screen or review view page, click per review
2 Click “Báo cáo” or “Report”, a dialog box containing the reason for the reported review is displayed
3 User enters reason, then press send
4 The data is sent to the server and saved, after successful saving, the success message is displayed
4 Send failed Application notifying save failed
Table 20 Add places to favorites usecase
Name Add places to favorites
Short description Add any place on the application to the user's favorites list
Pre-conditions User is logged in
2 The system sends to the server and saves the user's favorite list
3 Successful save message, icon turns red
3 Save failed Application notifying save failed
Table 21 Remove places from favorites usecase
Name Remove places from favorites
Short description Remove a place from the user's favorites list
Pre-conditions User is logged in
2 The system sends to the server and removes the place from the user's favorite list
3 Notification of successful shuffling, icon turns white
3 Deletion failed Application notifying delete failed
Table 22 Sign out the app usecase
Name Sign out of the app
Short description User logs out of the app
Pre-conditions User is logged in
1 In the Profile Management screen, click on three dots button, drop down menu showed
2 Click “Sign Out”, display a confirmation message to log out
3 Click 'OK', the system deletes user data and logs out of the app and gives a success message
4 Profile page no longer displays information
3 Sign out failed Logout failed message
Short description The user wants to create a new password
Pre-conditions User is logged in
1 In the Profile Management screen, click on three dots button, drop down menu showed
2 Click "Change password", display the waiting page (loading page)
3 Go to the Create new password page
4 User enters old password, new password, reconfirms new password
6 The system displays a successful password change message
3 Display the message that the account is not using a password to log in
User selects "Close" to close the notification, continue using the application
6 Invalid input Display the message “Confirmation password does not match” in the box to re-enter new password
6 The old password is incorrect
Display the message "Invalid password" in the old password input box
Short description The user forgot his password and wants to create a new password
Pre-conditions User is not logged in
1 At the Login screen, the user selects “Forgot Password”, the system will go to the Forgot Password page
2 At step 1 in the page, the user enters the email related to the account, clicks
4 At step 2 in the page, the user enters the confirmation code sent to the corresponding email, clicks "Confirm"
6 At step 3 in the page, the user enters a new password, confirms the new password, clicks "Confirm"
7 The system displays a successful new password creation message
3 Email is not in the systems; email does not use password to login
Displays a message that the email does not exist, or the email does not use the password to log in
Shows invalid authentication code message
Table 25 Edit personal information usecase
Short description In the Personal Information Management screen (profile) select Edit information
Pre-conditions The user has logged into the system
1 In the Personal Information Management screen, click on three dots button, drop down menu showed, click on “Edit”
2 System navigates to Edit profile screen
3 Users edit information (change name, select image)
4 User clicks “Save”, the button displays the loading icon (spinner )
5 The loading icon is hidden, complete the information update
The loading icon is hidden, showing an error message
Short description In the Personal Information Management screen (profile) select change language
1 In the Personal Information Management screen, click on three dots button, drop down menu showed, click on “Change language”
2 System navigates to Change language screen; list languages were showed
3 User selects the language he wants
4 The system changes the current language accordingly
Table 27 Sign in with Google usecase
Name Sign in with google
Short description At the login screen, the user selects “Sign in with Google”
1 In the login screen, the user selects “Sign in with Google”
2 Display dialog select google account
3 Users click on the account they want to log in to
4 Go to the page where the account is being verified
5 Go to the home page of the app
1 Sync with google account error occurred
Close the dialog, return to the Login screen
27) Create a plan with a voice assistant
Table 28 Create a plan with a voice assistant usecase
Name Create a plan with a voice assistant (Alan)
Short description Users use voice to create trip plans
Pre-conditions Signed in successfully
1 User activates Alan by saying “Hey Alan” or clicking on the Alan icon
2 User uses voice to answer Alan's requests, the user's reply to data will be saved on Alan studio
3 After having enough data, Alan sends the data to the application, and the application sends the information to the server to save
4 The system displays a message after successful creation
5 Creation failed The system displays the error message creating the plan
Short description User can view announcements related to them
Pre-conditions Signed in successfully
1 User click icon announcement in bottom tab to view his announcement
2 System shows all announcement by default
3 User can click on an announcement to mark as read
4 User can click on filter “All”, “Read” or “Unread” to filter his announcements
4.1 When user click on “All”, all announcements will be loaded
4.2 When user click on “Read”, all read announcements will be loaded 4.3 When user click on “Unread”, all unread announcements will be loaded
5 There are two types of announcements: added to plan and new request make friend
5.1 Added to plan: when logged user was added to another user’s plan, system will send notification to added account
5.2 New make friend request: if another user want to make friend with you, you will receive a notification, with 2 choices: agree or reject
5.3 Click “Agree”: system will create connect friend Click reject, this request will be canceled
The system displays the error message agree make friend request fail
Short description User can search and add new friend
Pre-conditions Signed in successfully
1 Click icon profile in bottom tab, system navigates to Profile screen
2 User can view his list friend, click “More” to search, and view more friend
3 User can click button “Add” in each friend he wants to make connect
4 User can click on that friend to view him/her profile
5 User can search by input email, system will load all user that has corresponding email
6 When user click “Add” with another user, he/she will receive an announcement to accept or reject the request When adding successfully, system will show an message “Send friend request successfully”
The system displays the error message make friend request fail
2.3.2.2.2 Usecase description for web application
Short description Admin added new location
Pre-conditions Admin has logged into the system
1 Admin to the location management section
2 Click the + button "add location" in the upper right corner, the form to enter new location information will appear
3 Fill in the information about the new location you want to create
5 The system displays a message that successfully added a new location
6 Go to the edit detail page of the newly added location
Input form will be closed
Error messages are displayed below the error field Admin continues to add locations
5 The server responded that adding a new location failed
- Admin selects Summit button to continue other operations
- Admin selects the Cannel button; the input form is closed
Name Location management: Edit information
Short description Admin changes the information of a location
Pre-conditions Admin has logged into the system
1 Admin to the location management section
2 Click the edit button (pen-shaped icon) in the middle of the location display frame, the system will go to the edit detail page of the selected location
4 Click the save button to save the changes
5 Display the message of successful data update
Return to previous location view page
Error messages are displayed below the error field Admin continues to update the location
5 The server responded that adding a new location failed
- Admin selects the Save button to continue the operation
- Admin selects the back button (arrow), returns to the previous page
3) Manage cards; types; districts: Create
Table 33 Manage cards; types; districts: Create usecase
Name Manage cards; types; districts: Create
Short description Admin creates new (tag | category | district)
Pre-conditions Admin has logged into the system
2 Select the respective tabs (tag | category | district)
3 Select the button create tag | category | province Display the new form to fill in the information
4 Fill in the information about the new type you want to create
6 The input form is closed
7 Show new successful message, object's list is reloaded
The form to fill in the information is closed End usecase
5 Server responds adding new object failed
- Admin selects the Save button to continue the operation
- Admin selects the Cancel button, and the form fills in information closes End usecase
4) Manage cards; types; districts: Update
Table 34 Manage cards; types; districts: Update
Name Manage cards; type; districts: Update
Short description Admin edit and update information (card | type | district)
Pre-condition Admin has logged into the system
2 Select the corresponding tab (tag | category | district)
3 At the object you want to change, click the edit button (the pen shape) in the Action column The form to edit the information of the object is displayed
5 The form closes, showing a successful update message The list in the table is updated according to the newly edited data
The form is closed End usecase
5 The server responded that the object editing is not successful
- Admin selects Save button and continues other activities
- Admin selects Cancel button, the form fills in information closes End usecase
Table 35 Manage explore – create usecase
Short description Admin creates new a explorer
Pre-conditions Admin has logged into the system
1 Admin go to Explores section
2 Click on Create explore The form to create a new object is displayed
5 The form is closed Displays a message that the Explore is successful
The form to fill in the information is closed End usecase
5 The server response is that adding a new object failed
- Admin selects the Save button and continues the operation
- Admin selects the Cancel button, and the form closes End usecase
Table 36 Manage explore – update usecase
Short description Admin updated explorer information
Pre-conditions Admin has logged into the system
2 Admin moves the mouse to explore to edit information, and displays the edit button and selects The form containing information about the explorer that needs to be edited is displayed
4 Click the button Submit to save the change
5 The form is closed Display the message of successful Explore update
The form to fill in the information is closed End usecase
5 The server responded that the object editing was not successful
- Admin selects the Save button to continue the operation
- Admin selects Cancel button, form closes End usecase
7) Manage user: Lock/unlock the user's account
Table 37 Lock/unlock the user's account - usecase
Name User management: Lock/unlock user accounts
Short description Admin locks/unlocks user's account
Pre-conditions Admin has logged into the system
2 In the users table In the row of the user to be updated, select the toggle button in the Update column
3 Show user lock/unlock confirmation message
5 Admin selects Cancel button, form closes End usecase
The confirmation form is closed End usecase
The form closes Display an error message End usecase
8) Manage Contributes: Mark viewed, hidden
Table 38 Manage Contributes: Mark viewed, hidden usecase
Name Manage Contributes: mark viewed, hidden
Short description Admin marks viewed/hidden
Pre-conditions Admin has logged into the system
2 In Contributes, select to Contributes (Newest/ Seen), select to button setting (ellipsis ) Select Hidden/mark as unread at Seen, mark as read at Newest)
Display an error message End usecase
9) Manage Contributes: View related information
Table 39 Manage Contributes: View related information usecase
Name Manage Contributes: view related information
Short description Admin review information related to contribute
Pre-conditions Admin has logged into the system
2 At Contributes, select Contributes (Newest/ Seen), click the button setting (ellipsis ) Select Go to this place/ Contirbutor info
- Go to this place: go to the edit detail page of the place to be contributed
- Contribute info: go to the user management page, display in the user panel the information that the user has contributed
3 Server/Web error, redirect failed
Display an error message End usecase
10) Manage Reported review: Mark viewed, hidden
Table 40 Manage reported view: mark viewed, hidden usecase
Name Reported review management: mark viewed, hidden
Short description Admin marks viewed/hidden
Pre-conditions Admin has logged into the system
2 At Reported review, select Reported review at (Newest/ Seen), select button setting (ellipsis ) Select Hide review/ mark as unread at Seen, mark as read at Newest
3 The server responded that editing the new object was not successful
Display an error message End usecase
11) Manage Reported review: View related information
Table 41 Manage reported review: view related information
Name Manage Reported review: view related information
Short description Admin review information related to contribute
Pre-conditions Admin has logged into the system
2 At Contributes, select Contributes at (Newest/ Seen), select button setting (ellipsis ) Select Edit this place/ Reviewer info/ never| show this report
- Edit this place: go to the edit detail page of the place to be contributed
- Reviewer info: go to the user management page, display in the user panel the information that the user has contributed
- Never| show this report: Display successful operation message
3 Server/Web error, redirect failed
Display an error message End usecase
3.2.1 Sequence diagram in mobile application
Figure 11 Sequence diagram of feature Sign up
Figure 12 Sequence diagram of feature Login
Figure 13 Sequence diagram of feature View review
Figure 14 Sequence diagram of feature Search places
Figure 15 Sequence diagram of feature View places
Figure 16 Sequence diagram of feature Search places in map
Figure 17 Sequence diagram of feature Find the route
View detail information about place
Figure 18 Sequence diagram of feature View detail information about place
View created plan
Figure 19 Sequence diagram of feature View created plan
Log out
Figure 20 Sequence diagram of feature Log out
Edit plan
Table 13 Edit plan information usecase
Short description In the plan details screen, select edit to go to the edit screen
1 At the detail plan screen , select Edit
2 The edit screen appears, the information of the current plan is displayed accordingly (same as the new creation screen)
3 Users change the information they want
4 Click “Save”, the system updates the plan information
5 5 After successful update, the application displays a message, then redirects back to the plan details screen
Table 14 Delete trip plan usecase
Short description In the plan details screen, select delete to delete the current plan
Pre-conditions Users who are logged in and have already created a plan
1 At the detail plan screen, click , select Delete
2 The application displays the confirmation message form
3 Select “Delete” to delete plan
4 The system deletes the plan in the storage, the application notices the successful deletion Then navigate to the screen showing the plans
3 Click “Cancel” The confirmation message closes, no other changes
4 Deletion failed Error messages delete failed
14) Create a plan for each day
Table 15 Create a plan for each day usecase
Name Create a plan for each day
Short description In the plan details screen, tap “Plan” to create a schedule for each day
Pre-conditions User logged in and created a plan
1 Click on the date you want to create
2 Click the “Add destination” button, the app goes to the gallery screen
4 The application returns to the old screen, adds the selected location to the existing list, with the default time and cost of 0
5 Select to change the time, change the estimated cost for the destination
7 The locations of the day are saved in the system After successful saving, the screen shows a success message
7 Save failed Save failed message
15) Clear plans for each day
Table 16 Clear plans for each day usecase
Name Clear plans for each day
Short description In the day-by-day schedule screen, the user can choose to delete a location planning all the locations of that day
Pre-conditions User logged in and created a plan
1 Click on the date you want to delete
2 To delete an already scheduled place, tap the trash can icon on the right corner of each location:
3 The application displays a deletion confirmation message
4 The user selects "Delete" the system will delete that place in the interface but not in the database yet
5 After editing is done, the user selects "Save All", the system sends the edited plan to the server and saves it
6 The system notifies the successful save
6 Save failed Save failed message
Table 17 Create a place review usecase
Short description Users type the places they have experienced
Pre-conditions User is logged in
1 Click “Create Review” in the place details page, “Reviews” tab, the application will switch to the review creation page
2 Select rating, time visited, title, detailed review
3 Select images in the device, the selected images are displayed under
4 Click "Save", the application checks the input validity and sends the data to the server, the server saves to the database, returns success
Show error below each error field
5 Save failed Show failed save message
17) Make suggestions for the place
Table 18 Make suggestions for the place usecase
Name Make suggestions for the place
Short description Users contribute opinions about information, images, displayed on the application
Pre-conditions User is logged in
1 User enters the location details page, tab “Overview”
2 Enter your comments in the comments field and click “Submit”
3 The system saves data, displays a successful message when sending is completed
3 Send failed The application shows a failed save message
Table 19 Report rating inappropriate usecase
Short description Users report reviews that use inappropriate words or false images
Pre-conditions The user is logged in and has a review created
1 In the place details screen or review view page, click per review
2 Click “Báo cáo” or “Report”, a dialog box containing the reason for the reported review is displayed
3 User enters reason, then press send
4 The data is sent to the server and saved, after successful saving, the success message is displayed
4 Send failed Application notifying save failed
Table 20 Add places to favorites usecase
Name Add places to favorites
Short description Add any place on the application to the user's favorites list
Pre-conditions User is logged in
2 The system sends to the server and saves the user's favorite list
3 Successful save message, icon turns red
3 Save failed Application notifying save failed
Table 21 Remove places from favorites usecase
Name Remove places from favorites
Short description Remove a place from the user's favorites list
Pre-conditions User is logged in
2 The system sends to the server and removes the place from the user's favorite list
3 Notification of successful shuffling, icon turns white
3 Deletion failed Application notifying delete failed
Table 22 Sign out the app usecase
Name Sign out of the app
Short description User logs out of the app
Pre-conditions User is logged in
1 In the Profile Management screen, click on three dots button, drop down menu showed
2 Click “Sign Out”, display a confirmation message to log out
3 Click 'OK', the system deletes user data and logs out of the app and gives a success message
4 Profile page no longer displays information
3 Sign out failed Logout failed message
Short description The user wants to create a new password
Pre-conditions User is logged in
1 In the Profile Management screen, click on three dots button, drop down menu showed
2 Click "Change password", display the waiting page (loading page)
3 Go to the Create new password page
4 User enters old password, new password, reconfirms new password
6 The system displays a successful password change message
3 Display the message that the account is not using a password to log in
User selects "Close" to close the notification, continue using the application
6 Invalid input Display the message “Confirmation password does not match” in the box to re-enter new password
6 The old password is incorrect
Display the message "Invalid password" in the old password input box
Short description The user forgot his password and wants to create a new password
Pre-conditions User is not logged in
1 At the Login screen, the user selects “Forgot Password”, the system will go to the Forgot Password page
2 At step 1 in the page, the user enters the email related to the account, clicks
4 At step 2 in the page, the user enters the confirmation code sent to the corresponding email, clicks "Confirm"
6 At step 3 in the page, the user enters a new password, confirms the new password, clicks "Confirm"
7 The system displays a successful new password creation message
3 Email is not in the systems; email does not use password to login
Displays a message that the email does not exist, or the email does not use the password to log in
Shows invalid authentication code message
Table 25 Edit personal information usecase
Short description In the Personal Information Management screen (profile) select Edit information
Pre-conditions The user has logged into the system
1 In the Personal Information Management screen, click on three dots button, drop down menu showed, click on “Edit”
2 System navigates to Edit profile screen
3 Users edit information (change name, select image)
4 User clicks “Save”, the button displays the loading icon (spinner )
5 The loading icon is hidden, complete the information update
The loading icon is hidden, showing an error message
Short description In the Personal Information Management screen (profile) select change language
1 In the Personal Information Management screen, click on three dots button, drop down menu showed, click on “Change language”
2 System navigates to Change language screen; list languages were showed
3 User selects the language he wants
4 The system changes the current language accordingly
Table 27 Sign in with Google usecase
Name Sign in with google
Short description At the login screen, the user selects “Sign in with Google”
1 In the login screen, the user selects “Sign in with Google”
2 Display dialog select google account
3 Users click on the account they want to log in to
4 Go to the page where the account is being verified
5 Go to the home page of the app
1 Sync with google account error occurred
Close the dialog, return to the Login screen
27) Create a plan with a voice assistant
Table 28 Create a plan with a voice assistant usecase
Name Create a plan with a voice assistant (Alan)
Short description Users use voice to create trip plans
Pre-conditions Signed in successfully
1 User activates Alan by saying “Hey Alan” or clicking on the Alan icon
2 User uses voice to answer Alan's requests, the user's reply to data will be saved on Alan studio
3 After having enough data, Alan sends the data to the application, and the application sends the information to the server to save
4 The system displays a message after successful creation
5 Creation failed The system displays the error message creating the plan
Short description User can view announcements related to them
Pre-conditions Signed in successfully
1 User click icon announcement in bottom tab to view his announcement
2 System shows all announcement by default
3 User can click on an announcement to mark as read
4 User can click on filter “All”, “Read” or “Unread” to filter his announcements
4.1 When user click on “All”, all announcements will be loaded
4.2 When user click on “Read”, all read announcements will be loaded 4.3 When user click on “Unread”, all unread announcements will be loaded
5 There are two types of announcements: added to plan and new request make friend
5.1 Added to plan: when logged user was added to another user’s plan, system will send notification to added account
5.2 New make friend request: if another user want to make friend with you, you will receive a notification, with 2 choices: agree or reject
5.3 Click “Agree”: system will create connect friend Click reject, this request will be canceled
The system displays the error message agree make friend request fail
Short description User can search and add new friend
Pre-conditions Signed in successfully
1 Click icon profile in bottom tab, system navigates to Profile screen
2 User can view his list friend, click “More” to search, and view more friend
3 User can click button “Add” in each friend he wants to make connect
4 User can click on that friend to view him/her profile
5 User can search by input email, system will load all user that has corresponding email
6 When user click “Add” with another user, he/she will receive an announcement to accept or reject the request When adding successfully, system will show an message “Send friend request successfully”
The system displays the error message make friend request fail
2.3.2.2.2 Usecase description for web application
Short description Admin added new location
Pre-conditions Admin has logged into the system
1 Admin to the location management section
2 Click the + button "add location" in the upper right corner, the form to enter new location information will appear
3 Fill in the information about the new location you want to create
5 The system displays a message that successfully added a new location
6 Go to the edit detail page of the newly added location
Input form will be closed
Error messages are displayed below the error field Admin continues to add locations
5 The server responded that adding a new location failed
- Admin selects Summit button to continue other operations
- Admin selects the Cannel button; the input form is closed
Name Location management: Edit information
Short description Admin changes the information of a location
Pre-conditions Admin has logged into the system
1 Admin to the location management section
2 Click the edit button (pen-shaped icon) in the middle of the location display frame, the system will go to the edit detail page of the selected location
4 Click the save button to save the changes
5 Display the message of successful data update
Return to previous location view page
Error messages are displayed below the error field Admin continues to update the location
5 The server responded that adding a new location failed
- Admin selects the Save button to continue the operation
- Admin selects the back button (arrow), returns to the previous page
3) Manage cards; types; districts: Create
Table 33 Manage cards; types; districts: Create usecase
Name Manage cards; types; districts: Create
Short description Admin creates new (tag | category | district)
Pre-conditions Admin has logged into the system
2 Select the respective tabs (tag | category | district)
3 Select the button create tag | category | province Display the new form to fill in the information
4 Fill in the information about the new type you want to create
6 The input form is closed
7 Show new successful message, object's list is reloaded
The form to fill in the information is closed End usecase
5 Server responds adding new object failed
- Admin selects the Save button to continue the operation
- Admin selects the Cancel button, and the form fills in information closes End usecase
4) Manage cards; types; districts: Update
Table 34 Manage cards; types; districts: Update
Name Manage cards; type; districts: Update
Short description Admin edit and update information (card | type | district)
Pre-condition Admin has logged into the system
2 Select the corresponding tab (tag | category | district)
3 At the object you want to change, click the edit button (the pen shape) in the Action column The form to edit the information of the object is displayed
5 The form closes, showing a successful update message The list in the table is updated according to the newly edited data
The form is closed End usecase
5 The server responded that the object editing is not successful
- Admin selects Save button and continues other activities
- Admin selects Cancel button, the form fills in information closes End usecase
Table 35 Manage explore – create usecase
Short description Admin creates new a explorer
Pre-conditions Admin has logged into the system
1 Admin go to Explores section
2 Click on Create explore The form to create a new object is displayed
5 The form is closed Displays a message that the Explore is successful
The form to fill in the information is closed End usecase
5 The server response is that adding a new object failed
- Admin selects the Save button and continues the operation
- Admin selects the Cancel button, and the form closes End usecase
Table 36 Manage explore – update usecase
Short description Admin updated explorer information
Pre-conditions Admin has logged into the system
2 Admin moves the mouse to explore to edit information, and displays the edit button and selects The form containing information about the explorer that needs to be edited is displayed
4 Click the button Submit to save the change
5 The form is closed Display the message of successful Explore update
The form to fill in the information is closed End usecase
5 The server responded that the object editing was not successful
- Admin selects the Save button to continue the operation
- Admin selects Cancel button, form closes End usecase
7) Manage user: Lock/unlock the user's account
Table 37 Lock/unlock the user's account - usecase
Name User management: Lock/unlock user accounts
Short description Admin locks/unlocks user's account
Pre-conditions Admin has logged into the system
2 In the users table In the row of the user to be updated, select the toggle button in the Update column
3 Show user lock/unlock confirmation message
5 Admin selects Cancel button, form closes End usecase
The confirmation form is closed End usecase
The form closes Display an error message End usecase
8) Manage Contributes: Mark viewed, hidden
Table 38 Manage Contributes: Mark viewed, hidden usecase
Name Manage Contributes: mark viewed, hidden
Short description Admin marks viewed/hidden
Pre-conditions Admin has logged into the system
2 In Contributes, select to Contributes (Newest/ Seen), select to button setting (ellipsis ) Select Hidden/mark as unread at Seen, mark as read at Newest)
Display an error message End usecase
9) Manage Contributes: View related information
Table 39 Manage Contributes: View related information usecase
Name Manage Contributes: view related information
Short description Admin review information related to contribute
Pre-conditions Admin has logged into the system
2 At Contributes, select Contributes (Newest/ Seen), click the button setting (ellipsis ) Select Go to this place/ Contirbutor info
- Go to this place: go to the edit detail page of the place to be contributed
- Contribute info: go to the user management page, display in the user panel the information that the user has contributed
3 Server/Web error, redirect failed
Display an error message End usecase
10) Manage Reported review: Mark viewed, hidden
Table 40 Manage reported view: mark viewed, hidden usecase
Name Reported review management: mark viewed, hidden
Short description Admin marks viewed/hidden
Pre-conditions Admin has logged into the system
2 At Reported review, select Reported review at (Newest/ Seen), select button setting (ellipsis ) Select Hide review/ mark as unread at Seen, mark as read at Newest
3 The server responded that editing the new object was not successful
Display an error message End usecase
11) Manage Reported review: View related information
Table 41 Manage reported review: view related information
Name Manage Reported review: view related information
Short description Admin review information related to contribute
Pre-conditions Admin has logged into the system
2 At Contributes, select Contributes at (Newest/ Seen), select button setting (ellipsis ) Select Edit this place/ Reviewer info/ never| show this report
- Edit this place: go to the edit detail page of the place to be contributed
- Reviewer info: go to the user management page, display in the user panel the information that the user has contributed
- Never| show this report: Display successful operation message
3 Server/Web error, redirect failed
Display an error message End usecase
3.2.1 Sequence diagram in mobile application
Figure 11 Sequence diagram of feature Sign up
Figure 12 Sequence diagram of feature Login
Figure 13 Sequence diagram of feature View review
Figure 14 Sequence diagram of feature Search places
Figure 15 Sequence diagram of feature View places
Figure 16 Sequence diagram of feature Search places in map
Figure 17 Sequence diagram of feature Find the route
8) View detail information about place
Figure 18 Sequence diagram of feature View detail information about place
Figure 19 Sequence diagram of feature View created plan
Figure 20 Sequence diagram of feature Log out
Figure 21 Sequence diagram of feature View detail plan
Figure 22 Sequence diagram of feature Edit plan
Delete plan
Figure 23 Sequence diagram of feature Delete plan
Create detail places for each day in plan
Figure 24 Sequence diagram of feature Create detail places for each day in plan
Delete detail place in each day of plan
Figure 25 Sequence diagram of feature Delete detail place in each day of plan
Create place review
Figure 26 Sequence diagram of feature Create place review
Create contribution for place
Figure 27 Sequence diagram of feature Create contribution for place
Report invalid report
Figure 28 Sequence diagram of feature Report invalid report
Add favorite place
Figure 29 Sequence diagram of feature Add new favorite place
Figure 30 Sequence diagram of feature View all places
Create new plan
Figure 31 Sequence diagram of feature Create new plan
Change password
Figure 31 Sequence diagram of feature Change password
Forget password
Figure 32 Sequence diagram of feature Forgot password
Change language
Short description In the Personal Information Management screen (profile) select change language
1 In the Personal Information Management screen, click on three dots button, drop down menu showed, click on “Change language”
2 System navigates to Change language screen; list languages were showed
3 User selects the language he wants
4 The system changes the current language accordingly
Table 27 Sign in with Google usecase
Name Sign in with google
Short description At the login screen, the user selects “Sign in with Google”
1 In the login screen, the user selects “Sign in with Google”
2 Display dialog select google account
3 Users click on the account they want to log in to
4 Go to the page where the account is being verified
5 Go to the home page of the app
1 Sync with google account error occurred
Close the dialog, return to the Login screen
27) Create a plan with a voice assistant
Table 28 Create a plan with a voice assistant usecase
Name Create a plan with a voice assistant (Alan)
Short description Users use voice to create trip plans
Pre-conditions Signed in successfully
1 User activates Alan by saying “Hey Alan” or clicking on the Alan icon
2 User uses voice to answer Alan's requests, the user's reply to data will be saved on Alan studio
3 After having enough data, Alan sends the data to the application, and the application sends the information to the server to save
4 The system displays a message after successful creation
5 Creation failed The system displays the error message creating the plan
Short description User can view announcements related to them
Pre-conditions Signed in successfully
1 User click icon announcement in bottom tab to view his announcement
2 System shows all announcement by default
3 User can click on an announcement to mark as read
4 User can click on filter “All”, “Read” or “Unread” to filter his announcements
4.1 When user click on “All”, all announcements will be loaded
4.2 When user click on “Read”, all read announcements will be loaded 4.3 When user click on “Unread”, all unread announcements will be loaded
5 There are two types of announcements: added to plan and new request make friend
5.1 Added to plan: when logged user was added to another user’s plan, system will send notification to added account
5.2 New make friend request: if another user want to make friend with you, you will receive a notification, with 2 choices: agree or reject
5.3 Click “Agree”: system will create connect friend Click reject, this request will be canceled
The system displays the error message agree make friend request fail
Short description User can search and add new friend
Pre-conditions Signed in successfully
1 Click icon profile in bottom tab, system navigates to Profile screen
2 User can view his list friend, click “More” to search, and view more friend
3 User can click button “Add” in each friend he wants to make connect
4 User can click on that friend to view him/her profile
5 User can search by input email, system will load all user that has corresponding email
6 When user click “Add” with another user, he/she will receive an announcement to accept or reject the request When adding successfully, system will show an message “Send friend request successfully”
The system displays the error message make friend request fail
2.3.2.2.2 Usecase description for web application
Short description Admin added new location
Pre-conditions Admin has logged into the system
1 Admin to the location management section
2 Click the + button "add location" in the upper right corner, the form to enter new location information will appear
3 Fill in the information about the new location you want to create
5 The system displays a message that successfully added a new location
6 Go to the edit detail page of the newly added location
Input form will be closed
Error messages are displayed below the error field Admin continues to add locations
5 The server responded that adding a new location failed
- Admin selects Summit button to continue other operations
- Admin selects the Cannel button; the input form is closed
Name Location management: Edit information
Short description Admin changes the information of a location
Pre-conditions Admin has logged into the system
1 Admin to the location management section
2 Click the edit button (pen-shaped icon) in the middle of the location display frame, the system will go to the edit detail page of the selected location
4 Click the save button to save the changes
5 Display the message of successful data update
Return to previous location view page
Error messages are displayed below the error field Admin continues to update the location
5 The server responded that adding a new location failed
- Admin selects the Save button to continue the operation
- Admin selects the back button (arrow), returns to the previous page
3) Manage cards; types; districts: Create
Table 33 Manage cards; types; districts: Create usecase
Name Manage cards; types; districts: Create
Short description Admin creates new (tag | category | district)
Pre-conditions Admin has logged into the system
2 Select the respective tabs (tag | category | district)
3 Select the button create tag | category | province Display the new form to fill in the information
4 Fill in the information about the new type you want to create
6 The input form is closed
7 Show new successful message, object's list is reloaded
The form to fill in the information is closed End usecase
5 Server responds adding new object failed
- Admin selects the Save button to continue the operation
- Admin selects the Cancel button, and the form fills in information closes End usecase
4) Manage cards; types; districts: Update
Table 34 Manage cards; types; districts: Update
Name Manage cards; type; districts: Update
Short description Admin edit and update information (card | type | district)
Pre-condition Admin has logged into the system
2 Select the corresponding tab (tag | category | district)
3 At the object you want to change, click the edit button (the pen shape) in the Action column The form to edit the information of the object is displayed
5 The form closes, showing a successful update message The list in the table is updated according to the newly edited data
The form is closed End usecase
5 The server responded that the object editing is not successful
- Admin selects Save button and continues other activities
- Admin selects Cancel button, the form fills in information closes End usecase
Table 35 Manage explore – create usecase
Short description Admin creates new a explorer
Pre-conditions Admin has logged into the system
1 Admin go to Explores section
2 Click on Create explore The form to create a new object is displayed
5 The form is closed Displays a message that the Explore is successful
The form to fill in the information is closed End usecase
5 The server response is that adding a new object failed
- Admin selects the Save button and continues the operation
- Admin selects the Cancel button, and the form closes End usecase
Table 36 Manage explore – update usecase
Short description Admin updated explorer information
Pre-conditions Admin has logged into the system
2 Admin moves the mouse to explore to edit information, and displays the edit button and selects The form containing information about the explorer that needs to be edited is displayed
4 Click the button Submit to save the change
5 The form is closed Display the message of successful Explore update
The form to fill in the information is closed End usecase
5 The server responded that the object editing was not successful
- Admin selects the Save button to continue the operation
- Admin selects Cancel button, form closes End usecase
7) Manage user: Lock/unlock the user's account
Table 37 Lock/unlock the user's account - usecase
Name User management: Lock/unlock user accounts
Short description Admin locks/unlocks user's account
Pre-conditions Admin has logged into the system
2 In the users table In the row of the user to be updated, select the toggle button in the Update column
3 Show user lock/unlock confirmation message
5 Admin selects Cancel button, form closes End usecase
The confirmation form is closed End usecase
The form closes Display an error message End usecase
8) Manage Contributes: Mark viewed, hidden
Table 38 Manage Contributes: Mark viewed, hidden usecase
Name Manage Contributes: mark viewed, hidden
Short description Admin marks viewed/hidden
Pre-conditions Admin has logged into the system
2 In Contributes, select to Contributes (Newest/ Seen), select to button setting (ellipsis ) Select Hidden/mark as unread at Seen, mark as read at Newest)
Display an error message End usecase
9) Manage Contributes: View related information
Table 39 Manage Contributes: View related information usecase
Name Manage Contributes: view related information
Short description Admin review information related to contribute
Pre-conditions Admin has logged into the system
2 At Contributes, select Contributes (Newest/ Seen), click the button setting (ellipsis ) Select Go to this place/ Contirbutor info
- Go to this place: go to the edit detail page of the place to be contributed
- Contribute info: go to the user management page, display in the user panel the information that the user has contributed
3 Server/Web error, redirect failed
Display an error message End usecase
10) Manage Reported review: Mark viewed, hidden
Table 40 Manage reported view: mark viewed, hidden usecase
Name Reported review management: mark viewed, hidden
Short description Admin marks viewed/hidden
Pre-conditions Admin has logged into the system
2 At Reported review, select Reported review at (Newest/ Seen), select button setting (ellipsis ) Select Hide review/ mark as unread at Seen, mark as read at Newest
3 The server responded that editing the new object was not successful
Display an error message End usecase
11) Manage Reported review: View related information
Table 41 Manage reported review: view related information
Name Manage Reported review: view related information
Short description Admin review information related to contribute
Pre-conditions Admin has logged into the system
2 At Contributes, select Contributes at (Newest/ Seen), select button setting (ellipsis ) Select Edit this place/ Reviewer info/ never| show this report
- Edit this place: go to the edit detail page of the place to be contributed
- Reviewer info: go to the user management page, display in the user panel the information that the user has contributed
- Never| show this report: Display successful operation message
3 Server/Web error, redirect failed
Display an error message End usecase
3.2.1 Sequence diagram in mobile application
Figure 11 Sequence diagram of feature Sign up
Figure 12 Sequence diagram of feature Login
Figure 13 Sequence diagram of feature View review
Figure 14 Sequence diagram of feature Search places
Figure 15 Sequence diagram of feature View places
Figure 16 Sequence diagram of feature Search places in map
Figure 17 Sequence diagram of feature Find the route
8) View detail information about place
Figure 18 Sequence diagram of feature View detail information about place
Figure 19 Sequence diagram of feature View created plan
Figure 20 Sequence diagram of feature Log out
Figure 21 Sequence diagram of feature View detail plan
Figure 22 Sequence diagram of feature Edit plan
Figure 23 Sequence diagram of feature Delete plan
14) Create detail places for each day in plan
Figure 24 Sequence diagram of feature Create detail places for each day in plan
15) Delete detail place in each day of plan
Figure 25 Sequence diagram of feature Delete detail place in each day of plan
Figure 26 Sequence diagram of feature Create place review
Figure 27 Sequence diagram of feature Create contribution for place
Figure 28 Sequence diagram of feature Report invalid report
Figure 29 Sequence diagram of feature Add new favorite place
Figure 30 Sequence diagram of feature View all places
Figure 31 Sequence diagram of feature Create new plan
Figure 31 Sequence diagram of feature Change password
Figure 32 Sequence diagram of feature Forgot password
Figure 33 Sequence diagram of feature Edit profile
Figure 34 Sequence diagram of feature Change language
Log in with Google
Figure 35 Sequence diagram of feature Log in with Google
Add friend
Figure 36 Sequence diagram of feature Add friends
View announcement
Figure 37 Sequence diagram of feature View announcement
3.2.1 Sequence diagram of Web app
Manage places: Add new place
Figure 38 Sequence diagram of feature Add new place
Manage places: Edit place
Figure 39 Sequence diagram of feature Edit place
Manage tags, categories, provinces: Create new
Figure 40 Sequence diagram of feature Create new tags, categories, provinces
Manage explores: Create new
Table 35 Manage explore – create usecase
Short description Admin creates new a explorer
Pre-conditions Admin has logged into the system
1 Admin go to Explores section
2 Click on Create explore The form to create a new object is displayed
5 The form is closed Displays a message that the Explore is successful
The form to fill in the information is closed End usecase
5 The server response is that adding a new object failed
- Admin selects the Save button and continues the operation
- Admin selects the Cancel button, and the form closes End usecase
Table 36 Manage explore – update usecase
Short description Admin updated explorer information
Pre-conditions Admin has logged into the system
2 Admin moves the mouse to explore to edit information, and displays the edit button and selects The form containing information about the explorer that needs to be edited is displayed
4 Click the button Submit to save the change
5 The form is closed Display the message of successful Explore update
The form to fill in the information is closed End usecase
5 The server responded that the object editing was not successful
- Admin selects the Save button to continue the operation
- Admin selects Cancel button, form closes End usecase
7) Manage user: Lock/unlock the user's account
Table 37 Lock/unlock the user's account - usecase
Name User management: Lock/unlock user accounts
Short description Admin locks/unlocks user's account
Pre-conditions Admin has logged into the system
2 In the users table In the row of the user to be updated, select the toggle button in the Update column
3 Show user lock/unlock confirmation message
5 Admin selects Cancel button, form closes End usecase
The confirmation form is closed End usecase
The form closes Display an error message End usecase
8) Manage Contributes: Mark viewed, hidden
Table 38 Manage Contributes: Mark viewed, hidden usecase
Name Manage Contributes: mark viewed, hidden
Short description Admin marks viewed/hidden
Pre-conditions Admin has logged into the system
2 In Contributes, select to Contributes (Newest/ Seen), select to button setting (ellipsis ) Select Hidden/mark as unread at Seen, mark as read at Newest)
Display an error message End usecase
9) Manage Contributes: View related information
Table 39 Manage Contributes: View related information usecase
Name Manage Contributes: view related information
Short description Admin review information related to contribute
Pre-conditions Admin has logged into the system
2 At Contributes, select Contributes (Newest/ Seen), click the button setting (ellipsis ) Select Go to this place/ Contirbutor info
- Go to this place: go to the edit detail page of the place to be contributed
- Contribute info: go to the user management page, display in the user panel the information that the user has contributed
3 Server/Web error, redirect failed
Display an error message End usecase
10) Manage Reported review: Mark viewed, hidden
Table 40 Manage reported view: mark viewed, hidden usecase
Name Reported review management: mark viewed, hidden
Short description Admin marks viewed/hidden
Pre-conditions Admin has logged into the system
2 At Reported review, select Reported review at (Newest/ Seen), select button setting (ellipsis ) Select Hide review/ mark as unread at Seen, mark as read at Newest
3 The server responded that editing the new object was not successful
Display an error message End usecase
11) Manage Reported review: View related information
Table 41 Manage reported review: view related information
Name Manage Reported review: view related information
Short description Admin review information related to contribute
Pre-conditions Admin has logged into the system
2 At Contributes, select Contributes at (Newest/ Seen), select button setting (ellipsis ) Select Edit this place/ Reviewer info/ never| show this report
- Edit this place: go to the edit detail page of the place to be contributed
- Reviewer info: go to the user management page, display in the user panel the information that the user has contributed
- Never| show this report: Display successful operation message
3 Server/Web error, redirect failed
Display an error message End usecase
3.2.1 Sequence diagram in mobile application
Figure 11 Sequence diagram of feature Sign up
Figure 12 Sequence diagram of feature Login
Figure 13 Sequence diagram of feature View review
Figure 14 Sequence diagram of feature Search places
Figure 15 Sequence diagram of feature View places
Figure 16 Sequence diagram of feature Search places in map
Figure 17 Sequence diagram of feature Find the route
8) View detail information about place
Figure 18 Sequence diagram of feature View detail information about place
Figure 19 Sequence diagram of feature View created plan
Figure 20 Sequence diagram of feature Log out
Figure 21 Sequence diagram of feature View detail plan
Figure 22 Sequence diagram of feature Edit plan
Figure 23 Sequence diagram of feature Delete plan
14) Create detail places for each day in plan
Figure 24 Sequence diagram of feature Create detail places for each day in plan
15) Delete detail place in each day of plan
Figure 25 Sequence diagram of feature Delete detail place in each day of plan
Figure 26 Sequence diagram of feature Create place review
Figure 27 Sequence diagram of feature Create contribution for place
Figure 28 Sequence diagram of feature Report invalid report
Figure 29 Sequence diagram of feature Add new favorite place
Figure 30 Sequence diagram of feature View all places
Figure 31 Sequence diagram of feature Create new plan
Figure 31 Sequence diagram of feature Change password
Figure 32 Sequence diagram of feature Forgot password
Figure 33 Sequence diagram of feature Edit profile
Figure 34 Sequence diagram of feature Change language
Figure 35 Sequence diagram of feature Log in with Google
Figure 36 Sequence diagram of feature Add friends
Figure 37 Sequence diagram of feature View announcement
3.2.1 Sequence diagram of Web app
1) Manage places: Add new place
Figure 38 Sequence diagram of feature Add new place
Figure 39 Sequence diagram of feature Edit place
3) Manage tags, categories, provinces: Create new
Figure 40 Sequence diagram of feature Create new tags, categories, provinces
4) Manage tags, categories, provinces: Edit
Figure 41 Sequence diagram of feature Manage tags, categories, provinces: Edit
Figure 42 Sequence diagram of feature Create new explore
Manage explores: Edit
Figure 43 Sequence diagram of feature Edit explore.
Manage users: Lock/unlock account
Figure 44 Sequence diagram of feature Lock/unlock account
Manage contributes: View related infomation
Table 39 Manage Contributes: View related information usecase
Name Manage Contributes: view related information
Short description Admin review information related to contribute
Pre-conditions Admin has logged into the system
2 At Contributes, select Contributes (Newest/ Seen), click the button setting (ellipsis ) Select Go to this place/ Contirbutor info
- Go to this place: go to the edit detail page of the place to be contributed
- Contribute info: go to the user management page, display in the user panel the information that the user has contributed
3 Server/Web error, redirect failed
Display an error message End usecase
10) Manage Reported review: Mark viewed, hidden
Table 40 Manage reported view: mark viewed, hidden usecase
Name Reported review management: mark viewed, hidden
Short description Admin marks viewed/hidden
Pre-conditions Admin has logged into the system
2 At Reported review, select Reported review at (Newest/ Seen), select button setting (ellipsis ) Select Hide review/ mark as unread at Seen, mark as read at Newest
3 The server responded that editing the new object was not successful
Display an error message End usecase
11) Manage Reported review: View related information
Table 41 Manage reported review: view related information
Name Manage Reported review: view related information
Short description Admin review information related to contribute
Pre-conditions Admin has logged into the system
2 At Contributes, select Contributes at (Newest/ Seen), select button setting (ellipsis ) Select Edit this place/ Reviewer info/ never| show this report
- Edit this place: go to the edit detail page of the place to be contributed
- Reviewer info: go to the user management page, display in the user panel the information that the user has contributed
- Never| show this report: Display successful operation message
3 Server/Web error, redirect failed
Display an error message End usecase
3.2.1 Sequence diagram in mobile application
Figure 11 Sequence diagram of feature Sign up
Figure 12 Sequence diagram of feature Login
Figure 13 Sequence diagram of feature View review
Figure 14 Sequence diagram of feature Search places
Figure 15 Sequence diagram of feature View places
Figure 16 Sequence diagram of feature Search places in map
Figure 17 Sequence diagram of feature Find the route
8) View detail information about place
Figure 18 Sequence diagram of feature View detail information about place
Figure 19 Sequence diagram of feature View created plan
Figure 20 Sequence diagram of feature Log out
Figure 21 Sequence diagram of feature View detail plan
Figure 22 Sequence diagram of feature Edit plan
Figure 23 Sequence diagram of feature Delete plan
14) Create detail places for each day in plan
Figure 24 Sequence diagram of feature Create detail places for each day in plan
15) Delete detail place in each day of plan
Figure 25 Sequence diagram of feature Delete detail place in each day of plan
Figure 26 Sequence diagram of feature Create place review
Figure 27 Sequence diagram of feature Create contribution for place
Figure 28 Sequence diagram of feature Report invalid report
Figure 29 Sequence diagram of feature Add new favorite place
Figure 30 Sequence diagram of feature View all places
Figure 31 Sequence diagram of feature Create new plan
Figure 31 Sequence diagram of feature Change password
Figure 32 Sequence diagram of feature Forgot password
Figure 33 Sequence diagram of feature Edit profile
Figure 34 Sequence diagram of feature Change language
Figure 35 Sequence diagram of feature Log in with Google
Figure 36 Sequence diagram of feature Add friends
Figure 37 Sequence diagram of feature View announcement
3.2.1 Sequence diagram of Web app
1) Manage places: Add new place
Figure 38 Sequence diagram of feature Add new place
Figure 39 Sequence diagram of feature Edit place
3) Manage tags, categories, provinces: Create new
Figure 40 Sequence diagram of feature Create new tags, categories, provinces
4) Manage tags, categories, provinces: Edit
Figure 41 Sequence diagram of feature Manage tags, categories, provinces: Edit
Figure 42 Sequence diagram of feature Create new explore
Figure 43 Sequence diagram of feature Edit explore
7) Manage users: Lock/unlock account
Figure 44 Sequence diagram of feature Lock/unlock account
8) Manage contributes: Mask as read/Hide
Figure 45 Sequence diagram of feature Mask as read/hide contributes
9) Manage contributes: View related infomation
Figure 46 Sequence diagram of feature View related infomation
Manage Reported review: View related information
Table 41 Manage reported review: view related information
Name Manage Reported review: view related information
Short description Admin review information related to contribute
Pre-conditions Admin has logged into the system
2 At Contributes, select Contributes at (Newest/ Seen), select button setting (ellipsis ) Select Edit this place/ Reviewer info/ never| show this report
- Edit this place: go to the edit detail page of the place to be contributed
- Reviewer info: go to the user management page, display in the user panel the information that the user has contributed
- Never| show this report: Display successful operation message
3 Server/Web error, redirect failed
Display an error message End usecase
3.2.1 Sequence diagram in mobile application
Figure 11 Sequence diagram of feature Sign up
Figure 12 Sequence diagram of feature Login
Figure 13 Sequence diagram of feature View review
Figure 14 Sequence diagram of feature Search places
Figure 15 Sequence diagram of feature View places
Figure 16 Sequence diagram of feature Search places in map
Figure 17 Sequence diagram of feature Find the route
8) View detail information about place
Figure 18 Sequence diagram of feature View detail information about place
Figure 19 Sequence diagram of feature View created plan
Figure 20 Sequence diagram of feature Log out
Figure 21 Sequence diagram of feature View detail plan
Figure 22 Sequence diagram of feature Edit plan
Figure 23 Sequence diagram of feature Delete plan
14) Create detail places for each day in plan
Figure 24 Sequence diagram of feature Create detail places for each day in plan
15) Delete detail place in each day of plan
Figure 25 Sequence diagram of feature Delete detail place in each day of plan
Figure 26 Sequence diagram of feature Create place review
Figure 27 Sequence diagram of feature Create contribution for place
Figure 28 Sequence diagram of feature Report invalid report
Figure 29 Sequence diagram of feature Add new favorite place
Figure 30 Sequence diagram of feature View all places
Figure 31 Sequence diagram of feature Create new plan
Figure 31 Sequence diagram of feature Change password
Figure 32 Sequence diagram of feature Forgot password
Figure 33 Sequence diagram of feature Edit profile
Figure 34 Sequence diagram of feature Change language
Figure 35 Sequence diagram of feature Log in with Google
Figure 36 Sequence diagram of feature Add friends
Figure 37 Sequence diagram of feature View announcement
3.2.1 Sequence diagram of Web app
1) Manage places: Add new place
Figure 38 Sequence diagram of feature Add new place
Figure 39 Sequence diagram of feature Edit place
3) Manage tags, categories, provinces: Create new
Figure 40 Sequence diagram of feature Create new tags, categories, provinces
4) Manage tags, categories, provinces: Edit
Figure 41 Sequence diagram of feature Manage tags, categories, provinces: Edit
Figure 42 Sequence diagram of feature Create new explore
Figure 43 Sequence diagram of feature Edit explore
7) Manage users: Lock/unlock account
Figure 44 Sequence diagram of feature Lock/unlock account
8) Manage contributes: Mask as read/Hide
Figure 45 Sequence diagram of feature Mask as read/hide contributes
9) Manage contributes: View related infomation
Figure 46 Sequence diagram of feature View related infomation
10) Manage reported review: Mask as read/hide
Figure 47 Sequence diagram of feature Mask as read/hide reported review
11) Manage Reported review: View related information
Figure 48 Sequence diagram of feature View related information reported review
Stt Field Data type Description
1 id String Id- primary key
5 favorite List List of saved places to favorites
6 isUser Boolean Define the role of the account
7 createdAt DateTime Account creation time
8 updatedAt DateTime Time of last edit to user's information
List of recently searched places by the user
10 image String User avatar image url
11 friends List Friends list
List List of people who sent friend requests
1 Id String Id – primary key
3 engName String Place name in English
5 longtitude Float Geographic longitude of the place
6 lattitude Float Geographical latitude of the place
8 category ObjectId Classification of places
9 tags List Tags represent features related to the place
10 reviewCount int Number of comments, reviews
11 weight int Weight, used while calculating rating
12 province ObjectId Province to which the location belongs
13 createdAt DateTime Location creation time
14 updatedAt DateTime Last update time
15 status Enum Current status
18 price List Fluctuating price
19 rate Float Default rating (specified by admin)
20 rateVoting Float It’s the current rate of the location
Formula: (weight * rate + rateUser1+ rateUser2+ + rateUsern)/(weight +n)
21 reviewStatus Object Quickly categorize review types
22 popular Boolean Classification of places of interest in the current time (specified by admin)
23 images List List of descriptive photo urls for the location
24 engDescripion String Description in English
25 engAddress String Address in English
26 viewCount int Number of viewers
27 geometry Object Coordinate structure in mongodb
1 id String Id - primary key
2 name String The name of the current category
3 color String The color represents the current type
4 isHidden Boolean Condition is still in use or not
6 updatedAt DateTime Last update time
7 engName String English name of the category
1 id String Id - primary key
3 engName String English name of the city
4 color String The color represents the current province
5 image String The image url represents the current province
6 placeCount Number Number of locations in the province
7 isHidden Boolean Condition is still in use or not
9 updatedAt DateTime Last updated time
1 id String Id - primary key
2 name String The name of the current tag
3 isHidden Boolean Condition is still in use or not
5 engName String English name of tag
1 id String Id - primary key
2 user String Contributing creator information
4 place ObjectId Thông tin địa điểm được đóng gớp
5 isSeen Boolean The status has been viewed by the admin or not
6 isHidden Boolean The status is cleared or not
8 updatedAt DateTime Last update time
1 id String Id - primary key
2 titlte String The title of the discovery section
3 description String Description of the discovery section
4 tags List List of tags in the discovery section
5 banner String Description image url for discovery
6 isHidden Boolean The status is cleared or not
8 updatedAt DateTime Last update time
9 engName String English name of Explorer
10 engTitle String Title in English
1 id String Id - primary key
2 title String Title of the review
3 content String Content of the review
4 rate Number Goodness of the rating
5 likeCount Number Number of people who appreciate this review
6 likeUser List List of highly rated reviews
7 visitedTime DateTime Time the reviewer arrived at this location
8 place String The place is rated
9 user ObjectId The person doing the review
10 images List List of reviewer photos urls included for illustrative purposes
11 isHidden Boolean Condition is still in use or not
13 updatedAt DateTime Last update time
1 id String Id - primary key
2 name String Name of the schedule
3 start DateTime Plan start date
4 end DateTime Plan end date
5 note String Notes for the trip
6 photoUrl String The image url represents the plan
7 isHidden Boolean Whether the plan status has been cleared or not
10 updateAt DateTime Last update time
11 members List List of members participating in the plan
12 status String The status of the plan includes: private, public
2 plan ObjectId The plan to which this section belongs
5 places List
List of places marked by the user
6 note String Additional notes for this section
7 isHidden Boolean The status is cleared or not
9 updatedAt DateTime Last update time
1 id String Id - primary key
2 reason String Reason for the report
3 reviewId String The information of the review is reported
4 isSeen Boolean The status has been viewed or not of the admin
5 isHidden Boolean The status has been cleared or not
6 reporter ObjectId Report creator information
8 UpdatedAt Date Last update time
1 id String Id - primary key
2 receiver String Reason for the report
3 type String The information of the review is reported
4 creator Boolean The status has been viewed or not of the admin
5 title Boolean The status has been cleared or not
6 content ObjectId Report creator information
8 updatedAt Date Last update time
9 unread Boolean Check that announcement has read or not by user
10 image String Link image of announcement
11 plan ObjectId Link plan if this announcement from plan
Figure 50 The first intro screen interface Figure 51 The final intro screen interface
Figure 52 Description of the opening screen interface
1 Button Skip the intro, go to the login screen
2 Button Continue to watch the intro screen
3 Button Redirect screen to login screen
4 Button Skip login, redirect to homepage
Table 54 Description of login screen
3 Button Redirect to forgot password page
5 Button Redirect to registration screen
7 Button Skip login step, redirect to homepage
Figure 54 Registration screen Figure 55 Registration error screen
Table 55 Description of the registration screen interface
1 Button Back to login screen
2 TextInput Enter email Email has never registered any account
3 TextInput Enter the user's full name
5 TextInput Re-enter passwords confirm
6 Button Handling account registration for users
7 Button Show or hide password when user enters
Figure 56 Recovery email input screen Figure 57 Code entry screen
Figure 58 New password input screen Figure 59 Success confirmation screen
Table 56 Description of the forgot password screen
1 Button Return to the login screen
2 TextInput Enter recovery email Email already registered
3 Button Confirm, the system sends the code to email
3 TextInput Enter the system code sent in the email
4 TextInput Enter your new password
5 TextInput Re-enter passwords confirm
6 Button Show or hide password when user enters
7 Button Redirect to login page with new password
Table 57 Description of the navigation bar
1 Button Redirect the screen to the home page
2 Button Redirect the screen to the location search page on the map
3 Button Redirect the screen to the user's list of plans
Where the user is not logged in, an alternate page appears
4 Button Redirect the screen to the user's profile
Figure 61 Home page (1) Figure 62 Home screen (2)
Figure 63 Home page (3) Figure 64 Home page (4)
Table 58 Description of the home screen
1 Button Virtual assistant screen navigation
2 Button Screen redirect to user profile screen
3 TextInput Navigate the screen to search for places on the map
In case the user is not logged in, an alternate page appears
4 Button Redirect the screen to see more places of type “Popular places” for specific users
5 Button Redirects to the detail view of the selected place
6 Button Add places to user's favorites If the user is not logged in, a message asking to log in will appear
7 Button Redirect to the screen of places of the selected type
8 Button Redirect to the screen the locations related to the selected banner
9 Button Redirect to the screen to see more provinces of Vietnam
10 Button Redirects to the page to view locations available in the selected province
Figure 65 Location details screen Figure 66 Location details screen
Figure 67 Location details screen – user- generated contribution
Figure 68 Successful contribution creation screen
Table 59 Description of the location detail screen
1 Button Return to previous screen
2 Button Add places to favorites The function works when the user is logged in
3 Tab Show overview of location information
4 Tab Map display and location locator
5 Tab Show user reviews of the place
6 Button Show more location descriptions
7 TextInput Enter the content to contribute
8 Button Save contribution and send to admin
The function works when the user is logged in
Figure 69 Location tab screen on the map of the place
Table 60 Description of the location tab screen interface
3 Button Show overview of location information
4 Button Route search map navigation
3.4.1.8 Location details screen ( tab views reviews)
Figure 70 Review view screen in details page Figure 71 Screen when there are no reviews yet
Table 61 Description of the review tab screen interface
2 Button Users like to rate The function works when the user is logged in
3 Image Displays the full screen size of the images of the selected review
4 Button Display panel to generate assessment report
The function works when the user is logged in
5 Button Redirects to the page to see all user reviews of the place being viewed
6 Button Redirect to review creation page The function works when the user is logged in
Figure 72 Report creation screen Figure 73 Success message screen
Table 62 Description of the evaluation report creation screen interface
2 Button Send report to admin The function works when the user is logged in
Figure 74 View all reviews screens Figure 75 Screen view image of the review
Table 63 Description of the review screen
1 Button Return to previous screen
2 Button Redirect to review creation screen The function works when the user is logged in
3 View See the pictures of the full screen review
4 Button Close the currently viewed image
Figure 76 Review creation screen (1) Figure 78 Message created successfully
Table 64 Description of the review creation screen
1 Button Return to previous screen
4 TextInput Enter a title for the review
5 TextInput Enter the content of the review
6 Button Select image for review
7 Button Process of creating reviews
C 7 6 M Figure 79 Location search screen - empty result
Figure 80 Location search screen Figure 81 Location search sreen when entering keywords
Table 65 Description of the location search screen
1 Button Return to previous screen
3 View Searchable information, click to redirect to details page
3.4.1.13 Plan view screen when not logged in
Figure 82 Plan view screen when not logged in
Table 66 Description of the plan screen when not logged in
1 Button Go to the plan creation screen The function works when the user is logged in
2 Button Go to login screen
Figure 83 Screen of created plans
Table 67 Description of plan view screen
1-2-3 Button Show the plans corresponding to the time
4 View Redirect to plan details page
Figure 84 Plan overview screen Figure 85 Plan route screen on map
Table 68 Description of the plan overview screen
1 Button Return to previous screen
2 Button Redirect to edit screen
3 Button Show plan deletion message
5 Tab Show the route and location of the planned places on the map
6 Text Redirect to the plan edit screen
7 Button Redirects to the day-by-day planner screen
8 Button Redirect to gallery screen
9 Button Redirect to anniversary screen Developing
11 View Redirect to location details screen
13 View Redirect to location details screen
Table 69 Description of plan creation screen
1 Button Select the image in the device
4 TimePicker Choose a start and end time
Figure 84 Day planner screen Figure 87 Button add, delete, save
Table 70 Description of the day plan screen
1 Button Show plan for selected day
2 Button Show notes, can edit notes
3 TimePicker Choose your destination time
4 Button Remove the place from the schedule
5 TextInput Enter the estimated cost for the destination
6 Button Display TextInput input cost
7 View Go to the location details screen
8 Button Go to the location selection screen
Table 71 Description of the screen of the processing buttons
1 Button Go to the add location screen
3 Button Clear the currently displayed date schedule
4 Button Close display of processing buttons
Table 72 Screen description of the collection of favorite places
1 Button Add a place to the plan
2 TextInput Navigate to the location search screen
3.4.1.18 Location search screen on map
Figure 89 Map screen Figure 90 Location information screen
Table 73 Description of location search screen on map
1 TextInput Redirect to the search keyword input screen
2 Button Display coordinates of places of the selected category
3 Button See the distance between 2 points
4 Button Determine the user's coordinates
5 Button Redirect to start and destination input screen for route search
6 Button Close the info panel
7 Button Navigate to the route finder screen, enter the starting location
8 Button Redirect to location details screen
Figure 91 Location selection screen Figure 92 Location selection screen on the map
Table 74 Description of the location selection screen on the map
2 Button Switch to the location selection screen on the map
3 Button Confirm the place to look
1 Button Confirm the selected point and redirect to the search screen
3 Button Return to previous screen
3.4.1.19 Route screen on the map
Figure 93 Screen of the route between 2 locations
Table 75 Description of the route screen on the map
1 Button Start guiding the way
2 Button Cancel the route and 2 selected locations
3 Button Close the info panel
3.4.1.19 User profile screen when not logged in
Figure 94 User profile screen when not logged in
Table 76 Description of user profile screen when not logged in
1 Button Navigate through the language change screen
2 Button Redirect through login screen
Figure 95 User profile screen Figure 96 Personal information change screen
Table 77 Description of the user profile screen
1 Button Redirect to information change screen
2 Button Switch to the list of favorite places screen
3 Button Go to the password change screen
4 Button Switch to language change screen
Table 78 Description of the user information change screen
1 Button Select the image in the device
Table 79 Description of the language switching screen
1 Button Select the language you want to switch
2 Button Return to previous screen
Table 80 Description of the password change screen
2 TextInput Enter your new password
5 Button Return to previous screen
Table 81 Description of the notification screen
Table 82 Description of Friend search screen
Table 83 Description of the admin login page screen
4 Button Sign in with google
Table 84 Description of home page
2 Button Click to open the statistics page
3 Button Click to open user management page
4 Button Click to open the site management page
5 Button Click to open the site's properties settings page
6 Button Click to open the management page of banners displayed on the mobile app
Figure 104 Home page – View user reports
Table 85 Description of the statistics page
1 Button Close/open menu of process buttons
2 Button Tap to hide reivew from showing
3 Button Mark the admin who has read these articles
4 Button Hide this report from admin
5 Button Redirect to location edit page
6 Button Redirects to the reported review creator page
Figure 106 User active confirmation screen
Table 86 Description of the user management page
3 Button Cancel block/active user
4 Button Confirm user block/active
Figure 107 Settings management page– province manager
Table 87 Description of the provincial management and setting page
1 Tab Show provincial management tab
2 Tab Show tag management tab
3 Tab Display the location type management tab
4 Button Opens the create new province dialog box
5 Selected Filter provinces by attribute
6 Button Open the edit province dialog box
7 Input Enter the search keyword for the province name
Table 88 Description of the provincial information editing page
1 Input Enter the name of the province
2 Color picker Click to choose a representative color
3 Input Enter image url to display on app
4 Switch Enable/disable the province's visibility to users
6 Button Close dialog box, do not save changes
Figure 110 Tag creation dialog screen
Table 89 Description of the tag management page
1 Button Open tag creation dialog
2 Selected Filter tags by attribute
3 Input Enter keywords to search for tags by name
4 Button Open tag edit dialog
6 Switch Enable/disable tag display status to users
8 Button Close dialog, do not save information
9 Input Tag name in English
Figure 111 Location type management screen
Figure 112 Place type creation screen
Table 90 Description of the site type management page
1 Button Open the create a place type dialog
3 Input Enter keyword to search type of place by name
4 Button Open the place type edit dialog
5 Input Enter a place type name
7 Switch Enable/disable location type display status to users
8 Button Save location type information
9 Button Close dialog, do not save information
10 Input Name of category in English
Table 91 Description of banner management page
1 Button Location management interfaceClose banner creation dialog
6 Switch Enable/disable banner display status to users
8 Button Close dialog, do not save information
9 Button Open banner edit dialog
10 Button Open the banner creation dialog
Table 92 Description of the site management page
1 Selected Filter locations by province
2 Selected Filter scores by type
3 Input Search places by name
4 Button Open the create place dialog
5 Button Go to location edit page