https://golden-eye.azurewebsites.net/
A simple web service that continuously collects current currency exchange rates from open banking and crypto exchange APIs, displays them on the website and provides them in JSON and XML formats through its own RESTful API. Manually editing exchange rates and manually requesting the latest updates is also available. The system automatically collects all required currency exchange rates and updates them in the database every hour.
Technology stack:
- Language: Python
- Framework: Flask
- Databases: 2 PostgreSQL separated for main data and for external APIs logs
- ORM: Peewee
- Jobs scheduler: APScheduler
- Frontend: Jinja2 and Bootstrap 4
- WSGI: Gunicorn
- Testing: Pytest and Coverage
- Logging: core - Python build-in logging, web - Flask logging
- Linter: Flake8
- Containerization: Docker
- Deployment: Azure
- CI/CD: GitHub Actions
External APIs used (JSON and XML):
- The Ukrainian State Bank PrivatBank: https://api.privatbank.ua/
- The Central Bank of Russian Federation: https://cbr.ru/development/sxml/
- Blockchain.info: https://www.blockchain.com/api
- Cryptonator: https://api.cryptonator.com/api/
- Coinmarketcap: https://coinmarketcap.com/api
DBs structure: https://drawsql.app/kpi-6/diagrams/golden-eye