A university project to demonstrate my first web 3.0 app. It allows you to send test ETH from one crypto wallet to another using the metamask chrome extension. Everything works on the rinkeby ethereum test network and is deployed using hardhat.
- Main App https://swap.valchy.com/
- Storybook https://storybook.swap.valchy.com/
- Sanity https://sanity.swap.valchy.com
Before starting the installation process make sure to install fnm so that husky works properly. As well as that make sure to create an account in sanity, alchemy.io and metamask.
In addition to this, please follow all the .env.example instructions inside the files. Create the appropriate projects and get the respective API keys and IDs. A lot of the installation below is dependant on correct .env file configurations. For each .env.example file please create a corresponding .env file.
You can get test ETH to your meta mask wallets from here!
cdin themain folder(root directory) and- run
yarn installto get all the packages - then
yarn devfor starting the development server
oryarn buildfor building production files
yarn lintto lint and prettify your code base
-> likewise runyarn lint-fixto fix linting and prettier errorsyarn cypressto test your code base
-> make sure to have the correct url base set in thecypress.jsonfile when running cypress tests.
cdin themain folder(root directory) and- run
yarn storybookfor the development environment - or
yarn build-storybookto build the production static files
cdinto thestudiodirectory- then
yarn installto get all the packages - run
yarn sanity-initto init sanity backend (with promo boosted account)
choose reconfigure configuration and go with the default one - finally
yarn startfor starting the development server
oryarn buildfor building the production static files
cdinto thesmart_contractdirectory- then
yarn installto get all the packages - do
yarn compileto compile the smart contract and - finally
yarn deployto deploy the smart contract on a real blockchain network
on the rinkeby ethereum test network using hardhat
Next.jsas the serverSanityfor the database and admin panel of the app
Reactfor the frontendTailwindfor the frontend stylingStorybookfor developing react UI components
Solidityfor smart contracts on the ethereum blockchain networkMetamaskto send crypto from one wallet address to anotherHardhatto deploy our smart contract on a test ethereum network
Cypressfor e2e, integration and unit testingESLint/Prettierto lint and maintain code rules throughout the appHusky/Github Actionsto perform automatic pre-commit and after each commit tests- (
typescript) a little touch of typescript here and there