92 lines
4.1 KiB
Markdown
92 lines
4.1 KiB
Markdown
---
|
|
id: TASK-123
|
|
title: rSwag Feature Parity — Full 8-Phase Implementation
|
|
status: Done
|
|
assignee: []
|
|
created_date: '2026-03-21 06:21'
|
|
updated_date: '2026-03-21 06:21'
|
|
labels:
|
|
- rswag
|
|
- feature-parity
|
|
- pod
|
|
- dithering
|
|
- ai-generation
|
|
dependencies: []
|
|
references:
|
|
- modules/rswag/mod.ts
|
|
- modules/rswag/pod/printful.ts
|
|
- modules/rswag/pod/prodigi.ts
|
|
- modules/rswag/dither.ts
|
|
- modules/rswag/mockup.ts
|
|
- modules/rswag/fulfillment.ts
|
|
- modules/rswag/components/folk-swag-designer.ts
|
|
- modules/rswag/components/folk-revenue-sankey.ts
|
|
priority: high
|
|
---
|
|
|
|
## Description
|
|
|
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
|
Brought the rspace.online/rswag module to feature parity with the standalone rswag.online (Next.js + FastAPI + PostgreSQL) application. rSwag now owns design tools, product catalog, mockups, POD clients, dithering, and AI generation. rCart owns cart/checkout/payments/order lifecycle. A bridge connects them via catalog ingest and fulfillment routing.
|
|
|
|
## What was built
|
|
|
|
### Phase 1: POD Provider Clients
|
|
- `modules/rswag/pod/types.ts` — shared POD TypeScript interfaces
|
|
- `modules/rswag/pod/printful.ts` — Printful v2 API client (catalog variants, mockup generation, order creation, sandbox mode)
|
|
- `modules/rswag/pod/prodigi.ts` — Prodigi v4 API client (orders, quotes, status)
|
|
|
|
### Phase 2: Enhanced Image Processing
|
|
- `modules/rswag/dither.ts` — 11 dithering algorithms (8 error diffusion + 3 ordered), median-cut quantization, screen-print color separations
|
|
- `modules/rswag/mockup.ts` — Sharp-based mockup compositor with SVG templates + Printful API fallback
|
|
|
|
### Phase 3: AI Design Generation
|
|
- Gemini-powered design generation (gemini-2.5-flash-image)
|
|
- User artwork upload (PNG/JPEG/WebP, min 500x500, max 10MB)
|
|
- Design lifecycle: draft → active → paused → removed
|
|
|
|
### Phase 4: Product Catalog & Mockup Routes
|
|
- ~15 new API routes for designs, mockups, dithering, storefront, fulfillment
|
|
- Filesystem-based design storage with in-memory index
|
|
- 24hr cache for images, LRU caches for dithered/mockup results
|
|
|
|
### Phase 5: Fulfillment Bridge
|
|
- `modules/rswag/fulfillment.ts` — order routing to Printful/Prodigi
|
|
- Webhook parsers for shipment tracking updates
|
|
- Tracking info lookup
|
|
|
|
### Phase 6: Frontend Design Tools UI
|
|
- 4-tab layout in folk-swag-designer (Browse, Create, HitherDither, Orders)
|
|
- Browse: product grid with search/filter/add-to-cart
|
|
- Create: AI Generate, Upload, My Designs sub-modes
|
|
- HitherDither: algorithm picker, color count, live preview, screen-print separations
|
|
- Orders: fulfillment status and tracking
|
|
|
|
### Phase 7: Revenue Sankey & Enhanced Landing
|
|
- `folk-revenue-sankey` web component with animated SVG flow + draggable sliders
|
|
- Updated landing page with Sankey embed and new feature descriptions
|
|
|
|
### Phase 8: Admin & Polish
|
|
- Admin routes: design sync, product override, analytics summary
|
|
- Schema migration v1→v2 for existing designs
|
|
- Extended products.ts with POD SKUs and StorefrontProduct type
|
|
<!-- SECTION:DESCRIPTION:END -->
|
|
|
|
## Acceptance Criteria
|
|
<!-- AC:BEGIN -->
|
|
- [x] #1 POD clients (Printful v2, Prodigi v4) implemented with sandbox mode
|
|
- [x] #2 11 dithering algorithms with screen-print color separations
|
|
- [x] #3 AI design generation via Gemini + user artwork upload
|
|
- [x] #4 ~15 new API routes for designs, mockups, dithering, storefront, fulfillment
|
|
- [x] #5 Fulfillment bridge routes orders to correct POD provider
|
|
- [x] #6 4-tab frontend UI (Browse, Create, HitherDither, Orders)
|
|
- [x] #7 Interactive revenue Sankey on landing page
|
|
- [x] #8 TypeScript compiles cleanly (zero errors)
|
|
<!-- AC:END -->
|
|
|
|
## Final Summary
|
|
|
|
<!-- SECTION:FINAL_SUMMARY:BEGIN -->
|
|
All 8 phases implemented in a single session. Created 7 new files (pod/types.ts, pod/printful.ts, pod/prodigi.ts, dither.ts, mockup.ts, fulfillment.ts, folk-revenue-sankey.ts) and modified 6 existing files (schemas.ts, products.ts, mod.ts, folk-swag-designer.ts, landing.ts, swag.css). TypeScript compiles with zero errors. Ported Python reference code (printful_client.py, prodigi_client.py, dither_service.py, design_generator.py) to TypeScript.
|
|
<!-- SECTION:FINAL_SUMMARY:END -->
|