The YouTube channel JavaScript Mastery clearly demonstrated how to deploy your own web3.0 decentralized exchange on Ethereum.
There is a but related to the dropdown menu of the swap page at the end of the video. As the setShowList function is triggered twice every time we click the dropdown menu, it will not close correctly.
To solve this issue, we may remove the setShowList(false); on line 55. I tried to leave a comment, but YouTube removed it automatically as it contains some random code. I hope this can help you if you have trouble solving this issue.
You may have a look of my completed project here.