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.

Comments
  • 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
  • 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
  • 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
  • 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
  • Settings and correction

    Settings and correction

    • lib\pages\about: correction link git hub and add settings part

    image

    • change dependencies of project to be up to date

    I did this work as part of a student project so feel free to accept it or not.

    opened by BNouailhac 1
  • 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
  • Adaptive design

    Adaptive design

    • [x] Make Drawer Adaptive on Home Page
    • [x] On click of date filter tasks
    • [x] Adaptive about us page
    • [x] Adaptive create task page
    • [x] Adaptive completed task page
    • [x] Maintain Drawer selection on layout change. Currently changing layout changes reset state to inbox.
    • [x] Stream emitting filter and task multiple times issue.
    • [x] Adaptive Text size and buttons.
    • [x] Adaptive Add label and project page
    • [x] Refactor structure.
    • [x] Fast type in keyboard in edit text issue.
    • [x] Swipe to dismiss go outside scafold.
    opened by burhanrashid52 0
  • Edit and Delete Label and Projects

    Edit and Delete Label and Projects

    • [ ] Allow and ability to delete projects and labels. This will show a warning message before deleting. This will also delete tasks by cascade operation.
    • [ ] Rename label name and color.
    • [ ] Rename project name and color
    good first issue 
    opened by burhanrashid52 0
  • want to contribute

    want to contribute

    Hello, Myself Siyona Lodha! I wanted to contribute to your project for my college open source lab. Can you please assign me some tasks and give me an opportunity to become a contributor?

    Thank you.

    opened by SiyonaL 1
  • 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
  • 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
Releases(v.1.0.1)
Owner
Burhanuddin Rashid
Software Engineer, Open Source enthusiast, Google Developer Expert in Flutter
Burhanuddin Rashid
This app is a minimal TodoList app that functions like a whiteboard. You can add new tasks, keep track of your tasks to make your day more productive, and then delete it after it is done.

My First Mobile App _ Minimal TodoList Flutter A new Flutter project. Getting Started This project is a starting point for a Flutter application. A fe

null 0 Nov 23, 2021
I did a task manager which has abilities like (priority,sort,daily,weekly,monthly,profile screen,user auth)

task_manager A task manager app by Flutter. Getting Started This is a task manager app which you can manage your daily/weekly/monthly tasks. Users can

Yusuf Erarslan 2 Jan 12, 2022
A flutter widget that show the camera stream and allow ML vision recognition on it, it allow you to detect barcodes, labels, text, faces...

Flutter Camera Ml Vision A Flutter package for iOS and Android to show a preview of the camera and detect things with Firebase ML Vision. Installation

Rushio Consulting 257 Jan 2, 2023
Utility Manager Flutter Application is made with Flutter and Supabase which allows user to add task, set remainder to the task, set color to separate tasks and it allows to add URL with URL's informations.

Utility Manager Flutter Application! Utility Manager Flutter Application is made with Flutter and Supabase which allows user to add task, set remainde

Kathirvel Chandrasekaran 6 Jan 6, 2022
Todo-App - Flutter Todo App using Bloc, Sqflite, and shared preferences

Todo App A new Flutter application. Getting Started Flutter application using Bl

Haitham Ahmed 11 Nov 8, 2022
A task manager app made with flutter where you can mark your tasks for specific days and keep your life organized!

task_manager_app A task manager app made with flutter where you can mark your tasks for specific days and keep your life organized! Getting Started Th

null 2 Sep 1, 2021
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 355 Dec 24, 2022
Using weather application and get weather information daily and daily

Aris Weather Getting Started $ git clone https://github.com/ariscybertech/aris_weather.git $ flutter packages get Run the application and enjoy ?? ☺️

Behruz Hurramov 4 Jan 17, 2022
Create a simple way to keep track of weekly expenses with flutter

Expenses app The purpose of this app is to create a simple way to keep track of weekly expenses UI Getting Started This project is a starting point fo

Murilo Benassi 2 Jul 26, 2022
About This is Personal Expenses Planner. You can add your expenses in to the app and manage your transaction. and you can see How much did you spend on which day. I developed this project using flutter.

expense_planner A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started

Darshit Rudani 5 Jul 6, 2022
this app is allowing users to track expenses like accommodation, meal, travel expense, office supplies and other daily expenses.

expanse_manager A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started

null 0 Dec 25, 2021
The ultimate baby monitor! This mobile app helps new parents keep track of all their newborn baby's needs, milestones, and reminders in one place!

New Parent The ultimate baby monitor! This mobile app helps new parents keep track of all their newborn baby's needs, milestones, and reminders in one

ACM Projects 6 Jun 22, 2022
Keep track of coding contests on various online judges.

Code Calendar keep an eye on active contests on various online judges and add them as an event to your calendar. Install Flutter SDK throught Android

null 2 Nov 15, 2022
A app made with Flutter, which allows user to lookup time of any major city in the world. The UI also changes its background according to the time.

first_flutter_project A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you st

Laksh Mittal 0 Oct 31, 2021
A simple todo app for keeping track of complete and incomplete tasks

bloc_todo_list A simple todo app built using bloc architecture and state management Getting Started This project is a starting point for a Flutter app

Olusesi Boluwatife Barry 0 Nov 29, 2021
Flutter ShopApp, you can see products and their prices, categories and their products, search for a product, add to favorite, add to cart, sign in and sign up.

shop_app_2 A new Flutter application. Getting Started This project is a starting point for a Flutter application. A few resources to get you started i

Muhammed Rezk Rajab 10 Aug 7, 2022
Todo app - an application maintaining user's todo list. Made to learn state management

todo_app A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this

Lokesh Ghule 1 Mar 15, 2022
simple Demo bloc Pattern in StateManagment in flutter

Weather Fake App A new Flutter application. Getting Started This project is a starting point for a Bloc Pattern in Flutter. This Simple Demo for bloc

Essam Mohamed 1 Oct 12, 2021
Neo ToDo - Beautiful neumorphism style todo list

Neo ToDo - Beautiful neumorphism style todo list • Neomorphism style. • Categories of tasks. • Beautiful animations. • Dark theme. • Font Awesome icon

Alexey Z 87 Apr 30, 2022