Skip to content

Image Module

Public Summary

Image upload, filesystem storage, and metadata management. Shared image library used by chains and products.

Internal Details

Files

FileRole
image.controller.jsHTTP handlers
image.service.jsUpload orchestration
image.routes.jsRoute definitions
image.schema.jsZod validation
image.model.jsMongoose schema
image.repository.jsData access
file.service.jsFilesystem operations

Endpoints

MethodPathAuthDescription
GET/imagesJWTList images (paginated)
POST/imagesJWTUpload image (multipart)
DELETE/images/:idJWTRemove image + file

Data Model — Image

title   : String (required)
filename: String
url     : String (computed)
mimeType: String
size    : Number

Upload Flow

  1. Multer middleware handles multipart parsing and writes file to apps/server/src/uploads/.
  2. Image metadata record is created in MongoDB.
  3. URL is computed from the configured base URL + filename.
  4. On error, filesystem cleanup removes the uploaded file.

File Serving

Uploaded files are served via the /uploads/ route, which proxies to the API container in production.

Source Anchors

PathRelevance
apps/server/src/modules/image/Controller, service, routes, schema, model, repository
apps/server/src/config/multerConfig.jsUpload middleware configuration
apps/server/src/uploads/Filesystem storage for uploaded files

Student Obrok engineering documentation.