This project is a command-line interface (CLI) based Kanban board implemented in Python. It allows users to manage tasks across different boards, including "TODO," "In Progress," and "Done."
- Add Task: Users can add tasks to the Kanban board.
- Move Task: Tasks can be moved between different boards.
- Display Board: Users can display tasks on each board.
- Save and Load Data: Data can be saved to and loaded from binary files to persist tasks between sessions.
-
Clone the repository:
git clone https://github.com/your-username/kanban-board.git
-
Install the required dependencies:
pip install termcolor
-
Run the script:
python main.py
-
Follow the on-screen prompts to interact with the Kanban board.
main.py
: Contains the main script with the CLI interface. Users interact with the Kanban board through this script.kanban_util.py
: Contains utility functions for Kanban board management, including task creation, data storage, and board manipulation.kanban_data.pickle
: Binary file for storing Kanban board data. Tasks and board configurations are saved here for persistence between sessions.
- Parameters:
task_name
(str): The name of the task.assignee
(str): The person assigned to the task.reporter
(str): The person reporting the task.deadline
(str): The deadline for the task.priority
(str): The priority of the task (high, medium, low).
- Parameters:
field_name
(str): The name of the additional status field.field_value
(str): The value of the additional status field.
- Description: Adds an additional status field to the task.
- Description: Displays the details of the task.
- Parameters:
name
(str): The name of the Kanban board.
- Description: Initializes a new Kanban board with the given name.
- Description: Displays all tasks in the Kanban board, sorted by priority.
- Parameters:
color
(str): The color of the Kanban board header.
- Description: Displays the Kanban board with a colored header.
- Parameters:
task_name
(str): The name of the task to move.destination_board
(Kanban): The destination Kanban board.
- Description: Moves a task from the current board to the destination board.
- Parameters:
task_name
(str): The name of the task to find.
- Returns: The task object if found, otherwise
None
. - Description: Finds a task in the Kanban board by name.
- Parameters:
task_name
(str): The name of the task to remove.
- Description: Removes a task from the Kanban board.
- Returns: A new
Task
object created from user input. - Description: Prompts the user to enter details for a new task and creates a
Task
object.
- Parameters:
todo
(Kanban): The TODO Kanban board.prog
(Kanban): The In Progress Kanban board.done
(Kanban): The Done Kanban board.
- Description: Displays all three Kanban boards with their respective tasks.
- Parameters:
todo
(Kanban): The TODO Kanban board.prog
(Kanban): The In Progress Kanban board.done
(Kanban): The Done Kanban board.
- Description: Saves the data of all three Kanban boards to a pickle file.
- Returns: A tuple containing the TODO, In Progress, and Done Kanban boards.
- Description: Loads the data of all three Kanban boards from a pickle file.
- Parameters:
todo
(Kanban): The TODO Kanban board.prog
(Kanban): The In Progress Kanban board.done
(Kanban): The Done Kanban board.
- Description: Moves a task between Kanban boards based on user input.
- Description: Wipes all Kanban board data by removing the pickle file.