D1: Specifications

User Stories

  • As a user I want to view a list of tees so that I can select the map I want to use
  • As a user I want to view map of a selected tee so that I can see the terrain
  • As a user I want an interactive map that so that I can pin where my ball landed and see how far it is from the green
  • As a user I want to view a list of drills (description + list of steps) so that I can select the one i wish to do
  • As a user I want to view a specific drill so that I can see the steps that I need to follow
  • As a user I want to be able to log my performance (score + notes) for a specific drill so that my performance is viewable in the future
  • As a user I want to be able to view my past performance for a specific drill so that I can evaluate my current performance
  • As a user I want to be able to filter drills based on type (short swing, full swing, putt) so that I can find a drill I want more quickly. 
  • As an admin I want to be able to view the performance (score  + notes) of users on the app so that I can coach them better
  • As an admin I want to be able to filter drill performance records by various groups including name and drill name so that I can better understand performance
  • As an admin I want to be able to manage drills (add, delete, edit) so that users remain engaged
  • As an admin I want to be able to send push notifications to the app users so that I can notify them of important information
  • As a user I want major leaderboard updates sent as a push notification to my phone so that I remain engaged in the platform.
  • As a user I want to be able to filter the leaderboard standings by gender and user status (team member, alumni, guest)

Requirements

Functional

  • Definitive:
    • If the user selects a tee, then they should see the distance to the green for that hole on a 2D terrain map.
    • If the user pins where their ball lands, then the application will show the distance to the green.
    • If the user wants to practice drills, then they should be able to choose from a select number of categories such as putting, chipping, driving, etc.
    • If the user selects a particular drill, then they should see the complete history of how they performed.
  • Perhaps:
    • If a user on the golf team scores a low-score, then everyone on the golf team should be notified of this score.
    • If a user wants to use the app, then there needs to be some authorization to determine whether they are on the golf team, an alumni, or a prospective member of the team.
    • If Admin visits their drill portal, then they should see a key metrics on users drill performance.
  • Improbable: 
    • If a new drill needs to be added, then there should be an admin login into the app to do so via a GUI.

Non-Functional

  • Definitive:
    • Application must be accessible to iOS users.
    • 2D terrain map should use the drone data collected by stakeholder.
    • Create an app that is available to download from the iOS app store.
    • Develop frontend user interface using Swift 
  • Perhaps:
    • Application must have low latency.
    • Application is maintainable with a low technical threshold.
    • Application must be built to be secure with an authentication system.
    • Make a React website for the admin user to authorize new users, add drills, etc.
  • Improbable: 
    • Application must be accessible to Android users.
    • Create an android clone of the IOS app for non-apple users.