My mini project: Uniswap Clone! + Discussion

I made an Uniswap-like decentralized exchange all by myself.
It took me around 3 days.

The Dapp!

ezgif.com-gif-maker

Demo in better quality:
https://drive.google.com/file/d/1X9TPcOnJYMeIK0xqGM_7UGHY3bX1Rhz8/view?usp=sharing

Full code:
https://github.com/REGO350/Uniswap-Clone

Feature

Swap ETH to ERC20 token. In this example, the supported ERC20 tokens are COMP, LINK, and DAI. The tokens were minted to the DEX in the migration process. Prices are fetched from CoinGecko API (100% free to use).

In the right-top corner, there is a login button that connects to a wallet (Metamask). Once a wallet is connected to the dapp, it changes the button text to Connected and shows the account address in the right-bottom corner.
I didn’t demonstrate this in the video but if the user change wallet account, the dapp updates the account variable as well.
Every 5 seconds, the dapp checks if the user is logged in or not.

The swap button is not clickable unless the user has sufficient amount of ETH or selected token. The arrow in the middle changes ETH-ERC20 to ERC20-ETH, vice versa.

Development

Just like in the Ethereum dApp Programming course, I used Solidity for smart contract with OpenZeppelin, Truffle for framework, and Ganache for local blockchain. For the frontend, HTML/CSS + Bootstrap for web template/design and Javascript + jQuery for the frontend logic.
Frontend was the hardest. Especially, styling all the elements and making the dropdown to work.

I think this will be the last time to use jQuery. I will move on to React (currently studying it).

→The Key Takeaway

First, a little introduction about me: I’m 20, Japanese, and an undergraduate student living in Tokyo. I am currently taking a gap year for blockchain and crypto. I still have 10 months.

I joined the academy in middle of March this year, just before gap year started. I had some experience in programming (mostly C) but had no knowledge or experience in blockchain/dapp programming. So I started from the very basics: Bitcoin & Blockchain 101, Javascript for blockchain developers, Ethererum 101, Smart Contract Programming 101 & 201, …

Now, after 2 months, I am at this stage of “being comfortable” at creating a simple Dapp by myself. However, the question is:
What’s next?
I am currently taking the Ethereum Smart Contract Security course but I will finish it by this week. After I finish with this I think I am done with the blockchain courses.

Also, I am currently studying React and a little bit of Moralis for backend.

The point I am trying to make here it that what do people do after they finished the courses? This seems like a stupid question for some people, but I am just a student who is very interested in blockchain and have never worked in company or built something for production.
With this skill, what can I do and what should I do? Maybe I could work in a company (but do I have enough skills?) or partner with someone to make a DApp (but what to make)? I still have 10 months.
I would like to hear opinions.

Thank you for reading this ultra-long post.

14 Likes

WOW now this is amazing! Congratulations for achieving this amazing project man!

Believe me or not, you have made a huge advantage to get a job has junior blockchain dev with the skills that you are showing here! (check the video lesson at the end of each course to fill your linkedin profile properly)

I will share this with the team!

Congrats :partying_face:

Carlos Z

3 Likes

veerryyy nice!! amazing work

3 Likes

Insane! Congratulations Rego!

2 Likes

Hats off to you man. For someone who is taking the Javascript course with basically 0 programming knowledge, this is amazing and inspirational stuff. Good Luck with your further studies, projects and career path. If you can, how did you practise the JS and programming for this course independent of the assignments in each class? I mean as a beginner i was kind of wondering if there could be a practise exercise(s) which can incorporate everything that had been learnt in the course material and actually build something.

2 Likes

Thank you for the reply!
Yes, I should post my certificate with my projects at Linkedin.

2 Likes

Thank you!
I did have some programming knowledge but not blockchain.
For the JS programming, JS course exercises are not enough. They are just simple exercises to get used to programming and JS language. The way I really learn it is when I actually use it in development. I googled online a lot (I open like 20tabs) while I was building this. Also, I suggest you take the Ethereum dApp programming course, this is where you really use JS.

4 Likes

Great, thanks a lot for the helpful tips man.

1 Like

Wow your project is amazing I have been here for 4 months but you are way advance than me. This got me fired up to add more time to learn and build projects.

2 Likes

Awesome!! :100: Keep building and inspiring everyone here at the academy! More success to you and your projects man! :star_struck:

PS. Saw this post thru the monthly IoT Newsletter! Congrats @REGO350!

2 Likes

Just here to jump on the train of congratulating you. This is so awesome.

1 Like

Congratulations and thank for this post ,that really inspired me