Your Wellbeing Companion
By Ilse Hahn (cc241064) & Pascal Pamer (cc241013)
Chosen Use Case: B - Wellbeing
MyBuddy is a 4-in-1 wellbeing tracking app featuring a virtual companion called Buddy. Users can track their mood, habits, sleep, and water intake while Buddy reacts to their overall wellbeing through expressions and animations.
The app calculates a hidden Wellbeing Score (0-100) based on all tracked data, which determines Buddy's mood. This creates a meaningful connection between tracking activities and provides motivation through positive reinforcement and emotional engagement.
| Table | Fields | Purpose |
|---|---|---|
| Moods | id, mood_type, note, timestamp | Stores daily mood entries with optional notes |
| Habits | id, name, description, color, created_at | Stores habit definitions |
| habit_logs | id, habit_id, date, completed | Tracks daily habit completions for streaks |
| sleep_logs | id, date, bedtime, waketime, durationMinutes, quality, goalMinutes | Records sleep duration and quality ratings |
| water_logs | id, date, amount, goal | Tracks daily water intake |
| buddy_profile | id, name, color_hex | Stores Buddy customization settings |
| user_settings | id, waterGoalMl, sleepGoalMinutes, onboardingDone | Tracks the daily goal settings and welcome screen |
QuoteBubble.kt – UI bubble for quote displayQuoteSection.kt – quote container + layoutHabitCard.kt – habit list item with streak/check-inHabitsStreakGrid.kt – streak grid visualizationStatCard.kt – small stats cardsSleepClockRing.kt – sleep visualization ringSleepInfoCard.kt – bedtime/wakeup info cardSleepQuality.kt – sleep quality model/enumSleepQualityCard.kt – UI card for quality displaySleepWeeklyBar.kt – weekly sleep bar chartWeeklySleepStats.kt – weekly stats wrapperHealthTab.kt – tab content wrapperHealthTabPill.kt – tab pill UIHealthTabs.kt – tab navigation rowAddWaterButton.kt – quick add buttonAddWaterDialog.kt – dialog for adding waterWaterProgressRing.kt – progress visualization ringWeeklyCircle.kt – weekly indicator circleWeeklyWaterStats.kt – weekly stats wrapperHabitsStatCard.kt – habits widget for Home screenMoodStatCard.kt – mood widget for Home screenSleepStatCard.kt – sleep widget for Home screenWaterStatCard.kt – water widget for Home screenEditMoodItem.kt – mood list/detail row itemMoodStatCard.kt – mood stats card componentMoodStatsRow.kt – stats row wrapperColorWheelPicker.kt – buddy color pickerProfileStatCard.kt – profile stat cardSettingsRow.kt – row for settings itemsSleepGoalDialog.kt – edit sleep goal dialogWaterGoalDialog.kt – edit water goal dialogBlobMood.kt – mood mapping for Buddy blobBottomBar.kt – bottom navigation barBuddyBlob.kt – animated Buddy componentGradientButton.kt – reusable gradient buttonMoodType.kt – mood type mappingThe Wellbeing Score (0-100) combines four wellbeing dimensions. The score is calculated internally and reflected through Buddy's mood - users never see the number directly, only Buddy's expression.
| Component | Max Points | Calculation |
|---|---|---|
| Mood | 30 | Based on logged mood type |
| Habits | 30 | (completed ÷ total) * 30 |
| Sleep | 25 | Duration: (actual ÷ goal) * 15 + Quality (10) |
| Water | 15 | (intake ÷ goal) * 15 |
| Total | 100 |
Duration (0-15 points):
Score = (actual_hours ÷ goal_hours) * 15, max 15
Quality (0-10 points):
EXCITED
85-100
HAPPY
65-84
WORRIED
45-64
SAD
25-44
SLEEPY
0-24Great Day Example
Bottom navigation screens
Home
Mood
Habits
Health
Health
Profile
Select Mood
Add Notes
Day Detail View
Create Habit
Edit Habit
Add Sleep
Add Water
Customize Buddy
Onboarding
Splash Screen
Bottom navigation screens
Home
Mood
Habits
Sleep Duration & Quality Tab
Water Intake Tab
Profile
Select Mood
Add Notes
Day Detail View
Mood Edit View
Mood Delete Confirm
Create Habit
Edit Habit
Habit Delete Confirm
Add Sleep duration and quality
Edit Sleep
Change daily sleep goal
Add Water
Change daily water goal
Profile
Customize Buddy
We will analyze the current version (19.01.2026) of our App MyBuddy to find potential problems which we can work on in the coming week, based on Nielsen's 10 Usability Heuristics.
| Screen | Heuristic | Problem | Severity | Fix |
|---|---|---|---|---|
| Home | 1. Visibility of System Status | User can't see why the Buddy has a certain animation (Wellbeing Score is hidden) | High | Fixed |
| Add Mood Screen | 9. Help Users Recognize, Diagnose and Recover from Errors | If a user tried to add a mood without selecting a mood first the screen doesn't do anything instead of printing an error message | Medium | Fixed |
| App | 10. Help and Documentation | There is no description about what the app is used for which could potentially confuse people who download the app out of curiosity without having ever used a wellbeing app. | Medium | Fixed |
| Mood | 3. User Control & Freedom | No "Undo" when user by mistake deletes a mood | Medium | Future |
| Health Sleep | 2. Between System and the Real World | 12 Hour Clock but no AM/PM clock display | Low | Future |
| Profile Customize | 3. User Control & Freedom | No "Reset" button for Buddy Customization | Low | Future |
| Health Screen (both tabs) | 3. User Control and Freedom | No way to switch between weeks in weekly statistics, can only see current week | Low | Future |
| Profile | 2. Match between System and Real World | Some terms maybe need to be explained to the user (e.g. "streak", "perfect day") | Low | Future |
| Home | 10. Help and Documentation | Explanation for scores would be very useful (wellbeing, streaks) | Low | Future |
The goal of this usability test is to evaluate the overall usability and user experience of our MyBuddy app. We want to identify any confusing areas in the interaction flow - particularly around logging wellbeing information - so we can improve clarity, navigation, and user experience.
Specifically, we will answer the following key questions:
Participants will complete a series of tasks designed to evaluate core app functionality. After each task they will rate the task using the SEQ:
After completing the tasks, we will conduct a brief interview with open-ended questions, to clarify observations made during testing. This will provide additional insights into the user experience and areas for improvement.
To present the collected data effectively, we will use the following methods:
We conducted the usability test with 5 participants. Overall, users completed the tasks successfully, rated them mostly as easy, and reported a positive experience with the Buddy companion.
The age distribution covered a broad range: 2 participants were aged 18-24, 2 participants were aged 25-34, and 1 participant was aged 35-44. In terms of gender, the group consisted of 3 male and 2 female participants. Regarding occupation, 2 participants were employed, 2 were students, and 1 participant was both studying and employed. Before the test, participants were asked about their prior experience with wellbeing or habit-tracking apps. Three participants reported having used such apps before (2 occasionally, 1 regularly), while two participants had no prior experience. All participants indicated a high level of comfort with digital technology (5 out of 5)
All five participants successfully completed all tasks, resulting in a 100% task success rate. This indicates that the core functionality of the app is accessible and understandable, even for first-time users.
Most tasks were completed in under 40 seconds, with Task 3 (logging water intake) being the fastest (M = 20s). Task 1 (logging mood) showed the highest variability, with one participant taking 1:24 while others completed it in around 30 seconds. Task 5 also showed notable variability (12s-54s), suggesting the path to goal settings was not immediately obvious.
Tasks 1-4 received consistently high ratings between 6 and 7, indicating easy interactions. Task 5 had a lower mean of 5.4. This directly corresponds to qualitative feedback that locating daily goal settings was confusing.
The average SUS score of 91.5 is above the industry benchmark of 68 and places the app in the “excellent” usability range. Individual scores ranged from 82.5 to 100, with four out of five participants scoring above 90.
| Category | Key Findings |
|---|---|
| Positive |
|
| Issues |
|
| Suggestions |
|
Based on the feedback we received during usability testing, we implemented several improvements before the final submission. The most requested change was making the daily goal settings easier to find-we added the goal adjustment slider directly to both the water and sleep tabs, so users can now change their goals either in the profile settings or right where they track their data. We also swapped the position of the Save and Delete buttons, placing Save on the right side as users expected. Additionally, we moved the "Next" button in the mood logging flow further down so users no longer need to scroll past the emoji grid. These changes directly addressed the main pain points identified during testing and improved the overall user experience.
Watch a quick walkthrough of MyBuddy's main features:
Before development started, Pascal and I agreed on how to divide the tasks. I was responsible for the entire UI design in Figma, and after that we divided the development tasks so we could work in parallel. We started with the core features-mood and habit tracking-and once those worked, we moved on to the health screen with sleep and water tracking.
I focused on building the mood tracking system with the calendar view and statistics, and the profile page with Buddy customization including the color wheel picker. I then worked on the Sleep tracking feature with its clock-based ring visualization and weekly overview. I also created the splash screen and handled the necessary navigation logic. For the Buddy digital companion, I was able to reuse and expand on the animated blob I had designed and coded in my previous Mobile Coding course, which saved us time and gave the app its unique character. I also cleaned up the R plots for our data analysis and wrote the user testing plan.
The trickiest part for me was making the sleep clock ring look like it did in our Figma design. Drawing the arc so it correctly showed the sleep duration from going to bed to waking up, and getting the angles right, took a lot of trial and error and ended up being more time-consuming than I expected. User testing turned out to be really helpful. We found issues we never would have caught ourselves, and it was satisfying to actually fix them before the presentation day.
The final app does what we originally planned, and we even added extras like the onboarding screen, splash screen and customizable goals. I’m genuinely happy with how it turned out, and it’s an app I would actually use myself. This project made me much more comfortable with Kotlin, Room, and building a larger app from scratch, and I feel confident I could do something like this again on my own.
From the beginning of the project I was able to work in a very structured way together with Ilse. It was never difficult for us to divide our tasks, and our collab worked really well throughout the entire project. This made it easier to stay organized and keep making progress during development very fast.
My main focus was on implementing features such as habit tracking, water tracking and user settings. I also worked on the profile screen with stats, the welcome / Onboarding screen and the daily quotes feature using an external API.
Another important part of my work was the navigation. I implemented the navigation bar and the tab system within the health section and I made sure that all screens were scrollable and usable on different screen sizes. I was also responsible for the data analysis by creating the R file and helping evaluate the collected data.
One of the biggest challenges for me was the health tab system. Making sure that the correct tab was shown while the navigation bar stayed on the health item was more complicated than I expected. Fixing this helped me better understanding routing logic and how different screens and states work together in a larger app.
Regarding user tests: I moderated the test sessions and observed how users interacted with the app. This showed problems that Ilse and I didn't notice during development and helped improve the usability of the app before the final presentation.
Overall, I'm very happy with the final result. The app includes all planned features and even some additional ones like the Onboarding screen, daily quotes and customizable settings. This project helped me become more confident with Kotlin and Android Studio. I feel much more comfortable building larger apps now and I believe I could handle a similar project on my own in the future.