Fitness App: React Native: A Project Report Submitted by
Fitness App: React Native: A Project Report Submitted by
A PROJECT REPORT
Submitted By
Varun Nikte (160770107247)
Arjun Gharti Chhetri (160770107253)
Jay Soni (160770107221)
Dhaval Deshkar (160770107041)
Shrenik Mehta (160770107079)
BACHELOR OF ENGINEERING
In
Computer Engineering
CERTIFICATE
Date:
This is to certify that the project entitled “Fitness App Through React Native” has been
carried out by “Varun Nikte (160770107247)”, “Arjun Chhetri (160770107253)”,
“Jay Soni (160770107221)”, “Dhaval Deshkar (160770107041)”, and
“Shrenik Mehta (160770107079)” under my guidance in fulfillment of the Degree of
Bachelor of Engineering in Computer Engineering–8th Semester of Gujarat Technological
University, Ahmedabad during the academic year 2019-2020.
We hereby declare that project report titled “FITNESS APP THROUGH REACT NATIVE”
submitted towards the completion of project in 8th semester of B.E Computer in
Silver Oak College of Engineering & Technology, Ahmedabad is an authenticate record of our
work carried out.
We further declare that to the best of our knowledge the report of Computer Engineering 8th semester.
Candidate’s signature :
Branch : CE
Candidate’s signature :
Branch : CE
Candidate’s signature :
Branch : CE
i
Candidate’s signature :
Branch : CE
Candidate’s signature :
Branch : CE
Submitted to:
Affiliated to:
ii
Abstract
A daily fitness routine helps in to develop your overall health and the
positive effects become very apparent when you invest time to
exercise.
An active walk for 30-35 plus minute and some basic resistance
training is all you need to get the ball rolling. This will get the blood
circulating, burns those annoying calories, and improves immunity
and physical strength… who doesn’t need a raised immune system?
The basic take away?
People who are physically fit are also healthier, are able to maintain
their most optimum weight, and are also not prone to cardiac and other
health problems.
By becoming more active you can increase your body’s fitness levels
and also avoid health problems like diabetes and high blood pressure
from developing. Exercise is also good for your joints and makes your
body stronger overall.
ACKNOWLEDGEMENT
We are heartily thankful to our supervisor, Prof. Darshil. Shah, whose encouragement, supervision
and support from the preliminary to the concluding level enabled me to develop an understanding
of the subject. At the end, we offer our regards and blessings to all of those who supported us in
any respect during the completion of the project and to our college for providing a resources and
materials.
INDEX
LIST OF FIGURES
LIST OF TABLES
2.1 Project plan 10
2.2 Milestone and deliverables 12
2.3 Cost estimation 15
5.3 System Architecture 35
INDEX
Chapter No. Title Page No.
1 Introduction
1.1 Project Summary 2
1.2 Scope 3
1.3 Objective 3
1.4 Technology and Literature Review 4-6
2 Software Project Management
2.1 Project Planning and Scheduling 8
2.2 Project Development Approach 8-10
2.3 Project Plan 10-16
Milestone and Deliverable
Gantt chart
Cost Estimation
The COCOMO Model
2.4 CANVAS 17-20
AEIOUS CANVAS
EMPATHY CANVAS
IDEATION CANVAS
PRODUCT & DEVELOPMENT CANVAS
3 System Requirement Study
3.1 System Requirement Study 22
User Characteristic
3.2 Hardware and Software Characteristics 22-23
3.3 Constraints 23
Regulatory Policies
Hardware Limitation
4 System Analysis
4.1 Study of Current System 25
4.2 Requirement of This System 25-28
4.2.1 Functional Requirements
User
Create Account
Login
View Existing Program
INDEX
Save a Program to Personal List
Rate a Program
Edit Personal Program
Send Message
CHAPTER: 1
INTRODUCTION
CHAPTER 1
INTRODUCTION
This is a Total Fitness Mobile based Application. Here we provide you fitness guidelines
for all the health-conscious fans.
Fit n Fab offers you a big amount of info that will help you to reach your Fitness goals.
This App can work Without an Internet Connection.
Fit n Fab has many exercises, workouts, Yoga, Meditation, Diet and BMI Calculator also
for training at your gym or at home.
1.1.1Purpose:
A daily fitness routine helps in to develop your overall health and the positive effects
become very apparent when you invest time to exercise
People who are physically fit are also healthier, are able to maintain their most
optimum weight, and are also not prone to cardiac and other health problems.
In order to maintain a relaxed state of mind, a person should be physically active. A
person who is fit both physically and mentally is strong enough to face the ups and
downs of life, and is not affected by drastic changes if they take place.
1.2 Scope:
This App can be made available on various platforms like the Google Play Store and
Apple IOS Store
This is a Total Fitness Mobile based Application. Here we provide you fitness guidelines
for all the health-conscious fans.
Fit n Fab offers you a big amount of info that will help you to reach your Fitness goals.
Fit n Fab has many exercises, workouts, Yoga, Meditation, Diet and BMI Calculator also
for training at your gym or at home.
1.3 Objective:
The main objective of this project is to achieve physical fitness and improve the level of
health of users by helping and motivating them to doing sports exercise and eating healthy
food.
1.3.1 Specific Objective
This project will provide the following service as specific objective:
To develop the attention in the health fitness and nutrition.
To motivate the interest of health and physical fitness and nutrition.
To manage the healthy life system in health fitness and nutrition.
To facilitate the connection between nutrition and health, fitness and fashion in one
application to not distract the user more than one application.
HTML
JavaScript
React Native
HTML
JavaScript
JavaScript supports the development of both client and server components of web-based
applications.
On the client side, it can be used to write programs that are executed by a web browser
within the context of the web page.
On the server side, it can be used to write web server programs that can be process
information submitted by a web browser and then update the web browser display
accordingly.
React Native
React Native lets you build mobile apps using only JavaScript. It uses the same
design as React, letting you compose a rich mobile UI from declarative
components.
With React Native, you don't build a mobile web app, an HTML5 app, or a hybrid
app; you build a real mobile app that's indistinguishable from an app built using
Objective-C or Java. React Native uses the same fundamental UI building blocks as
regular iOS and Android apps.
You just put those building blocks together using JavaScript and React.
React − This is a Framework for building web and mobile apps using JS
Native − You can use native components controlled by JavaScript.
Platforms − React Native supports IOS and Android platform.
JavaScript − You can use the existing JavaScript knowledge to build native mobile
apps.
Code sharing − You can share most of your code on different platforms.
Community − The community around React and React Native is large, and you
will be able to find any answer you need.
CHAPTER: 2
SOFTWARE PROJECT
MANAGEMENT
CHAPTER 2
Project planning is part of project management, which relates to the use of schedules such
as Gantt charts to plan and subsequently report progress within the project environment.
Initially, the project scope is defined and the appropriate methods for completing the
project are determined. Following this step, the durations for the various tasks necessary to
complete the work are listed and grouped into a work breakdown structure.
Project planning is often used to organize different areas of a project, including project
plans, workloads and the management of teams and individuals.
Allocation of resources
Organizing the work
Database Designing
Form Design
The Process Paradigm we used for our project is Incremental Model.
The Incremental Model combines elements of the linear sequential model with the iterative
philosophy of prototyping. The incremental model applies linear sequences in a staged
fashion as calendar time progresses.
Each linear sequence produces a deliverable “increment” of the software. For example,
word processing software developed using the incremental paradigm might deliver basic
file management, editing and document production functions in the first increment; more
sophisticated editing and document production capabilities in the second increment;
spelling and grammar checking in the third increment; and advanced page layout capability
in the fourth increment.
It should be noted that the process flow for any increment can incorporate the prototyping
paradigm.
When an incremental model is used, the first increment is often a core product. That is,
basic requirements are addressed, but many supplementary features remain undelivered.
The core product is used by the customer. As a result of use and/or evaluation, a plan is
developed for the next increment. The plan addresses the modification of the core product
to better meet the needs of the customer and the delivery of additional features and
functionality.
This process is repeated following the delivery of each increment, until the complete
product is produced.
The Incremental process model, like prototyping and other evolution approaches, is
iterative in nature.
But unlike prototyping, the incremental model focuses on the delivery of an operational
product with each increment.
Early increments are stripped down versions of the final product, but they do provide
capability that serves the user and also provide a platform for evaluation by the user.
In this project, we went through Module Wise Completion. First, we did analysis of first
module; we went through all the requirements for first module that is Admin Module.
By this analysis we decided field of all the tables of Admin Module. Then we started
Database Design.
After competing it we started with the design of all forms of this module. Then we did
coding and finally validations and testing of forms that we made.
After completing the first module we started the same procedure for the Member Module.
After that we completed User Module. Between this we did settings forms e.g. Change
theme, change background color of the main screen etc.
There was continuously interaction with the client that was very beneficial for us.
When we completed whole project, we started testing the whole project for final
verification.
Then we started documentation of our project. Finally, we completed the project with
client’s satisfaction.
A milestone is an end point of software process activity.
2019 2020
ID Start Finish Duration
Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr
4w
4w
3 Design
4 Implementation 14 w
5 Testing
Like all estimation models for software, the COCOMO models require sizing information.
Three different sizing options are available as part of the model hierarchy: object points,
function points, and lines of source code.
Like function points, the object point is indirect software that is computed using counts of
the number of
(2) Reports,
Once complexity is determined, the number of screens, reports, and components are
weighted according to Table above.
The object point count is then determined by multiplying the original number of object
instances by the weighting factor in table above and summing to obtain a total object point
count.
When component-based development or general software reuse is to be applied, the percent
of reuse (%reuse) is estimated and the object point count is adjusted:
NOP = (object points) X [(100 - %reuse) / 100].
Where NOP is defined as new object points. To derive an estimate of effort based on the
computed NOP value, a “productivity rate” must be derived.
PROD=NOP / person-month
For different levels of developer experience and development environment maturity. Once
the productivity rate has been determined, an estimate of project effort can be derived as
Estimated effort = NOP/PROD.
There are three types of software project:
Organic project
Semi-deteched project
Embedded project
In Organic=2.4 (KLOC)1.05 PM
In semidetached=3.0(KLOC)1.12 PM
In Embedded=3.6(KLOC)1.20PM
In Organic=2.5(effort)0.38months
In semidetached=2.5(effort)0.35 months
In Embedded=2.5((effort)0.32months
Person Estimation:
P=E/D
In Or Project,
[Table 2. 3 Cost
Estimation]
Total line
of code=
KLOC=
=
=
=
=
=
Advantages of COCOMO:
Disadvantages:
2.4 CANVAS
2.4.1 AEIOU CANVAS
CHAPTER 3
SYSTEM
REQUIREMENT
STUDY
CHAPTER 3
SYSTEM REQUIREMENT STUDY
3.1 SYSTEMREQIREMENT STUDY
Hardware Requirements:
I. Minimum 2.27Ghz processor
II. RAM: 2 GB
III. Android Version : above Lollipop(5.0)
Software Requirements:
I. React-Native Framework
II. Java-script Properties
III. Internet connection (not compulsory)
3.3 Constraints:
3.3.1 Regulatory Policies:
Regulatory policies or mandates, limits the discretion of individual and agencies,
or otherwise compel certain types of behavior.
These policies are generally thought to be the best applied when good behavior
can easily be defined and bad behavior can be easily regulated and punished
through fine and sanctions.
3.3.2 Hardware Limitation:
The smooth functionality of the application depends on the speed of hardware and
their specification.
It is always advisable to be updated as far as hardware is concerned. The hardware
limitation occurs if the user is still using very low MHz processor and RAM or
less than 128mb.
This will generally reduce the portability and also the use will waste a lot of useful
time and resources.
CHAPTER 4
SYSTEM
ANALYSIS
CHAPTER 4
SYSTEM ANALYSIS
4.1 Study of Current System
This is not any fitness application that requires network connection all the time for
its functioning, once the data are entered while it is connected in the network this
application can be opened or run in offline mode.
B. Create Account
The system provide the user with an easy to use GUI to facilitate their creating an
account. The system shall ask for email address and password. The system shall
notify user if incorrect character are used in email and password field. The system
should notify the user if their email address is already registered. The system
should notify the user if any required filed in left empty. The system should not
allow user to create weak and unsecure password. The system should prevent the
user from completing registration if the terms and services has not been agreed to.
C. Login
The system should provide a user friendly GUI to allow the user to login when the
application launches. The system should prompt the user for their email address
and password.
allow quick and easy navigation between different routines in the list. The system
should be able the display the diet plan to the user submitted details. The system
should allow quick and easy navigation between different routines in the list.
F. Rate a Program
The system should provide a button to rate. Program can be rated up or down
based on the level of success the user has with them.
H. Send Message
The system shall provide an interface for sending message between users.
Message should be sent in real time and have no delays.
Reliability
The system should be extremely reliable and have an approximate up time of
99.99%. In the event of a crash or any other error, the system should inform the
user of any problem and gracefully terminate.
Ease of Use
The application should be user friendly and intuitive to use. GUIs should make
their function clear and navigation around the application should be straight
forward. Users should be comfortable using the application after 20 minutes of
use.
Speed
The application should open and be ready to use within 10 seconds of being
selected. The UI should be quick and smooth with no delay between button
presses and screen reaction. All database reads/writes should take no longer than 5
seconds. If the database encounters any error, a user friendly waring should be
displayed to the user.
Size
The size of the software in relation to storage media should be no larger than
250mb.
Privacy
All data retained by the system will be stored in accordance with the Data
Protection Act 1988 and the Data Protection (Amendment) Act 2003.
User Requirements:
A. Product Perspective
The application will be written in Android Studio using the react-native
framework using javas-script properties. The application will run in android
platform. It will provide users the ability to fid or submit workout routine, diet
plan inside the application. Users will be able to register an account and login
using their details to take part in online community and gain access to user
submitted content. This application can be used in offline mode once all the
required information of the user in entered.
B. Product Function
Users will be able to register to the application with their personal details.
Initially will be via email and password but future changes could allow for
Google and Facebook account login facility.
Registered user will be able to sign in and access the workout routine and
diet plan from the application.
Registered user can be able to choose their required workout routine and
diet plan according to the entered data.
Registered users will be able to be connected with the online community
and ask for help whenever required.
Registered users of the application will be able to participate in group
discussions within the application or opt to communicate one on one with
another single user. This allows users to discuss things as part of a group
and meet new people and also allows them to discuss things privately or
ask the author of a program a question should they need clarification on
Operational Feasibility
The system is to be developed for any user who want to use it. We want our
system user friendly and easy to use. The administration also may be non-
SOCET (CE) Page 28
GROUP ID: 84609
terminal, so the user interface will be designed in such a way that it gets
comfortable for non- terminal person to operate easily.
Technical Feasibility
It is a partially measurement of specific technical solution and the availability
of technical resort and expertise. The analyst must find out whether the current
technical resources, which are available in the system is capable of handling
the job. If not, then the analyst with the help of developer should confirm
whether the technology is available and capable or not.
Schedule Feasibility
Schedule feasibility corresponds to whether sufficient time is available to
complete the project.
Economic Feasibility
Economic feasibility is a measure of cost effective of a project or solution. For
declaring that the system is economically feasible, the benefit from the project
should exceed or at least to the equal to the cost of development.
These inconsistent, error have been detected and corrected and the
work product confirm to the standard.
The well-known Message Sequence Chart technique has been incorporated into the
Unified Modelling Language (UML) diagram under the name of Sequence Diagram.
A sequence diagram shows, as parallel vertical lines, different processes or objects
that live simultaneously, and, as horizontal arrows, the messages exchanged between
them, in the order in which they occur. This allows the specification of simple runtime
scenarios in a graphical manner.
1. Login
2. Analysis information
3. Healthy Meal
CHAPTER 5
SYSTEM DESIGN
CHAPTER 5
SYSTEM DESIGN
Systems design is the process of defining the architecture, components, modules,
interfaces, and data for a system to satisfy specified requirements. The System
Design Description report provides summary or detailed information about a system
design represented by a model. Systems design is therefore the process of defining
and developing systems to satisfy specified requirements of the user.
Design
Diagram
Components Client
Sever- user need register first in order to access the
data stored.
Relationship The client and server are connected over network
The client make request
The server provides the service
Pros Once the user is registered he/she can use the application
in offline mode. They can save the list of workout in their
playlist if they like.
Cons Its cons is that all files are in one location, which means
that if server goes down or system crashes, we will lose
everything simultaneously.
CHAPTER 6
IMPLEMENATION
PLANNING AND
DETAILS
CHAPTER 6
IMPLEMENTATION PLANNIG AND
DETAILS
6.1. Implementation Environment:
6.1.1 Developing for the Android Platform
In developing our Android application, we utilized the Eclipse
integrated development environment bundled with the Android Development Tools plugin
for approximately three quarters of the development time. About halfway through our
project, Google released Android Studio, an IDE created specifically for designing Android
applications.
6.1.2 The Development Process
The development process consisted of weekly meetings, in which the
entire group met to come up with goals for the next week and review the progress of current
programming tasks that were assigned to each team member. Our goals were often driven
by the obstacles we had faced during the previous week and were prioritized by how
severely they impacted further development of the app.
6.1.3 Development Overview
At the beginning, much of the work was individual, as we were all
learning the syntax and architecture of Android development. As time progressed, we split
into two main teams; one that worked with the development of the app itself and one that
worked with the development of the character that would personify the information
collected by the app. Later this was broken down further into more individual tasks within
each team, which typically exemplified each team member’s individual strengths.
6.1.4 Design & Coding
Relatively early in the development process, we came to the decision
to separate each data into individual tabs within the app. After researching several different
methods for implementing this type of multi-page app design, we came to the decision to
use the View Pager layout manager, an Android class that is “most often used in conjunction
with Fragment, which is a convenient way to supply and manage the lifecycle of each page.
In addition, the tabs share a single Android activity, which is the Android class that handles
all user interaction with the app. The main activity of the application manages the tab layout
and tells the application which tab view to display when a user selects a certain tab. The
purpose of using fragments is to eliminate the need to create a new activity every time the
user switches between tabs, thus increasing both the temporal and spatial efficiency of the
application. Structurally, each fragment is comprised of two components. The first is an
XML file that defines the visual layout of the fragment. The second is the logic of the
fragment, which contains various functions defining certain actions to take at different
times. Each time a certain fragment is switched to or away from, these functions are called
in a particular order, all of which make up what is called the fragment’s “lifecycle”.
Different modules specified in the design document are coded in the Coding phase
according to the module specification. The main goal of the coding phase is to code from
the design document prepared after the design phase through a high-level language and then
to unit test this code. A coding standard gives a uniform appearance to the codes written by
different engineers. It improves readability, and maintainability of the code and it reduces
complexity also. It helps in code reuse and helps to detect error easily. It promotes sound
programming practices and increases efficiency of the programmers. Good software
development organizations want their programmers to maintain to some well-defined and
standard style of coding called coding standards. They usually make their own coding
standards and guidelines depending on what suits their organization best and based on the
types of software they develop. It is very important for the programmers to maintain the
coding standards otherwise the code will be rejected during code review.
CHAPTER 7
TESTING
CHAPTER 7
TESTING
7.1 Testing
Initial testing was done on an Android simulator which ran on our computers. This aided in
development because we were able to immediately load changes and view how they affected the app.
This also eliminated the immediate need for a physical Android device and we were able to begin
developing and testing our app immediately.
CHAPTER 8
SCREEN SHOTS
AND
USER MANUAL
CHAPTER 8
SCREEN SHOTS AND USER MANUAL
8.1 Front end
8.2 Modules
8.2.1 Workout
8.2.2 Yoga
8.2.3 Diet
8.2.4 Meditation
8.2.5 BMI
CHAPTER 9
CONCLUSION
CHAPTER 9
CONCLUSION
9 Conclusion
9.1 Accomplishments
While it was a challenge to develop, our project team successfully created a prototype
wellness application for the Android Platform capable of calculating BMI, providing diet plans, yoga
suggestion and workout plans. While the full scope of the initial app design was not realized, all of the
core functionality has been successfully implemented.