ProTasks, a collaborative task management app

Overview

ProTasks

This is the public repository for ProTasks, a collaborative task management app that I created. You can get the app from here

Highlighted Tools/Packages Used (And why?)

Online Tools

  • Firebase Firestore: I decided to make a hybrid database system which works both offline and online. For the online database, I decided to use Firestore, mostly because I had prior experience with it. Plus, pub.dev has all the necessary packages for this (which are also kept up to date). I know firestore data can also be persistent, but I wanted my app to work even if it never gets connected to internet. Also it saves database costs.
  • Firestore Rules: This one goes without saying, I didn't want a user to have database admin-like privileges nor I would I like a user with no privilege. Plus, I wanted a database that has atleast has some form of protection against hackers. So I wrote a few rules to do just that.
  • Firebase Authentication: Since I was using Firestore, it seemed most logical to use Firebase Authentication.
  • Firebase Remote Config: Initially I just thought to experiment with this, not knowing how impactful it could be. But after working with it, I was able to grasp the idea behind it. So much so, that now a lot of app's core features are dependent on it.
  • Firebase Cloud Functions: For some aspects of the database, it wasn't possible for a user to able to a make a database change directly. So, I used cloud functions to help the user do exactly that.
  • Dynamic Links: Another one of those adventurous things I wanted to try out. If you have used the app, then in there - logging with email, which sends a mail to you which allows you to login without password. Yeah, that feature is completely based on Dynamic Links.
  • For other tools, you can read through pubspec.yaml file.

Offline Tools

  • BLOC state management: Well honestly speaking, I should have written "Cubits" here. I am a lot comfortable with Cubits than I am with Blocs. As time progresses, I will most probably move to Blocs. Also I have used Hydrated Blocs, as I needed a few state information to persist between app restarts (like sync information, login information, etc).
  • Sembast: Sembast is a offline NOSQL database. I wanted my app to work with/without internet, so I couldn't completely be dependent on Firestore(plus it saves my server costs). I had no prior experience with Sembast, but after going through the documentation, I came to an understanding that it is somewhat similar to Firestore. And obviously, if I plan on using 2 databases(online and offline), I must be able to convert data between those. So this became a more logical choice.
  • Awesome Notifications: Local notifications is the area that I had no idea how to implement before starting this project. I have seen and infact used Cloud Messaging before for notifications. But I knew that it was not going to be of help here as the app is also supposed to be able to work completely offline. I initially used flutter_local_notifications as that package is the most popular one. But then I decided to show action buttons as well on the notification, which I couldn't find a way to do in that. So I started to look around and found Awesome Notifications package, which checked all my requirement checkboxes.
  • For other tools, you can read through pubspec.yaml file.

Salient Features

  • Works Online/Offline: This app works with or without internet. You can create/edit/delete tasks or groups in any case. You will get identical(almost) experience in both cases.
  • Collaborate(or not): This app is mostly driven towards colloboration within a team, allowing team members to create collective tasks, assign users to that tasks, etc. BUT this doesn't mean that users which don't plan on collaborating has no use of this app. I have made a tailored experience for both the use cases.
  • Login(or not): I don't want to force a user to login to use the app. If the user doesn't want to login, that decision is also repected. Registered users get additional features like collaboration, cloud backup, etc. I have implemented a logic so that a user which initially decided not to log in doesn't risk losing data, if they decide to register later. All local data, is directly stored on the server in that case.
  • Pro without pay: Everybody hates Ads, and I absolutely respect that. I have tried to keep ads shown to the user at minimum. Even if that's not enough and a user wants a complete Ad-Free experience, they can have that without paying a single dime(From "Upgrade to Pro" section in the sidebar). Just watch 5 ads, and enjoy all premium features for a whole day. Other "Pro" features include realtime(every 15 minute otherwise) task, chat & group updates.

Thanks for making it so far. Hope you liked the result. For any app related queries or suggestion, you can send me an email at [email protected] (Helps me to keep app related information at one place). For any other queries or suggestions, you can contact me via LinkedIn.

You might also like...

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.

This is the new version of my Task app

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

May 2, 2022

Routinger is a task scheduler app that is made to make you a better person at no extra cost. The code is open-source. Dart language and Flutter framework are used extensively.

Routinger is a task scheduler app that is made to make you a better person at no extra cost. The code is open-source. Dart language and Flutter framework are used extensively.

Routinger This is a simple app that will allow you to schedule your tasks, create a simple to-do, and also make recurring tasks. The app ends you noti

Dec 17, 2022

Kind of app that generally used to maintain our day-to-day tasks or list everything that we have to do.We can add more tasks at any time and delete a task that is completed.

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

Nov 6, 2021

Task Planner App built in flutter

Task Planner App built in flutter

Flutter Task Planner App Design Task Planner App is built in flutter. App design is based on Task Planner App designed by Purrweb UI. This app is stat

Jan 4, 2023

An open source task manager (todo list) app, developed using Dart language and Flutter framework.

An open source task manager (todo list) app, developed using Dart language and Flutter framework.

Tasker An open source task manager (todo list) app, developed using Dart language and Flutter framework. Screenrecords     Screenshots                

Dec 29, 2022

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

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

Sep 1, 2021

A command-line tool which simplifies the task of updating your Flutter app's launcher name

flutter_launcher_name A command-line tool which simplifies the task of updating your Flutter app's launcher name. If you user this package, You don't

Nov 13, 2022

A task manager built with Flutter, Serverless, Postgres, Firebase

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

Dec 31, 2022

This is a bot built with Dart lang which helps you people a simple task and have fun

TeleBot This is a bot built with Dart lang which helps you people a simple task and have fun Command supported /jokes - get a random joke 😬 /insult -

Oct 25, 2022
Comments
  • No Documentation for  firebase setup ?

    No Documentation for firebase setup ?

    hey @abhisheksrocks No Documentation for firebase setup ? should we get only google.services.json file with google Signin in enabled and place it in directory

    opened by ineffablesam 0
Owner
He likes coding. Oh sorry, did I say "likes"? I meant "is OBSESSED with coding"! Currently he's fond of Flutter and is busy learning to make/making apps with it
null
Sharezone is a collaborative school organization app for iOS, Android, macOS and web.

Download Sharezone Android iOS macOS Web Sharezone is a collaborative school organization app for iOS, Android, macOS and web. With Sharezone pupils,

Sharezone 93 Dec 18, 2022
Metask is an intuitive tool for project management and task management.

Metask is an intuitive tool for project management and task management. It is ideal for your personal organization, but also for efficient teams.

Nijat Namazzade 11 Nov 5, 2022
Flutter-task-planner-app - A beautiful task planner app design made in flutter.

Flutter Task Planner App Design Task Planner App is built with flutter. App design is based on Task Planner App designed by Purrweb UI. This app is st

Sourav Kumar Suman 692 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
Bigo-task - task recieved from bigosoft.co.uk

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

Mubashar Ali 0 Jan 1, 2022
task management app by fullstack school

task_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

Affan Amir 1 Oct 16, 2021
A flutter todo/task listing example app with advance state management using `Momentum` library.

A flutter todo/task listing example app with advanced state management using Momentum library. Simple on the outside but powerful in the inside. This

xamantra 17 Oct 11, 2022
Task management app with flutter, firebase firestore, and firebase auth

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

Alvin Ferdian 2 Mar 3, 2022
Amazing task management application with fluid, minimal and modern UI using Flutter! One of The Winner Apps for Google DevFest 2021!

Orb "Let your task orbit!" ?? Description Orb is an easy-to-use task manager app that help you manage your daily struggles to get your things done eff

Tom Huynh 9 Oct 28, 2022
App for Shop Management and State Management Learning

?? E-Commerce ?? App for Shop Management and State Management Learning ?? Links ?? ?? Repo · ?? Got Issue ?? Features Authentication System Using Fire

Rohit Jain 2 Jul 19, 2022