Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Hive Task Manager App

Task Manager App Icon

Flutter Dart Hive License

πŸ“‹ Overview

A sophisticated Flutter-based Task Management Application built with modern architecture patterns and best practices. This app demonstrates advanced Flutter development skills, clean architecture implementation, and efficient local data persistence using Hive database.

✨ Key Features

  • πŸ“ Complete CRUD Operations - Create, Read, Update, and Delete tasks seamlessly
  • 🎯 Priority Management - Three-tier priority system (High, Medium, Low) with visual indicators
  • πŸ“… Date & Time Management - Intuitive date/time pickers with formatted display
  • βœ… Task Completion Tracking - Visual completion status with animated transitions
  • πŸ—‘οΈ Smart Deletion - Swipe-to-delete functionality with confirmation dialogs
  • 🎨 Modern UI/UX - Beautiful animations, gradients, and responsive design
  • πŸ’Ύ Local Data Persistence - Fast and reliable Hive database integration
  • πŸ”„ Real-time Updates - Reactive UI with ValueListenableBuilder pattern

πŸ—οΈ Architecture & Technical Excellence

Clean Architecture Implementation

lib/
β”œβ”€β”€ πŸ“ data/           # Data Layer - Hive Database Operations
β”œβ”€β”€ πŸ“ models/         # Domain Models with Hive Annotations
β”œβ”€β”€ πŸ“ utils/          # Utility Classes (Colors, Strings, Constants)
β”œβ”€β”€ πŸ“ view/           # Presentation Layer
β”‚   β”œβ”€β”€ πŸ“ home/       # Home Screen & Widgets
β”‚   └── πŸ“ tasks/      # Task Creation/Editing Screens
└── main.dart          # App Entry Point with Dependency Injection

Advanced Flutter Patterns

🎯 State Management

  • InheritedWidget Pattern for dependency injection
  • ValueListenableBuilder for reactive UI updates
  • Custom BaseWidget for global state access

πŸ—„οΈ Data Persistence

  • Hive Database for lightweight, fast local storage
  • Type-safe Adapters with code generation
  • Automatic data cleanup (removes tasks from previous days)

🎨 UI/UX Excellence

  • Custom Theme System with comprehensive text themes
  • Animated Transitions using animate_do package
  • Lottie Animations for empty states
  • Material Design 3 principles
  • Responsive Layout with proper constraints

πŸ› οΈ Technical Stack

Core Technologies

  • Flutter 3.6.1+ - Cross-platform UI framework
  • Dart - Programming language
  • Hive 1.1.0 - Lightweight NoSQL database

Key Dependencies

dependencies:
  hive_flutter: ^1.1.0          # Local database
  uuid: ^3.0.5                  # Unique ID generation
  intl: ^0.17.0                 # Internationalization
  animate_do: ^2.1.0            # Smooth animations
  lottie: ^1.4.0                # Vector animations
  flutter_datetime_picker_plus: ^2.1.0  # Date/time selection
  flutter_beautiful_popup: ^1.7.0       # Custom dialogs
  panara_dialogs: ^0.1.2        # Beautiful dialog system
  ftoast: ^2.0.0                # Toast notifications

Development Tools

  • build_runner - Code generation
  • hive_generator - Hive adapter generation
  • flutter_lints - Code quality enforcement

πŸš€ Getting Started

Prerequisites

  • Flutter SDK 3.6.1 or higher
  • Dart SDK
  • Android Studio / VS Code with Flutter extensions

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/hive-task-manager-app.git
    cd hive-task-manager-app
  2. Install dependencies

    flutter pub get
  3. Generate Hive adapters

    flutter packages pub run build_runner build
  4. Run the application

    flutter run

🎯 Key Implementation Highlights

1. Advanced Data Model

@HiveType(typeId: 0)
class Task extends HiveObject {
  @HiveField(0) final String id;
  @HiveField(1) String title;
  @HiveField(2) String subtitle;
  @HiveField(3) DateTime createdAtTime;
  @HiveField(4) DateTime createdAtDate;
  @HiveField(5) bool isCompleted;
  @HiveField(6) int priority;
  
  factory Task.create({...}) => Task(
    id: const Uuid().v1(),
    // ... other parameters
  );
}

2. Clean Data Layer

class HiveDataStore {
  static const boxName = "tasksBox";
  final Box<Task> box = Hive.box<Task>(boxName);
  
  Future<void> addTask({required Task task}) async {
    await box.put(task.id, task);
  }
  
  ValueListenable<Box<Task>> listenToTask() {
    return box.listenable();
  }
}

3. Reactive UI Pattern

ValueListenableBuilder(
  valueListenable: base.dataStore.listenToTask(),
  builder: (ctx, Box<Task> box, Widget? child) {
    var tasks = box.values.toList();
    // UI updates automatically when data changes
  }
)

4. Custom Theme System

theme: ThemeData(
  textTheme: const TextTheme(
    displayLarge: TextStyle(color: Colors.black, fontSize: 45),
    titleMedium: TextStyle(color: Colors.grey, fontSize: 16),
    // ... comprehensive text theme
  ),
)

πŸ§ͺ Testing

Run the test suite:

flutter test

πŸ“¦ Build & Deployment

Android APK

flutter build apk --release

iOS

flutter build ios --release

🎨 Design System

Color Palette

  • Primary: #4568dc (Blue)
  • Secondary: #b06ab3 (Purple)
  • Priority Colors:
    • High: Red (#E53935)
    • Medium: Orange (#FB8C00)
    • Low: Green (#43A047)

Typography

  • Comprehensive text theme with 8 different text styles
  • Consistent font weights and sizes
  • Proper color contrast ratios

πŸ”§ Configuration

App Icon

The app includes a custom launcher icon configured in pubspec.yaml:

flutter_icons:
  android: true
  ios: true
  image_path: "assets/icon/app_icon.png"

Assets Structure

assets/
β”œβ”€β”€ icon/          # App launcher icons
β”œβ”€β”€ img/           # Screenshots and images
└── lottie/        # Animation files

πŸš€ Performance Optimizations

  • Efficient List Rendering with ListView.builder
  • Memory Management with proper controller disposal
  • Optimized Animations using AnimatedContainer
  • Lazy Loading for better performance
  • Automatic Data Cleanup to prevent storage bloat

🎯 Skills Demonstrated

Flutter Expertise

  • βœ… Advanced Widget Composition
  • βœ… Custom State Management
  • βœ… Reactive Programming Patterns
  • βœ… Material Design Implementation
  • βœ… Animation & Transition Design
  • βœ… Performance Optimization

Architecture & Design

  • βœ… Clean Architecture Principles
  • βœ… Separation of Concerns
  • βœ… Dependency Injection
  • βœ… SOLID Principles
  • βœ… Code Organization & Structure

Data Management

  • βœ… Local Database Integration
  • βœ… Type-safe Data Models
  • βœ… CRUD Operations
  • βœ… Data Validation
  • βœ… Error Handling

UI/UX Design

  • βœ… Modern Material Design
  • βœ… Responsive Layout Design
  • βœ… Accessibility Considerations
  • βœ… User Experience Optimization
  • βœ… Visual Feedback Systems

🀝 Contributing

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

πŸ“„ License

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

⭐ Star this repository if you found it helpful!

Made with ❀️ using Flutter

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages