My Crypto Capstone Project

Antonio Esp
3 min readMar 1, 2022

For the Final Project of my Coding Bootcamp, I decided to build a crypto app. After many late nights, up and downs, frustration, changing cohorts, and many other struggles. The time has finally come for me to present my final project of the course.

This app is similar to a Crypto Wallet, and will allow the user to monitor their cryptocurrencies from various exchanges. There will be 7 exchanges that the user will be able to select from, and will be able to select from the top 20 Cryptocurrencies according to Total Market Cap. The back-end was written in Rails, and the front-end is in React.js.

In the Rails back-end, I had to start with building my schema.

Schema

I created an accounts, coins, exchanges, and users tables. Most of the table columns in my schema were rather self explanatory. In my Coins table, the columns correspond with the data that we were getting from the API. The table “name” represents the name of the Crypto token such as Bitcoin, Etherium, etc. The ticker is a short combination of letters to identify an asset. One example would be “ETH” which is the ticker for Ethereum. We also added “Marketcap Rank, Total Supply, Total Marketcap, and Last Updated”

In our coin.rb Model, we created a Scope Method that would display the most popular coins according to Market Cap. They will be displayed by their ticker.

Coin.rb

Another feature I added was the Crypto token prices update every mins. To assist with the, I installed the Sidekiq gem. I tried my best to make sure that the Crypto prices I had in my app, were corresponding with the updated prices of the tokens. The code in my coin_worker.rb file gets the data from the API, and my schedule.yml file, I have the price updating every 5 mins.

coin_worker.rb
schedule.yml

In the front end we have our NavBar. Our NavBar has all of the links to our components. The pages we have are Home Page, Coins, Sign Up, Login, Exchanges, Logout, and My Account.

NavBar.js

I will admit that I learned a lot during this whole course. This project took me a while to complete. During the process I can say that I was challenged, but I am very thankful that I will be able to finally present.

Happy coding!

--

--