Crypto-Portfolio is an application that allows users to check the balances of their cryptocurrency portfolios for various tokens such as Ethereum, Matic, and Avalanche. It provides a convenient way to monitor multiple wallet addresses simultaneously.
- Multi-Token Support: The application checks the balances of crypto wallets for different tokens, including Ethereum, Matic, and Avalanche. More tokens will be added in the future.
- Multi-Wallet Check: Users can check the balances of up to 70 wallet addresses at once.
- Balance Summation: The application calculates the total balances across all wallets and presents them to the user in both numerical and graphical (treemap chart) formats.
- Historical Balance: The application provides the wallet balances for past durations such as 1 hour, 24 hours, 7 days, 30 days, 60 days, and 90 days, based on the historical prices and current wallet balances.
- Current Token Prices: Users can access real-time prices of the most popular cryptocurrencies obtained from CoinmarketCap.
- Frontend: Angular 15.1
- Backend: Spring Boot 2.7 (Microservices Architecture)
- Database: MySQL
- Unit Testing, Integration Testing, and E2E Testing: The application provides comprehensive test coverage to ensure its stability and reliability.
- Cross-Platform: The application is built to support both desktop and mobile browsers.
Preconditions
- Create an account on the https://coinmarketcap.com/ and add API key "COIN_MARKET_CAP_API_KEY" to system env variable
- Create an account on the https://etherscan.io/ and add API key "ETHERSCAN_API_KEY" to system env variable
- Create an account on the https://snowtrace.io/ and add API key "AVALANCHE_API_KEY" to system env variable
- Create an account on the https://polygonscan.com/ and add API key "POLYGON_API_KEY" to system env variable
- Make sure you have Docker installed on your environment
Main Steps
- Clone repo
- Run cmd script for build and compose docker containers
start build_env.bat
- Navigate to
- http://localhost:4201
- http://<host_machine_ip>:4201
The app will start with preloaded data for Bitcoin, Ethereum, Matic, Avax tokens.
This project is licensed under the MIT LICENSE. See the LICENSE file for more information.
- Unit & Integration tests for crypto-price-service
- Unit & Integration tests for wallet-service
- QA tests for API and UI