Skip to content

MyCloud is a file server written in Node.js that provides file management capabilities with unlimited storage πŸš€βš‘

License

Notifications You must be signed in to change notification settings

pavlokolodka/MyCloud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

65 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MyCloud

MyCloud is a file server written in Node.js that provides file management capabilities with unlimited storage.

πŸ”¨ Test version:

  1. Main endpoing
  2. OpenAPI documentation

πŸ”₯ Features

  • File CRUD: Upload, download, update, and delete files with ease. Files can be stored and managed using a simple and intuitive API. MyCloud implements file encryption using the AES-256-CBC algorithm to enhance data security.
  • User Authentication: Enable secure sign-in, sign-up, password recovery, and email verification functionality, empowering users to create and manage their accounts for a personalized experience.
  • Unlimited Storage: MyCloud offers unlimited storage for managing files, allowing users to store and retrieve files without worrying about storage limitations.

πŸš€ Installation

To run MyCloud on your local machine, you'll need to have Git and Node.js installed. Follow the steps below:

  1. Clone the MyCloud repository to your local machine using Git:
git clone https://github.com/pavlokolodka/MyCloud.git
  1. Create a .env file by making a copy of .env.example. This file will contain the configuration for your environment variables:
cp .env.example .env
  1. Install the project dependencies using npm
npm install
  1. Start the MyCloud server. There are two available scripts depending on the mode you want to run:
  • For production mode:
npm run build
npm run start
  • For development mode (with nodemon for auto-reloading):
npm run dev

Alternative way using Docker:

  1. Clone the MyCloud repository to your local machine using Git:
git clone https://github.com/pavlokolodka/MyCloud.git
  1. Create a .env file by making a copy of .env.example. This file will contain the configuration for your environment variables:
cp .env.example .env
  1. Build the Docker image using the Dockerfile. This will create a Docker image named mycloud
docker build . -t mycloud
  1. Run the Docker container as a daemon using the newly created image.
docker run -p 5000:5000 -d mycloud

πŸ“š Documentation

System documentation:

System documentation is an essential component of any software project. It helps developers and stakeholders to understand the system's architecture, design, and operation. You can view the UML component and deployment diagrams by clicking on the link.

System documentation

API Documentation:

MyCloud provides a RESTful API with OpenAPI documentation, allowing developers to easily understand and utilize its functionality. Detailed documentation of the API endpoints and usage can be found in

localhost:5000/v1/docs

Development:

The detailed documentation for development can be found in the Mycloud Wiki.

Mycloud Wiki

Technologies Used

  • Node.js: A popular and widely-used JavaScript runtime that allows server-side execution of JavaScript code.
  • Express: A fast and flexible web application framework for Node.js that simplifies routing, middleware handling, and other common web development tasks.
  • MongoDB: A popular NoSQL database that provides flexibility and scalability for storing and managing large amounts of data, making it suitable for handling file storage requirements.
  • JWT (JSON Web Token): A widely used authentication and authorization mechanism for securing web applications, providing a stateless and secure way of transmitting user authentication data between client and server.
  • TypeScript: A superset of JavaScript that provides static typing, better tooling, and enhanced scalability for larger applications, ensuring code quality and robustness.
  • OpenAPI: A specification for describing RESTful APIs using a standard language- and framework-agnostic format, allowing for better documentation, testing, and client code generation.

βœ… TODO

MyCloud todo board

🀝 Contributing

Contributions to MyCloud are welcome! If you have suggestions for new features, bug reports, or other contributions, please open an issue or submit a pull request.

πŸ“œ License

MyCloud is released under the MIT License.

About

MyCloud is a file server written in Node.js that provides file management capabilities with unlimited storage πŸš€βš‘

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages