# Tasks: add-watermark-feature ## Phase 1: Backend - Dependencies & Service - [x] 1.1 Add Pillow and PyMuPDF (fitz) to requirements.txt - [x] 1.2 Create WatermarkService class (`backend/app/services/watermark_service.py`) - [x] 1.3 Implement `add_image_watermark(image_path, user, output_path)` method - [x] 1.4 Implement `add_pdf_watermark(pdf_path, user, output_path)` method ## Phase 2: Backend - Integration - [x] 2.1 Modify download endpoint to apply watermark - [x] 2.2 Add watermark configuration (enable/disable per project) - [x] 2.3 Handle unsupported file types gracefully (skip watermark) ## Phase 3: Backend - Testing - [x] 3.1 Unit tests for image watermarking - [x] 3.2 Unit tests for PDF watermarking - [x] 3.3 Integration tests for download with watermark ## Validation Criteria - Downloaded images contain visible watermark with user info - Downloaded PDFs have watermark on each page - Watermark includes: user name, employee ID, download timestamp - Non-image/PDF files download without modification