Skip to content

Requirements

Halil Karabacak edited this page Mar 16, 2024 · 20 revisions

1. Functional Requirements

1.1 User Requirements

1.1.1 User Types

1.1.1.1 Guests
  • 1.1.1.1.1 Guests should be able to view only a part of the routes shared by others.
  • 1.1.1.1.2 Guests shouldn’t be able to see routes, re-routes, or comments made by other people.
  • 1.1.1.1.3 Guests shall not be able to share their routes.
  • 1.1.1.1.4 Guests should be able to sign up if they want to.
  • 1.1.1.1.5 Guests shall not be able to see all details of a route.
1.1.1.2 Basic Users
  • 1.1.1.2.1 Basic users shall be able to perform the same actions as guests.
  • 1.1.1.2.2 Basic users shall be able to share their routes, make comments to the people they are allowed to follow.
  • 1.1.1.2.3 Basic users should be able to get mails about important actions on their accounts and recommended routes.
  • 1.1.1.2.4 Basic users should be able to route, re-route other users’ routes.
1.1.1.3 Contributors
  • 1.1.1.3.1 Contributors shall be able to perform the same actions as basic users.
  • 1.1.1.3.2 Contributors should be able to take some privileged actions such as correction on information given in a route.
  • 1.1.1.3.3 Contributors should be able to edit node information.
1.1.1.4. Admins
  • 1.1.1.4.1 Admins shall be able to perform the same actions as contributors.
  • 1.1.1.4.2 Admins shall be able to edit, remove, delete, lock routes.
  • 1.1.1.4.3 Admins shall be able to remove re-routes, comments, and users if unusual activity is performed by the user.
  • 1.1.1.4.4 Admins shall be able to choose which users can post.

1.1.2 User Interactions

1.1.2.1 With Other Users
  • 1.1.2.1.1 All users shall be able to block a specific user they wanted.
  • 1.1.2.1.2 All users except guests shall be able to report abusing actions of other users.
  • 1.1.2.1.3 All users should be able to set who can visit their pages.
1.1.2.2 With the App
  • 1.1.2.2.1 All users shall be able to search routes that include a specific node.
  • 1.1.2.2.2 All routes should be sorted with respect to several different criteria such as most routed, most re-routed, longest route, etc.

1.1.3 Sign Up & Login

  • 1.1.3.1 Users should provide an appropriate and unique username along with a valid e-mail address, and passwords to sign up.
  • 1.1.3.2 Users should also be able to use their mobile number.
  • 1.1.3.3 Given e-mail address shall be confirmed.
  • 1.1.3.4 User password should be strong, meeting specific criteria.
  • 1.1.3.5 Users can login by inputting their e-mail or phone number with their password, or a direct link to their mail addresses.
  • 1.1.3.6 Users should be able to sign up to the system with their existing other accounts such as Instagram, Meta, or X.

1.1.4 Profile Preferences

  • 1.1.4.1 All users shall be able to update their passwords with a confirmation link to their mail addresses sent.
  • 1.1.4.2 Basic users, admins, and contributors should be able to control who can view their pages.
  • 1.1.4.3 Guests should be able to see unrestricted accounts’ posts.
  • 1.1.4.4 All users except guests shall have their profile pages.
  • 1.1.4.5 All users except guests shall be able to edit their profile information.
  • 1.1.4.6 All users except guests shall be able to edit their profile information such as profile photo, hiding their followers & followings.
  • 1.1.4.7 Users should be able to delete their accounts.

Routes

POI Configuration

  • Each POI must have its own page; this page includes a general information section about the POI, comments of users about this POI, etc. (tentative)
  • The POI page shall be able to accommodate text, image and video files.
  • The user shall be able to create, modify or delete pages for a POI.
  • In accordance with the above requirement, there should be a user POI and a privileged POI such that the privileged POI page can only be modified by admins.
  • POI pages should be able to be linked/grouped together.

Route Configuration

  • The user shall be able to create routes.
  • The user shall be able to modify routes created by themselves.
    • The user shall be able to add/remove POI.
    • The user shall be able to rename the route.
    • The user shall be able to edit the description of the route.
  • The user shall be able to delete routes.
  • The user shall be able to import/export routes.
    • There should be multiple import/export formats such as links, file formats, etc.
  • The user should be able to copy routes of other users
  • The user should have the copy as their own route.
  • As an extension, the user shall be able to share routes online.
  • Users should be able to create route lists/collections. These collections should have their own pages and provide information about the set of POI whenever possible.
  • User shall be able to see their current route (the route they are on at the moment) or a planned route (a route they intend to take) along with their location (so that the user shall see their location relative to the planned route)
  • Routes shall span one or more days.

Route Options

  • Each route shall have a name and an optional description.
  • Users shall be able to add text or image to the description of a route. Users should be able to add video to the description of a route.
  • A route shall have tags for classification.
  • Tags should be defined by users; yet, similar tags should be grouped together to provide ease of use.
  • Routes should have an overview page created by the user. This page should accommodate all features described above in this section.

Online Services

Map

  • The user shall see the route on a map.
  • Users shall see directions to the next POI on a route.
  • Directions provided to the user shall be flexible; that is, directions to the next POI should be updated in real-time whenever the user strays from the provided path.
  • The map shall be provided within the app. Google Maps or OSM APIs may be used.

Offline Services

  • The users shall be able to save routes for offline use (exporting?) and view them without any internet connections.
  • While saving offline routes, system shall keep track of only POI included within the route rather than an area (as would be on map download).
  • Direction service of an offline route need not be flexible.
  • If possible, system should still provide location services while offline.
  • The users shall be able to download maps rather than the route while trying to download a route.
  • The system shall only allow map downloads along with a route download, as standalone map downloads are already provided by Google Maps or OSM and may create overhead for the system.
  • Map downloaded shall mimic Google Maps or OSM downloads with some differences:
    • Area shall be large enough to cover the route but not too large.
    • Map should contain all POI in the area and nothing other than the POI in the area (not final).

🏡 Home

🧑‍💻 Team Members
📑 Templates
📍 Project
📆 Planning
📓 Meeting Notes
📓 Lab Reports
📑 Lab Documents
CMPE 352
📍 Project
💎 Customer Requirements Milestone
👑 Design and Implementation
Testing 🔬
📓 Meeting Notes

📆 Planning

📑 Templates

Clone this wiki locally