“Your Fitness Companion”: A
Running Planner and Diary
Submitted for the MEng in
Sherif Mahmoud Soliman Aly
Word Count: 1371
Table of Contents
1 Introduction. 3
2 Aim and Objectives. 4
3 Background. 5
3.1 “Your Fitness Companion” 5
3.2 Operating System.. 6
4 Designs. 7
Case Diagram.. 7
4.2 Class Diagram.. 8
4.3 UI Design. 9
5 Project Management Review.. 10
A: Time Plan. 11
B: Task List 12
C: Ethics Checklist 13
D: Play Store Search Results. 14
This report will be presenting the design and development of a running
planner and diary application.
The aim of this project is to make a program that will be usable by
everyone no matter their fitness level, from beginners to professional runners.
This software will collect information by carrying out a heuristic evaluation
to be completed by the user. It will then analyse the gathered information to
get to know the user’s potential and generate a suitable workout for them to
follow. Their workout routine will also change over time in order to get them
to improve. The information collected about their performance will be collected
and stored and will be displayed to show their progress.
This application will need to be friendly and compliant to provide the
user with the best possible experience. For starters, the title of the project
has been switched from a running planner and diary to “Your Fitness Companion”
to be a bit more amiable.
The rest of this report will be contain the background to give an idea
of what this project will be, what it will provide and a description of the
technology that will be used as well as more details about the application. The
aims and objectives that will be accomplished in order to get a working,
user-friendly software as the outcome will also be presented in this report. The
design of the application will be explained to give a more in-depth view using Unified
Modeling Language diagrams and a description of the UI design. This report will
also provide a project management review to summarise the progress of the project
so far as well as the changes made to stick to ensure the development of a working
good-quality deliverable as well as appendices and references.
Aim and Objectives
The aim of this project is to provide a convenient, friendly simple
phone application that will aid the user with their fitness workout and improve
their health by keeping up with their progress and telling them how to enhance
Objective 1 – Getting the user’s details
The user will be asked to provide their age, weight, height and previous
running experiences. These details will help determine whether their beginners
or advanced runners.
Objective 2 – Generating a suitable workout
Based on the user’s information provided carried out, the software will
give the user a suitable workout plan over a 10-week period. This workout will
also needed to evolve over time to help the user improve their performance.
Objective 3 – Store the user’s progress
An SQLite data base will be put in place to store the user’s
Objective 4 – Data display
The user will see their progress by being provided with the total
distance they’ve ran and whether they met the suggested amount or not. They’ll
also may be able to see their progress in a table or maybe a chart showing the
evolution of their speed since they started using the application.
Objective 5 – Graphical User Interface
The GUI needs to be friendly and simple to provide the best interaction
with the user. From the main menu, they will be able to choose to start their
run, see the other suggested workouts, their progress, their details and
information about health.
Secondary Objective 1 – GPS Tracking
Instead of manually entering the distance they’ve taken on their run, a
GPS system may be implemented in order to track the user’s path and will be
used to calculate their speed and show a map of the path they’ve taken.
Secondary Objective 2 – Personal Accounts
Essentially, only one user can use the application on one device and
their information is only stored on that device; but with a personal account
using an email and a password, the user’s data can be kept on a server and
their information can be downloaded on different devices if they decide to
Secondary Objective 3 – Reward System
As the user begins to prove and work towards reach their goal, a series
of “trophies” maybe earned in order to motivate them after a significant
progress. For example, they can earn trophies for losing weight, after a
significant improvement or for entering their data after their workout for 10
3.1 “Your Fitness Companion”
“Increased popularity of
smartphones has great potential to assist individuals in making healthy changes
to their behaviour” (Yoganathan and Sangaralingam, 2013). Therefore, making a fitness app that fits the needs of the user will be
pivotal to their everyday life. What the runner need is not only an application
that will provide them with daily workouts, but to also continuously improve
that workout for them over time.
another note, fitness apps have become very popular and are on the rise. “According
to new research from mobile analytics firm Flurry, now part of Oath, health and
fitness app usage in the US has been a sharp uptick over the past few year,
growing by 330% between 2014 and 2017” (Chadha, 2017). Making a good fitness
app is guaranteed to be a success since they currently have a great client
are hundreds of running apps on Android devices. With a quick scroll through
the Play Store, three of the most highly rated running apps for Android appear to
currently be Strava, Google Fit and RunKeeper (screenshots can be seen in
is designed for the advanced runners. It lets the runner set their own workout
regime in a way with a goal tracking feature. The runner sets a time, distance
and segment goal and their progress is tracked on the go. It also connects
runners to each other so they can compare their performances with each other.
Although it has a personalised coaching and live feedback to motivate the user and
live fitness feed showing, its membership is expensive with goal tracking
limited to premium members and the user has less control over what gets shared (Bavishi,
is designed for runners who are aiming for example to work towards a 5K or
training for a marathons. It provides routes to be taken before starting the
exercise and provides training plans designed by professional fitness coaches.
It provide paid upgrade version “RunKeeper Go” where you can compare daily
workouts (RunKeeper, n.d.).
Fit is to Android what Apple Health is to iOS. It tracks multiple fitness
activates and aggregates with other popular fitness apps. It can bring together
fitness, nutrition sleep and weight information from other apps like Nike+,
Strava, RunKeeper and can be synced with Android Wear gadgets. It’s efficient
as it keeps track of everything and not just specifically running and is good
for all runners no matter if they’re beginners or advanced runners (Bavishi,
Fitness Companion” is similar to RunKeeper the most. It will comply with the
runners needs by giving them training routines fit for them who are not only
fit for them considering their past running experience by also will help them
improve over time. It will show their performance and keep track of their
changes as they enter more information. Secondary features, like GPS tracking
in Runkeeper and personal accounts, may be added later on.
3.2 Operating System
competition over the iOS and Android operating system has been well known
worldwide. Android currently owns the largest sales in the market. As you can
see in the table 1, it’s dominating the market shared with 86.1% in quarter 1
Worldwide Smartphone Sales to End Users by Operating System in 1Q17 (Forni and
Android phones are superior in terms of popularity with iPhones coming
next. Android also provides a simpler access to hardware components which will
go a long way with the making of this software.
Over the beginning of the development, a debate was going on about which
software to use to create the application. Between Visual Studio, Android
Studio and Xamarin, Android Studio is the software that is being used to
develop this project.
As for languages, Java is the official language
of Android development and is supported by Android Studio. Android Studio is
also a good choice of software as it provides a visual designer as well as
giving suggestions which will be very beneficial and helpful during the
development of the application. Nevertheless, to me, Java is an unfamiliar language
so learning it over the upcoming months will be critical to the development of
Data storage is essential to get this application running. It will be
used to store the user’s data and the different workouts they’ll be given.
Without it, once the application is closed, all the data will be lost. An
SQLite database will be used for this task. It can store preferred objects as
it can divide them into types and using each variable as a column in a table. It
is also the native database on Android devices and is lightweight (Tamada, 2011).
It can be designed to work with custom objects like the workout routines that
will be put in place.
The design of the application is still in progress. Therefore, all these
diagrams and pictures will show how the design is so far, but it is still
subject to change as the project moves forward and more obstacles are met or
more ideas come to mind to be developed.
4.1 Use Case Diagram
A Use Case Diagram shows the relationships between the actors and the
use cases within a system. They are used during
the analysis phase of a project to identify system functionality (Rumbaugh et al., 1999). The Use Case diagram presented
in figure 1 shows a user’s journey once they open the application and navigate
through the options available. This diagram shows how simple the actions available
will be made for the user. No actions are linked to each other, all the actions
are separate and can only be done through the homepage (view figure 3).
This diagram also highlight the importance of the SQLite database for
the functionality of the application. It is the core of the software as after
every action, the database is accessed so that the information can be saved for
the user so that is stored and still be available even after the application is
Figure 1: Use Case Diagram
“The purpose of the class diagram
is to show the types being modeled within the system. In most UML models these
types include: a class, an interface, a data type and a component” (Bell, 2004).
The class UML in figure 2 presents the main classes and their components.
There will be multiple workouts
for the user in order to match their progress. Different styles will be offered
and the difficulty will vary with time. This variation will go from a week to
the next automatically but it can also be done by the user if they wish to pick
another workout. They’re presented in the “SuggestedWorkout” class. Each
workout will have an ID, a name, the time the user needs to run, the time the
user needs to walk as rest, the total time (running time and rest time
combined) and the distance they will run. These can be used to calculate the
average speed the user can achieve.
The “DoneWorkout” class will
be the workout chosen by the user. The user can being their run, pause in
between or end their run. They will enter the time in minutes and the distance
in meters they took in order for their speed to be calculated.
The “User” class is
responsible for actions that effect the users’ data. It contains their name,
age, past running experience (whether they’re beginners or experienced runners),
weight in kilograms and height in centimeters which can then be used to
calculate the BMI of the user which since the weight alone doesn’t provide the
total health picture beyond just needing exercise to lose weight. It can provide
more insight for the user about their health. “Knowing your BMI is important. For example, if your BMI is
too high, you may be at an increased risk for many chronic health problems.
These include high blood pressure, type 2 diabetes, coronary heart disease,
stroke, gallbladder disease and osteoarthritis. It may also raise your risk for
endometrial, breast and colon cancers” (Griffith, 2013).
Figure 2: Class Diagram
The prototype user interface
is designed in Microsoft PowerPoint. It makes the design process quicker as it is
easily done using shapes for the buttons and text boxes for the application
name. Figure 3.a is the first prototype of the home screen design and figure 3.b
is the first prototype of the “Your Details” section. The
colour chosen for the background and the buttons is a light colour with the
text being of a dark colour so that it can be more visible and easy to read off
it. The button, text size and font will be kept consistent in order to maintain
a simple clean presentation that won’t cause any struggle to the user.
Figure 3a: Home Screen Prototype Figure 3b: User
Details Page Prototype
by clicking the “Your Details” button)
this is a prototype, once the feedback from the users is received, changes will
be made to accommodate to the tester’s remarks. For example, the users may ask
for different friendlier colours or claim that they are unable to read the text
as the size is too small. This will help detect more errors and deal with them
earlier in the design process. It will also help improve the user interface design
by taking any user’s suggestion.
Project Management Review
Unfortunately, due to unplanned events and other deadlines, the progress
on this project has been quite highly disturbed. As the second semester begins, the module Mobile
Devices and Applications will begin and will offer more techniques and help
with this project. A new time plan has been set to catch up with the delay. It
can be found in Appendix A. Each task has been given an estimate duration. It
is more flexible than the previous time plan. Two tasks have been made
secondary as they are not critical for the overall functionality of the app,
this will also provide more time to be able to focus on the primary objective
in order to have a functional application by the deadline. Once the primary
objectives are achieved, the work on the secondary objectives may begin if
there is enough time to spare. This time plan aims to focus on the primary
objectives. If the development is way behind the time plan, the secondary
objectives can be cut out.
This project involves collection of some personal information from the
users and also getting their feedback on the app. They will be using the
Android Emulator in Android Studio in order to give their opinion. “The Android Emulator provides almost all the
capabilities of a real Android device. Each instance of the emulator uses
an Android Virtual Device (AVD) to configure its size, form factor, Android
version, and various hardware characteristics” (Android Developer, n.d.). To
effectively test the app, an AVD that models an Android phone will be created
so it can support the app.
An ethics checklist has been
made in order to avoid any risks or to find ways to counter any risks met along
the way, it can be found in Appendix C.
Since the tester will be
providing their personal information, an ethics form will be made for them to
fill out before testing, ensuring that their identity will remain anonymous and
their personal information will be protected.
Appendix A: Time Plan
Appendix B: Task List
Write the initial report deliverable.
Quick research about types of running training, which type for which
level of experience. More in depth
about what software and languages will be used.
Java is used no matter which software will be used to program. Due to
the lack of knowledge of that
it will take some time to learn as well ask questions and get more informed.
The user is asked to enter their details to calculate some values.
They will need to enter their gender,
height, weight, how often they can work out. They will also be asked if they
have any health issues or
The user’s input will need to be analysed in order to give them a
suitable workout. Their BMI will also be
using their age, height and weight inputs.
Using the analysis of the evaluation, a workout will be provided for
the week for the user. Judging by their
and the analysis, it will tell them what type of running training to do, for
how long and how far.
If the user doesn’t like the workout provided, a second one will be
available for them.
It will need to store the user’s data even when they close the
application. A database may be needed to
Write the interim report deliverable.
A listed calendar will be shown to the user on which they can click on
the day and see what they did that
Simple and friendly. Provides easy communication to the user and a
more pleasant experience.
Users will try the app and give their feedback.
After getting the test results, improvements will be made to take care
of any errors and maybe add new
Write the final report deliverable.
Appendix C: Ethics Checklist
(Sev. x Like.)
How to Avoid
How to Recover
Keep multiple backups
Reinstate from backups
Use other providers
Always keep an update accessible version of
the SVN on hand.
Get the needed software on my personal laptop
Follow the schedule
and keep up to it, make sure
Ask for help from supervisor and tutor when
needed. Focus on the main objectives to produce a working deliverable.
Appendix D: Play Store Search Results
Chadha, R, 2017, Fitness App Usage Grows by Leaps and Bounds online. Available: https://www.emarketer.com/Article/Fitness-App-Usage-Grows-by-Leaps-Bounds/1016486 Accessed 11 January 2018.
Yoganathan, D and Sangaralingam, K, 2013, Persuasive Technology for Smartphone Fitness Apps online,
University of Singapore.
Available: http://aisel.aisnet.org/cgi/viewcontent.cgi?article=1185&context=pacis2013 Accessed 12 January 2018.
Bavishi, R, 2017. Top 10 Running Apps for Android
(updated 2017). online. Available at: https://www.runningshoesguru.com/content/top-10-running-apps-for-android/
Accessed 16 Jan. 2018.
RunKeeper, (n.d.). Everyone. Every run.
online Available at: https://runkeeper.com/#where-to-start-module
Accessed 16 January 2018.
Griffith, D, 2018. Why You Need to Know Your BMI.
online Available at: https://www.aarpmedicareplans.com/aarpoptum/why-you-need-to-know-your-bmi
Accessed 21 January 2018.
Tamada, R, 2011. Android SQLite Database Tutorial
Available at: https://www.androidhive.info/2011/11/android-sqlite-database-tutorial/
Accessed 16 January 2018.
Forni, A and Meulen, R, 2017, Gartner Says Worldwide Sales of Smartphones Grew 9 Percent in First Quarter of 2017 online.
Available: https://www.gartner.com/newsroom/id/3725117 Accessed 13 January 2018.
Rumbaugh, J., Jacobson, I. and Booch, G., 1999. The
Unified Modeling Language Reference manual. Reading, Massachusetts:
Bell, D, 2004, UML Basic: The Class Diagram
online. Available at: https://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/
Accessed 20 January 2018.
Android Developer, (n.d.). Android Emulator online
Available at: https://developer.android.com/studio/run/emulator.html Accessed 18 January 2018.