maartenn / crypto-fiat-tracker

0 stars 0 forks source link

Add readme #2

Closed maartenn closed 9 months ago

maartenn commented 9 months ago

Describe how to run project with portnumber What the project does How and when prices are retrieved What frontend libraries are used Limitations of the current project What external services are used to get prices and to get transactions @autopilot

codeautopilot[bot] commented 9 months ago
# README for Crypto-Fiat Tracker Project

## Introduction
The Crypto-Fiat Tracker is a Java-based application that allows users to track their cryptocurrency transactions and evaluate their portfolio in fiat currency terms. It provides insights into the historical performance of transactions and the current valuation of the cryptocurrency holdings.

## Running the Project

### Prerequisites
- Java Development Kit (JDK) 11 or higher
- Maven for dependency management and project build

### Steps to Run
1. Clone the repository to your local machine.
2. Navigate to the project directory.
3. Run the following command to build the project:

mvn clean install

4. To start the application, run:

mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=YOUR_DESIRED_PORT

   Replace `YOUR_DESIRED_PORT` with the port number you wish to use.

## Project Functionality
- Allows users to input a Bitcoin address and view associated transactions.
- Calculates and displays the Dollar Cost Averaging (DCA) profit for the given address.
- Provides daily data visualization for the cryptocurrency and fiat currency balance.

## Price Retrieval
Prices are retrieved using the `PricesService` class, which interacts with the CoinGecko API client implementation (`CoinGeckoApiClientImpl`). The service initializes a `ConcurrentSkipListMap` with price data and schedules regular updates to ensure the latest prices are available.

## Frontend Libraries
The project uses the following frontend libraries:
- **Chart.js**: For rendering interactive charts that display the user's transaction data over time.
- **DataTables**: To provide sortable and searchable tables that list the user's transactions.

## Limitations
- The project currently supports only Bitcoin transactions.
- Price data is limited to the cryptocurrencies and fiat currencies available through the CoinGecko API.
- The application does not support real-time transaction updates; it requires manual input to refresh data.

## External Services
- **Blockstream API**: Used to retrieve transaction data for a given Bitcoin address.
- **CoinGecko API**: Utilized to fetch current and historical cryptocurrency prices in various fiat currencies.

## Conclusion
This README provides a basic overview of the Crypto-Fiat Tracker project. For more detailed information, please refer to the codebase and comments within the source files.

Please note that the above README is a template and should be customized to match the actual details and functionalities of your project. Adjust the sections as necessary to provide the most accurate and helpful information for users and contributors.

maartenn commented 9 months ago

added a big part of suggestion :)