Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

169 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Decentralized File Storage System

Web-based application for secure file storage on the blockchain

Overview

The Decentralized File Storage System is a web-based application built on web3 technology that enables users to securely upload and store files on the blockchain. It allows users to access and view their files directly from the browser when connected to the same wallet. Additionally, users can share files with other users by leveraging the allowlist feature, which allows specific addresses to access the shared files. Furthermore, the system provides the ability to disallow specific addresses from viewing the files, ensuring privacy and control over shared content.

Features

  • File Upload on Blockchain: Users can upload their files to the blockchain, ensuring their data is securely stored and tamper-proof.

  • Direct Browser Access: Users can directly access and view their files through a web browser when connected to the same wallet.

  • File Sharing: Users can share files with other users by adding their addresses to the allowlist, granting them access to the shared content.

  • Allowlist Management: Users can easily manage the allowlist by adding or removing addresses, controlling who can view the shared files.

  • Privacy and Security: The system provides privacy and security by allowing users to disallow specific addresses from accessing their files, maintaining control over shared content.

Tech Stack

  • Front-end: HTML, CSS, JavaScript

  • Back-end : Solidity, Hardhat(localhost) [Later deployed on mumbai testnet]

  • Blockchain Integration: Web3.js

  • API: Axios

  • Framework: ReactJS

  • Storage: Pinata

Demo

https://securesharex-web3.vercel.app/

Installation

  1. Clone the repository:

    git clone https://github.com/Raja543/File-storage-system.git
    
  2. Navigate to the project directory:

cd client
  1. Install the dependencies
npm install
  1. Configure the project:
  • Update the blockchain connection settings in the config.js file.
  • Set up the necessary API keys or environment variables for blockchain integration.
  1. Start the application:
npm start

Usage

  • Open the application in your web browser.

  • Connect your wallet to the application by selecting the appropriate wallet provider and authorizing the connection.

  • Upload files by clicking on the "Upload" button and selecting the desired files from your local machine.

  • View your files directly from the browser interface when connected to the same wallet.

  • Share files with other users by adding their addresses to the allowlist in the application settings.

  • Manage the allowlist by adding or removing addresses to control access to the shared files.

  • Disallow specific addresses to revoke their access to the shared content.

Contributing

Contributions are welcome! If you would like to contribute to this project, please follow these steps:

  1. Fork the repository.

  2. Create a new branch for your feature or bug fix.

  3. Make your changes and commit them with descriptive commit messages.

  4. Push your changes to your forked repository.

  5. Submit a pull request to the main repository.

License

This project is licensed under the MIT License.

Developers

Contact

For any questions or inquiries, please contact rajakumarmahto952@gmail.com , dipkarmakar14@gmail.com

Socials

Follow on social to get insights of upcoming web3 projects

  1. Raja (Linkedin) (Twitter)
  2. Dip Karmakar (Linkedin) (Twitter)

Releases

Packages

Contributors

Languages