Skip to content

chingalo-family/task-flow

Repository files navigation

Task Flow

"Collaborate and Achieve"

A modern, cross-platform task management and team collaboration application built with Flutter.

Flutter Dart License

✨ Features

  • Task Management: Create, organize, and track tasks with ease
  • 🎯 Prioritization: High, Medium, and Low priority levels
  • 👥 Team Collaboration: Create teams and work together
  • 📊 Progress Tracking: Subtasks and visual progress indicators
  • 🔔 Smart Notifications: Stay updated on task changes
  • 💾 Offline-First: Work anywhere with local ObjectBox database
  • 🎨 Beautiful UI: Modern dark theme with Material Design 3
  • 📱 Cross-Platform: iOS, Android, Web, macOS, Linux, Windows

🚀 Quick Start

Installation

  1. Clone the repository

    git clone https://github.com/chingalo-family/task-flow.git
    cd task-flow
  2. Install dependencies

    flutter pub get
  3. Generate ObjectBox files

    dart run build_runner build --delete-conflicting-outputs
  4. Run tests (optional but recommended)

    flutter test
    # Or use the test runner script
    ./run_tests.sh
  5. Run the app

    flutter run

For detailed setup instructions, see the Getting Started Guide.

📚 Documentation

Comprehensive documentation is available in the docs/ directory:

🌐 Related Resources

🎯 Why Task Flow?

Task Flow helps you:

  • 📋 Stay organized with intuitive task management
  • ⏰ Never miss deadlines with due dates and reminders
  • 🤝 Collaborate seamlessly with your team
  • 📈 Track progress with visual indicators
  • 🌐 Work anywhere with offline support

🛠️ Technology Stack

  • Framework: Flutter 3.10.4+
  • Language: Dart 3.10.4+
  • Database: ObjectBox 5.1.0
  • State Management: Provider 6.1.5+1
  • UI: Material Design 3
  • Security: flutter_secure_storage

See Technology Stack for more details.

🤝 Contributing

We welcome contributions! Here's how you can help:

  1. 🐛 Report Bugs: Open an issue
  2. 💡 Suggest Features: Share your ideas
  3. 💻 Submit PRs: Fix bugs or add features
  4. 📖 Improve Docs: Help make documentation better

See the Contributing Guide for detailed instructions.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

Built with ❤️ using Flutter and open-source technologies.

📞 Support


🔧 Developer Notes

Testing

Task Flow includes a comprehensive test suite with 196 tests covering models, utilities, state management, and widgets.

Quick Test Commands:

flutter test                    # Run all tests
flutter test --coverage         # Run with coverage report
./run_tests.sh                  # Use test runner script

Test Coverage:

  • 87 Model Tests: All data models (Task, User, Team, Notification, etc.)
  • 63 Utility Tests: Validation, formatting, and helper functions
  • 66 State Tests: Complete state management coverage
  • 4 Widget Tests: Core widget initialization

For detailed testing documentation, see test/README.md.

ObjectBox Setup

Task Flow uses ObjectBox for local database storage. You must generate the ObjectBox files before running the app:

  1. Install dependencies:

    flutter pub get
  2. Generate ObjectBox code:

    dart run build_runner build --delete-conflicting-outputs

    The generated lib/objectbox.g.dart file is required for the app to run.

  3. Run the app:

    flutter run

macOS Users - Important!

If you encounter "Operation not permitted" errors on macOS, use the clean build script:

chmod +x macos_clean_build.sh
./macos_clean_build.sh
flutter run -d macos

This ensures Xcode properly applies the entitlements that allow ObjectBox to work. See macOS Setup Guide for detailed troubleshooting.

Email Configuration (Optional)

For email notifications:

  1. Copy example configuration:

    cp lib/core/constants/email_connection.example.dart lib/core/constants/email_connection.dart
  2. Edit with your credentials (⚠️ Never commit real credentials!)

API Configuration (Optional)

For connecting to the Task Flow API backend:

  1. Copy example configuration:

    cp lib/core/constants/api_config.example.dart lib/core/constants/api_config.dart
  2. Edit the configuration with your API details:

    • Set baseUrl to your API domain (e.g., vmi2503861.contaboserver.net)
    • Set apiPath to your API path (default: /task-flow-api)

⚠️ Security Warning: Never commit real API credentials to version control. The .gitignore file is configured to exclude this file.

See Getting Started for complete setup instructions.


Ready to boost your productivity? Start with the Quick Start Guide!

About

Task manager app using flutter

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •