Yulu Pan, Kevin Dai, Srikar Pasumarthy, Elijah Bassett, John Schachte
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.