Moodwave App

Academic Full-stackGamificationMental Health
Moodwave App

About

Moodwave was my final-year dissertation at the University of Galway, School of Computer Science — a full-stack mental health support app grounded in Cognitive Behavioral Therapy (CBT) research and targeted user studies.

The project spanned the full product lifecycle: literature review, user screening and research, design, front-end and back-end development, game development, and testing. Every feature decision traces back to research evidence or direct user feedback.

Context
Final Year Dissertation
University of Galway · School of Computer Science
My Role
Everything
Research · Design · Full-stack Dev · Game Dev · Testing
Stack
Spring Boot · React · Phaser
JWT · REST API · Tailwind · Selenium

Problem

Mental health apps face a structural retention problem. Users download, try, and abandon — not because the tools don’t work, but because repeated self-reflection without engagement becomes a chore.

Solution

The core idea was to introduce interaction layers. A gamified module makes staying intrinsically rewarding — using physical movement as a mood intervention. At the same time, low-stakes community connection is provided to ease isolation without the pressure of direct social engagement.

Process

01
Literature Review
02
User Research
03
Design
04
Full-Stack Dev
05
Game Dev
06
Testing

Who this is for

Rather than designing for “people with mental health needs” broadly, this project targeted a specific personality profile: individuals scoring low on extraversion and emotional stability in the Big Five model.

Low Extraversion
Socially withdrawn, self-directed
Tendency toward solitary processing over shared emotional expression. Less likely to seek peer support unprompted — and therefore underserved by community-first interventions.
High Neuroticism
Anxiety-prone, most CBT-responsive
Higher susceptibility to anxiety and mood fluctuation. Negatively associated with treatment outcomes — but also the group most responsive to structured CBT techniques when barriers to access are removed.

Research Foundation

The design methodology is grounded in CBT — Cognitive Behavioral Therapy — an evidence-based psychotherapy built on the relationship between thoughts, feelings, and behaviour. Three of its techniques map directly onto the features: self-monitoring (mood tracking), behavioural activation (the game), and graduated social exposure (the community). CBT not only informed which features to build, but how each one should work.

User Research

Participants were screened through a Big Five personality test, then completed a semi-structured questionnaire covering demographics, prior experience with mental health tools, feature preferences, and UI style. A total of 79 responses were collected. The feature options drew from CBT techniques and other evidence-based interventions identified during the literature review.

What would put you off?
Ads or paywalls — 70%+
Poor UX — 64%
Unreliable content — 55%+
What do you want?
Mood tracking — 55%+
Interactive games — 52%
Community support — 50%

Design Decision

Based on CBT principles and the research findings, three features were selected — each chosen because it addresses a specific psychological mechanism, and also a user preference.

01
Mood Tracking
Self-monitoring
Recording an emotion creates cognitive distance — a felt experience becomes an observable pattern.
02
Community Support
Low-stakes connection
Low-risk interaction reduces isolation for introverted users without the anxiety of direct social contact.
03
Gamified Module
Reward activation
Physical action and goal completion activate reward pathways, breaking the cycle of rumination.

How It’s Built

The backend and frontend are separated by design — authentication, data, and business logic live server-side, leaving the frontend focused purely on UI. The game runs as a standalone module, because its rendering operates outside the frontend entirely.

Once the core flows were built, Selenium was used to automate end-to-end testing across critical user journeys — validating behaviour from a user-perspective lens before the usability sessions ran.

Backend
Spring Boot · MySQL · JWT · RESTful API
Frontend
React · TypeScript · Tailwind · Ant Design
Game layer
Phaser · Webpack bundle
MoodPack Dashboard
Core mood-tracking view. Logs are grouped into emotion-tagged packs — Happiness, Anxiety, Depression, Peace — and browsable by date.
MoodPack dashboard
Community · MoodPack Ocean
Anonymous public feed. Users browse moods drifted by others, and after “picking” an entry they can leave a message to interact with the original poster — low-stakes connection by design.
Community feed
Mood Entry · Detail view
Individual entry with emotion tag, topic, and description. One button to “Drift” it into the community feed — opt-in sharing, never forced.
Mood entry detail

The Game Module

This is the most deliberate design response to the retention problem. The core idea: make the invisible visible.

Negative emotion as a concept is hard to engage with — abstract, diffuse, without shape or boundary. The game’s first design decision was to give it one. Each monster has a distinct colour and form, representing a kind of emotional state. Emotions aren’t good or bad — they exist to protect you. The game’s implicit message is that you can move through them.

Game screenshot 1Game screenshot 2Game screenshot 3

The game is a peaceful side-scroller. The player controls a small hero jumping across platforms through a soothing landscape, hitting different emotions to score. Some emotions push your score up, others bring it down — and certain ones trigger stars, balloons, or fireworks.

There’s a timer, but the pace isn’t stressful. Randomised level elements ensure no two sessions feel identical, addressing one of the most common reasons mental health app features get used once and abandoned.

Building it

Learning Phaser from scratch was part of the project. The reason I chose it was pragmatic — a mature physics engine, an active community, and a build output that embeds cleanly into the existing app. Sprite assets were sourced from itch.io and Dotown, with custom sprites drawn in Pixilart.

The game went through several iterations — the final version is also published as a standalone title on itch.io ↗.

”Fun! The platformer controls were a lil tricky at times, but it was lovely seeing flowers and trees blossom where you collected happy emotions.”

curiousConductor · itch.io

”Cute game. Love the graphics, love the sounds. I like the concept — creative take on the theme — and your build is great.”

MishManners · itch.io

Usability Testing & Results

Five participants completed pre- and post-test surveys, performed key tasks across all features, and rated the app using the User Experience Questionnaire (UEQ). Per Nielsen’s research, five users are enough to surface around 85% of usability issues — a standard choice when balancing coverage against resource constraints.

Dimension
Mean
Variance
Attractiveness
4.2
0.56
Perspicuity
4.0
0.40
Efficiency
4.6
0.24
Dependability
5.0 ✦
0.00
Aesthetics
4.6
0.24

Dependability scored a perfect 5.0 with zero variance — every participant agreed the system behaved exactly as expected. This reflects the investment in Selenium automated testing, which validated critical flows from a user-perspective lens before the usability sessions ran.

Two issues were surfaced and iterated on: confusion around the ‘mood board’ widget on the homepage (resolved by enlarging helper text and reducing visual density), and insufficient game instructions (resolved with contextual onboarding text).

Reflection

The most honest thing I can say about this project is that the emotion tracking feature — while functional and research-grounded — is a solved problem. By the time of writing, some apps on the market have raised the bar for what mood logging can feel like. If I were building this again, I’d spend less time on the logging interface and more on what happens after the log.

What I’m more proud of is the reasoning chain that connects the Big Five screening → CBT framework → feature set → visual language. The design didn’t emerge from intuition — it came from a documented chain of decisions, each traceable to evidence. That discipline is what I’d carry forward.