RateFlow is a lightweight, end-to-end data pipeline built with Python.
It automatically fetches live currency exchange rates from free APIs, stores them locally, and visualizes historical trends in an interactive Streamlit dashboard.
- Automated ETL: Extracts, transforms, and loads daily exchange rate data.
- Open APIs: Uses Frankfurter API.
- Local Storage: Saves data in a SQLite database for persistence and analysis.
- Interactive Dashboard: Explore and visualize currency trends over time with Streamlit.
- Python 3
- Pandas – data processing
- SQLAlchemy + SQLite – local database
- Streamlit – dashboard and visualization
- Requests – API data fetching
- Altair – Interactive data visualization
RateFlow/ ├── dashboard/ │ └── app.py ├── etl/ │ ├── extract.py │ ├── load.py │ └── scheduler.py ├── data/ │ └── exchange_rates.db ├── requirements.txt ├── .gitignore └── README.md
1. Clone the repo
git clone https://github.com/<your-username>/rateflow.git
cd rateflow2. Set up env
python -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # WindowsOption B: Create a conda environment
conda create -n rateflow python=3.11
conda activate rateflow3. Install dependencies
pip install -r requirements.txt4. Run ETL pipeline
python etl/load.py5. Launch dashboard
streamlit run dashboard/app.py