This is a dog adoption dApp (decentralized application) based on my Dog Adoption Smart Contract. A dog owner (someone from animal rescue organization) posts a dog for an adoption (dog owner info and dog picture) via Ethereum smart contract. A dog owner should be certain that a possible dog adopter already owned a dog (dog adopter info and dog picture) before bringing a new dog home.
The frond end of the app is built with Nuxt.js (framework for Vue.js apps) and will make use of Vuetify.js component framework for Vue.js.
Truffle is chosen as a development environment to make smart contracts compilation, development, testing easier.
A dog owner info and picture will be stored on IPFS (Interplanetary File System) as Ethereum is too heavy/expensive to store large blobs like images, video etc.
Ganache is chosen to make DApp development faster.
App will be deployed to Rinkeby test network. Also, how to request more ether on Rinkeby for testing purpases.
We will not install a Geth or Parity node on our computer as it is not that easy and is time consuming. Instead, we will use Infura which is a Hosted Ethereum node cluster that lets your users run your application without requiring them to set up their own Ethereum node or wallet.
The app will make use of Metamask browser extension which turns Google Chrome into an Ethereum browser, letting websites retrieve data from the blockchain, and letting users securely manage identities and sign transactions.
You can deploy contracts to any network and test it without changing a single line of dApp code! (no hard-coded contract address). The app also works in view mode. In view mode Metamask is not installed but you still can view pages though you cannot make transactions.
Dog Adoption Application (dApp) is hosted on Firebase - https://dog-adoption-faf7b.firebaseapp.com/
To get started.
To deploy contracts to Ganache, first run Ganache UI then navigate to project's
'ethereum' folder and run 'truffle migrate --reset' command. It will generate 'build'
folder right under 'ethereum' folder and will deploy your contracts to Ganache.
To deploy contracts to Rinkeby test network go to 'ethereum' folder (do not forget to
create mnemonic.js file and specify 12-word mnemonic which is described below) and run
'truffle migrate --network rinkeby --reset' command.It will generate 'build' folder
right under 'ethereum' folder and will deploy your contracts to Rinkeby test network.
Clone the repository
git clone https://github.com/Ashot72/Dog-Adoption-dApp.git
cd Dog-Adoption-dApp
# install dependencies
npm install OR yarn install
# serve with hot reload at localhost:3000
npm run dev OR yarn run dev
# build for production and launch server
npm run build OR yarn run build
npm start OR yarn start
Note, you should create mnemonic.js file in ethereum folder https://github.com/Ashot72/Dog-Adoption-dApp/tree/master/ethereum and specify your 12-word mnemonic (More in the description link below).
module.exports = 'beach machine supply simple analyst trophy dirt naive blur alcohol essence hundred'
Go to Dog Adoption Smart Contract GitHub page
Go to Dog Adoption dApp with Ganache Video page
Go to Dog Adoption dApp on Rinkeby Test Nentwork Video page
Go to How to run Dog Adoption dApp page
Go to Dog Adoption dApp description page