Skip to content

Scott-Atkinson/carton_todo_app

Repository files navigation

App Logo

License Version Platform

This Flutter Todo application demonstrates a modern, modular approach to mobile development using the Feature Slice Design pattern. The app allows users to manage todos with different priority levels, types, and deadlines. It features a clean, intuitive UI (kinda) with color-coded todo items, filtering and searching capabilities, and infinite scroll pagination. The architecture employs BLoC for state management, providing a clear separation of concerns between UI, business logic, and data layers. Data persistence is implemented using Hive for offline capability, allowing the app to function even without network connectivity. The app showcases best practices, efficient API usage through local-first data fetching, and responsive design principles.


🚀 Features

  • Feature 1: Display all TODOS in a list view with inifinite scroll.
  • Feature 2: Colour code the TODO based on its TYPE.
  • Feature 3: Search TODOs based on title.
  • Feature 4: Ability to complete a TODO.
  • Feature 5: Supports offline mode, utilizing HIVE for Local Storage.
  • Feature 6: Optimized performance to check Local Storage for data before going to the server.

🛠️ Technologies and Libraries used

  • 🔷 Flutter - UI framework for cross-platform development
  • 🧩 Feature Slice Design - Architectural pattern for organizing code
  • 📦 Hive - Fast, lightweight local database for Flutter
  • 🔄 BLoC Pattern - State management solution
  • 📱 flutter_bloc - Implementation of the BLoC pattern
  • 🌐 HTTP - For API calls and data fetching
  • 🎨 Material Design - UI design language and component library
  • 🔍 Equatable - Simplifies equality comparisons in Dart
  • 💻 Build Runner - Code generation tool
  • 📊 Hive Generator - For generating Hive type adapters
  • 🎯 Dart - Programming language used for Flutter development

🖼️ Screenshots

Home Screen

Home Screen

Home Screen Search

Home Screen

Todo Detail - Urgent Todo

Home Screen

🛠️ Enhancements and Fixes

  • 🖌️ 1: Introduce Theming.
  • 🎨 2: Implement UI Feedback to the User when a Save or Error has occured
  • 🧪 3: Make the tests more meaningful.
  • 🛠️ 4: Fix deprecated warnings in the console.

📦 Installation

Prerequisites

  • Flutter: ^3.7.2
  • Dart: 3.5.3

Steps

  1. Clone the repository:
    git clone https://github.com/Scott-Atkinson/coin_gecko
    run flutter clean
    run flutter pub get
    

Environment Setup

This project uses environment variables for configuration. Follow these steps:

  1. Copy .env.example to a new file called .env
  2. Fill in your API key and other configuration values
  3. Run flutter run

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published