A scalable backend-powered cloud storage platform inspired by Google Drive, designed for secure file storage, folder management, and efficient media streaming.
Built using Node.js, Express.js, MongoDB, and Cloudinary, FilesStorer supports authentication, file uploads, search functionality, and optimized media delivery with production-ready backend architecture.
- Secure user signup and login using JWT authentication
- Password hashing with bcrypt
- Protected routes and token-based session handling
- Upload and store files securely using Cloudinary
- Supports multiple file formats and media types
- Efficient upload handling with Multer
- Create and organize folders dynamically
- Delete and manage nested file structures
- Structured storage workflow similar to cloud-drive systems
- Search, preview, download, and delete files
- Optimized retrieval pipelines for fast access
- Metadata-driven file organization
- Stream videos and media files efficiently
- Chunk-based streaming support for large media files
- Adaptive playback optimization for smooth viewing experience
- Transaction-safe database operations using Mongoose Transactions
- Retry mechanisms for failure recovery
- Optimized schema design for scalable querying and storage handling
- Node.js
- Express.js
- MongoDB
- Mongoose
- JWT (JSON Web Tokens)
- bcrypt.js
- Multer
- Cloudinary
- cookie-parser
- dotenv
git clone https://github.com/vipulpandey21/StoreFile.git
cd StoreFilenpm installCreate a .env file in the root directory and add:
PORT=your_port
CORS_ORIGIN=*
MONGODB_URI=your_mongodb_uri
ACCESS_TOKEN_SECRET=your_access_token_secret
ACCESS_TOKEN_EXPIRY=your_access_token_expiry
REFRESH_TOKEN_SECRET=your_refresh_token_secret
REFRESH_TOKEN_EXPIRY=your_refresh_token_expiry
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secretnpm run devThe backend server will start on:
http://localhost:PORTRegister and authenticate users securely through JWT-based authentication endpoints.
Upload and manage files directly through Cloudinary-backed storage pipelines.
Create, search, preview, download, and delete folders/files efficiently.
View videos and media content directly through optimized chunk-based streaming.
FilesStorer/
│
├── src/
│ ├── controllers/
│ ├── routes/
│ ├── middleware/
│ ├── models/
│ ├── utils/
│ └── app.js
│
├── public/
├── .env
├── package.json
└── README.md- ✅ Mongoose Transactions for reliable database consistency
- 🔄 Retry mechanisms to minimize upload and processing failures
- ⚡ Optimized backend architecture for scalable file handling
- 🛡 Secure authentication and protected resource access
- 🎬 Efficient chunk-based media streaming workflows
- Real-time collaborative file sharing
- Folder permission management
- File version history
- CDN-based delivery optimization
- Drag-and-drop upload support
Contributions are welcome.
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to your branch
- Open a Pull Request
This project is licensed under the MIT License.
Vipul Pandey
- GitHub: https://github.com/vipulpandey21
- LinkedIn: https://linkedin.com/in/21vip