Url Shortner on Blockchain with Truffle & React
MIT License
Gives you short link for long url, it is build upon blockchain therefore does not depend on central server.
Short link created can be shared with everyone without any dependencies on metamask. For example: https://anilmaurya.github.io/link-shortner/?12
Clone this Repository
git clone git@github.com:anilmaurya/link-shortner.git
Run the development console.
truffle develop
Compile and migrate the smart contracts. Note inside the development console we don't preface commands with truffle
.
compile
migrate
In the client
directory, we run the React app. Smart contract changes must be manually recompiled and migrated.
// in another terminal (i.e. not in the truffle develop prompt)
cd client
npm run start
Truffle can run tests written in Solidity or JavaScript against your smart contracts. Note the command varies slightly if you're in or outside of the development console.
// inside the development console.
test
// outside the development console..
truffle test
Jest is included for testing React components. Compile your contracts before running Jest, or you may receive some file not found errors.
// ensure you are inside the client directory when running this
npm run test
To build the application for production, use the build script. A production build will be in the client/build
folder.
// ensure you are inside the client directory when running this
npm run build
Deploying contract on Ropsten network
truffle migrate --network ropsten
cd client
npm run deploy
heroku create
heroku buildpacks:set https://github.com/timanovsky/subdir-heroku-buildpack
heroku buildpacks:add heroku/ruby
heroku config:set PROJECT_PATH=backend
git push heroku master
How do I use this with the Ganache-CLI?
It's as easy as modifying the config file! Check out our documentation on adding network configurations. Depending on the port you're using, you'll also need to update line 29 of client/src/utils/getWeb3.js
.
Where is my production build?
The production build will be in the client/build
folder after running npm run build
in the client
folder.
Where can I find more documentation?
This box is a marriage of Truffle and a React setup created with create-react-app. Either one would be a great place to start!