A mobile app designed to provide mental health support and connect users with professional therapists
Mimblu App – Mental Health Support
Overview
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.
Technologies Used
-
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.
Data Classes
The app uses Kotlin data classes to represent the data entities:
SymptomItem
data class SymptomItem(
val id: Int,
val title: String,
val isSelected: Boolean
)
The SymptomItem
data class represents a symptom with its unique id
, title
, and the isSelected
flag indicating whether the symptom is selected by the user.
MatchOption
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
)
The MatchOption
data class represents a match option with its unique id
, title
, description
, duration
, videoDescription
, and final_price
.
ApiResponse
data class ApiResponse(
@SerializedName("list")
val symptoms: List<SymptomItem>,
@SerializedName("copyrighths")
val copyrighths: String
)
The ApiResponse
data class represents the response from the API, containing a list of SymptomItem
objects and copyright information.
MatchOptionsApiResponse
data class MatchOptionsApiResponse(
@SerializedName("list")
val matchOptions: List<MatchOption>
)
The MatchOptionsApiResponse
data class represents the response from the API, containing a list of MatchOption
objects.
Data Flow
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:
-
The
MainActivity
displays a list of symptoms using theSymptomAdapter
. When the user selects or deselects a symptom, theSymptomAdapter
updates theSymptomViewModel
. -
The
SymptomViewModel
holds the list of symptoms asLiveData
. It observes changes in the user’s selections and updates the UI accordingly. -
When the user opens the
SecondActivity
, theMatchOptionViewModel
fetches the list of match options from the API using Retrofit and updates itsLiveData
. -
The
MatchOptionAdapter
observes changes in theMatchOptionViewModel
‘sLiveData
and updates the RecyclerView with the latest match options. -
The
MatchOptionViewModel
also parses the API response using Gson and updates itsLiveData
with 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
MatchOptionAdapter
updates theMatchOptionViewModel
, which in turn updates the UI and handles the business logic.
Features
-
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.
Screenshots
Dark Mode
Getting Started
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.
API Integration
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.
Future Enhancements
-
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.
Conclusion
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.
License
This project is licensed under the MIT License – see the LICENSE file for details.