A microservice which periodically retrieves currency rates from CoinMarketCap, for the following pairs: BTC/EUR, BTC/USD, BTC/GBP, ETH/EUR, ETH/USD, ETH/GBP
1. Features
2. Technologies
2. Installation and Setup
4. Documentation
5. Limitations
6. How To Contribute
- Periodically fetches latest cryptocurrency rates for Bitcoin, and Etherium against USD, EUR and GBP fiat currencies from coinmarketcap.com
- Save cryptocurrency exchange rates to a postgres database
- Retrieve records of latest cryptocurrency rates in descending order
- Apply pagination to returned data
- Search records `from` and `to` given timestamps
- Retrieve application logs using endpoint: `GET /logs`
1. Nodejs
2. Express for api routes implementation
3. Winston and volleyball for logging events and requests
4. Babel for transpiling from ES6+ to ES6
5. Axios for making http request to COIN_MARKET_CAP API
6. Postgresql & Sequelize for database management
7. Heroku for hosting services
1. Install Nodejs and Postgres SQL
2. Clone this repo "git clone https://github.com/nzediegwu1/crypto-currency-tracker.git"
3. Run "npm install" to install dependencies
4. Create a Postgresql database
5. Create a ".env" file and define env variables using sample file: ".env.sample" in the root directory.
6. Run migrations: `yarn migrations`
7. Start the application: `yarn dev`
1. Use "yarn postinstall" → to orchastrate build and migrations
2. Start the application using `yarn start`
Go to http://localhost:8000 on your browser to view app
- The API was documented using postman.
- To view on Postman:
- Online Documentation: Click here
1. Does not have rate limiting to prevent DDOS
2. Currently limited to BTC and ETH cryptocurrencies
3. Only retrieves conversion rates in USD, EUR and GBP
To contribute to the project, follow the instructions below
- Fork the repo on GitHub
- Clone the project to your own machine
- Commit changes to your own branch
- Push your work back up to your fork
- Submit a Pull request so that I can review your changes
NOTE: Be sure to merge the latest from "upstream" before making a pull request!
- This project is licensed under the MIT License
- Copyright © 2019 Anaeze Nsoffor