FitPhone
Future Software Technologies
Semester programme:Complex Software Systems
Client company:FitPhone
Project group members:Daniel Gelov
Daniel Langov
Quinn Richardson
Brandon Osmanuou
Project description
How can a mobile application help young adults build awareness of, and healthier habits around, their smartphone use?
FitPhone is a cross-platform mobile app built in React Native (Expo) that reads a user's real Android screen-time data, visualises daily usage and app-pickup patterns, and guides them through evidence-based behaviour-change techniques — including a personalised onboarding questionnaire, commitment "medals", reflection prompts, and opt-in challenges. The core design challenge was turning raw, low-level Android usage statistics into meaningful, non-judgmental insights, and pairing those insights with motivational mechanics that actually prompt reflection rather than anxiety.
Context
The project sits at the intersection of digital-wellness and consumer mobile application development. Excessive smartphone use among young adults (18–25) is associated with disrupted sleep, reduced concentration, and lower wellbeing — yet most screen-time tools shipped by OS vendors are passive dashboards that users quickly learn to ignore.
The client brief asked the team to design and build an application that goes beyond raw statistics: it should know the user's goals, surface the data that matters to their personal situation, and create lightweight daily rituals (check-ins, challenges, reflections) to keep engagement meaningful. Research consent was built into onboarding, as anonymised usage data feeds an academic study running in parallel.
Technically, the domain required bridging a custom native Android module (reading UsageStatsManager data, which requires a special system permission) with a cloud backend (Supabase PostgreSQL + Edge Functions) and a fully typed TypeScript frontend. The team chose Expo's new architecture to get near-native performance while keeping a single JavaScript codebase for both platforms.
Results
Delivered products
The project produced a fully functional React Native mobile application targeting Android, covering the complete user journey from registration through daily use. Delivered features include: email/password authentication with session persistence; a data-driven multi-step onboarding questionnaire that captures smartphone habits and stores answers in a cloud database; a research-consent flow that meets GDPR informed-consent requirements; a commitment-medal selection that sets a personal goal before first use; a home screen that surfaces real screen-time data (daily totals, most-used apps, phone-pickup counts); a daily reflections module with rotating question sets; and a challenge system that lets users select, track, and create custom behavioural challenges.
Underpinning the UI is a custom native Android module (Java/Kotlin, UsageStatsManager) that reads system-level app-usage statistics — functionality unavailable via any cross-platform API — bridged into the React Native layer through Expo Modules. A Supabase backend (PostgreSQL 17, Row Level Security, Edge Functions) handles data persistence, auth, and an offline queue that replays locally buffered writes on reconnection.
A GitLab CI/CD pipeline runs ESLint, Prettier, TypeScript type-checking, and Jest unit tests on every push, with coverage thresholds enforced as a quality gate. Nine service-layer test suites (covering auth, onboarding, reflections, challenges, home data, offline queue, and queue processor) provide regression safety for the business logic.
Validation
The app was installed and run on physical Android hardware throughout development, validating that the native permission flow (PACKAGE_USAGE_STATS) and screen-time data pipeline function end-to-end on a real device rather than in a simulator. UI designs were validated against Figma mockups provided by the client, with an iterative UI-refresh sprint (US-15) incorporating stakeholder feedback before the sprint review.
The database schema and RLS policies were validated through integration tests co-located with the Supabase migrations, ensuring that access-control rules behave correctly for authenticated vs. unauthenticated roles — important given that the app feeds an academic research study. Onboarding data completeness (required for the research pipeline) was validated by verifying that no user can exit the flow without a stored answer set
About the project group
Our group consisted of four second-year ICT students at Fontys FHICT. We worked in two-week Agile sprints over a single semester, spending roughly 16 hours per person per week on the project. We followed a feature-branch Git workflow with merge requests, code review, and a CI/CD pipeline. Roles rotated but each member owned at least one full-stack user story end-to-end — from database schema through backend service to mobile UI.