Skip to content

Latest commit

 

History

History
65 lines (40 loc) · 3.07 KB

File metadata and controls

65 lines (40 loc) · 3.07 KB

Kanban Board

A Board is an project management tool designed to help visualize work, limit work-in-progress. As the image shown below.

kanban_board.png

Definitions

Below you will find some quick definitions to help you read through the document.

Board contains multiple groups and each group represents as an independent state
Group contains list of cards and each card represents as a record in database
Card contains list of properties and each property belongs to a specific FieldType
Grouping field using the grouping rules provided by the Field to organize all rows
Grouping cell the FieldType of the cell in row equal to the FieldType of the grouping field
Grouping data each group has its grouping data that represents as the group id

Board

A board using the database as its data storage.

Group

The UML of the classes used in grouping shown in the following picture.

file : database_view.plantuml

Generation

The groups are generated by the selected grouping field. Currently, AppFlowy supports these grouping fields. These groups are generated by its own rules shown below.

FieldType
SingleSelect The number of groups equal to the number of options
Multi-Select The number of groups equal to the number of options
URL The number of groups equal to the number of different URLs in Cells
Checkbox Only two groups

The first group of the board will be the No Status group. It contains the cards that the grouping cell doesn't contain the grouping data specified by the grouping field.

Modifications

The number of rows in group will be changed by these conditions

  1. Move the card directly to another group.
  2. Edit the properties of the card

Actually, both of them can represent as create/delete/update of the card.

Card

Create

Create a card is equal to create a row with the grouping cell data in the database. For example, creating a card in a group whose grouping field type is SingleSelect. Then the data of the grouping cell will be that option specified by that group.

Delete

Delete a card is equal to delete the corresponding row in the database

Update

  1. Moving a row from A group to B group will set the data of the grouping cell from A's grouping data to B's grouping data.
  2. Update the data of the grouping cell to one of these groups is equal to moving this row to that group