easy_task 0.0.8
easy_task: ^0.0.8 copied to clipboard
A complete and easy to use task management system from the personal tasks to school and office works
Easy Task #
This package is a todo like task manage system which allows users to create tasks and groups.
Terms #
Root level tasks: These are tasks that do not belong to any projects. They are used by the logged-in user when they want to keep tasks for themselves only. Not sharing with others.
Installation #
Firestore Indexes #
taskscollection composit indexescreator: ascandcreatedAt: descis required.project: ascandcreatedAt: descis required.parent: ascandcreatedAt: descis required.completed: ascandcreatedAt: descis required.child: ascandcreatedAt: descis requierd.
Database Strucuture #
Task document #
-
tasksis the collection. All the tasks (work items) goes in this collection. -
See the comment of the Task model class that has more details of each fields.
Logic #
-
Any body can create a task.
-
A task can be
- a task or
- a project.
-
When a task is being created, the user can choose it to be a project.
- A
root level taskcan be turned into a project. - But a project can not be turned into a task.
- A
-
A task may be (or may not be) assigned to a project.
-
Task that is not assigned to a project is called
root level task. -
Sign-inis required before using or accessing the task management system.- Anonymous login is okay.
- This package does not provide anything for user authentication. You can develop your own.
- See
phone_sign_inpackage for sign-in that is built by the same developer of this package.
-
Taskis a work that can be managed and tracked.- It has priority. (NOT SUPPORTED, YET)
- It may have due date. (NOT SUPPORTED, YET)
- If the due date passes of an incomplete task, the task is highlighted and the tasks will be listed in
Over duemenu.
- If the due date passes of an incomplete task, the task is highlighted and the tasks will be listed in
- But it does not have any repeat.
- It may have 'auto generate task every day/week/month/year' feature in the feature, but the task must not repeat.
-
Each task has fields like below;
project: boolto know if it's a project or a task.child: boolto know if it has a parent or not. If it's true, it belong to a project.
-
Projectis a task with a special purpose. It hasproject: true, while task hasproject: false. Think about it as a comment thread,A task can have children tasks. And the task that has children is calledProject.- The
Projectinformation is saved as a task document, for the management purpose. So, in the list view, it will be listed together with other tasks. - Project can have many child tasks. Remember, Projects and tasks are saved in same
taskscollection.
- The
-
A task can be assigned to other user (NOT supported, yet)
-
A task can be moved to a project, and vice versa. ~~~~~
-
In the list view, children tasks with
child: trueare not displayed. -
Group taskis displayed together with other tasks in the same task list view.- Group task has no check box.
- When the group task is clicked, it will display the details of it.
-
User invitation is done by
easyuser. -
Comment under each task is used by
easy_commentpackage.
flowchart TD
Task_List-->Task_Create-->Task_Detail-->Task_Update-->Task_List
Task_List-->Task_Detail
Task_List-->Project_Detail
Task_Detail-->Task_List
Task_List-->Menu-->User_Group_List
User_Group_List-->Create_User_Group
User_Group_List-->View_User_Group-->Invite_Users_1
Project_Detail-->Project_Detail_Menu-->Invite_User_2
Project_Detail_Menu-->Invite_User_Group
Widgets #
Task List Screen #
TaskService.instance.showTaskListScreen: Call this method to show the tasks of the user. This method will showTaskListScreen. For custom design, simply copy theTaskListScreenand edit it on your own.
TaskCount #
Displaying number of tasks
- By default, it will display all the tasks under task collection including parent and child tasks, and projects.
- The params below can be combined
all: If this is set to true, it will only display no of tasks including parent and child tasks. Actually, all the document under the tasks will be returned.child: If this is set to true, it will only display the no of child.project: If this is set to true, it will display the no of project only. If it is false, only the no of tasks that are not project will be displayed.completed: if this is true, only the no of completed tasks are displayed. If it is false, then it will display the no ofnot completednumber.rootLevelTasks: It displays the no of the root level tasks. It is simpley the combination ofproject: false andchild: false.
Custom UI Design #
To do custom UI design, you need to understand how easy_task works.