Skip to content

Requirements

Ian Urton edited this page Oct 14, 2021 · 36 revisions

Feature 1: Map

Feature 1.1: The system shall import map layer from google maps.

Feature 1.2: The system shall be able to add markers.

Feature 1.3: The system shall be able to utilize location tracking.

Feature 1.4: The user shall be able to navigate to markers.

Feature 1.5: The user shall be able to find markers in a specified polygon.

Feature 1.6: The user shall be able to find markers in a specified radius.

Feature 1.7: The user shall be able to find markers in an enclosed area specified by the user.

Feature 1.8: The system shall fly to user's current location upon opening the map.

  • Feature 1.8.1: The system shall be able to display markers in flown location.
    • Feature 1.8.1.1: The user shall be able to touch a marker to get a popup of the marker.
      • Feature 1.8.1.1.1: The system shall display the title of the marker in the popup.
      • Feature 1.8.1.1.2: The system shall display the county of the marker in the popup.
      • Feature 1.8.1.1.3: The system shall display the distance of the marker in the popup.
      • Feature 1.8.1.1.4: The system shall display the favorites icon (heart) of the marker in the popup.
      • Feature 1.8.1.1.5: The user shall be able to touch a marker's popup to go to marker's details page.
  • Feature 1.8.2: The system shall be able to display user's current location with a person icon.

The Home page in Map View

image

Feature 2: Marker List

Feature 2.1: The system shall be able to add markers

Feature 2.2: The user shall be able to filter markers

  • Feature 2.2.1: The user shall be able to filter by Nearby
    • Feature 2.2.1.1: The system shall be able to get the users current location
    • Feature 2.2.1.2: The system shall be able to find the distance from current location to markers.
    • Feature 2.2.1.3: The user shall be able to specify the range of markers they consider ‘nearby’
  • Feature 2.2.2: The user shall be able to filter Wishlist
    • Feature 2.2.2.1: The system shall be able to query Firebase to get a users wishlist
  • Feature 2.2.3: The user shall be able to filter by their Markers
    • Feature 2.2.3.1: The system shall be able to query Firebase to get a users visited markers.
  • Feature 2.2.4: The user shall be able to filter by County
    • Feature 2.2.4.1: The system shall display a drop menu of all the counties
      • Feature 2.2.4.1.1: The user shall be able to select a county from the drop menu
    • Feature 2.2.4.2: The system shall be able to query Firebase to get all markers from a specific county
    • Feature 2.2.4.3: The system shall indicate if the marker is visited or not

Feature 2.3: The user shall be able to search for keywords

  • Feature 2.3.1: The system shall be able to recommend predicted searches before completion
  • Feature 2.3.2: The system shall be able to look up keywords in descriptions
  • Feature 2.3.3: The system shall be able to look up keywords in name
  • Feature 2.3.4: The system shall be able to look up by location

Feature 2.4: The user shall be able to click on a marker to enter an expanded view

  • Feature 2.4.1: The user shall be able to see the marker on the map
  • Feature 2.4.2: The system shall display the distance from the user to the marker
  • Feature 2.4.3: The system shall display the marker description to the user
  • Feature 2.4.4: The user shall be able to add a marker to their wishlist (heart icon)
  • Feature 2.4.5: The user shall be able to click “Take me There” to route to the marker
    • Feature 2.4.5.1: The system shall redirect to PLAN ROUTE page

Feature 2.5: The user shall be able to click back into map view

The normal Marker List view

image

The expanded Marker List view

image

Feature 3: Firebase Data Storage Backend

Feature 3.1: The system shall authenticate user with login information.

  • Feature 3.1.1: The user shall be able to authenticate with a username.
  • Feature 3.1.2: The user shall be able to authenticate with a password.

Feature 3.2: The System shall fetch user data from Firebase.

  • Feature 3.2.1: The system shall fetch user name.
  • Feature 3.2.2: The system shall fetch user id.
  • Feature 3.2.3: The system shall fetch user biography.
  • Feature 3.2.4: The system shall fetch user friends.
  • Feature 3.2.5: The system shall fetch user favorite marker list.
  • Feature 3.2.6: The system shall fetch user marker wish list.

Feature 3.3: The system shall track new user data.

  • Feature 3.3.1: The system shall create a unique user id.
  • Feature 3.3.2: The system shall store user specified username.
  • Feature 3.3.3: The system shall store user specified biography.
  • Feature 3.3.4: The system shall create a dummy marker wishlist.
  • Feature 3.3.5: The system shall create a dummy markers visited list.
  • Feature 3.3.6: The system shall create a dummy friends list.

Feature 3.4: The system shall track existing user data.

  • Feature 3.4.1: The system shall store unique user id.
  • Feature 3.4.2: The system shall store user specified username.
  • Feature 3.4.3: The system shall store user specified biography.
  • Feature 3.4.4: The system shall store marker wishlist.
  • Feature 3.4.5: The system shall store markers visited list.
  • Feature 3.4.6: The system shall store friends list.

Feature 3.5: The system will store marker data.

  • Feature 3.5.1: The system shall store the marker name.
  • Feature 3.5.2: The system shall store the marker relative location.
  • Feature 3.5.3: The system shall store the marker description.
  • Feature 3.5.4: The system shall store the marker GPS coordinates.
  • Feature 3.4.5: The system shall store the marker county.

Feature 4: Pages

Feature 4.1: The System shall create a Menu

  • Feature 4.1.1: User can click on Account Profile Picture to go to Account page
  • Feature 4.1.2: User can click on HOME to go to home page
  • Feature 4.1.3: User can click on MY MARKERS to go to MY MARKERS page
    • Feature 4.1.3.1: System shall display all counties in SC
    • Feature 4.1.3.2: System shall display relevant icons above each county
    • Feature 4.1.3.3: System shall display the ratio of visited markers to all markers within each county.
    • Feature 4.1.3.4: System shall redirect to MARKER LIST when a county is clicked
    • Feature 4.1.3.5: System shall query the clicked county from FireBase
  • Feature 4.1.4: User can click on PLAN ROUTE to go to PLAN ROUTE page
    • Feature 4.1.4.1: System shall detect users current location
    • Feature 4.1.4.2: User shall be able to use current location as starting point
    • Feature 4.1.4.3: User shall be able to specify marker as endpoint
    • Feature 4.1.4.4: System shall be able to find shortest path from start to endpoint
      • Feature 4.1.4.4.1: System shall be able to find shortest walking path
      • Feature 4.1.4.4.2: System shall be able to find shortest driving path
      • Feature 4.1.4.4.3: System shall be able to find shortest public transportation path
    • Feature 4.1.4.5: User shall be able to add custom routes.
  • Feature 4.1.5: User can click on WISHLIST to go to WISHLIST page
    • Feature 4.1.5.1: System shall redirect user to MARKER LIST
    • Feature 4.1.5.2: System shall query the users wishlist from FireBase
  • Feature 4.1.6: User can click on FRIENDS to go to FRIENDS page
  • Feature 4.1.7: User can click on ACCOUNT to go to ACCOUNT page
  • Feature 4.1.8: User can click on HELP to pull a brief tutorial on how to use the app.
  • Feature 4.1.9: User can click outside of the menu to exit the menu bar.

Feature 4.2: The system shall display the user mini menu.

  • Feature 4.2.1: The system shall display the username of the user.
  • Feature 4.2.2: The system shall display the markers visited by the user from the total.
  • Feature 4.2.3: The system shall display user profile image of the user.
    • Feature 4.2.3.1: The user shall be able to click on the profile image to go to the Account page.

Feature 4.3: The user goes to the map by clicking the right side of the screen.

Menu View accessible on any page from bottom navigation

image

My Markers Page accessible from MENU

image

Plan Route Page accessible from MENU and any instance of “Take Me There Button”

image

Friends View accessible from MENU

image

Feature 5: User Profile

Feature 5.1: The system shall display the user profile image.

  • Feature 5.1.1: The user shall change their profile image by clicking the profile image to display a popup.
    • Feature 5.1.1.1: The user shall be able to pick to take a new image.
    • Feature 5.1.1.2: The user shall be able to choose an existing image.
  • Feature 5.1.2: The system shall access the user’s camera to take a new profile image.
  • Feature 5.1.3: The system shall access the user’s images to pick a new profile image

Feature 5.2: The user shall be able to access friends list by clicking the friends row.

Feature 5.3: The user shall be able to access favorite marker’s list by clicking the markers row.

Feature 5.4: The user shall be able to create a biography

  • Feature 5.4.1: The system shall check that the users biography is less than 500 words

Feature 5.5 : The system shall send notifications to the user

  • Feature 5.5.1 The system shall notify a user when they have a friend request
  • Feature 5.5.2 The system shall notify a user when they reach a new marker.

Feature 5.6: The user shall search for friends in the search bar.

Profile Page

image

Feature 6: Tutorial

Feature 6.1: The user shall be able to access a tutorial upon downloading the app.

Feature 6.2: The user shall be able to access a tutorial on the MENU page.

Feature 6.3: The user shall be able to begin the animation of the tutorial.

  • Feature 6.3.1: The system shall give a description of each button.
  • Feature 6.3.2: The system shall give a description of each page.
  • Feature 6.3.3: The system will ask the user to interact with the buttons.
  • Feature 6.3.4: The user can skip the interaction with a skip button.
  • Feature 6.3.5: The user shall be able to skip the whole tutorial at any point in the tutorial.

Clone this wiki locally