Files

112 lines
5.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## ADDED Requirements
### Requirement: Allocate hours to project
The system SHALL allow authorized users to allocate hours for a team member to a project for a specific month.
#### Scenario: Successful allocation
- **WHEN** a manager allocates 40 hours for "John Doe" to "Project X" for February 2026
- **THEN** the system creates the allocation record
- **AND** the system returns the allocation details including project, team member, month, and hours
#### Scenario: Allocate zero hours
- **WHEN** a manager allocates 0 hours for a team member to a project
- **THEN** the system accepts the allocation (useful for placeholder or removing allocation)
#### Scenario: Cannot allocate negative hours
- **WHEN** attempting to allocate -10 hours
- **THEN** the system rejects the request with validation error "Allocated hours must be greater than or equal to 0"
### Requirement: View allocation matrix
The system SHALL display allocations in a matrix format showing projects vs team members for a selected month.
#### Scenario: View monthly allocation matrix
- **WHEN** a manager views the allocation matrix for February 2026
- **THEN** the system displays all projects as rows
- **AND** the system displays all team members as columns
- **AND** each cell shows the allocated hours for that project-person combination
#### Scenario: Show allocation totals
- **WHEN** viewing the allocation matrix
- **THEN** the system displays total allocated hours per team member (column totals)
- **AND** the system displays total allocated hours per project (row totals)
#### Scenario: Show utilization percentage
- **WHEN** viewing the allocation matrix
- **THEN** the system displays utilization percentage per team member (allocated / capacity × 100%)
### Requirement: Update allocation
The system SHALL allow authorized users to modify existing allocations.
#### Scenario: Update allocated hours
- **WHEN** a manager updates an allocation from 40 hours to 60 hours
- **THEN** the system updates the allocation record
- **AND** the system re-validates against capacity and approved estimate
#### Scenario: Cannot update non-existent allocation
- **WHEN** attempting to update an allocation that does not exist
- **THEN** the system returns a 404 Not Found error
### Requirement: Delete allocation
The system SHALL allow authorized users to remove allocations.
#### Scenario: Delete allocation
- **WHEN** a manager deletes an allocation
- **THEN** the system removes the allocation record
- **AND** the system recalculates project and team member totals
### Requirement: Bulk allocation operations
The system SHALL allow creating or updating multiple allocations in a single operation.
#### Scenario: Bulk create allocations
- **WHEN** a manager submits 10 allocations for a project across multiple team members
- **THEN** the system creates all allocations
- **AND** the system validates each allocation individually
- **AND** the system returns results indicating success or failure for each
#### Scenario: Partial bulk failure
- **WHEN** submitting bulk allocations where 2 out of 10 fail validation
- **THEN** the system creates the 8 valid allocations
- **AND** the system returns error details for the 2 failed allocations
### Requirement: Track untracked resource allocations
The system SHALL allow allocating hours to an "untracked" resource bucket for external team time.
#### Scenario: Allocate to untracked resource
- **WHEN** a manager allocates 10 hours to "Untracked" for a project
- **THEN** the system creates the allocation without associating it to a specific team member
- **AND** the allocation counts toward project total but not toward any team member's capacity
#### Scenario: Untracked resource has no capacity limit
- **WHEN** viewing utilization for the untracked resource
- **THEN** the system displays "N/A" or infinite symbol for capacity
- **AND** no over-capacity warnings are shown for untracked allocations
### Requirement: Validate allocation against capacity
The system SHALL warn when a team member's total monthly allocation exceeds their capacity.
#### Scenario: Allocation within capacity
- **WHEN** a team member with 160 hours capacity has 140 hours total allocated
- **THEN** the system accepts the allocation
- **AND** the system displays utilization as 88% with no warning
#### Scenario: Allocation exceeds capacity
- **WHEN** a team member with 160 hours capacity has 180 hours total allocated
- **THEN** the system displays a WARNING "Team member over-allocated by 20 hours (113% utilization)"
- **AND** the allocation is still allowed but flagged
### Requirement: Validate allocation against approved estimate
The system SHALL validate that project allocations do not exceed the approved estimate.
#### Scenario: Allocation matches approved estimate
- **WHEN** a project with approved estimate of 100 hours has exactly 100 hours allocated
- **THEN** the system displays GREEN indicator "100% allocated"
#### Scenario: Under-allocation
- **WHEN** a project with approved estimate of 100 hours has 80 hours allocated
- **THEN** the system displays YELLOW indicator "80% allocated (under by 20 hours)"
#### Scenario: Over-allocation
- **WHEN** a project with approved estimate of 100 hours has 120 hours allocated
- **THEN** the system displays RED indicator "120% allocated (over by 20 hours)"
- **AND** the system warns "Project will be over-charged by 20 hours"