Click2Ship Implementation Backlog Version: 1.0 Aligned to: Click2Ship_SRS_VERBATIM.md, Click2Ship_Proposal.md
Overview
- Timeline: 12 weeks (6 sprints x 2 weeks)
- Platform: ERPNext v15 + Frappe custom app
- Deployment: Supervisor (no Docker)
- Providers: Karrio, Norsk, Skynet (separate adapters)
Assumptions
- Estimates are ideal dev-days per task (single developer focus).
- Tasks can run in parallel across Backend, Frontend, ERPNext Functional, QA, DevOps.
- All sensitive credentials stored in ERPNext Settings (Password fields), not in code.
Sprint 1 (Weeks 1-2): Security and Foundation
- SEC-001 CSRF enforcement for all non-webhook endpoints and forms (Owner: Backend/Frontend, Est: 3d)
- SEC-002 Input validation and sanitization layer (email, phone, postal, HS code) (Owner: Backend, Est: 2d)
- SEC-003 Migrate credentials to Settings DocTypes and remove hardcodes (Owner: ERPNext/Backend, Est: 2.5d)
- SEC-004 RBAC baseline for all roles + DocType permissions (Owner: ERPNext/Functional, Est: 3d)
- SEC-005 Rate limiting for quote/booking/tracking/signup/webhooks (Owner: Backend/DevOps, Est: 2d)
- SEC-006 Logging, error response standardization, remove debug output (Owner: Backend/DevOps, Est: 2d)
Sprint 2 (Weeks 3-4): Data Model and Workflow Core
- DATA-001 Shipment Booking DocType + workflow + naming series + custom fields on Customer/Sales Invoice (Owner: ERPNext/Functional, Est: 3.5d)
- DATA-002 Quote Request child DocType + expiry rules (Owner: ERPNext/Backend, Est: 2d)
- DATA-003 Shipment Item child DocType + weight/dimension/HS validations (Owner: ERPNext/Backend, Est: 2.5d)
- DATA-004 Tracking DocType + tracking event table + permissions (Owner: ERPNext/Backend, Est: 2.5d)
- DATA-005 Markup Rule + reseller commission model + credit limit fields (Owner: ERPNext/Functional, Est: 3d)
- DATA-006 Address Book + Cart (or use Sales Order) + permissions (Owner: ERPNext/Backend, Est: 2.5d)
Sprint 3 (Weeks 5-6): Provider Layer
- PROV-001 Provider base interface + factory + settings toggles (Owner: Backend, Est: 3d)
- PROV-002 Karrio adapter (rates/booking/tracking) (Owner: Backend, Est: 4d)
- PROV-003 Norsk adapter (rates/booking/tracking) (Owner: Backend, Est: 3.5d)
- PROV-004 Skynet adapter (rates/booking/tracking) (Owner: Backend, Est: 3d)
- PROV-005 Standard parsers + currency normalization (Owner: Backend, Est: 3d)
- PROV-006 Provider health checks + diagnostics endpoints (Owner: Backend/DevOps, Est: 2d)
Sprint 4 (Weeks 7-8): Core Services
- API-001 Quote service: validation, parallel fetch, caching, save quotes (Owner: Backend, Est: 3.5d)
- API-002 Booking service: quote verification, re-price, label retrieval (Owner: Backend, Est: 3d)
- API-003 Tracking service: webhook + polling jobs + event history (Owner: Backend, Est: 3.5d)
- API-004 Invoice automation on delivery (Owner: Backend/ERPNext, Est: 3d)
- API-005 Webhook security: signature validation + idempotency (Owner: Backend, Est: 2d)
- API-006 Bulk CSV import for shipments + validation (Owner: Backend, Est: 3d)
Sprint 5 (Weeks 9-10): Portals and UX
- WEB-001 Quote wizard + rate selection UI (Owner: Frontend, Est: 4d)
- WEB-002 Booking confirmation + label download UI (Owner: Frontend, Est: 2.5d)
- WEB-003 Tracking timeline UI (Owner: Frontend, Est: 3d)
- WEB-004 Role dashboards (Customer/Merchant/Corporate/Reseller) (Owner: Frontend/ERPNext, Est: 4d)
- WEB-005 Profile + address book + reseller client management UI (Owner: Frontend, Est: 3.5d)
- WEB-006 Mobile responsiveness + accessibility pass (Owner: Frontend, Est: 2.5d)
Sprint 6 (Weeks 11-12): Finance, QA, Go-Live
- FIN-001 Credit limit checks + payment workflow integration (Owner: ERPNext/Backend, Est: 3.5d)
- FIN-002 Carrier invoice retrieval + reconciliation report (Owner: ERPNext/Backend, Est: 4d)
- QA-001 Unit + integration + security tests + fixtures (Owner: QA/Backend, Est: 4d)
- QA-002 Load/performance tests vs NFRs (Owner: QA/DevOps, Est: 3d)
- OPS-001 Supervisor configs + monitoring + backups (Owner: DevOps, Est: 2d)
- OPS-002 Cutover + rollback + training docs (Owner: DevOps/PM, Est: 2d)
Definition of Done (Applies to all tasks)
- Acceptance criteria met and reviewed
- No new critical security findings
- Unit/integration tests added or updated
- Logs added with sensitive data redaction
- ERPNext permissions verified for target roles
Acceptance Gates
- Gate 1 (End Sprint 2): Core DocTypes + validations + RBAC complete
- Gate 2 (End Sprint 4): Quote to Booking to Tracking flow end-to-end
- Gate 3 (End Sprint 6): Tests pass, NFRs met, production checklist complete
Open Decisions to Confirm
- Payment gateway choice (Stripe/PayPal/JazzCash/EasyPaisa)
- Carrier invoice retrieval priority (email/portal/API)
- Quote expiry window (default 24 hours)
- Currency normalization target (USD vs PKR vs multi-currency)