Code and documentation for Software Engineering Fall 2017 Rutgers
See 0_Demo for code used in the Demo on Nov 1st 2017. See 1_Software/napit for code used in demo 2 Final
Requires Android studio, Android SDK, Android NDK
clone repo https://github.com/napIT-Rutgers-SE-Fall-2017/napit.git In android studio navigate to 1_Software/napit
open project
In build menu select
make project
To run the app on hardware see https://developer.android.com/studio/run/device.html
If everything is setup properly under Run menu ->
Run 'java in app'
No runnable file can be included due to the many differences between Android versions and hardware. Please compile for your device. No input parameters are required to start the application
On first run a new user will need to be created. Select Register at the bottom of the screen and create a new account.
Example user account: User Test1 Email Test1 Password Test1
Known issue: App may need to be restarted after creating a new account since database may not exist.
Unit testing and integration testing was done in Android studio.
Unit test are located in the source code at napit/app/src/test/java/.
Integration test or "instrumented tests" are located in the source code at napit/app/src/androidTest/java/.
Unit testing is done within Android Studio
Integration Testing will require an Android device.
See Run tests at https://developer.android.com/studio/test/index.html#run_a_test
Further testing was done manually by interacting with the app and employing AndroidDatabaseManager to examine the database during runtime
AndroidDatabaseManager
A debugging tool used for looking at the contents of the sqllite database while running on the phone
BackgroundEventMonitor
Main background service that controls the StepCounter and Sleep Monitor.
Triggers the step counter to reset and store values at 12am
ContactUs
Displays contact information
DashboardActivity
The main point of navigation in the application. Only available after the user logs in. Launches the BackgroundEventMonitor
DisplayReading
Displays the results of sleep analysis
EditPersonalDetails
Allows a logged in user to change their personal details
Exercise
Displays information about the user's exercise habits.
FAQ
A screen to show answers to some frequently asked questions
MainActivity
The main screen the user is presented with prior to logging in.
PersonalDetails
Displays the user's personal details as stored in the database
RegisterActivity
Allows a new user to register a new account with the app
Session
Class to store session information such as current logged in user, email, etc
ShowMore
Displays more information to the user
SleepActivity
Displays information about the user's sleep
SleepMonitor
Service that records sensor readings during sleep and stores them in a database.
SQLiteHelper
Class to handle interactions with the database
StepCounter
Service that records steps via the accelerometer and stores the values in the database.
Suggestions
Gives the user feedback to correct issues found during analysis
SVM
Service that trains and runs the Support Vector Machine (SVM) to analyze the user's sleep.
ViewExercise
View exercise details
ViewList
Support class to format data displayed to the screen
ViewProfile
View the user's profile
Other software components and tutorials used in this application