Chainalysis-Project
Build Instructions:
- Clone repository:
git clone https://github.com/CharlizeD18/Chainalysis.git
cd
into project directory:cd Chainalysis
cd
into backend code:cd server
- Install dependencies:
npm install
- Run backend:
node app.js
- Open a new terminal
cd
into the frontend code:cd client
- Install dependencies:
yarn install
- Run frontend:
yarn start
- At this stage, your browser should open but if it does not, navigate to http://localhost:3000/
Questionnaire:
- Are there any sub-optimal choices( or short cuts taken due to limited time ) in your implementation?
- I hardcoded the BTC-USD and ETH-USD tickers since those are the ones we needed for this project, but it would have been better to make it more generalizable and have a function that takes in the ticker pairs you want to compare. Additionally, I could have created more components for the front-end to result in more organized and modular code.
- Is any part of it over-designed? ( It is fine to over-design to showcase your skills as long as you are clear about it)
- Due to time contraints, no part is overdesigned.
- If you have to scale your solution to 100 users/second traffic what changes would you make, if any?
- Since the Coinbase and Kraken API's have a rate limit of 2-3 requests per second, I would need to implement some sort of caching mechanism to scale with this constraint. I would add a cache that would store the result of the previous request, and if our next request is within a second of the previous request, we would grab the response from the cache.
- What are some other enhancements you would have made, if you had more time to do this implementation
- Currently, my solution only grabs the price when the page is first loaded/refreshed. If given more time, I would build the app so that it calls the api every second and caches the data as mentioned above so that it gives more immediate, real-time price values and recommendations. Additionally, I would want my code to support more exchanges and currency pairs.