Skip to content

ashwanizz/MultiAPI-Dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌐 MultiAPI Dashboard

Python License API

A production-quality, command-line Python application that integrates three public APIs into a unified, menu-driven dashboard. Get real-time weather data, cryptocurrency prices, and latest news β€” all from your terminal.


✨ Features

Feature Description
🌀 Weather Real-time weather for any city worldwide (temperature, humidity, wind, sunrise/sunset)
β‚Ώ Cryptocurrency Live crypto prices, market cap, 24h changes, rankings (Bitcoin, Ethereum, Solana, etc.)
πŸ“° News Search latest news by topic with source filtering
πŸ“‹ Search History Persistent history of all searches with timestamps
πŸ“€ Export Export results to CSV and JSON formats
🎨 Beautiful CLI ANSI-colored output with ASCII art banner
πŸ”„ Auto-Retry Automatic retry with exponential backoff on failures
⚑ Caching In-memory response caching to reduce API calls
πŸ›‘ Error Handling Graceful handling of network, API, and input errors

πŸ›  Technologies

  • Language: Python 3.8+
  • HTTP Client: requests library
  • Data Formats: JSON, CSV, XML/RSS
  • Logging: Python logging with rotating file handler
  • APIs Used:
    • wttr.in β€” Weather (no API key required)
    • CoinGecko β€” Cryptocurrency (no API key required)
    • NewsData.io β€” News (free API key) + Google News RSS fallback

πŸ“¦ Installation

Prerequisites

  • Python 3.8 or higher
  • pip (Python package manager)

Steps

# 1. Clone the repository
git clone https://github.com/yourusername/MultiAPI-Dashboard.git
cd MultiAPI-Dashboard

# 2. Create a virtual environment (recommended)
python -m venv venv

# 3. Activate the virtual environment
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate

# 4. Install dependencies
pip install -r requirements.txt

Optional: Configure News API Key

For the best news experience, get a free API key from NewsData.io (no credit card required):

  1. Register at newsdata.io
  2. Copy your API key from the dashboard
  3. Open config.py and paste your key:
    NEWS_API_KEY = "your_api_key_here"

Note: The app works without a news API key! It automatically falls back to Google News RSS.


πŸš€ How to Run

python main.py

πŸ“ Project Structure

MultiAPI-Dashboard/
β”‚
β”œβ”€β”€ main.py              # Application entry point & menu system
β”œβ”€β”€ weather.py           # Weather service (wttr.in integration)
β”œβ”€β”€ crypto.py            # Cryptocurrency service (CoinGecko integration)
β”œβ”€β”€ news.py              # News service (NewsData.io + RSS fallback)
β”œβ”€β”€ history.py           # Search history persistence
β”œβ”€β”€ exporter.py          # CSV & JSON export functionality
β”œβ”€β”€ api_client.py        # Centralized HTTP client with retry & caching
β”œβ”€β”€ config.py            # Configuration constants & API URLs
β”œβ”€β”€ logger.py            # Rotating file logger setup
β”œβ”€β”€ utils.py             # UI helpers, banner, spinner, formatting
β”‚
β”œβ”€β”€ requirements.txt     # Python dependencies
β”œβ”€β”€ README.md            # Project documentation
β”œβ”€β”€ LICENSE              # MIT License
β”œβ”€β”€ .gitignore           # Git ignore rules
β”‚
β”œβ”€β”€ logs/                # Application logs (auto-generated)
β”‚   └── api.log
β”œβ”€β”€ exports/             # Exported CSV & JSON files
β”œβ”€β”€ data/                # Persistent data (search history)
β”‚   └── history.json
└── screenshots/         # Application screenshots

πŸ“Έ Screenshots

Main Menu

Main Menu

Weather Result

Weather Result

Cryptocurrency Result

Cryptocurrency Result

News Result

News Result

Search History

Search History

Export to CSV

Export CSV


πŸ”Œ API Information

API Provider Auth Rate Limit Documentation
Weather wttr.in None Generous wttr.in/:help
Crypto CoinGecko None 10-30/min docs.coingecko.com
News NewsData.io Free Key 200/day newsdata.io/docs
News (fallback) Google News RSS None Unlimited RSS Feed

🚧 Future Improvements

  • Currency conversion β€” Display crypto prices in multiple currencies (EUR, INR, GBP)
  • Weather forecast β€” Show 3-day and 7-day weather forecasts
  • Watchlist β€” Save favorite cryptocurrencies and cities
  • Rich TUI β€” Upgrade to a full terminal UI with textual or rich
  • Unit tests β€” Comprehensive pytest test suite with mocked API calls
  • Docker β€” Containerize the application
  • Config file β€” Move settings to a YAML/TOML config file
  • API key rotation β€” Support multiple news API keys
  • SQLite history β€” Upgrade from JSON to SQLite for history storage
  • Charts β€” ASCII price charts for cryptocurrency trends

πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.


πŸ™ Acknowledgments


Built with ❀️ using Python

A project by Ashwani

About

No description, website, or topics provided.

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages