A backend API built with Node.js, Express, Sequelize, and PostgreSQL to manage folders and files with advanced metadata support and constraints.
- Node.js, Express.js
- PostgreSQL (via Supabase)
- Sequelize ORM
- Cloudinary (file storage)
- Multer (file upload middleware)
- REST API Architecture
- Create folders with custom constraints: allowed file types (
pdf,csv,img,ppt) and maximum file limits. - Upload files with validation (type, size ≤ 10MB, max count).
- Store and retrieve file metadata (description, size, timestamp).
- Sort files by size or upload date.
- Filter files by type across folders.
- Update file descriptions and folder constraints.
- Delete folders or individual files with cascading behavior.
POST /folder/create– Create a folderPOST /folders/:folderId/files– Upload a fileGET /folders/:folderId/filesBySort?sort=size– Sort filesGET /files?type=pdf– Filter files by typePUT /folders/:folderId– Update folder detailsDELETE /folders/:folderId/files/:fileId– Delete file
- JWT-based authentication & role-based access
- Pagination support for large folder listings
- UI integration with React or Next.js