Acceptance criteria:
![]() |
The application shall be able to import files containing GPS track
data as represented in GPX format only, where latitude and longitude
are expressed in DEGREES, elevation is
expressed in METERS and
time is in UTF format. Each file
contains a single track (route, or path), but each track may consist
of an arbitrary number of track segments (including 0). GPS data
files may end with either .gpx or .txt extensions.
|
![]() |
The system shall display an acknowledgment upon successful load,
indicating the NAME of the track loaded and the number of points
loaded.
|
![]() |
The name of the track must be extracted from the <name> element
within the GPX file; it is not the filename.
|
![]() |
Files not containing GPX format data, including binary files, text
files, corrupted GPX files, or other GPS formats (such as KML, TCX
etc) are not to be supported, and must cause the system to generate
an error message to the user indicating an unsupported file format.
|
![]() |
The following conditions in GPX files shall be considered as errors,
and cause the system to display a detailed error message (including
line and column number where the error was encountered):
|
Acceptance criteria:
![]() |
If multiple tracks are loaded, the user shall be able to select
which track whose metrics are to be displayed.
|
![]() |
The metrics shall be displayed in the main screen.
|
![]() |
The metrics shall include:
|
![]() |
If a track contains less than two points, a message indicating that
distance and speed cannot be computed shall be displayed instead of
actual distance and speed values. (gpsTest1.txt)
|
Acceptance criteria:
![]() |
If multiple tracks are loaded, the user shall be able to select the
tracks whose plots are to be displayed.
|
![]() |
A track is displayed as a twodimensional cartesian plot, with the
first point in the first track at the origin (0,0) of the plot.
(Other tracks will likely have different origin point). Positive
Y-axis corresponds to North; positive X-axis corresponds to East.
|
![]() |
The points in the GPX file representing latitude and longitude must
be converted and displayed in Cartesian units, rather than in polar
units of degrees. (Note that this involves a transformation from
polar to Cartesian coordinates).
|
![]() |
The transformation from latitude coordinates to Cartesian
coordinates must map positive changes in latitude to positive
changes along the Cartesian Y axis (latitude increases in a
Northerly direction).
|
![]() |
The transformation from longitude coordinates to Cartesian
coordinates must map positive changes in longitude to positive
changes along the Cartesian X axis (longitude increases in a
Easterly direction).
|
![]() |
Each track is to be displayed with a distinct color
|
![]() |
The plot shall include a table showing track names in their
appropriate colors. Each track's distance (in kilometers and miles)
is to be displayed in this table.
|
![]() |
The target device for this application is a desktop or laptop
computer. The display window must allow resizing according to the
user's normal interactions with windows. The plot shall scale the
tracks uniformly so that all tracks can be displayed simultaneously,
regardless of window size.
|
![]() |
Tracks can be plotted in any order and may obscure each other (thus,
one track may overlap another either partially or wholly, and only
the overlapping track color may be seen).
|
![]() |
A track containing less than two points can be displayed, but may
require special handling for scaling computations.
|
Acceptance criteria:
![]() |
The user must be able to select either Google Maps satellite or map
view.
|
![]() |
The track must appear superimposed on the Google Map view.
|
![]() |
Each track is to be displayed with a distinct color if possible.
|
![]() |
It must be possible to use the usual Google Map controls (e.g. zoom,
pan)
|
Acceptance criteria:
![]() |
The plot must display elevation in units of meters along
the Y axis, with time in units of minutes along
the X axis.
|
![]() |
If multiple tracks are loaded, the user shall be able to select
which tracks are plotted.
|
![]() |
Each track is to be displayed with a distinct color
|
![]() |
The plot is to be automatically centered and scaled with meaningful
labels on each axis.
|
![]() |
The plot is to include a label (for each track) that indicates the total
elevation gain, computed by summing all increases (but
not decreases) in elevation between subsequent points.
|
Note: A plot of Elevation Gain always increases monotonically - it never decreases. Elevation Gain is defined as the running sum of elevation increases while ignoring elevation decreases. For example, if a GPS track includes 3 hills, only the increases in elevation associated with climbing the hills is counted - so with each hill climb, the Elevation Gain plot increases. This is true even if the GPS Track constitutes a closed-loop path where the starting and ending points are the same.
Acceptance criteria:
![]() |
The plot must display elevation gain in units of meters along
the Y axis, with time in units of minutes along
the X axis.
|
![]() |
If multiple tracks are loaded, the user shall be able to select
which tracks are plotted.
|
![]() |
Each track is to be displayed with a distinct color
|
![]() |
The plot is to be automatically centered and scaled with meaningful
labels on each axis.
|
![]() |
If a track contains less than two points, no plot can be generated;
a message should be displayed in place of an actual plot indicating
this.
|
Note: The value for calories expended varies linearly with both speed and elevation gain. A 15KPH pace for 1 hour expends approximately 1000 calories. Additionally, each meter of elevation gained expends approximately 2 calories.
Acceptance criteria:
![]() |
The plot must display calories expended in units of calories along
the Y axis, with time in units of minutes along
the X axis.
|
![]() |
If multiple tracks are loaded, the user shall be able to select
which tracks are plotted.
|
![]() |
Each track is to be displayed with a distinct color
|
![]() |
The plot is to be automatically centered and scaled with meaningful
labels on each axis.
|
![]() |
If a track contains less than two points, no plot can be generated;
a message should be displayed in place of an actual plot indicating
this.
|
Acceptance criteria:
![]() |
The plot must display elevation in units of meters along
the Y axis, with distance in units of kilometers
and miles along the X axis.
|
![]() |
If multiple tracks are loaded, the user shall be able to select
which tracks are plotted.
|
![]() |
Each track is to be displayed with a distinct color
|
![]() |
The plot is to be automatically centered and scaled with meaningful
labels on each axis.
|
![]() |
The plot is to include a label (for each track) that indicates the total
elevation gain, computed by summing all increases (but
not decreases) in elevation between subsequent points.
|
Note: A plot of Elevation Gain always increases monotonically - it never decreases. Elevation Gain is defined as the running sum of elevation increases while ignoring elevation decreases. For example, if a GPS track includes 3 hills, only the increases in elevation associated with climbing the hills is counted - so with each hill climb, the Elevation Gain plot increases. This is true even if the GPS Track constitutes a closed-loop path where the starting and ending points are the same.
Acceptance criteria:
![]() |
The plot must display elevation gain in units of meters along
the Y axis, with time in units of kilometers and miles along
the X axis.
|
![]() |
If multiple tracks are loaded, the user shall be able to select
which tracks are plotted.
|
![]() |
Each track is to be displayed with a distinct color
|
![]() |
The plot is to be automatically centered and scaled with meaningful
labels on each axis.
|
![]() |
If a track contains less than two points, no plot can be generated;
a message should be displayed in place of an actual plot indicating
this.
|
Note: The value for calories expended varies linearly with both speed and elevation gain. A 15KPH pace for 1 hour expends approximately 1000 calories. Additionally, each meter of elevation gained expends approximately 2 calories.
Acceptance criteria:
![]() |
The plot must display calories expended in units of calories along
the Y axis, with distance in units of kilometers and miles along
the X axis.
|
![]() |
If multiple tracks are loaded, the user shall be able to select
which tracks are plotted.
|
![]() |
Each track is to be displayed with a distinct color
|
![]() |
The plot is to be automatically centered and scaled with meaningful
labels on each axis.
|
![]() |
If a track contains less than two points, no plot can be generated;
a message should be displayed in place of an actual plot indicating
this.
|
Acceptance criteria:
![]() |
The plot must display speed in units of kilometers/hr along
the Y axis, with time in units of minutes along
the X axis.
|
![]() |
If multiple tracks are loaded, the user shall be able to select
which tracks are plotted.
|
![]() |
Each track is to be displayed with a distinct color
|
![]() |
The plot is to be automatically centered and scaled with meaningful
labels on each axis.
|
![]() |
If a track contains less than two points, no plot can be generated;
a message should be displayed in place of an actual plot indicating
this.
|
Acceptance criteria:
![]() |
The plot must display speed in units of kilometers/hr along
the Y axis, with distance in units of kilometers
and miles along the X axis.
|
![]() |
If multiple tracks are loaded, the user shall be able to select
which tracks are plotted.
|
![]() |
Each track is to be displayed with a distinct color
|
![]() |
The plot is to be automatically centered and scaled with meaningful
labels on each axis.
|
![]() |
If a track contains less than two points, no plot can be generated;
a message should be displayed in place of an actual plot indicating
this.
|
Acceptance criteria:
![]() |
The plot must display distance in units of kilometers
and miles along the Y axis, with time in units
of minutes along the X
axis.
|
![]() |
If multiple tracks are loaded, the user shall be able to select
which tracks are plotted.
|
![]() |
Each track is to be displayed with a distinct color
|
![]() |
The plot is to be automatically centered and scaled with meaningful
labels on each axis.
|
![]() |
If a track contains less than two points, no plot can be generated;
a message should be displayed in place of an actual plot indicating
this.
|
Acceptance criteria:
![]() |
Same as for User Story 3, with the following modifications:
|
![]() |
Rather than displaying each track with a distinct color, each track
is to use colors to indicate grade. Dark blue for grade less than
-5%, light blue for grades between -5% and -1%, green for grades
between -1% and 1%, yellow for grades between 1% and 3%, orange for
grades between 3% and 5%, red for grades greater than 5%.
|
![]() |
The plot shall include a table showing grades in their appropriate
colors.
|
Acceptance criteria:
![]() |
If multiple tracks are loaded, the user shall be able to select
which track whose grade metrics are to be displayed.
|
![]() |
The grade metrics shall be displayed in the main screen.
|
![]() |
The grade metrics shall include:
|
![]() |
If a track contains less than two points, a message indicating that
grades cannot be computed shall be displayed.
|
![]() |
The display shall indicate the elapsed time in minutes and percent
of total time for grade less than -5%, for grades between -5% and
-1%, for grades between -1% and 1%, for grades between 1% and 3%,
for grades between 3% and 5%, and for grades greater than 5%.
|
Acceptance criteria:
![]() |
If multiple tracks are loaded, the user shall be able to select
which track whose distance/grade metrics are to be displayed.
|
![]() |
The grade metrics shall be displayed in the main screen.
|
![]() |
The grade metrics shall include:
|
![]() |
If a track contains less than two points, a message indicating that
distances cannot be computed shall be displayed.
|
![]() |
The display shall indicate the distance traveled for grade less than
-5%, for grades between -5% and -1%, for grades between -1% and 1%,
for grades between 1% and 3%, for grades between 3% and 5%, and for
grades greater than 5%.
|
Acceptance criteria:
![]() |
Same as for User Story 3, with the following modifications:
|
![]() |
Rather than displaying each track with a distinct color, each track
is to use colors to indicate speed. Dark blue for speed less than
3mph, light blue for speeds between 3mph and 7mph, green for speeds
between 7mph and 10mph, yellow for speeds between 10mph and 15mph,
orange for speeds between 15mph and 20mph, red for speeds greater
than 20mph.
|
![]() |
The plot shall include a table showing speeds in their appropriate
colors.
|
Acceptance criteria:
![]() |
Same as for User Story 3, with the following modification:
|
![]() |
Each track is to use a specific color to indicate instantaneous
speed above some value specified by the user.
|
Acceptance criteria:
![]() |
If multiple tracks are loaded, the user shall be able to select
which track whose speed metrics are to be displayed.
|
![]() |
The speed metrics shall be displayed in the main screen.
|
![]() |
The speed metrics shall include:
|
![]() |
If a track contains less than two points, a message indicating that
speeds cannot be computed shall be displayed.
|
![]() |
The display shall indicate the elapsed time in minutes and percent
of total time for speed less than 3mph, for speeds between 3mph and
7mph, for speeds between 7mph and 10mph, for speeds between 10mph
and 15mph, for speeds between 15mph and 20mph, and for speeds
greater than 20mph.
|
Acceptance criteria:
![]() |
If multiple tracks are loaded, the user shall be able to select
which track whose distance/speed metrics are to be displayed.
|
![]() |
The speed metrics shall be displayed in the main screen.
|
![]() |
If a track contains less than two points, a message indicating that
distance/speed metrics cannot be computed shall be displayed.
|
![]() |
The display shall indicate the distance traveled for speed less than
3mph, for speeds between 3mph and 7mph, for speeds between 7mph and
10mph, for speeds between 10mph and 15mph, for speeds between 15mph
and 20mph, and for speeds greater than 20mph.
|