Image Upload Support for Products
- Complexity: High
- Stack: Full-stack (Backend + Frontend)
As an admin user, I want to upload images for products so that customers can see product photos when browsing the catalog.
Description
The Product entity already has an imageUrl field, but it currently only holds a plain URL string with no actual file upload mechanism. This story adds the ability for admins to upload a product image file through the application, store it on the backend, and serve it via a dedicated endpoint. The existing product-form component needs to be extended with a file upload control, and the product-card and product-detail-page components should display the uploaded image.
Acceptance Criteria
- [ ] Admin can upload a JPEG or PNG image when creating or editing a product (via
product-create-pageandproduct-update-page) - [ ] Each product supports one image — uploading a new image replaces the previous one
- [ ] Product catalog page displays image thumbnails in the
product-cardcomponent - [ ] Product detail page displays the full image
- [ ] Products without images display a placeholder
- [ ] Uploading a file > 5 MB shows a validation error
- [ ] Uploading a non-image file (e.g.,
.exe,.pdf) shows a validation error - [ ] Upload errors are communicated via the existing
NotificationService - [ ] Image persists after page reload