This app uses Create React App for scaffolding, Rematch (a wrapper around Redux) and Immer for state management, Formik for form management, Jest and Enzyme for client side testing, Truffle as development framework for Ethereum, and web3 as Etherrum javascript api. The contracts are written in Solidity.
The app also uses IPFS to upload attachments through the INFURA service.
Testing the client side is done using Jest as test runner and Enzyme as test utility.
Run the test for the React client side:
> yarn test
Run the test for the Solidity contracts:
> truffle test
Linting is based on the Airbnb Style Guide and Prettier.
Run the linter:
> yarn lint
Start a ganache instance:
> ganache-cli
Then migrate the contracts:
> truffle migrate --reset
Then start the app:
> yarn start
And pick an ethereum address from the ganache instance to log into the app.