3.6 KiB
3.6 KiB
ADDED Requirements
Requirement: My Tasks View displays all tasks assigned to the current user across projects
The system SHALL provide a My Tasks page that displays a unified list of all tasks assigned to the currently logged-in user, aggregated from all projects where the user has access.
Scenario: User accesses My Tasks page
- WHEN the user navigates to the My Tasks page (e.g., /my-tasks)
- THEN the system SHALL display a list of all tasks assigned to the user across all accessible projects
Scenario: My Tasks page shows task details
- WHEN the My Tasks list is displayed
- THEN each task item SHALL display at minimum: task name, project name, status, due date, and assignee
Scenario: User can filter tasks by project
- WHEN the user selects a specific project from the project filter dropdown
- THEN the list SHALL display only tasks from the selected project
Scenario: User can filter tasks by status
- WHEN the user selects a specific status from the status filter dropdown
- THEN the list SHALL display only tasks with the selected status
Scenario: User can sort tasks
- WHEN the user clicks a column header to sort
- THEN the list SHALL be sorted by that column in ascending/descending order
Requirement: My Tasks View uses project task page layout and data table
The system SHALL reuse the existing project task page layout and data table components for rendering the My Tasks list to ensure visual and behavioral consistency.
Scenario: My Tasks uses consistent layout
- WHEN the My Tasks page is rendered
- THEN it SHALL use the same layout structure as the project task page (header, filters, data table, pagination)
Scenario: My Tasks uses data table component
- WHEN the task list is rendered
- THEN it SHALL use the same DataTable component used in project task pages
Scenario: Task columns match project task page
- WHEN the My Tasks data table is displayed
- THEN it SHALL display columns consistent with the project task page (e.g., Name, Project, Status, Priority, Due Date, Assignee)
Requirement: User can navigate to task details from My Tasks
The system SHALL allow users to click on a task in the My Tasks list to navigate directly to that task's detail page within its project context.
Scenario: User clicks on a task
- WHEN the user clicks on a task row in the My Tasks list
- THEN the system SHALL navigate to the task detail page in its project (e.g., /projects/{project_id}/tasks/{task_id})
Requirement: My Tasks only shows accessible projects
The system SHALL only include tasks from projects where the current user has at least read access.
Scenario: User sees only accessible tasks
- WHEN the My Tasks list is loaded
- THEN tasks from projects where the user lacks access SHALL NOT be displayed
Requirement: API endpoint returns user's tasks across projects
The system SHALL provide an API endpoint that returns all tasks assigned to the current user, with optional filtering parameters.
Scenario: API returns user's tasks
- WHEN a authenticated user requests GET /api/tasks/my-tasks
- THEN the system SHALL return a list of tasks assigned to that user
Scenario: API supports project filter
- WHEN the user requests GET /api/tasks/my-tasks?project_id={id}
- THEN the system SHALL return only tasks from the specified project
Scenario: API supports status filter
- WHEN the user requests GET /api/tasks/my-tasks?status={status}
- THEN the system SHALL return only tasks with the specified status