View the live demo.
This application is a Web3 product that allows users to upload their files to IPFS and view them in a dashboard, very similar to Google Drive. However, this application is decentralized and allows users to interact with Web3.
This is a very simple product aimed to deliver a proof of concept for uploading and viewing files within IPFS in a web application built with JavaScript.
This project includes the following tech:
This app is a Truffle app with a Create React App frontend in the /client
directory which will need to be started. This app also needs to connect to an IPFS daemon running a local node. You'll also need a Web3 wallet to connect to the dApp and approve transactions.
- Local IPFS node
- Web3 Wallet
You will need to install an IPFS node on your machine to start working locally. The easiest way to do this is to install IPFS Desktop. If you already have an IPFS node on your computer, IPFS Desktop will act as a control panel and file browser for that node. If you don't have a node, it'll install one for you. And either way, IPFS Desktop will automatically check for updates.
You may also choose to work with the command line instead. You may follow these docs to install via the CLI.
Once you have IPFS installed locally, you will need to spin up a daemon for the client app to connect to. The easiest way to do this is to just open up IPFS Desktop, which will connect to your local node to the network.
You may also use the CLI to spin one up by simply running ipfs daemon
in the command line. More docs can be found here for CLI use.
You'll need an Ethereum-based wallet in your browser. The most popular one is the MetaMask extension, or you may use Brave Browser which contains a built in wallet.
Once you have IPFS installed and connected and a Web3 wallet in a browser, you can now run the client application. Install the dependencies via NPM or Yarn, and start the app.
# NPM
cd client
npm install
npm start
# Yarn
cd client
yarn install
yarn start
If you run into any problems, please submit an issue and I'll work quickly to help resolve it. Thanks!