This project is a Python-based dashboard that fetches, analyzes, manipulates, visualizes, and normalizes historical Bitcoin price data from the CoinGecko API. It also includes a simulated real-time data streaming feature using threading.
- Fetch Data: Retrieve historical Bitcoin price data from the CoinGecko API.
- Data Analysis: Compute statistical metrics like mean, median, and standard deviation using NumPy.
- Data Manipulation: Sort, slice, and clean Bitcoin price data, extracting the first and last 7 days for trend analysis.
- Visualization: Generate line and bar charts using Matplotlib.
- Normalization: Apply Min-Max normalization to compare raw and scaled price data.
- Simulated Data Streaming: Fetch and update Bitcoin price data in real-time using threading for concurrency.
├── fetch_data.py # Fetches Bitcoin data from CoinGecko API
├── process_data.py # Performs statistical analysis
├── manipulate_data.py # Sorts, slices, and cleans data
├── visualization.py # Generates line and bar charts
├── normalization.py # Normalizes and compares price data
├── datastream.py # Implements real-time data streaming with threading
├── plots-snip/ # Directory for saving generated plots
├── README.md # Project documentation
├── requirements.txt # Required Python packages
- Clone the repository:
git clone https://github.com/NeeteshKumar2/bitcoin_dashboard.git cd bitcoin-dashboard - Create a virtual environment (optional but recommended):
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
- Install dependencies:
pip install -r requirements.txt
- Fetching Bitcoin Data:
python fetch_data.py
- Analyzing Bitcoin Price Trends:
python analyze_data.py
- Manipulating Data for Trends:
python manipulate_data.py
- Visualizing Bitcoin Price Trends:
python visualization.py
- Normalizing Bitcoin Prices:
python normalization.py
- Simulated Data Streaming (Concurrent Fetching):
python data_streaming.py
See requirements.txt for a list of required dependencies.
This project is open-source and free to use. Modify and distribute as needed.
Developed by Neetesh Kumar