Files
cannamanage/docs/sprint-14/cannamanage-sprint14-plan-review.md
Patrick Plate dad798a904
Deploy to TrueNAS / deploy (push) Failing after 33s
feat: Sprint 14 — Marketing & Monetization
- Landing page with hero, feature grid, trust signals
- Split-layout login redesign (admin + portal)
- Pricing page with storage tiers (5GB/50GB/unlimited)
- StorageQuotaService backend (V36 migration, 402 on exceeded)
- Frontend storage integration + 402 error handling
- StorageController uses TenantContext for tenant isolation
- onTierChange() hook for subscription tier updates
2026-06-18 20:28:35 +02:00

4.6 KiB

Plan Review: Sprint 14 — Marketing & Monetization

Date: 2026-06-18 Module: cannamanage (full-stack) Reviewer: Lumen (Plan Reviewer) Documents: analysis v1, plan v2, testplan v2 Verdict: APPROVED


Summary

Re-review after v1 findings were addressed. All 4 findings (1 blocker, 3 warnings) from the v1 review have been properly resolved in v2. The plan is complete, correct, and ready for implementation.

v1 Finding Resolution

# v1 Finding Resolution in v2 Status
1 QuotaExceededException naming conflict Renamed to StorageQuotaExceededException in Step 4.4 with explicit note about existing class Fixed
2 ⚠️ No sync for storage_limit_bytes on tier change Added Step 4.9 onTierChange() hook in SubscriptionService Fixed
3 ⚠️ English i18n keys not specified Step 1.3 now states both de.json and en.json must receive equivalent keys; T-32 tests both Fixed
4 ⚠️ extractClubId(user) not defined Step 4.5 now has full implementation with Javadoc referencing DocumentController pattern Fixed

Reviewed Documents

Document Version Assessment
Analysis v1
Plan v2
Testplan v2

Checklist

Assessment

# Check Result Note
1 Problem statement complete Clear: no landing page, no quota enforcement, basic login UI
2 Affected components identified 15 components listed (was 14, +1 for new StorageQuotaExceededException)
3 Current state accurate Confirmed: no (marketing)/page.tsx, nav is hardcoded, V35 is latest migration
4 Risk assessment realistic 5 risks with appropriate mitigations
5 Solution options evaluated 3 options with effort estimates, Option A justified

Implementation Plan

# Check Result Note
6 All requirements covered All 4 areas: landing, login, pricing, storage quota
7 Correct patterns referenced NextIntlClientProvider, Spring @Service, @PreAuthorize, CustomUserDetails cast pattern
8 File paths correct All verified against codebase
9 Implementation order logical Frontend (phases 1-3) → backend (phase 4) → integration (phase 5)
10 No gaps in steps Migration → entity → service → controller → exception → security config → tier-sync — complete chain
11 Flyway migrations planned V36 correct next number, H2-only appropriate for this project
12 Error handling planned 402 with RFC 9457 ProblemDetail, floor-at-zero for decrements
13 No scope creep Explicitly defers overage billing and email notifications

Testplan

# Check Result Note
14 Coverage complete Every plan step has ≥1 test. 32 tests across 4 areas.
15 Test types appropriate E2E for UI (Playwright), Unit for service logic, Integration for controllers
16 Edge cases covered Floor-at-zero (T-19), exactly-at-limit (T-15c, T-16b), near-limit thresholds
17 Test class naming correct StorageQuotaServiceTest, StorageControllerTest, DocumentServiceTest
18 Test method naming correct testGetUsage_calculatesCorrectly(), testCheckQuota_overLimit_throwsQuotaExceeded()
19 Test data defined Explicit UUIDs, byte values, and preconditions documented
20 SSH/manual tests identified N/A Not a PAISY project

Traceability Matrix

Acceptance Criterion Plan Step Test Case(s) Status
AC1: Landing page renders Step 1.1 T-01 Covered
AC2: Landing responsive + dark/light Step 1.1 T-02, T-03 Covered
AC3: Admin login split layout Steps 2.1, 2.2 T-06, T-07, T-08 Covered
AC4: Portal login member-themed Step 2.3 T-09, T-10 Covered
AC5: Pricing shows storage Steps 3.1-3.3 T-11, T-12 Covered
AC6: Pricing FAQ storage Step 3.4 T-13 Covered
AC7: GET /api/v1/storage/usage Steps 4.3, 4.5 T-23, T-24, T-25 Covered
AC8: Upload rejected 402 Steps 4.3, 4.6, 4.7 T-16, T-27, T-31 Covered
AC9: Delete decrements counter Step 4.6 T-18, T-28 Covered
AC10: Backfill on migration Step 4.1 T-29, T-30 Covered

Verdict

APPROVED — All 20 checklist items pass. All 4 v1 findings resolved. Plan is complete, correct, and ready for implementation. Recommend GO.