DecentraDrive is a decentralized file storage application built with React and Motoko, running on the Internet Computer. It allows users to upload, store, and retrieve files in a decentralized manner, ensuring data integrity and availability without depending on centralized servers.
- Decentralized Storage: Leverage the power of the Internet Computer for storing files securely.
- File Upload and Download: Easily upload files and download them whenever needed.
- Scalable and Efficient: Built to scale with the needs of users while maintaining efficiency.
- Modern Technologies: Utilizes React for the frontend and Motoko for the backend.
Follow these instructions to set up and run DecentraDrive on your local machine for development and testing purposes.
- Node.js (version 14 or later)
- npm (version 6 or later)
- DFX SDK (version 0.14.0 or later)
- Internet Computer Local Replica
-
Clone the Repository
git clone https://github.com/raccoon254/decentradrive.git cd decentradrive
-
Install Dependencies
npm run setup
-
Start the Internet Computer Local Replica
dfx start --clean --background
-
Start the server
npm start
-
Access the Application
Open your browser and navigate to
http://localhost:3000
.
- Click on the "Choose File" button and select a file from your computer.
- Click the "Upload" button to upload the file to the decentralized storage.
- The uploaded files will appear in the Files list.
- Click on the "Download" button next to a file to download it.
decentradrive/
├── backend/
│ └── Backend.mo # Motoko backend actor
├── src/
│ ├── components/
│ │ ├── FileUpload.tsx # Component for uploading files
│ │ └── FileList.tsx # Component for listing and downloading files
│ ├── App.tsx # Main application component
│ ├── index.tsx # Entry point for React
│ └── declarations/ # Generated canister declarations
├── assets/
│ └── ... # Images and other assets
├── dfx.json # DFX configuration
├── package.json # Project metadata and scripts
└── README.md # Project documentation
-
Setup the Project
npm run setup
-
Start the Development Servers
npm run start
-
Build the Project
npm run build
-
Run Tests
npm run test
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create your feature branch:
git checkout -b feature/YourFeature
. - Commit your changes:
git commit -m 'Add some feature'
. - Push to the branch:
git push origin feature/YourFeature
. - Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Internet Computer - For providing the decentralized platform.
- Motoko Language - For the powerful backend language.
- React - For the frontend library.
- ic-reactor - For simplifying React and Internet Computer integration.
- Email: tomsteve187@gmail.com
- GitHub: @raccoon254