Learning Objectives
Solve a problem by constructing a simple, interactive application using Android and Java. Document an object-oriented design in Unified Modeling Language.
Problem Description
Consider the situation of someone who wants to track their bike rides. Make a simple, attractive, intuitive, Android mobile app to note this data. Let us call this app: RideBook.
Specifically, each ride (when it is done) has the following fields:
date (presented in yyyy-mm-dd format)
time (presented in hh:mm format)
distance in km (non-negative decimal)
average speed in km/h (non-negative decimal)
average cadence in revolutions per minute (non-negative integer) comment (textual, up to 20 characters)
Only the comment field may be left blank for a ride. The app should allow the user to:
show a list of rides
add a new ride (which always appends to the bottom end of the list) view and edit the details of an existing ride
delete a ride
see the total distance of all rides below the list of rides
The list need not show all the information for a ride if screen space is limited. Minimally, each ride in the list should show its date, time, and distance.
The app must assist the user in proper data entry. For example, use appropriate user interface controls to enforce particular data types and avoid illegal values.
For this assignment, the app need not be persistent.
Use your campus computing ID in the app name. Specifically, the app name must show up as YOURCCID-RideBook (e.g., kennyw-
RideBook). Deliverables
1. Code Base: (5 marks)
Your complete source code and compiled binary, implementing the working app and its user interface, will be inspected and run by the TA. The Android Studio project and APK (Android Package Kit) binary must be included in the submission. Each class must contain comments
D
The Android Studio project and APK (Android Package Kit) binary must be included in the submission. Each class must contain comments
describing its purpose, design rationale, and any outstanding issues.
2. Video: (1 mark)
The video is a recording of the app’s user interface. The video file must be included in the submission. Besides being instructional for using the app, the video is meant to show that the demonstration actions below actually work. No audio is needed. Maximum duration is 3 minutes. Focus on just the screen of the app, not your whole desktop. For visual clarity, do not use a handheld camera.
3. System Documentation: (2 marks)
Describe the structure of your app’s object-oriented design using UML class diagram(s), saved as non-lossy image file(s). Focus on the most important classes that you designed and implemented. Add notes to describe the main responsibilities of these classes.
emonstration Actions
1. Open the app from the launcher.
2. Show the list of rides, with no rides so far. (This should be the initial screen.)
3. Add a ride with date 2019-09-27, time 14:00, distance 40.5, speed 25.5, cadence 75, and no comment.
4. Show the list and total, with this ride.
5. View/edit this ride to be distance 41.5, and comment “light wind”.
6. Show the list and total, with this updated ride.
7. Add a ride with date 2019-09-28, time 15:30, distance 39.5, speed 26, cadence 76, and comment “sunny” 8. Show the list and total, with the two rides.
9. Add a ride with date 2019-09-29, time 09:05, distance 25, speed 27.5, cadence 80, and comment “cloudy”
10. Show the list and total, with the three rides. 11. Delete the ride dated 2019-09-28.
12. Show the list and total, with the two remaining rides. 13. View the details of the 2019-09-27 ride.
14. View the details of the 2019-09-29 ride.
15. Delete the ride dated 2019-09-27.
16. Delete the ride dated 2019-09-29.
Please also ensure your original files are secure from public access.