Skip to content
Cloudy Young edited this page Apr 21, 2020 · 3 revisions

Smart Kanban Board

Overview

We will create a form-based application that helps the user manage their projects with a smart Kanban board. A Kanban board is a workflow management tool that helps to visualize work.
Our application will be a digital representation of a traditional Kanban board, with a twist. What makes our Kanban board different will be the use of an algorithm that automatically distributes a user’s projects’ work into these categories based on user’s availability to do work, length of the project, and priority of the project relative to other projects.

Features

  1. The ability for the user to sign in / sign up an account
  2. A beautiful and functional user interface that allows the user to create, edit and delete boards, columns and events
  3. The Today algorithm which automatically suggests tasks for user daily
  4. The Overview algorithm which summarizes all the tasks and sorts by priority
  5. Users can drag cards between columns to change the state of an event
  6. Users can edit the columns’ preset as their demands
  7. Users can optionally add notes, due date, duration and importance level to an event
  8. Users can synchronize their data between devices by the server
  9. Search events by keywords
  10. Users can automatically sign in to their account when launching the program in the future once they signed in successfully the first time. This will until users sign out their account.

Some Facts

  1. There are 3 types of preset for columns: To Do, In Progress and Done. To-Do means the column contains the events that are not started yet; In Progress means the column contains the events that are undergoing; the Done contains finished events.
  2. When creating a new board, it will automatically initialize 3 columns, 1 for each kind of preset.
  3. Each board should have at least 1 column for each preset, which means the user will not able to delete by not having a delete button when the destinated column is the only one of its kind of preset.
  4. The events have icons and icons are different when they are under different statuses: in To-Do preset column, it is an empty circle with a dotted line; in In Progress, it is an empty circle with a stroke line; in Done, it is a circle with a checkmark. Also, if the event is overdue, regardless of the previous, it is a circle with an exclamation mark.
  5. The status of an event (such as not started, undergoing or done) is according to the preset of the column it is contained
  6. An event is counted as overdue if: the due date is passed, and the event is not in a Done preset column.
  7. 2 boards are automatically generated by the program: Today and Overview. All tasks inside those boards are from the user. They and their children column are called specialized nodes. They are not stored on the server; they are generated locally.
  8. The specialized boards are not the actual parent of those events, the events inside specialized boards could be seemed as “doppelgangers” of the actual event in the actual board.
  9. Both today and an overview board will automatically sort all events by priority, the event that has a closer due date and higher importance level will be on the top. The priority is calculated, and the due date has a higher weight than the importance level when calculating.
  10. When you drag an event in a specialized board, it will also automatically move inside its actual parent too. If the event is inside a To Do column in a specialized board, and the user drags it to Done, the “real form” event will also change from To Do column to Done column (would be strange if not). If there is more than 1 column for the destinated column, for instance, there are two Done columns, the first occurrent column will be chosen for the event to move to.
  11. You cannot edit a specialized board or specialized column as they are set, there are no buttons for editing.
  12. For today's board, what was remained on the day before will continue appearing on today’s Today board, until the user finishes them eventually, or delete them.