WestDoc is a modern API-based Document Management System inspired by Google Photos but designed for documents. It allows users to create structured folders, upload files with metadata, and efficiently organize, retrieve, and manage documents. WestDoc ensures seamless storage, retrieval, and organization of digital assets.
- Backend: Node.js, Express.js
- Database: PostgreSQL (via Sequelize)
- File Storage: Cloudinary
- File Upload Handling: Multer
- Node.js (v18+ recommended)
- PostgreSQL
- Cloudinary Account
-
Clone the repository:
git clone https://github.com/sidhanta03/westdoc.git cd westdoc -
Install dependencies:
npm install
-
Set up environment variables in a
.envfile: -
Start the server:
npm start
✅ Create structured folders with unique names, file type restrictions, and limits. ✅ Upload files with metadata (description, timestamps, size restrictions). ✅ Retrieve and manage folders (update, delete, get details). ✅ Retrieve and manage files (update metadata, delete, sort by size and recency). ✅ Filter files across multiple folders by type. ✅ Secure authentication and role-based access control.
| Method | Endpoint | Description |
|---|---|---|
POST |
/folders/create |
Create a new folder |
PUT |
/folders/:folderId |
Update folder name or file limit |
DELETE |
/folders/:folderId |
Delete a folder and its contents |
GET |
/folders/:folderId |
Get folder details |
POST |
/folders/:folderId/files |
Upload a file to a folder |
PUT |
/folders/:folderId/files/:fileId |
Update file description |
DELETE |
/folders/:folderId/files/:fileId |
Delete a file |
GET |
/folders/:folderId/files |
Get all files in a folder |
GET |
/folders/:folderId/filesBySort?sort=size |
Sort files by size |
GET |
/folders/:folderId/filesBySort?sort=uploadedAt |
Sort files by recency |
GET |
/files?type=pdf |
Get files by type across folders |
GET |
/folders/:folderId/files/metadata |
Get file metadata |
- Fork the repository and create a new branch.
- Commit changes with meaningful messages.
- Submit a pull request for review.