docs(backend): Add Sprint 4 backend API verification and optional enhancement story

Backend APIs are 100% ready for Sprint 4 frontend implementation. Created comprehensive verification report and optional enhancement story for advanced UX fields.

Changes:
- Created backend_api_verification.md (detailed API analysis)
- Created Story 0: Backend API Enhancements (optional P2)
- Created 6 tasks for Story 0 implementation
- Updated Sprint 4 to include backend verification status
- Verified Story/Task CRUD APIs are complete
- Documented missing optional fields (AcceptanceCriteria, Tags, StoryPoints, Order)
- Provided workarounds for Sprint 4 MVP

Backend Status:
- Story API: 100% complete (8 endpoints)
- Task API: 100% complete (9 endpoints)
- Security: Multi-tenant isolation verified
- Missing optional fields: Can be deferred to future sprint

Frontend can proceed with P0/P1 Stories without blockers.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Yaojia Wang
2025-11-05 21:45:09 +01:00
parent 8ce89c11e9
commit b3c92042ed
8 changed files with 1758 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
---
task_id: task_2
story_id: story_0
sprint_id: sprint_4
status: not_started
type: backend
assignee: backend
created_date: 2025-11-05
completion_date: null
---
# Task 2: Add StoryPoints Field to Story Entity
## What to do
Add a StoryPoints field to the Story entity for estimating Story complexity using Fibonacci numbers (1, 2, 3, 5, 8, 13, 21, etc.).
## Files to modify
- `colaflow-api/src/Modules/ProjectManagement/ColaFlow.Modules.ProjectManagement.Domain/Aggregates/ProjectAggregate/Story.cs`
- `colaflow-api/src/Modules/ProjectManagement/ColaFlow.Modules.ProjectManagement.Infrastructure/Persistence/Configurations/StoryConfiguration.cs`
## Implementation
### Story.cs Changes
Add property:
```csharp
public int? StoryPoints { get; private set; }
```
Add method:
```csharp
public void UpdateStoryPoints(int? points)
{
if (points.HasValue)
{
if (points.Value < 0)
throw new DomainException("Story points cannot be negative");
if (points.Value > 100)
throw new DomainException("Story points cannot exceed 100");
}
StoryPoints = points;
UpdatedAt = DateTime.UtcNow;
}
```
### StoryConfiguration.cs Changes
Add column configuration:
```csharp
builder.Property(s => s.StoryPoints)
.IsRequired(false);
```
## Acceptance
- [ ] Story entity has StoryPoints property (nullable int)
- [ ] UpdateStoryPoints method validates range (0-100)
- [ ] EF Core configuration includes StoryPoints column
- [ ] Code compiles successfully
- [ ] Validation tests written
- [ ] Tests passing