A financial analytics platform for tracking and analyzing Federal Reserve interest rate changes. This system provides real-time insights into monetary policy trends through automated data collection, advanced analytics, and interactive visualizations.
git clone https://github.com/utkuyucel/fundratetracker.git
cd fundratetracker
cp .env.example .env
# Edit .env to add your Alpha Vantage API key
docker-compose up -d
Access the applications
Dashboard: http://localhost:5001
API Documentation: http://localhost:8000/docs
Test the API
curl http://localhost:8000/health
curl http://localhost:8000/api/rates/latest
fundratetracker/
βββ docker-compose.yml
βββ Dockerfile # FastAPI app Dockerfile
βββ .env.example
βββ README.md
βββ app/ # FastAPI backend service
β βββ main.py
β βββ etl_pipeline.py
β βββ database.py
β βββ analytics.py
β βββ scheduler.py
β βββ requirements.txt
βββ dashboard/ # Flask dashboard service
β βββ Dockerfile
β βββ app.py
β βββ requirements.txt
β βββ templates/
β βββ static/
βββ sql/
βββ init.sql
GET /
- API information and versionGET /health
- Health check statusGET /api/rates/latest
- Get the most recent Federal Funds RateGET /api/rates/historical
- Historical data with optional date filteringstart_date
, end_date
, limit
YYYY-MM-DD
GET /api/analytics/summary
- Comprehensive statistical summaryGET /api/analytics/moving-averages
- Moving averages (30, 90, 365 days)POST /api/pipeline/trigger
- Manually trigger ETL pipeline# View all service logs
docker-compose logs -f
# View specific service logs
docker-compose logs -f app
docker-compose logs -f postgres
docker-compose logs -f dashboard
# Check service status
docker-compose ps
The project includes automatic database initialization:
sql/init.sql
file contains all necessary table definitions and indexesIf you want to immediately populate data without waiting for the scheduler:
# Trigger ETL pipeline manually via API
curl -X POST http://localhost:8000/api/pipeline/trigger
# Or run ETL directly inside the container
docker-compose exec app python -c "import asyncio; from etl_pipeline import FedRateETL; asyncio.run(FedRateETL().run_pipeline())"
.env
docker-compose logs postgres
# Check API health
curl http://localhost:8000/health
# Check dashboard health
curl http://localhost:5001/health
# Check database connection
docker-compose exec postgres pg_isready -U dataeng -d fed_analytics
This project is licensed under the MIT License.