Skip to content

Repository files navigation

Progress Pals 🚀

Stop quitting. Start sharing. Progress Pals is a social habit-tracking application built with Flutter and Firebase that leverages accountability to help users stick to their goals.

App Store Portfolio


📱 About the Project

Progress Pals was born out of a simple idea: habits are easier to keep when you aren't doing them alone. As a student at UNISA, I developed this app to solve the "silent quitter" problem by allowing a friend to see and cheer each other's progress in real-time.

Key Features

  • Social Accountability: Add a friend via email and share specific habits with them.
  • Visual Analytics: Custom-built Bezier curve charts to visualize completion streaks over time.
  • Hybrid Data Architecture: Seamlessly syncs between a local SQLite database and Firebase Cloud Firestore.
  • Privacy First: Full user control with secure Firebase Authentication and a mandatory Account Deletion feature.
  • Themed Experience: Full support for Light and Dark modes.

🛠 Tech Stack

  • Frontend: Flutter (Dart)
  • Backend: Firebase (Auth, Firestore, Cloud Functions/Extensions)
  • Local Storage: sqflite (SQLite for Flutter)
  • State Management: Provider
  • Architecture: Clean Architecture with MVVM (Model-View-ViewModel)

🏗 Project Structure

The project follows a modular structure to ensure maintainability and scalability:

└── lib
    └── core
        └── theme
            ├── app_colors.dart
            ├── app_theme.dart
            ├── theme_extensions.dart
            ├── theme_provider.dart
    └── data
        └── datasources
            └── local
                ├── database_service.dart
            └── remote
                ├── firebase_service.dart
        └── models
            ├── friend_model.dart
            ├── habit_model.dart
        └── repositories
            ├── habit_repository.dart
    └── presentation
        └── pages
            └── analytics
                ├── analytics_page.dart
                ├── friend_analytics_page.dart
            └── auth
                ├── welcome_page.dart
            └── friends
                ├── add_friend.dart
                ├── friends_page.dart
            └── habit
                ├── add_habit.dart
                ├── habit_detail_page.dart
            └── home
                ├── home_content.dart
                ├── home_page.dart
            └── profile
                ├── profile_page.dart
        └── viewmodels
            ├── friends_viewmodel.dart
            ├── home_viewmodel.dart
        └── widgets
            ├── app_button.dart
            ├── date_bubble.dart
            ├── habit_card.dart
    ├── app_router.dart
    ├── app_state.dart
    ├── firebase_options.dart
    └── main.dart

🚀 Getting Started Prerequisites Flutter SDK (3.x or higher)

CocoaPods (for iOS builds)

A Firebase Project

Installation Clone the repo:

git clone [https://github.com/your-username/progress-pals.git](https://github.com/your-username/progress-pals.git)
Install dependencies:
flutter pub get

Configure Firebase:

Add your google-services.json (Android) and GoogleService-Info.plist (iOS).

Run the app:

flutter run

📄 Privacy & Support

Support: lesetja.dev/support

Privacy Policy: lesetja.dev/privacy

👨‍💻 Developer Lesetja Student at UNISA, South Africa

Portfolio: lesetja.dev

LinkedIn: Lesetja

Email: progresspals@lesetja.dev

📜 License Distributed under the MIT License. See LICENSE for more information.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages