5.3 KiB
5.3 KiB
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"