Project Status — Paper Surplus Marketplace
Health: Active (MVP Complete) Phase: All 13 Phases Complete + MorichalAI Data Migration Last Updated: 2026-02-27 Port: 8910 (gunicorn via PM2) Live URL: https://b2bpaper.xdvu.com/mvp/
Quick Summary
The Paper Surplus Marketplace is a B2B platform connecting paper mills with surplus inventory to buyers (converters, distributors, traders). It's a 50/50 joint venture between Rafael (Morichal) and Thierry.
MVP is fully built and deployed. All 13 development phases are complete with 741 tests passing + 16 slow benchmarks. MorichalAI legacy data (1,714 records) has been migrated.
What's Built
Infrastructure
- Django 6.0.2 + DRF 3.16.1 backend on PostgreSQL
- Angular 19 + Tailwind CSS v4 + Angular Material 19 frontend
- PM2-managed processes: gunicorn API (port 8910), Celery worker, Celery beat
- Nginx reverse proxy at b2bpaper.xdvu.com/mvp/
- Redis for caching and Celery broker
Backend (13 Phases Complete)
- 9 Django apps: accounts, buyers, containers, ingestion, matching, mills, newsletters, surplus, transactions
- 13 entity models with UUID PKs, all migrations applied
- 69+ REST API endpoints with role-based permissions (admin/mill/buyer)
- Service layer pattern: business logic in
apps/<app>/services.py - Excel ingestion pipeline (email polling → parse → validate → commit → match)
- Matching algorithm with 5 scoring functions + composite + visibility filtering
- Newsletter generation (per-buyer, visibility-filtered, tracking, bounce handling)
- Container assembly with bin-packing and freight estimation
- Exclusivity mechanism (48-hour windows, max 3 grants)
- Pre-production items with auto-transition and express interest
- Admin/mill/buyer dashboard views
- Security: audit logging, file validators, RBAC
- Swagger API documentation
Frontend (Phase 13 + Post-MVP Polish)
- ~80+ component/service/route files
- Role-based shell with JWT authentication
- Feature modules: dashboard, surplus, matching, transactions, newsletters, settings
- Transaction detail with status timeline and action buttons
- Responsive design with Tailwind CSS v4
- 3D isometric container visualizations (mini cards + full detail SVGs)
- Reel container calculator widget on product detail pages
- "Request Quote" CTA on surplus browse cards
Data Migration (MorichalAI)
- 1,714 records imported: 111 mills, 162 buyers, 486 products, 170 buyer specs, 12 freight rates, 773 transactions
- Management command:
python manage.py import_morichal - Idempotent with provenance tracking
Planning Artifacts
- PRD: 3,183 lines, 18 sections + 2 appendices
- Development Checklist: ~470 tasks + ~586 test cases across 15 phases
- Memory Bank: 7 context files
- Specialized agents: architect, frontend, backend
Tests
- 741 tests passing + 16 slow benchmarks (all passing)
- Coverage: models, API endpoints, services, ingestion, matching, containers, security, integration
Live URLs
| URL | What |
|---|---|
| https://b2bpaper.xdvu.com/mvp/app/ | Angular Frontend |
| https://b2bpaper.xdvu.com/mvp/api/docs/ | Swagger UI (69+ endpoints) |
| https://b2bpaper.xdvu.com/mvp/admin/ | Django Admin |
What's Next
Phase 14: V2 Features (Out of Scope for MVP)
- Escrow payments and credit provider integration
- AI-assisted Excel parsing (LLM-based)
- Document generation (BL, packing list, invoices)
- Multi-language support
- ML-based advanced matching
- Analytics dashboard
- Public API for partners
- Americas expansion
Operational (Not Code)
- Onboard 5 mills actively sending surplus lists
- Onboard 5 buyers receiving newsletters
- Complete first transaction end-to-end
- Switch email backend to production SMTP