GoalFlow is a cross-platform mobile application developed with .NET MAUI, designed to help users set goals, track habits, and monitor their personal progress through a gamified system.
The project demonstrates a complete mobile solution featuring local data persistence, REST API integration, and a clean, user-friendly interface.
- Goal Types: Support for various categories: Finance 💰, Education 🎓, Health 💪, and Personal 🧘.
- Smart Frequency System: Goals can be set as Daily, Weekly, Monthly, or One-time (by Date).
- Smart "To-Do" Filtering: The app intelligently filters tasks for the current day.
- Example: If a "Weekly" goal is already achieved for the current week, it disappears from the daily view until the next week starts.
The application integrates 3 external REST APIs to provide real-time utilities:
- Weather Info: Real-time weather updates for any city (supports Cyrillic input) via OpenWeatherMap API.
- Currency Converter: Live exchange rates (e.g., USD/EUR to BGN) using Open Exchange Rates API.
- Daily Motivation: Fetches random inspirational quotes via DummyJSON.
- No SQL Database required: Uses a lightweight, file-based approach suitable for personal mobile apps.
- Implementation: Custom
DataServiceutilizingSystem.Text.Jsonfor serialization and deserialization. - Technical Highlight: Handles complex object cycles (Goal <-> Achievement relationships) using
ReferenceHandler.IgnoreCycles.
- Points System: Users earn points (XP) for every completed goal.
- History: Detailed log of all achievements with timestamps.
- Visual Feedback: Interactive UI elements to celebrate progress.
- Design: Custom "Natural" theme (Green/White palette) for a calming user experience.
- Architecture: Implements Dependency Injection (DI) for services (
ApiService,DataService) and Pages withinMauiProgram.cs. - MVVM Pattern: Separation of logic and UI using Data Binding (
ObservableCollection) and Command parameters.
- Framework: .NET MAUI (.NET 8)
- Language: C#
- Data Storage: Local File System (JSON)
- Networking: HttpClient (REST API)
- Tools: Visual Studio 2022, Android Emulator / Windows Machine
- Clone the repository:
git clone [https://github.com/stoyantsiparov/GoalFlow-App.git](https://github.com/stoyantsiparov/GoalFlow-App.git)
- Open the project:
Open
GoalFlowApp.slnin Visual Studio 2022. - Restore Dependencies:
Visual Studio should automatically restore NuGet packages. If not, run:
dotnet restore
- Run:
Select your target (e.g., Windows Machine or Android Emulator) and press
F5. Note: No database setup is required. The app will automatically create the necessary JSON data files on the first launch.