End-to-end Web Blockchain application powered by http://blockchain.info
End-to-end Web Blockchain application powered by http://blockchain.info
Front-end : React, Babel, Webpack, Apollo Client
Back-end : Nodejs , Typescript, GraphQL , Apollo Server, Docker, Redis
You will need to install the following as pre-requisites to getting started:
- Clone repository from github
Once you have the above installed, run the following command from the root:
docker-compose up -d
- when the containers are up -> open browser tab with (http://localhost:3000/)
Start GraphQL API (http://localhost:5000/)
cd backend
yarn install
yarn dev
Start React Client App (http://localhost:3000/)
cd frontend
yarn install
yarn start
Note: for backend part you should have Redis installed locally installation guide or spin up redis container
An GraphQL API providing blockchain public data powered by https://www.blockchain.com/
Used 2 layers of caching powered by Redis cache client:
- GraphQL Automatic Persisted Queries
- Full response cache with response cache plugin
- Current
@cacheControl
is set to maxAge: 3600 (1 hour) - Could be used CDN cache sitting in front of the API as well
Built and configured test basis using Jest. Currently, there are two types of tests - unit and functional ones. Could be added more unit and integration tests ( client and server ).
The testing strategy could be created with two types of tests:
- test react components with Enzyme or React testing library
- full e2e tests with Cypress
Nowadays, through project containerization, integration with cloud providers and services such as AWS, GCP, Azure becomes really easy.
For example AWS and Docker have collaborated to make a simplified developer experience that enables you to deploy and manage containers on Amazon ECS directly using Docker tools. You can now build and test your containers locally using Docker Desktop and Docker Compose, and then deploy them to Amazon ECS on Fargate.