A Simple Todo app design in Flutter to keep track of your task on daily basis. Its build on BLoC Pattern. You can add a project, labels, and due-date to your task also you can sort your task on the basis of project, label, and dates

Overview

WhatTodo

Codemagic build status License API Uplabs FlutterWeekly AwesomeAndroid Buy Me A Coffee

logo

Life can feel overwhelming. But it doesn’t have to.

A Simple To-do app design in flutter to keep track of your task on daily basis. You can add project, labels and due-date to your tasks

Features

  • Build on BLoC Architecture Pattern
  • Add Projects by specifying a unique color to it
  • Add Labels by specifying a unique color to it
  • Add Task by defining its priority
  • Swipe to delete or complete the task
  • Sorting Task
  • Works offline using Sqflite database

BLoC Diagram

This diagram show case the dependencies to create a feature specific BLoCs.The HomeBloc is independent and used as communication channel between its child widgets.

Widget-BLoC Relationship

This diagram shows that how each widget uses BLoCs.

Project

The app already has a preloaded Inbox project. You can add more projects by clicking add project button on SideDrawer. From material color list you can specify any single color to the project

You can assign only one project to a single task

Labels

You can add multiple labels by clicking add Labels button on SideDrawer. From material color list you can specify any single color to the label

You can assign multiple labels to a single task

Task

You can add task with multiple attributes. You must assign a project to task if not than by default it will be added in Inbox project. Task can have zero or more to label assing to it

Swipe the Task

You can delete a task by swiping left-to-right or your can mark task as completed by swiping right-to-left. You can also undo a completed task by clicking on options menu where it shows the list of all completed tasks there you can swipe right-to-left to undo the completed task

Sorting

You can sort your task with date i.e today and next 7 days and also acoording to project and labels

How to contribute?

What's next?

  • Editiable Project,label and Task
  • Deletable Project and Label
  • Comment/Description in Task
  • Reminder with notification

Questions? 🤔

Hit me on twitter Twitter Medium Facebook

Credits

License

Copyright 2020 Burhanuddin Rashid

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Issues
  • Prepare for null-safety

    Prepare for null-safety

    Description

    Update sample to target new stable release of Flutter. Migrated to android embedding v2.

    Notes

    There is only one blocker for sound null safety migration, that Integration test hasn't been migrated to null safety on stable branch of Flutter. Do you want me to proceed and migrate to unsound null safety?

    opened by AyushBherwani1998 18
  • [Suggestion] New Logo for WhatTodo

    [Suggestion] New Logo for WhatTodo

    Hello @burhanrashid52 , I want to contribute to your project, I want to create a new logo and icon for this application with material design style and it's free. Do you want it?

    enhancement 
    opened by zularizal 7
  • delete label and delete project functionality added

    delete label and delete project functionality added

    I have added delete label and delete project functionality at any time from drawer by clicking delete icon . on pressing delete icon that label or that project can be deleted

    opened by gourav1486 4
  • remove status bar odd color

    remove status bar odd color

    when I open the sidebar , I found that drawer color is not changing the status bar color which is Odd. This was because of there are some default padding of ListView

    Output

    opened by nitishk72 3
  • When run

    When run "flutter run" error!

    Exception in thread "main" java.util.zip.ZipException: error in opening zip file at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.(ZipFile.java:219) at java.util.zip.ZipFile.(ZipFile.java:149) at java.util.zip.ZipFile.(ZipFile.java:163) at org.gradle.wrapper.Install.unzip(Install.java:214) at org.gradle.wrapper.Install.access$600(Install.java:27) at org.gradle.wrapper.Install$1.call(Install.java:74) at org.gradle.wrapper.Install$1.call(Install.java:48) at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65) at org.gradle.wrapper.Install.createDist(Install.java:48) at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)".

    opened by DoubleDa 3
  • line 95 of home.dart - Failed assertion: boolean expression must not be null - isDataChanged

    line 95 of home.dart - Failed assertion: boolean expression must not be null - isDataChanged

    Debugging on iPhone 5s, when I click to add a task, it opens the Add Task route. And when then I press the upper "back" button, on home.dart line 95 (if (isDataChanged) {) It shows "Failed assertion: boolean expression must not be null"

    It seems that you are not using the right way to get the value of "isDataChanged".

    opened by marcelmenezes 2
  • Issue

    Issue

    Event not delete

    opened by jaypatel1998 2
  • Unhandled exception logged when adding a new project

    Unhandled exception logged when adding a new project

    Steps to reproduce: Open side panel Expand Projects sublist Click "Add Project" list entry Create a new project

    The console log displays: E/flutter (26554): [ERROR:flutter/shell/common/shell.cc(184)] Dart Error: Unhandled exception: E/flutter (26554): Bad state: Cannot add new events after calling close E/flutter (26554): #0 _BroadcastStreamController.add (dart:async/broadcast_stream_controller.dart:253:24) E/flutter (26554): #1 _StreamSinkWrapper.add (dart:async/stream_controller.dart:858:13) E/flutter (26554): #2 ProjectBloc._loadProjects. (package:flutter_app/pages/projects/project_bloc.dart:34:31) E/flutter (26554): #3 _RootZone.runUnary (dart:async/zone.dart:1379:54) E/flutter (26554): #4 _FutureListener.handleValue (dart:async/future_impl.dart:129:18) E/flutter (26554): #5 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:642:45) E/flutter (26554): #6 Future._propagateToListeners (dart:async/future_impl.dart:671:32) E/flutter (26554): #7 Future._complete (dart:async/future_impl.dart:476:7) E/flutter (26554): #8 _SyncCompleter.complete (dart:async/future_impl.dart:51:12) E/flutter (26554): #9 _AsyncAwaitCompleter.complete (dart:async/runtime/libasync_patch.dart:28:18) E/flutter (26554): #10 _completeOnAsyncReturn (dart:async/runtime/libasync_patch.dart:295:13) E/flutter (26554): #11 ProjectDB.getProjects (package:flutter_app/pages/projects/project_db.dart) E/flutter (26554): E/flutter (26554): #12 ProjectBloc._loadProjects (package:flutter_app/pages/projects/project_bloc.dart:33:16) E/flutter (26554): #13 ProjectBloc.refresh (package:flutter_app/pages/projects/project_bloc.dart:50:5) E/flutter (26554): #14 ProjectExpansionTileWidget.buildProjects. (package:flutter_app/pages/projects/project_widget.dart:61:21) E/flutter (26554): E/flutter (26554): #15 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:507:14)

    I'm studying this project to learn more about Flutter and using the BLoC pattern. Looking at the onTap() handler (which is somehow causing this exception), it's more complicated than I expected. Can you add some comments about why it's creating a second ProjectBloc object and why it's calling projectBloc.refresh(). IMHO, the point of Flutter and the BLoC pattern was to avoid things like refresh().

    opened by neilweber 1
  • removed english-words dependency

    removed english-words dependency

    Hi. I have removed the english_words dependency from pubspec.yaml

    opened by marvinIsSacul 1
  • fix integration_test package deprecated version.

    fix integration_test package deprecated version.

    please change the

    integration_test

    package in

    pubspec.yaml

    to solve the problem.

    dev_dependencies:
      integration_test:
        sdk: flutter
    
    opened by Hadi719 3
  • Exchangeable backends

    Exchangeable backends

    Hi @burhanrashid52,

    I'm currently in the process of switching from Todoist to org-mode as project management solution. One thing where org-mode is a bit behind is a good-looking UI for Android. There's orgzly and it does its job, but it's far from being intuitive. Now I'm wondering if it would be possible to use WhatTodo as a frontend to org-mode. In order to do that, one would have to hide the current *Database classes behind abstract classes and provide another implementation of those classes using org-mode (potentially based on code from orgro).

    I'm not a 100% how much effort this would be and if I want to invest the effort, but I wanted to ask in advance if this is a direction you could see the project evolving to, i.e. WhatTodo being really nice UI for different "storage mechanisms", with a built-in DB being the default.

    opened by nightscape 4
  • MIgrate to new intigration test

    MIgrate to new intigration test

    • [x] Mockito Fake is breaking the API.
    • [ ] Refactor add labels test to one test.
    opened by burhanrashid52 0
  • More Edge cases test

    More Edge cases test

    Integration Test (Flutter Driver)

    • [ ] Add Task Screen with different project and label selection

    Widget Test

    • [ ] Add Task Screen with different project and label selection
    • [ ] Project and label dialog test.
    • [ ] Completed Screen with Dismissable Row.
    • [ ] Side Drawer Test.

    Unit Test

    • [ ] TaskBloc
    • [ ] AddTaskBloc
    test 
    opened by burhanrashid52 0
  • Search and add location to task feature

    Search and add location to task feature

    Now user can add a location to the task and see the details of the location by clicking on the task map icon. This location attribute will be optional to add. We will use google map library for this feature. Currently, it will work in android and ios only

    enhancement 
    opened by burhanrashid52 0
  • Web or Desktop APP for WhatTodo?

    Web or Desktop APP for WhatTodo?

    Just wondering is there a Web or Desktop App for WhatTodo? Or is it easy to build a web/desktop version?

    Thanks,Xu

    enhancement web desktop 
    opened by xu4wang 1
  • Where you close db?

    Where you close db?

    I don't see nothing for close the db? why? thank you

    opened by juani21 2
Releases(v.1.0.1)
Owner
Burhanuddin Rashid
Software Engineer, Open Source enthusiast, Google Developer Expert in Flutter
Burhanuddin Rashid
Minimalist Flutter Todo App, built using BLoC pattern

Deer Minimalist Todo Planner app built around the idea of efficiency and clean aesthetic. Showcase Development Deer uses BLoC (Business Logic Componen

Aleksander Woźniak 305 Jan 11, 2022
A simple easy to use Flutter DApp , which keeps a track of all your day to day transactions by using Ethereum blockchain in the background which in turn increases your credit score.

Sahayog A simple easy to use Flutter DApp , which keeps a track of all your day to day transactions by using Ethereum blockchain in the background whi

Utkarsh Agarwal 14 Jan 9, 2022
GChat is a chatting application developed using Flutter(Dart) and firebase for 2 users. Trying to Develop an application that does not sell your data with whatsapp rolling out its privacy policy updates.

Gchat - The Chatting Application A Flutter project for chatting. I used Android Studio and you can you any editor of your choice for ex: VS Code, Inte

Sanchaksh Kaul 5 Aug 17, 2021
✄ Managing a Fashion designer's daily routine.

TailorMade Managing a Fashion designer's daily routine Built with ❤︎ by jogboms TailorMade is what actually started out as an experiment with Flutter,

Jeremiah Ogbomo 238 Jan 8, 2022
Flutter basic desktop project. Desktop todo app.

Glory Todo Desktop Basic and Primitive Flutter Desktop Project! Goal My goal is to accept my inexperience without worrying about the plugin shortcomin

Özgür 41 Dec 22, 2021
A personal app to track and manage your expenses.

?? Batua ?? A Personal App to track and manage your expenses! Batua is the best money manager and daily expense tracker to automatically and securely

Pratyush M 39 Jan 9, 2022
An expressive way to effortlessly build design systems in Flutter.

An expressive way to effortlessly build design systems in Flutter. Mix offers primitive building blocks to help developers and designers create beauti

Leo Farias 112 Jan 16, 2022
An animated flutter UI for E-commerce product variant selection / add to cart developed by nonybrighto and designed by Akram Khalid.

Crate & Barrel - Dark Mobile App Concept Animated An animated flutter UI for E-commerce product variant selection / add to cart developed by nonybrigh

Nony Bright O 45 Nov 8, 2021
Flutter ToDo App with Firebase

Taskist Taskist is a ToDo List app for Task Management inspired by the design below The app is using Firebase, you have to configure it from your side

Hugo EXTRAT 738 Jan 14, 2022
𝐂𝐨𝐯 𝐀𝐡𝐞𝐚𝐝 is a mobile application to track and create better Covid-19 route maps for both shop owners and customers

Cov Ahead Cov Ahead is a mobile application where shopkeepers have an app that shows QR code and users can scan this QR code which will automatically

Abhijith Kp 3 May 30, 2021
Create TODO LIST with Get Storage !

todo-list-get-storage Create TODO LIST with Get Storage ! dependencies: flutter: sdk: flutter # The following adds the Cupertino Icons font

Kauê Murakami 9 Oct 26, 2021
Implementing Firebase Authentication with Riverpod following Flutter Domain Driven Development pattern

firebase_auth_flutter_ddd Firebase authentication example with Hooks Riverpod and Freezed following Flutter DDD architecture Getting Started This proj

Python Hub 19 Dec 29, 2021
This is the new version of my Task app "Tasko" which was done in Java. She is now in Flutter for the HotReload and the native Cross-Platform.

tasko_rem The Tasko App is now compatible on iOS, Android and others distribution, because it's made with Flutter ✨ You can now add task, check them o

Scythe 13 Aug 17, 2021
Movie Lib is a mobile application where you can find the movies of your interest. This app provides a collection of movies of different languages according to your interest.

Movie Lib Movie Lib is a mobile application where you can find the movies of your interest. This app provides a collection of movies of different lang

Abhijith Kp 6 Sep 28, 2021
A task manager built with Flutter, Serverless, Postgres, Firebase

Tasky Mobile App A project management mobile app This project is an implementation of a Design i found on uigaints.com by Ashish Dhakal. The Backend w

Etornam Sunu 104 Jan 14, 2022
A project to showcase usage of basic principles to convert any 3D design into a working application using Flutter.

Developing apps with 3D designs in flutter This project is developed to showcase how we can use some basic principles to convert any 3D design into a

Manas Pratap Thakur 23 Jan 8, 2022
Project created to replicate design made by DesignSense 😎

☀️ Weather App ❄️ Project created to replicate design made by DesignSense ?? . Demo: Packages used: flutter_svg: ^0.22.0 sleek_circular_slider: ^2.0.1

Mosart 9 Nov 25, 2021
Build a generative, customized admin for all platforms. Nice to use and nice to extend.

flutter admin kit Build a generative, customized admin for all platforms. Nice to use and nice to extend. Feature highlights: Declarative routing via

smartnuance 17 Dec 18, 2021