Skip to content

versa-dev/Task-Manager-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Task Master - Complete Flutter Learning Project

A comprehensive Flutter Windows desktop application that demonstrates ALL major Flutter concepts in one project. Perfect for beginners who want to jump to high-level Flutter development.

🎯 Project Overview

This is a fully functional Task Management application with:

  • βœ… Local data persistence
  • βœ… State management
  • βœ… Beautiful UI with animations
  • βœ… Form handling and validation
  • βœ… Theme switching (Light/Dark mode)
  • βœ… Search and filtering
  • βœ… CRUD operations

πŸ“š Flutter Concepts Covered

1. Widgets

  • StatelessWidget (main.dart, statistics_card.dart)
  • StatefulWidget (home_screen.dart, add_task_screen.dart)
  • Custom Widgets (All files in widgets/ folder)

2. Layouts

  • Column & Row (home_screen.dart)
  • ListView.builder (task_list.dart)
  • GridView (statistics_card.dart)
  • Wrap (task_item.dart)
  • Expanded & Flexible (Throughout the app)

3. State Management

  • Provider Pattern (providers/task_provider.dart)
  • ChangeNotifier (providers/theme_provider.dart)
  • Consumer (main.dart, task_list.dart)
  • Provider.of (home_screen.dart)

4. Navigation

  • Navigator.push (home_screen.dart)
  • Navigator.pop (add_task_screen.dart)
  • MaterialPageRoute (Multiple screens)
  • Drawer Navigation (filter_drawer.dart)

5. Forms & Input

  • Form & GlobalKey (add_task_screen.dart)
  • TextFormField with validation
  • DropdownButtonFormField (Priority & Category selection)
  • Checkbox (task_item.dart)
  • TextField with controller (home_screen.dart)

6. Data Persistence

  • SharedPreferences (services/storage_service.dart)
  • JSON Serialization (models/task.dart)
  • Code Generation (task.g.dart)

7. Animations

  • AnimationController (home_screen.dart, task_item.dart)
  • ScaleTransition (task_item.dart)
  • CurvedAnimation (Multiple files)
  • LinearProgressIndicator (statistics_card.dart)

8. Material Design

  • MaterialApp (main.dart)
  • Scaffold (All screens)
  • AppBar (home_screen.dart)
  • Card (task_item.dart)
  • Chip (add_task_screen.dart)
  • FloatingActionButton (home_screen.dart)

9. Theming

  • ThemeData (main.dart)
  • Dark/Light Mode (providers/theme_provider.dart)
  • ColorScheme (main.dart)
  • Theme.of(context) (Throughout the app)

10. Gestures & Interactions

  • InkWell (task_item.dart)
  • Dismissible (Swipe to delete in task_list.dart)
  • GestureDetector concepts
  • onTap, onPressed callbacks

11. Dialogs & Overlays

  • AlertDialog (add_task_screen.dart, settings_screen.dart)
  • showDialog (Multiple files)
  • DatePicker (add_task_screen.dart)
  • SnackBar (add_task_screen.dart)

12. Async Programming

  • async/await (providers/task_provider.dart)
  • Future (services/storage_service.dart)
  • FutureBuilder concepts

13. Data Models

  • Classes (models/task.dart)
  • Enums (TaskPriority, TaskCategory)
  • Constructors (Named parameters)
  • copyWith pattern (Immutability)
  • Getters (Computed properties)

14. Utilities

  • Constants (utils/constants.dart)
  • Extension Methods (String, DateTime extensions)
  • Helper Functions (Color & Icon helpers)

15. Best Practices

  • Project Structure (Organized folders)
  • Separation of Concerns (Models, Views, Providers, Services)
  • Resource Management (dispose() methods)
  • Null Safety (Nullable types with ?)
  • Code Comments (Every file is documented)

πŸš€ Getting Started

Prerequisites

  • Flutter SDK (3.0.0 or higher)
  • Windows 10/11
  • Visual Studio Code or Android Studio

Installation

  1. Navigate to the project:

    cd task_master_app
  2. Get dependencies:

    flutter pub get
  3. Run the app:

    flutter run -d windows

πŸ“– Learning Path

For Absolute Beginners:

  1. Start with main.dart - Understand app entry point
  2. Read models/task.dart - Learn data structures
  3. Study providers/task_provider.dart - Understand state management
  4. Explore screens/home_screen.dart - See how UI is built
  5. Check widgets/ folder - Learn reusable components

For Intermediate Learners:

  1. Study the Provider pattern implementation
  2. Understand JSON serialization in task.dart and task.g.dart
  3. Analyze animation implementations
  4. Review form validation in add_task_screen.dart
  5. Explore local storage in storage_service.dart

For Advanced Learners:

  1. Refactor code to use different state management (Bloc, Riverpod)
  2. Add unit tests and widget tests
  3. Implement additional features (categories, reminders)
  4. Add cloud sync with Firebase
  5. Optimize performance and animations

πŸ“ Project Structure

lib/
β”œβ”€β”€ main.dart                 # App entry point
β”œβ”€β”€ models/                   # Data models
β”‚   β”œβ”€β”€ task.dart            # Task model with JSON serialization
β”‚   └── task.g.dart          # Generated serialization code
β”œβ”€β”€ providers/               # State management
β”‚   β”œβ”€β”€ task_provider.dart   # Task state management
β”‚   └── theme_provider.dart  # Theme state management
β”œβ”€β”€ screens/                 # App screens
β”‚   β”œβ”€β”€ home_screen.dart     # Main screen
β”‚   β”œβ”€β”€ add_task_screen.dart # Add/Edit task screen
β”‚   └── settings_screen.dart # Settings screen
β”œβ”€β”€ widgets/                 # Reusable widgets
β”‚   β”œβ”€β”€ task_list.dart       # Task list with dismissible
β”‚   β”œβ”€β”€ task_item.dart       # Individual task card
β”‚   β”œβ”€β”€ statistics_card.dart # Statistics display
β”‚   └── filter_drawer.dart   # Filter drawer
β”œβ”€β”€ services/                # Business logic
β”‚   └── storage_service.dart # Local storage operations
└── utils/                   # Utilities
    └── constants.dart       # Constants and helpers

🎨 Features

Core Features:

  • βœ… Create, Read, Update, Delete tasks
  • βœ… Mark tasks as complete/incomplete
  • βœ… Set priority (Low, Medium, High)
  • βœ… Categorize tasks (Work, Personal, Shopping, Health, Other)
  • βœ… Add due dates
  • βœ… Add tags to tasks
  • βœ… Search tasks
  • βœ… Filter by category and status
  • βœ… View statistics
  • βœ… Light/Dark theme
  • βœ… Swipe to delete
  • βœ… Data persistence

UI/UX Features:

  • 🎨 Material Design 3
  • πŸŒ“ Dark mode support
  • ✨ Smooth animations
  • πŸ“± Responsive layout
  • 🎯 Intuitive navigation
  • πŸ’« Visual feedback

πŸ”§ Technologies Used

  • Flutter SDK - UI framework
  • Provider - State management
  • SharedPreferences - Local storage
  • json_annotation - JSON serialization
  • Material Design 3 - UI components

πŸ“ Code Comments

Every file in this project contains detailed comments explaining:

  • What each concept is
  • Why it's used
  • How it works
  • Best practices

Look for comments starting with // CONCEPT: to learn specific Flutter concepts.

πŸŽ“ Next Steps

After mastering this project, you can:

  1. Add more features (notifications, recurring tasks, etc.)
  2. Implement backend integration (Firebase, REST API)
  3. Add testing (unit tests, widget tests, integration tests)
  4. Publish to Windows Store
  5. Create mobile versions (Android/iOS)
  6. Add advanced animations and transitions
  7. Implement offline-first architecture

🀝 Contributing

This is a learning project. Feel free to:

  • Add more features
  • Improve documentation
  • Fix bugs
  • Suggest improvements

πŸ“„ License

This project is created for educational purposes. Feel free to use it for learning.

πŸ’‘ Tips for Learning

  1. Read the code line by line - Don't skip comments
  2. Experiment - Change values and see what happens
  3. Break things - Remove code to understand dependencies
  4. Build features - Add your own functionality
  5. Ask questions - Research concepts you don't understand
  6. Practice - Rebuild parts from scratch

🌟 Key Takeaways

By completing this project, you will understand:

  • How Flutter apps are structured
  • How to manage state effectively
  • How to build responsive UIs
  • How to persist data locally
  • How to implement navigation
  • How to handle forms and validation
  • How to create animations
  • How to follow Flutter best practices

Happy Learning! πŸš€

Start with main.dart and follow the code flow. Every line is documented to help you learn!

About

Good starter project for flutter beginners

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors