Mimblu App – Mental Health Support
Mimblu is a mobile app designed to provide mental health support and connect users with professional therapists. It offers features such as symptom selection, match options, and personalized therapy plans.
Kotlin: The app is primarily developed using Kotlin, a modern programming language for Android development.
Android Architecture Components: MVVM – Utilized ViewModel and LiveData for handling UI-related data and lifecycle management.
Retrofit: To perform API calls and handle network operations efficiently.
RecyclerView: For displaying scrollable lists of match options and symptoms.
Gson: To parse the JSON API responses into Kotlin data classes.
The app uses Kotlin data classes to represent the data entities:
data class SymptomItem(
val id: Int,
val title: String,
val isSelected: Boolean
SymptomItem data class represents a symptom with its unique
title, and the
isSelected flag indicating whether the symptom is selected by the user.
data class MatchOption(
val id: Int,
val title: String,
val description: String,
val duration: String,
val videoDescription: String,
val final_price: String // Use string value for final_price
MatchOption data class represents a match option with its unique
data class ApiResponse(
val symptoms: List<SymptomItem>,
val copyrighths: String
ApiResponse data class represents the response from the API, containing a list of
SymptomItem objects and copyright information.
data class MatchOptionsApiResponse(
val matchOptions: List<MatchOption>
MatchOptionsApiResponse data class represents the response from the API, containing a list of
The Mimblu app follows the MVVM (Model-View-ViewModel) architecture, separating the UI (View) from the data and business logic (ViewModel) and the data representation (Model). The data flow in the app is as follows:
MainActivitydisplays a list of symptoms using the
SymptomAdapter. When the user selects or deselects a symptom, the
SymptomViewModelholds the list of symptoms as
LiveData. It observes changes in the user’s selections and updates the UI accordingly.
When the user opens the
MatchOptionViewModelfetches the list of match options from the API using Retrofit and updates its
MatchOptionAdapterobserves changes in the
LiveDataand updates the RecyclerView with the latest match options.
MatchOptionViewModelalso parses the API response using Gson and updates its
LiveDatawith the list of match options.
The RecyclerView displays the list of match options, and the user can interact with them.
When the user selects or deselects a match option, the
MatchOptionViewModel, which in turn updates the UI and handles the business logic.
Symptom Selection: Users can select their symptoms from a list of options to receive personalized match options.
Match Options: Users are provided with various match options based on their selected symptoms. These options include different therapy plans with duration, pricing, and video session details.
Personalized Therapy Plans: Users can choose the most suitable therapy plan from the match options, tailored to their needs.
Unlimited Messaging + Voice Notes: Users can communicate with therapists through unlimited messaging and voice notes, providing flexibility and accessibility to mental health support.
Video Sessions: The selected therapy plan includes video sessions, allowing users to have face-to-face interactions with their therapists.
To use the Mimblu app, follow these steps:
Clone the repository:
git clone https://github.com/username/mimblu-app.git
Open the project in Android Studio.
Build and run the app on an Android emulator or physical device.
The app fetches data from a backend API to populate the match options and symptom lists. The API provides JSON responses with details about the available therapy plans and symptoms.
User Authentication: Implement user authentication to enable personalized therapy plan recommendations and user-specific data storage.
Real-Time Messaging: Integrate real-time messaging features to provide immediate therapist responses to users.
Payment Integration: Incorporate payment gateways to enable secure and seamless payment processing for therapy plans.
Localization: Add support for multiple languages to cater to a wider audience.
Mimblu is a comprehensive mental health support app, empowering users to take charge of their mental well-being. By offering personalized therapy plans and easy access to professional therapists, the app aims to make mental health care accessible to everyone.
This project is licensed under the MIT License – see the LICENSE file for details.