Repository navigation
Feature Breakdowns
Robert L edited this page Sep 23, 2024
·
13 revisions
Feature
├── Name
├── Description
└── User Stories
└── Acceptance Criteria[Core Feature #1] Ability to Share the Current Path Taken (functional feature)
- Tracking of position, with the ability to share this track with other users and RCs.
- As a racer, I want to track my trip so that I can later save, view, and share my track.
- Acceptance criteria:
- As a user I open the app and am immediately able to start tracking a course.
- If I have joined a race that starts close to the time that I start tracking the app will prompt if this track is a part of that race.
- While tracking the app will show how long I have been tracking, how far I have gone, and my current speed.
- While tracking the app will have the option to stop tracking.
- Once a track has been stopped if it was a part of a race, the app will attempt to upload that track to the server. If the server is not available, it will upload during the next connection.
- I should be able to attach my name, position, as well as boat name to an uploaded track
- Acceptance criteria:
[Core Feature #2] Server can Handle Moderate Loads (non-functional feature)
- Since racers will be able to create multiple tracks while offline, the cloud server needs to handle sudden spikes of user tracks being sent, along with sending racers track updates
- Cloud server handles a minimum of 7 tracks uploaded concurrently, by 150 users within 1 minute.
[Core Feature #3] Ability to Manage Race Course (functional feature)
- Creation of race courses and attached race events.
- As RC I want to set up races that define a course so that Racers can join and all the joined Racers tracks are visible in one place. Each course will have a start and finish line, as well as waypoints that must be rounded in specific directions and gates that must be passed. Each race course should have a shortest distance that is either measurable or automatically calculated. Several race courses can be grouped into a “Regatta” event.
-
Acceptance criteria:
- Racecourse creation should be available through the website.
- Race courses are a set of gates and turning marks that create a course, these can be placed on a map.
- Any race course will have a minimum of two gates, defining a start line and finish line
- Marks are one of two types, starboard or port roundings displayed in the corresponding green and red.
- Each race course will also have a recommended path that also defines the course length. The recommended path will be a series of waypoints.
- Once a race course has been created it should be able to be saved for later editing, or duplication
- Saved race courses should be publishable for viewing and joining by Racers
- Race courses can be selected and grouped into a regatta event which is publishable all at once.
-
Acceptance criteria:
- As RC I want to be able to add notes to race events. Each course will have a written set of instructions that go with the mapped course, this set of instructions is visible to racers. The instructions could contain information other than just course details and could include PDF files.
-
Acceptance Criteria:
- Within a mapped race there should be a section to add text notes and attach pdf files.
- Notes are visible to racers alongside the mapped course.
-
Acceptance Criteria:
[Core Feature #4] Offline Capabilities (functional feature)
- The ability to create a local instance of the program so that full functionality is available without a greater internet connection.
- As RC I want to be able to start an instance of the backend so that if there is no greater internet connection racers can locally share their tracks. Later tracks can be uploaded for wider viewing either by RC or each Racer individually.
-
Acceptance Criteria:
- All regular functionality should be available on a local network without any greater internet connection
-
Acceptance Criteria:
[Core Feature #5] Ability to See Race Results (functional feature)
- Race result calculations are available within the application
- As RC I want the application to automatically calculate race results. The program should use the start time, along with the tracked time for a finish line to calculate the corrected time for each boat. The start and end times should both be editable by RC, as well as the handicap used to calculate the time for each boat.
-
Acceptance Criteria:
- Once tracks are available for a race event the system should automatically calculate race results using the information available to the app.
- Start time is a variable that applies to all boats and is editable by RC
- Finish time is unique to each boat and is editable by RC
-
Acceptance Criteria:
- The application will calculate how each boat performed on different sections of the race course and provide a visual display of those comparisons
- As a racer, I would like to get information on where I gained upon my competition, and where I lost.
- As RC I would like to see how each boat's performance compares so that I can make more accurate rating adjustments.
-
Acceptance Criteria
- The application should break the race course into sections of consistent point of sail
- for each section, a localized rating calculation should be made
- On the screen that allows viewing of all racer tracks, each track should be toggleable to view its performance
- If a track is toggled on, sections where it was faster than its average should be green, sections that were "close" to average should be yellow, and sections that it was slow should be red
-
Acceptance Criteria
- Racer locations connected to a race event should be uploaded and visible in real-time, with live update race position available to the racers.
- As a racer, I want to see my competitors' current path on a live map, so that I can plan my trajectory accordingly.
-
Acceptance Criteria:
- (If an internet connection is available while tracking GPS) The mobile app should upload GPS position every 2 meters.
- For each racer during a race, pull all other racers' current location data from the server every 1 second.
- Racers' current locations should be visible on the race map
- The tracking page should include your current placement in the race and the difference between you, the boat behind and the boat in front.
-
Acceptance Criteria:
- Sailing Race Analyzer
- Features
- Web App
- Mobile App
- Repo
- Issue Tracking
- Branching
- Dev Tools & Programs
- Architecture
- Database Structure
- Network
- Sequence Diagrams
- Backend
- REACT
- Flutter