Handsome Habits makes personal wellness fun by linking your habits to the well-being of our very own Handsome Dan.
For Yale students, balance often seems unachievable. While Yale students are often very successful, this comes at the expense of their overall wellness. Handsome Habits makes wellness simple and enjoyable by providing a gamified view for maintaining personal wellness. By logging meals, sleep, study sessions, and workouts, users can earn wellness points to keep Handsome Dan happy and coins to buy him accessories. Conversely, if habits start to fall behind, Handsome Dan will become sad and disheveled to motivate the user to get back on track.
- Log Habits: add and view habits for studying, sleeping, eating, or exercising.
- Track your wellnes: Handsome Dan will indicate how well you're doing with his emotions and messages. There is also a wellness bar to see exactly how you're doing. (See Figure 1)
- Buy rewards: earn coins when you log a habit to buy Handsome Dan new clothes.
- Customize Handsome Dan: change Handsome Dan's outfit and accessories.
- Reminders: Get notified when it's been a while since you logged a habit.
We created 3 different buttons that lead to the store on our app. We used the epsilon-greedy method (Multi Armed Bandit procedure) to determine the best button to use. We tracked the number of clicks on each button and the number of times each button was shown. We then calculated the click-through rate (expectation) for each button. Whenever the app starts up, for 90% of the time, the button with the highest expectation is shown. For the other 10% of the time, a random button is shown. This allows us to explore the other buttons and potentially find a better button to use at any point in time.
Install the following:
brew install node
brew install watchman
npm install -g expo-cli
gem install cocoapods
Ensure XCode and the XCode simulator are installed
To run the app locally, follow these steps:
-
Clone this repository.
-
Install dependencies. from main directory
`cd client;
npm install`
`cd client/ios;
pod install`
`cd server;
npm install`
-
Request
.env
specifications from a contributor
- To run the servier, change
EXPO_PUBLIC_PROD=0
toEXPO_PUBLIC_PROD=1
in.env
- To run the client,
cd client; npm run ios
- iOS simulator will open and you can use the app!
- To run lint tests in the server or client:
npm run lint
- To run jest tests and a coverage report in the server:
npm run test-coverage
- To run jest tests in the client
Please direct any questions or concerns to [email protected]
Our app collects user information during sign-in, including: name, email, and gmail account id. We also parse yalies.io for Yale relateed information, such as residential college, in order to give rewards. This data is not shared with anyone nor is any sensitive information stored. Your data will be stored as long as your account is active. If you wish to terminate your account, simply email [email protected].