A backend application for file storage and management, inspired by Google Drive.
Built using Node.js, Express, and MongoDB, with support for file uploads, folder management, and media streaming.
- π User Authentication & Authorization β Secure signup/login with JWT + bcrypt.
- π€ File Uploads β Store files in Cloudinary (supports multiple file types).
- π Folder Management β Create, delete, and manage folders.
- π File Management β Search, download, delete, and preview files.
- π¬ Media Streaming β Stream videos efficiently using data chunking.
- Backend: Node.js, Express
- Database: MongoDB, Mongoose
- Authentication: JWT, bcrypt
- File Handling: Multer, Cloudinary
- Middleware: cookie-parser
- Clone the repository
git clone https://github.com/Suyash0803/FilesStorer.git cd FilesStorer
Install dependencies
bash Copy code npm install Set up environment variables Create a .env file in the root directory:
env Copy code PORT=your_port CORS_ORIGIN=* MONGODB_URI=your_mongodb_api_key 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_secret Start the application
bash Copy code npm run dev π Usage Create Account β Sign up using the auth endpoint.
Upload Files β Upload files to Cloudinary.
Manage Files & Folders β Create/delete/search/download.
Stream Media β View images/videos directly in the browser.
π‘ Key Concepts β Mongoose Transactions β Reliable database operations.
π Retry Mechanisms β Handles failures and minimizes data loss.
β‘ Efficient Data Handling β Optimized schema for fast queries.
π‘ Production-Ready β Error handling + best practices.
π Acknowledgements Inspired by Google Drive.
Built using Express, MongoDB, Mongoose, JWT, bcrypt, Multer, Cloudinary, cookie-parser.