A project developed in Python that integrates a Tkinter-based GUI for interacting with cryptocurrency data from the chain.so API, visualizes Bitcoin price data, and includes a basic Flask-based blockchain implementation.
- Cryptocurrency Data Interface: A user-friendly Tkinter GUI to fetch and display information about various cryptocurrencies (e.g., BTC, DOGE, ETH) including network details, address transactions, and confirmation status via the chain.so API.
- Bitcoin Price Visualization: Interactive graphs generated using Pandas, Matplotlib, and Plotly to visualize historical Bitcoin (USD) price data (2012-2021), including:
- Full-time Bitcoin price curve.
- Full-time Bitcoin price difference curve.
- Bitcoin price curve for the year 2019.
- Bitcoin price difference curve for the year 2019.
- Basic Blockchain Implementation: A minimal blockchain created using Flask, allowing for:
- Mining new blocks with a proof-of-work algorithm.
- Retrieving the full blockchain.
- Real-time Updates: Displays current date and time in the GUI.
- Clone the repository:
git clone https://github.com/skan652/BitSkoin.git
cd BitSkoin- Create a virtual environment (recommended):
python -m venv venv
source venv/bin/activate # On Windows: `venv\\Scripts\\activate`- Install dependencies:
pip install -r requirements.txt- Download the
bitstampUSD_1-min_data_2012-01-01_to_2021-03-31.csvdataset and place it in the project root or update the path inbitskoin.py.
- Run the application:
python bitskoin.py- GUI Interface:
- Enter the required information (Network, Address, r_transaction, nc, Is confirmed, Value) and click "RESULT" to fetch and display cryptocurrency data.
- Use the "Access the graphs" dropdown menu to view various Bitcoin price visualizations.
- Click "GENERATE LINK(S)" to start the Flask blockchain API, which will output links to the console for mining and viewing the blockchain.
Once the blockchain is running (by clicking "GENERATE LINK(S)" in the GUI), you can interact with it via the following endpoints:
- Mine a new block:
GET /mine_block
Example: http://127.0.0.1:5000/mine_block
- Get the full blockchain:
GET /get_chain
Example: http://127.0.0.1:5000/get_chain
Tashfeen Engineering Solutions (2022)