The Habit Tracker project is a comprehensive Flutter application designed to help users in effectively tracking their habits and staying motivated.
GoodPlace - Get inspired by yesterday, focus on tomorrow!
Authentication is managed through Firebase Authentication, with both email and Google Sign-In options integrated, and user login status is overseen by an Auth Manager. Upon their first use, users are introduced to the application through onboarding and tutorial screens.
CRUD (Create, Read, Update, Delete) operations for habits are implemented using Firestore. Habit management is dynamically handled across all pages with the Provider package. A congratulatory animation has been added to celebrate when users complete their habits.
Unsplash Image Selection: Users can enhance their habits by selecting high-quality images from Unsplash when creating or updating them.
Main Calendar: At the top of the home page, you can use the calendar feature to get a visual summary of your daily habits. Clicking on any date displays all habits completed on that day in a pop-up view. This calendar helps you quickly review and track your past achievements and progress.
Habit Detail Calendar: On each habit's detail page, there is a specialized calendar showing only the days on which that specific habit was completed. This allows you to monitor the progress of individual habits more closely and see your consistency over time.
The app integrates the Dio package to fetch random motivational quotes from an API, keeping users inspired.
GoodPlace features an AI-based tool (using OpenAI). GoodPlaceT, that provides real-time, personalized habit motivation and support through streaming. AI-generated responses are displayed live, offering motivational quotes based on the user's habit progress, such as whether they've completed their habit for the day. During habit creation, GoodPlaceT can also generate a meaningful purpose using the userβs input, like the habit's image or title.
Additionally, with GoodPlaceT, you can engage in conversations about your habits. The AI assistant offers personalized guidance and suggestions based on your chat history, helping you improve your habit-building process. Whether you're looking for advice, feedback, or motivation, GoodPlaceT is there to support you. It answers questions related to your habit goals, provides relevant tips, and ensures you stay on track with consistent progress.
Firebase Notifications are utilized to send motivational reminders to users, ensuring they remain engaged and stay on track with their habits.
The Flutter plugins used in this project are as follows:
In order to run this project, you have to follow the steps below:
-
Clone the project:
git clone https://github.com/havva-nur-ezginci/GoodPlace.git
-
Complete Firebase project setup for both Android & iOS platforms by going to the Firebase console.
-
For Android, replace your google-services.json file with an existing file.
android -> app -> google-services.json
-
For running on iOS, you have to do some configurations from Xcode. Follow the official iOS setup guide.
-
Create a .env file in the root of your project and add your OpenAI API keys and endpoint URL:
API_KEY=your_api_key_here API_URL=https://your-endpoint-here
-
Get Flutter packages:
flutter pub get
-
Run the app:
flutter run
Thanks for taking the time to read through this README! π¦ΈββοΈπ¦ΈββοΈ
Feel free to dive into the code, break things, fix things, and have fun. If you encounter any bugs or just want to share your thoughts, donβt hesitate to reach out.βπ»
Happy coding and good luck with your habit tracking adventures!
This project is licensed under the MIT License - see the LICENSE file for details.