This project simplifies the decentralized process of uploading and sharing images on the blockchain. It utilizes Solidity for the smart contract and React for the front-end interface. The system allows users to securely upload images to IPFS (InterPlanetary File System) and share access with specified users through the functionality of smart contracts.
Remix IDE + Hardhat + Ethers.js + React + IPFS (distributed system)
- Frontend - React, Ethers.js
- Backend - Solidity, Hardhat (deployed on blockchain)
- Database - IPFS (data stored on IPFS to reduce high gas fees)

solidity - 0.8.17
ethers.js - 5.6.1
hardhat - 2.19.4
- Decentralized Storage: Uploaded to IPFS, images are stored in a decentralized and immutable manner.
- Smart Contract: Solidity smart contracts on the Ethereum blockchain are employed for managing ownership and access control.
- Access Control: Users have the ability to grant or revoke access to their uploaded images for specific individuals via the smart contract.
-
Metamask Installation: Ensure Metamask is installed and configured in your browser for Ethereum interactions.
-
Contract Address Update: After deploying the smart contract, remember to update the contract address in the App.js file within the React application.
-
Image Upload before "Get Data": Prior to clicking "Get Data," ensure that you have uploaded an image on Pinata. Otherwise, an error will occur stating "You don't have access."
-
Accessing Other Users' Images: Utilize the "Get Data" button to access images of other users. Enter the user's address in the provided box, but keep in mind that you can only access their images if they have granted you access through the smart contract. Otherwise, an error will be displayed saying "You don't have access."
Gdrive3.0.mov
This project is licensed under the MIT License.
๐ If you like this project, give it a star โจ and share ๐จ๐ปโ๐ป it to your friends ๐