Skip to content

A Flutter application to manage tasks efficiently with user authentication, task CRUD operations, pagination, robust state management, local storage, and comprehensive unit tests.

Notifications You must be signed in to change notification settings

mahmoodhamdi/task_manager_app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task Manager App

Task Manager App is an open-source Flutter application designed to help users manage their tasks efficiently and collaboratively. The app includes robust features such as user authentication, task CRUD operations, real-time updates across devices, calendar integration, and comprehensive state management. It is designed to be free and ad-free, ensuring a seamless user experience without distractions. "The app is currently in progress and not complete yet."

🌟 Features Overview

  • 🔄 CI/CD Setup
    Integrated CI/CD pipeline using GitHub Actions and Fastlane for automated builds and deployments.

  • 🎨 Flavors
    Utilizes flavors to manage different environments such as Development and Production.

  • 🔑 User Authentication
    Secure user login using Username and Password, and various authentication methods including Firebase and Google.

  • ✏️ Task Management
    Create, read, update, and delete tasks seamlessly.

  • 🔄 Pagination
    Efficiently fetch tasks using pagination.

  • 🔄 State Management
    Implemented using Bloc for optimal performance.

  • đź’ľ Local Storage
    Persist tasks locally using shared preferences or SQLite.

  • 🧪 Unit Tests
    Comprehensive tests covering critical functionalities.

  • ⚙️ Settings
    Manage user preferences and application settings.

  • đź“© Notifications
    Handle notifications and alerts for users.

  • đź“ť Onboarding
    Guide users through the app features with an interactive onboarding experience.

  • đź”— Calendar Integration
    Link tasks to calendars for better schedule management.

  • 🔄 Real-Time Updates
    Sync tasks in real-time across multiple devices.

  • đź“Š Advanced Analytics
    Provide insights and analytics on task completion and productivity.

Key Features

CI/CD Setup

  • GitHub Actions: Automates continuous integration and deployment pipelines.
  • Fastlane Integration: Automates build, testing, and release processes for different environments.
  • Flavors: Configures distinct app variants for various deployment environments.

User Authentication

  • User registration using email and password.
  • User login using email and password.
  • User logout.
  • User profile management.
  • User authentication using Firebase.
  • User authentication using Google.
  • User authentication using Apple.
  • User authentication using Microsoft.
  • Two-Factor Authentication: Enhance security with two-factor authentication.

Task Management

  • CRUD operations for tasks (Create, Read, Update, Delete).
  • Task prioritization (High, Medium, Low).
  • Task categorization.
  • Subtasks management.
  • Task due dates and reminders.
  • Task status tracking (To Do, In Progress, Done).
  • View Tasks: Display a list of tasks with options to edit and delete.
  • Add Tasks: Add new tasks to the list.
  • Task Details: View and edit task details.
  • Task Filters: Filter tasks by date, category, and status.
  • Bulk Actions: Perform bulk actions on multiple tasks, such as marking them as complete or deleting them.

Pagination

  • Efficiently fetch tasks in batches using pagination.
  • Scrollable task list with lazy loading.
  • Infinite scrolling.

State Management

  • State management implemented using Bloc.
  • Centralized state management for consistency.
  • Real-time state updates.

Local Storage

  • Persist tasks locally using Flutter's shared preferences or SQLite.
  • Offline access to tasks.
  • Synchronization with cloud storage.

Unit Tests

  • Comprehensive unit tests ensuring app functionality and stability.
  • Mocking and stubbing for isolated tests.
  • Continuous integration with test coverage reporting.

Settings

  • Manage user preferences and application settings.
  • Theme customization (Light/Dark mode).
  • Notification preferences.
  • Account management.

Notifications

  • Handle notifications and alerts for users.
  • Push notifications for task reminders.
  • In-app notifications for real-time updates.
  • Email notifications.

Onboarding

  • Interactive Onboarding: Guide users through the app features with an engaging and informative onboarding experience.
  • Page View and Dots Indicator: Smooth transitions and visual indicators for better user orientation during onboarding.

Calendar Integration

  • Link to Calendars: Sync tasks with Google Calendar, Outlook, and other calendar apps for seamless schedule management.
  • Calendar View: View tasks in a calendar format.

Real-Time Updates

  • Multi-Device Sync: Sync tasks in real-time across multiple devices.
  • Collaborative Tasks: Real-time collaboration on tasks with multiple users.

Advanced Analytics

  • Productivity Insights: Detailed analytics on task completion and productivity trends.
  • Reports: Generate reports on task performance over time.

Search and Filter

  • Search Tasks: Search for tasks using keywords.
  • Filter Tasks: Apply filters to narrow down tasks by date, category, and status.
  • Sort Tasks: Sort tasks by different criteria.

Collaboration

  • Assign Tasks: Assign tasks to team members.
  • Comments: Add and view comments on tasks.
  • Real-Time Collaboration: Collaborate on tasks with real-time updates.

Time Tracking

  • Pomodoro Timer: Use a Pomodoro timer to manage time spent on tasks.
  • Log Time: Record the time spent on tasks.
  • Time Reports: Generate reports on time spent on tasks.

Integration with Other Services

  • Project Management Tools: Sync tasks with tools like Trello and Asana.
  • Note-Taking Integration: Integrate with Evernote and OneNote for task notes.
  • Communication Tools: Connect with Slack and Microsoft Teams for task updates.

Themes and Customization

  • Custom Themes: Customize the app theme and color scheme.
  • Home Screen Widgets: Add widgets to the home screen.
  • Custom Task Views: Choose different views such as list, Kanban, and calendar.

Analytics and Reporting

  • Generate Reports: Create reports on task completion, time tracking, and productivity metrics.
  • Export Reports: Export reports in formats such as PDF and Excel.
  • Productivity Insights: Get recommendations based on task performance.

Profile Management

  • User Profile: View and update user profile information.
  • Change Password: Update user password.
  • Account Settings: Manage account-related settings.

Error/Message Dialog

  • Error Handling: Display error messages for failed actions.
  • Confirmation Dialogs: Show confirmation dialogs for critical actions.
  • Info Messages: Provide informational messages to users.

Data Backup and Restore

  • Backup Data: Backup user data to cloud storage.
  • Restore Data: Restore data from backups.
  • Scheduled Backups: Schedule regular backups.

User Activity Log

  • View Activity Log: Display a log of user activities.
  • Filter Activities: Filter activities by date and type.
  • Export Log: Export activity logs for review.

Multi-language Support

  • Language Selection: Choose from multiple languages for the app interface.
  • Localized Content: Provide content in the selected language.

Dark Mode

  • Enable Dark Mode: Switch to dark mode for better visibility in low light.
  • Schedule Dark Mode: Automatically switch to dark mode based on the time of day.

Accessibility Settings

  • Text Size: Adjust text size for better readability.
  • High Contrast Mode: Enable high contrast mode for better visibility.
  • Screen Reader Support: Support screen readers for visually impaired users.

Additional Key Features

  • Access and Manage Tasks Offline: Access and manage tasks offline with automatic sync when reconnected.
  • Performance Optimization: Optimize app performance for quick loading times and smooth operation.
  • Data Export and Import:
    • Data Import: Import tasks from CSV, Excel, or other task management tools.
    • Data Export: Export tasks and reports to various formats (CSV, Excel, PDF).
  • Voice Notes: Record and attach voice notes to tasks.
  • Two-Factor Authentication: Enhance security with two-factor authentication.
  • Bulk Actions: Perform bulk actions on multiple tasks, such as marking them as complete or deleting them.

Contributing

We welcome contributions to the Task Manager App! If you would like to contribute, please follow these guidelines:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Make your changes and commit them (git commit -m 'Add some feature').
  4. Push to the branch (git push origin feature-branch).
  5. Create a new Pull Request.

Contact

If you have any questions or suggestions, feel free to open an issue or contact us directly.

Happy coding!

About

A Flutter application to manage tasks efficiently with user authentication, task CRUD operations, pagination, robust state management, local storage, and comprehensive unit tests.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published