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!
cd
in themain folder
(root directory) and- run
yarn install
to get all the packages - then
yarn dev
for starting the development server
oryarn build
for building production files
yarn lint
to lint and prettify your code base
-> likewise runyarn lint-fix
to fix linting and prettier errorsyarn cypress
to test your code base
-> make sure to have the correct url base set in thecypress.json
file when running cypress tests.
cd
in themain folder
(root directory) and- run
yarn storybook
for the development environment - or
yarn build-storybook
to build the production static files
cd
into thestudio
directory- then
yarn install
to get all the packages - run
yarn sanity-init
to init sanity backend (with promo boosted account)
choose reconfigure configuration and go with the default one - finally
yarn start
for starting the development server
oryarn build
for building the production static files
cd
into thesmart_contract
directory- then
yarn install
to get all the packages - do
yarn compile
to compile the smart contract and - finally
yarn deploy
to deploy the smart contract on a real blockchain network
on the rinkeby ethereum test network using hardhat
Next.js
as the serverSanity
for the database and admin panel of the app
React
for the frontendTailwind
for the frontend stylingStorybook
for developing react UI components
Solidity
for smart contracts on the ethereum blockchain networkMetamask
to send crypto from one wallet address to anotherHardhat
to deploy our smart contract on a test ethereum network
Cypress
for e2e, integration and unit testingESLint
/Prettier
to lint and maintain code rules throughout the appHusky
/Github Actions
to perform automatic pre-commit and after each commit tests- (
typescript
) a little touch of typescript here and there