Commit f0e0711f authored by Andres Käver's avatar Andres Käver

hw2 details

parent 2ed62026
# HW2
SporMaps App
Deadline - final deadline - end of semester
## SportMaps App - Android
### Deadline(s) - Look at end of HW description
App like endomondo, nike run, strava, runtastic, etc.
General idea - app, that would help you in unknown terrain with navigation and training.
App is based on Google Maps (or openstreetmap or some other) and built-in GPS functionality.
Display map, and update your location on map display.
Display map, and update your location on map display.
Allow toggling of "keep map constantly centered", "keep north-up / direction up / user chosen-up".
When tracking is started, start to draw trail from start to current location.
Allow user to set checkpoints (permanent) and waypoints (single) on track. Ie when adding new waypoint, remove previous.
When tracking is started, start to draw trail from start to current location.
Allow user to set checkpoints (permanent) and waypoints (single) on track. Ie when adding new waypoint, remove previous.
Calculate and display direct and travelled distance from start, last checkpoint and last waypoint.
Time elapsed from start, pace (in minutes per km) overall in every three sections.
Time elapsed from start, overall pace (in minutes per km) in every three sections.
Save all the sessions and all the checkpoints to database.
Save all the sessions and all the checkpoints to database.
Allow user to view/delete old sessions - display statistics and track on map.
For controlling the app from lock screen, implement sticky custom layout notification - UI similar to what you have under the map.
When user stops session, ask for confirmation. Do not let to start/stop session from lockscreen.
Constantly(after every position update) update notification to display current info - distances and pace.
GPS listener and notification intents broadcastlistener has to be implemented in service,
otherwise app cannot be kept running in background.
When user stops session, ask for confirmation. Do not let to start/stop session from lock-screen.
Constantly(after every position update) update notification to display current info - distances and pace.
GPS listener and notification intents broadcast listener has to be implemented in service, otherwise app cannot be kept running in background.
App has to support rotation (and state has to be restored) - move buttons from bottom to left-or-right screen edge in landscape mode.
Provide on-screen real compass (must be possible to turn on-and-off). Not the google maps rotation indicator.
Provide session export possibility - ie as email attachment for example. File format - gpx.
https://www.topografix.com/gpx_manual.asp (checkpoints as waypoints gpx format).
gpx entries hav to contain coordinates and timestamp (for later track analysis and animation).
Provide on-screen real compass (must be possible to turn on-and-off). Google maps rotation indicator is not a compass.
Change app icon into something more meaningful.
Provide session export possibility - ie as email attachment for example. File format - gpx.
https://www.topografix.com/gpx_manual.asp (checkpoints as waypoints in gpx format).
Gpx entries have to contain coordinates of every location update and user set WP coordinates and timestamp (for later track analysis and animation).
Final testing of your app will happen in real life () - using paper map and your app
find hidden checkpoints in terrain - take photo of every cp and present these and your track (sent as email attachment to teacher) at the end.
Change app icon into something more meaningful.
Asciiart of UI:
### Ascii art of possible UI
~~~
~~~~text
--------------------------------------
North-Up Reset Compass Options
GMAP
Google Map area
--------------------------------------
Start 15 000 | add 1500 | add 783
or 1:35:47 | CP 1137 | WP 332
stop 8:45 | icon 6:37 | icon 7:35
~~~
~~~~
Explanation of numbers in UI:
Section1 - Overall
Distance covered (meters)
Session duration hh:mm:sec
Average speed (minutes per 1 kilometer)
Section2 - Checkpoint
Distance covered from previous CP
Direct line distance from previous CP
Average speed
Section3 - Waypoint
Distance covered from previous WP
Direct line distance from previous WP
Average speed
### Deadline(s)
#### 2020-03-29 23:59:59
Google maps is visible, ui is receiving updates from background location service.
It is possible to start and stop the tracking, set CPs and WPs from main screen.
#### 2020-04-12
Custom notifications are implemented, it is possible to control app from the lock screen.
#### 2020-04-26
Database is working, sessions get saved to database, it is possible to view/rename/delete old sessions.
Allow zooming into track of old sessions.
Track segments are colored according to speed (define range of colors/speed) - both in old and current session.
Example: http://omaps.akaver.com/show_map.php?user=akaver&map=273
#### 2020-05-10
User can create an account in app, account info is saved locally. Account gets created in backend server.
Session start and location updates are synced realtime to backend service during active session.
Track segment coloring is easily user configurable - per active session and also in past sessions.
#### 2020-05-24
Everything is ready, you are ready to discuss your code with teacher 1-to-1. Some final touches and real world testing maybe still needs to be done.
Syncing is working, you can change syncing interval in options (ala when received, once in 10 sec, once in 30, sec, etc..). It is possible to change gps update frequency. Gps location coordinates are filtered, obvious wrong coordinates are filtered out (ie impossible x hundred meter jumps).
#### Final deadline
End of semester, defence of app will be conducted in some nearby forest terrain, using teacher provided paper map and your app.
It's done, you are ready to tackle unseen forest using your app. You have tested it extensively, it will not crash even while doing some 2-3h long session. Syncing to backend works, even if there is no data connection - you can sync all the locations later.
Use your app to find hidden checkpoints in terrain - take photo of every cp and present these and your track (sent as email attachment to teacher) after completing the exercise.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment