ABSTRACT
Climbing the stairs is one of the best exercises that can be done anywhere and
anytime. Many health organizations recommend the public to take the stairs instead
of waiting for the lifts. This is because there are many health benefits, such as
improved cardiovascular system and strengthened muscles and joints, by taking the
stairs. In this busy era, most people seldom spend time on doing exercises or sports.
Hence, taking the stairs is the exercise that is suitable for those people who always
do not have time to exercise. In this project, a mobile application (app) is developed
to monitor the stair climbing activities in a building. "Humans as sensors" is the main
idea for this development project. The people in the building are like the sensors that
provide data for monitoring. The mobile app has the QR code scanning feature to
locate the users’ location. Then, a simple calculation is done to calculate the calories
burnt and energy saved through the stair trip. Moreover, the users are able to track
their stair progress. All the stair trips from the users are then sent to the web server
for data collection. The development of the mobile app is done by separating each
function into a module. The module is then developed and tested individually before
being integrated into a single app. All the data collected from the users are then
analysed and interpreted to understand the stair climbing activities. The stair usages
reach the peak at noon time. In addition, stair usages from the ground floor are higher
compared to other floors.
TABLE OF CONTENTS
DECLARATION ii
APPROVAL FOR SUBMISSION iii
ACKNOWLEDGEMENTS v
ABSTRACT vi
TABLE OF CONTENTS vii
LIST OF TABLES x
LIST OF FIGURES xi
LIST OF SYMBOLS / ABBREVIATIONS xiii
LIST OF APPENDICES xiv
CHAPTER
1 INTRODUCTION 1
1.1 Background 1
1.2 Objectives 3
1.3 Project Scopes 3
1.4 Project Plan 3
2 LITERATURE REVIEW 5
2.1 Development Method 5
2.1.1 Mobile Application 5
2.1.2 Mobile Website 6
2.1.3 Comparison of Development Methods 6
2.2 Studies on Mobile Operating System 7
2.2.1 Android 7
2.2.2 iOS 7
2.2.3 Windows Phone 8
2.2.4 Comparison of Mobile Operating System 8
2.3 Studies on Code Displaying Methods 9
2.3.1 Quick Response Code 9
2.3.2 Near Field Communication Tag 10
2.3.3 Comparison of Code Displaying Methods 10
2.4 Studies on QR Code Decoders 11
2.4.1 ZXing 11
2.4.2 Mobile Vision 11
2.4.3 Comparison of QR Code Decoders 12
2.5 Literature Analysis of Mobile Application 12
2.5.1 StepJockey 13
3 METHODOLOGY 14
3.1 Development Tools 14
3.2 Mobile App Development Method 14
4 SYSTEM DESIGN AND IMPLEMENTATION 17
4.1 Design Preparation 17
4.2 Design Requirements 21
4.2.1 Functional Requirements 21
4.2.2 Non-Functional Requirements 22
4.3 Graphical User Interface Design 23
4.4 Implementation 26
4.4.1 Registration Module 27
4.4.2 Login Authentication Module 29
4.4.3 QR Code Scanner Module 30
4.4.4 Trends and Analysis Module 33
4.4.5 Logger Module 35
5 RESULTS AND DISCUSSION 36
5.1 Collection of Data 36
5.2 Analysis of Data 36
6 CONCLUSION AND RECOMMENDATIONS 39
6.1 Conclusion 39
6.2 Limitations and Recommendations 40
REFERENCES 41
APPENDICES
LIST OF TABLES
TABLE TITLE PAGE
2.1 Comparison between Mobile Application and
Mobile Website 6
2.2 Comparison of Android, iOS and Windows Phone 8
2.3 Comparison of QR code and NFC tag 10
2.4 Comparison of ZXing and Mobile Vision 12
4.1 Number of steps between each floor in KA block 17
4.2 Number of steps between each floor in KB block 18
4.3 Assumptions made for energy saved 19
4.4 List of assumptions made 19
4.5 Text encoded in QR code and floor ID for each
floor in KA block 20
4.6 Text encoded in QR code for each floor in KB
block 20
4.7 Functional requirements for each modules 21
4.8 Non-functional requirements of the app 23
LIST OF FIGURES
FIGURE TITLE PAGE
1.1 Gantt chart of the project 4
2.1 Screenshot of StepJockey 13
3.1 Flowchart of Development Process 15
4.1 GUI of Login Authentication 23
4.2 GUI of Registration 24
4.3 GUI of Homepage 24
4.4 GUI of Trends 25
4.5 GUI of Stair Trip Record 25
4.6 GUI of Logger 26
4.7 Dependencies in the gradle 26
4.8 Permissions required in Manifest.xml 27
4.9 Flowchart of registration module 27
4.10 Section of code to check validity of UTAR ID 28
4.11 Section of code for server connection 28
4.12 JSON of server response for successful registration 29
4.13 JSON of server response for unsuccessful
registration 29
4.14 Flowchart of login authentication module 29
4.15 Section of code to build query 30