Skip to content

feat(backend): Implement file upload service for dispute evidence #412

Description

@KuchiMercy

Description

Dispute resolution requires evidence submission but no file upload service exists. multer is installed. Build a complete file upload module.

Packages: multer v1.4.5, @types/multer (installed) | Frontend: F-12

Acceptance Criteria

  • Create UploadModule with controller, service, entity
  • POST /disputes/:id/evidence endpoint
  • Support: PNG, JPG, WebP, PDF, TXT, DOCX
  • Server-side MIME validation via magic bytes
  • Max 10MB per file, max 10 files per dispute
  • Image thumbnails (200x200) via sharp
  • Local filesystem storage with S3 adapter interface
  • UUID filenames to prevent path traversal
  • Evidence entity with all metadata fields
  • GET /disputes/:id/evidence (list)
  • GET /disputes/:id/evidence/:evidenceId/download
  • DELETE for admin-only evidence removal
  • Virus scanning hook (ClamAV interface)
  • Clean up orphaned files
  • Rate limiting: 20 uploads/hour/user
  • Unit and E2E tests

Points: 150

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave programbackenddisputeDispute resolution featuresenhancementNew feature or requestphase-2Sprint 3-4: Core Feature Completion

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions