From bd3664c6315dca15d15bdf4d4a6342b2131e041c Mon Sep 17 00:00:00 2001 From: anand Date: Sat, 13 Dec 2025 17:06:22 +0530 Subject: moving --- .../plannerapp/base/project_board_base.py | 105 +++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 django/factwise-python/factwise_submission/plannerapp/base/project_board_base.py (limited to 'django/factwise-python/factwise_submission/plannerapp/base/project_board_base.py') diff --git a/django/factwise-python/factwise_submission/plannerapp/base/project_board_base.py b/django/factwise-python/factwise_submission/plannerapp/base/project_board_base.py new file mode 100644 index 0000000..71262f3 --- /dev/null +++ b/django/factwise-python/factwise_submission/plannerapp/base/project_board_base.py @@ -0,0 +1,105 @@ +class ProjectBoardBase: + """ + A project board is a unit of delivery for a project. Each board will have a set of tasks assigned to a user. + """ + + # create a board + def create_board(self, request: str): + """ + :param request: A json string with the board details. + { + "name" : "", + "description" : "", + "team_id" : "" + "creation_time" : "" + } + :return: A json string with the response {"id" : ""} + + Constraint: + * board name must be unique for a team + * board name can be max 64 characters + * description can be max 128 characters + """ + pass + + # close a board + def close_board(self, request: str) -> str: + """ + :param request: A json string with the user details + { + "id" : "" + } + + :return: + + Constraint: + * Set the board status to CLOSED and record the end_time date:time + * You can only close boards with all tasks marked as COMPLETE + """ + pass + + # add task to board + def add_task(self, request: str) -> str: + """ + :param request: A json string with the task details. Task is assigned to a user_id who works on the task + { + "title" : "", + "description" : "", + "user_id" : "" + "creation_time" : "" + } + :return: A json string with the response {"id" : ""} + + Constraint: + * task title must be unique for a board + * title name can be max 64 characters + * description can be max 128 characters + + Constraints: + * Can only add task to an OPEN board + """ + pass + + # update the status of a task + def update_task_status(self, request: str): + """ + :param request: A json string with the user details + { + "id" : "", + "status" : "OPEN | IN_PROGRESS | COMPLETE" + } + """ + pass + + # list all open boards for a team + def list_boards(self, request: str) -> str: + """ + :param request: A json string with the team identifier + { + "id" : "" + } + + :return: + [ + { + "id" : "", + "name" : "" + } + ] + """ + pass + + def export_board(self, request: str) -> str: + """ + Export a board in the out folder. The output will be a txt file. + We want you to be creative. Output a presentable view of the board and its tasks with the available data. + :param request: + { + "id" : "" + } + :return: + { + "out_file" : "" + } + """ + pass -- cgit v1.2.3