Files
ColaFlow/docs/plans/sprint_4_story_0_task_2.md
Yaojia Wang b3c92042ed 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>
2025-11-05 21:45:09 +01:00

1.5 KiB

task_id, story_id, sprint_id, status, type, assignee, created_date, completion_date
task_id story_id sprint_id status type assignee created_date completion_date
task_2 story_0 sprint_4 not_started backend backend 2025-11-05 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:

public int? StoryPoints { get; private set; }

Add method:

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:

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