๐ก๏ธ Fraud Detection Platform
Real-time Fraud Detection System powered by Machine Learning
A production-ready, end-to-end fraud detection platform built with FastAPI, Docker, and Machine Learning. Detect fraudulent transactions in real-time with monitoring, observability, and a beautiful dashboard.
๐ Table of Contents
- โจ Features
- ๐๏ธ Architecture
- ๐ Quick Start
- ๐ Dashboard
- ๐ Project Structure
- โ๏ธ Configuration
- ๐ง Development
- ๐ Monitoring
- ๐ค Contributing
- ๐ License
โจ Features
Core Features
- ๐ Real-time Fraud Detection - Detect fraudulent transactions in milliseconds
- ๐ค ML Models - XGBoost, LightGBM, CatBoost
- ๐ Data Pipeline - ETL pipeline with data generation and validation
- ๐๏ธ Feature Store - Lightweight feature management
Infrastructure
- ๐ณ Dockerized deployment
- ๐ Prometheus & Grafana Monitoring
- ๐ Streamlit Dashboard
- ๐งช MLflow Experiment Tracking
API & Integration
- ๐ FastAPI
- ๐ Swagger/OpenAPI
- ๐ Kafka Streaming
- ๐๏ธ PostgreSQL
๐๏ธ Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Client Applications โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Streamlit Dashboard (8501) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ FastAPI (8000) โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ /detect โ โ /history โ โ /stats โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ FraudService (Business Logic) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Machine Learning Engine โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ LightGBM โ โ XGBoost โ โ CatBoost โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Data & Storage โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ PostgreSQL โ โ Kafka โ โ Models โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Monitoring Stack โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ Prometheus โ โ Grafana โ โ Evidently โ | MlFlow | โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Quick Start
Prerequisites
- Docker 24+
- Docker Compose 2.20+
- Python 3.11+
Clone Repository
git clone https://github.com/yourusername/fraud-detection-platform.git
cd fraud-detection-platform
Run Docker
docker-compose up -d
docker-compose ps
docker-compose logs -f api
Available Services
| Service | URL |
|---|---|
| API | http://localhost:8000 |
| Swagger | http://localhost:8000/docs |
| Streamlit | http://localhost:8501 |
| Grafana | http://localhost:3000 |
| PGAdmin | http://localhost:5050 |
| Kafka UI | http://localhost:8080 |
| MlFlow | http://localhost:5000 |
Test API
curl -X POST http://localhost:8000/api/v1/fraud/detect \
-H "Content-Type: application/json" \
-d '{
"transaction_id":"TX123456",
"user_id":"user_3851",
"amount":1500.0,
"timestamp":"2024-07-05T10:30:00",
"merchant":"Amazon"
}'
curl http://localhost:8000/api/v1/fraud/stats?days=7
curl "http://localhost:8000/api/v1/fraud/history/all?days=7&limit=50"
๐ Dashboard
Streamlit
- ๐ Overview
- ๐ Real-time Detection
- ๐ Analytics
- ๐ค User Risk Profile
- ๐ Model Performance
Grafana
- API Metrics
- Model Performance
- Business Metrics
๐ Project Structure
fraud-detection-platform/
โโโ src/
โ โโโ api/
โ โ โโโ routers/
โ โ โโโ schemas/
โ โ โโโ services/
โ โโโ core/
โ โโโ data_engineering/
โ โโโ ml_engineering/
โโโ dashboard/
โโโ tests/
โโโ models/
โโโ data/
โโโ grafana/
โโโ monitoring_reports/
โโโ docker-compose.yml
โโโ Dockerfile
โโโ requirements.txt
โโโ README.md
โ๏ธ Configuration
Environment Variables
DB_HOST=postgres
DB_PORT=5432
DB_NAME=fraud_db
DB_USER=fraud_user
DB_PASSWORD=fraud_pass
API_HOST=0.0.0.0
API_PORT=8000
API_DEBUG=True
KAFKA_BOOTSTRAP_SERVERS=kafka:9092
MLFLOW_TRACKING_URI=http://mlflow:5000
๐ค Supported Models
| Model | Status |
|---|---|
| XGBoost | โ |
| LightGBM | โ |
| CatBoost | โ |
๐ง Development
Local Setup
python3.11 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn src.api.main:app --reload
streamlit run dashboard/app.py
Train Model
docker exec -it fraud_api python scripts/train_model.py
or
python scripts/train_model.py
Run Tests
pytest tests/ -v --cov=src
Generate Data
docker exec fraud_api python src/data_engineering/generator.py
docker exec fraud_api python src/data_engineering/etl_pipeline.py
๐ Monitoring
Prometheus Metrics
- http_requests_total
- http_request_duration_seconds
- fraud_predictions_total
- model_accuracy
Grafana Dashboards
- API Performance
- Fraud Analytics
- Model Performance
- System Health
๐ค Contributing
- Fork repository
- Create feature branch
git checkout -b feature/amazing-feature
- Commit
git commit -m "Add amazing feature"
- Push
git push origin feature/amazing-feature
- Open Pull Request
๐ License
Licensed under the MIT License.
๐ Acknowledgments
- FastAPI
- Scikit-learn
- Docker
- Grafana
- Streamlit
๐จโ๐ป Author
Sobhan Alizadeh
AI Engineer ยท Builder of Intelligent Systems ยท RAG & LLM Enthusiast
โญ Support
If you like this project, please give it a โญ on GitHub.
Built with โค๏ธ for Fraud Detection.