Skip to content

A full-featured File Management System built with the MERN stack. Features include secure user authentication, file upload and management, Cloudinary integration for storage, Redis-based caching, and email notifications via Nodemailer. The system also includes a RESTful API for CRUD operations and efficient file handling.

License

Notifications You must be signed in to change notification settings

abdulrehmanwaseem/Cloud-File-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

File Management System

A comprehensive file management system built using the MERN stack (MongoDB, Express, React, Node.js).

Project Image

Note: This project was developed approximately two months ago but is being pushed to GitHub now.

Technologies Used

  • Frontend: React, Redux
  • Backend: Node.js, Express
  • Database: MongoDB
  • Job Queue: BullMQ
  • Caching: Redis
  • File Storage: Cloudinary
  • Email: Nodemailer
  • Authentication: JSON Web Tokens (JWT)

Table of Contents

Features

  • Secure user authentication and authorization
  • File upload, download, and management
  • Integration with Cloudinary for file storage
  • Redis-based caching for improved performance
  • Email notifications using Nodemailer
  • RESTful API with full CRUD operations

Installation

To set up the project locally, follow these steps:

  1. Clone the repository:

    git clone https://github.com/abdulrehman-code/File-Management-System.git
  2. Navigate to the project directory:

    cd /client and /server
  3. Install dependencies:

    npm install
  4. Set up environment variables:

    • Create a .env file in the root directory and populate it with the required variables as shown below.
  5. Run the application:

    npm run dev

Usage

  • Visit http://localhost:3000 to access the application.
  • Register or log in to start managing your files.
  • Use the dashboard to upload, download, and manage files.

Environment Variables

Create a .env file in the root directory of /server and include the following variables:

PORT=your_port_value
NODE_ENV=your_node_env_value
CLIENT_URL=your_client_url_value
MONGO_URI=your_mongo_uri_value
JWT_SECRET=your_jwt_secret_value
JWT_EXPIRES_IN=your_jwt_expires_in_value
COOKIE_EXPIRES_IN=your_cookie_expires_in_value
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name_value
CLOUDINARY_API_KEY=your_cloudinary_api_key_value
CLOUDINARY_API_SECRET=your_cloudinary_api_secret_value
REDIS_PORT=your_redis_port_value
REDIS_HOST=your_redis_host_value
REDIS_PASSWORD=your_redis_password_value
SMTP_HOST=your_smtp_host_value
SMTP_PORT=your_smtp_port_value
SMTP_USER=your_smtp_user_value
SMTP_PASS=your_smtp_pass_value
FROM_EMAIL=your_from_email_value

Contributing

Contributions are welcome! Please feel free to submit a pull request.

License

This project is licensed under the MIT License.

Contact

For any questions or issues, feel free to contact Abdul Rehman.

About

A full-featured File Management System built with the MERN stack. Features include secure user authentication, file upload and management, Cloudinary integration for storage, Redis-based caching, and email notifications via Nodemailer. The system also includes a RESTful API for CRUD operations and efficient file handling.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages