An advanced machine learning system for real-time credit card fraud detection with web dashboard and mobile PWA support
Demo โข Documentation โข Report Bug
An intelligent machine learning system for detecting fraudulent credit card transactions using multiple ML algorithms and ensemble methods. The system provides a responsive web-based dashboard with PWA support for real-time fraud detection, interactive data visualization, and comprehensive model performance analysis.
- 8 Advanced ML Models: Logistic Regression, SVM, KNN, Random Forest, Decision Tree, Gradient Boosting, XGBoost, AdaBoost
- 3 Prediction Methods: Ensemble, Weighted, Sequential
- Real-time Detection: Sub-500ms prediction response time
- Imbalanced Data Handling: Specialized algorithms for fraud detection
- Model Accuracy: 99%+ accuracy on credit card datasets
- Responsive Design: Mobile-first approach with glassmorphism UI
- Progressive Web App: Installable mobile app experience
- Offline Support: Cached predictions and offline functionality
- Interactive Visualizations: Real-time charts with Plotly.js
- File Upload: CSV data processing and analysis
- Multi-page Navigation: Dashboard, Models, Analysis, Theory pages
- Transaction Analysis: Amount trends and pattern recognition
- Feature Importance: 29 feature analysis and correlation
- Interactive Charts: Class distribution, amount histograms, time series
- Statistical Metrics: Precision, Recall, F1-Score, ROC curves
- Export Options: Download results and visualizations
- Framework: Flask 2.3+
- ML Libraries: scikit-learn, XGBoost, imbalanced-learn
- Data Processing: pandas, numpy
- Model Storage: Pickle (PKL) + JSON for XGBoost
- Languages: HTML5, CSS3, JavaScript ES6+
- Styling: Custom CSS with glassmorphism design
- Visualization: Plotly.js, Chart.js
- PWA: Service Worker, Web App Manifest
- Icons: Font Awesome 6.4+
- Service Worker: Offline caching and background sync
- Responsive Design: Mobile-optimized interface
- Install Prompt: Native app installation
- Push Notifications: Fraud alert notifications
Credit-Card-Fraud-Detection-System/
โโโ ๐ app.py # Main Flask application
โโโ ๐ save_model.py # Model training and saving
โโโ ๐ requirements.txt # Python dependencies
โโโ ๐ railway.toml # Railway deployment config
โโโ ๐ Procfile # Process file for deployment
โโโ ๐ runtime.txt # Python runtime version
โโโ ๐ README.md # Project documentation
โโโ ๐ templates/ # HTML templates
โ โโโ ๐ index.html # Dashboard home page
โ โโโ ๐ model.html # ML model interface
โ โโโ ๐ visualizations.html # Data visualization page
โ โโโ ๐ analysis.html # Statistical analysis
โ โโโ ๐ theory.html # Algorithm theory
โ โโโ ๐ feature.html # Feature descriptions
โ โโโ ๐ amount-trends.html # Transaction trends
โ โโโ ๐ offline.html # PWA offline page
โโโ ๐ static/ # Static assets
โ โโโ ๐ css/
โ โ โโโ ๐ style.css # Main stylesheet (responsive)
โ โโโ ๐ js/
โ โ โโโ ๐ script.js # Main JavaScript
โ โ โโโ ๐ model.js # ML model interactions
โ โ โโโ ๐ visualizations.js # Chart functionality
โ โ โโโ ๐ pwa.js # PWA functionality
โ โโโ ๐ images/
โ โ โโโ ๐ 1.svg # Main logo
โ โ โโโ ๐ 1.ico # Favicon
โ โ โโโ ๐ icon-*.png # PWA icons (72px to 512px)
โ โโโ ๐ manifest.json # PWA manifest
โ โโโ ๐ sw.js # Service worker
โโโ ๐ ml model/ # Trained ML models
โ โโโ ๐ logreg_model.pkl # Logistic Regression
โ โโโ ๐ svm_model.pkl # Support Vector Machine
โ โโโ ๐ knn_model.pkl # K-Nearest Neighbors
โ โโโ ๐ rf_model.pkl # Random Forest
โ โโโ ๐ dt_model.pkl # Decision Tree
โ โโโ ๐ gb_model.pkl # Gradient Boosting
โ โโโ ๐ xgb_model.json # XGBoost (JSON format)
โ โโโ ๐ adaboost_model.pkl # AdaBoost
โ โโโ ๐ brf_model.pkl # Balanced Random Forest
โ โโโ ๐ easy_ensemble_model.pkl # Easy Ensemble
โโโ ๐ dataset/
โโโ ๐ test-2.csv # Test dataset for accuracy calculation
- Python: 3.8 or higher
- pip: Latest version
- Git: For cloning repository
- Modern Browser: Chrome, Firefox, Safari, Edge
- Clone the repository:
git clone https://github.com/shakiliitju/Credit-Card-Fraud-Detection-System.git
cd Credit-Card-Fraud-Detection-System- Create virtual environment (recommended):
python -m venv fraud_detection_env
source fraud_detection_env/bin/activate # On Windows: fraud_detection_env\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Train models (optional - pre-trained models included):
python save_model.py- Run the application:
python app.py- Access the application:
- Web:
http://127.0.0.1:5000 - Mobile: Same URL (PWA installable)
- Web:
# Dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]docker build -t fraud-detection .
docker run -p 5000:5000 fraud-detection| Page | Route | Description |
|---|---|---|
| ๐ Dashboard | / |
Upload CSV data, view overview |
| ๐ค ML Model | /model.html |
Real-time fraud prediction |
| ๐ Visualizations | /visualizations.html |
Interactive charts |
| ๐ Analysis | /analysis.html |
Statistical analysis |
| ๐ Theory | /theory.html |
Algorithm explanations |
| ๐ Features | /feature.html |
Feature descriptions |
| ๐ Amount Trends | /amount-trends.html |
Transaction analysis |
POST /predict
Content-Type: application/json
{
"features": [0.5, -1.2, 0.8, ...], # 29 feature values
"model": "rf" # Model selection
}POST /predict_ensemble
Content-Type: application/json
{
"features": [0.5, -1.2, 0.8, ...], # 29 feature values
"model1": "rf", # First model
"model2": "xgb" # Second model
}POST /predict_weighted
Content-Type: application/json
{
"features": [0.5, -1.2, 0.8, ...], # 29 feature values
"model1": "rf", # First model
"model2": "svm" # Second model
}[ID, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14,
V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V28, Amount]
This repository contains implementations and utilities for various popular machine learning models typically used for classification tasks.
| Short Name | Model Name | Description |
|---|---|---|
logreg |
Logistic Regression | A simple linear model for binary or multi-class classification. |
svm |
Support Vector Machine | Constructs hyperplanes for optimal class separation. |
knn |
K-Nearest Neighbors | Classifies samples based on the labels of nearest neighbors in the dataset. |
rf |
Random Forest | Ensemble of decision trees to improve accuracy and reduce overfitting. |
dt |
Decision Tree | Tree-structured classifier that splits the data for decision making. |
gb |
Gradient Boosting | Sequentially builds trees to minimize errors and improve predictions. |
xgb |
XGBoost | Scalable and optimized implementation of gradient boosting. |
adaboost |
AdaBoost | Boosting technique combining weak classifiers to create a strong classifier. |
- Ensemble Prediction: Combines predictions from multiple models
- Weighted Prediction: Uses model accuracy as weights
- Sequential Prediction: Cascade with confidence threshold
- Random Forest: 99.95%
- XGBoost: 99.94%
- Gradient Boosting: 99.93%
- Logistic Regression: 99.91%
- SVM: 99.89%
- AdaBoost: 99.87%
- KNN: 99.85%
- Decision Tree: 99.82%
- Response Time: <500ms per prediction
- Throughput: 1000+ predictions/minute
- Memory Usage: <512MB
- Offline Support: Full functionality cached
# Production Settings
export FLASK_ENV=production
export FLASK_APP=app.py
export PORT=5000
# Development Settings
export FLASK_ENV=development
export FLASK_DEBUG=1# app.py model loading
MODELS = {
'logreg': 'ml model/logreg_model.pkl',
'svm': 'ml model/svm_model.pkl',
'rf': 'ml model/rf_model.pkl',
'xgb': 'ml model/xgb_model.json', # JSON format
# ... other models
}- Visit the web app in Chrome/Edge
- Click "Install App" button or menu option
- App installs like native mobile app
- โ Browse cached pages
- โ View theory and documentation
- โ Queue predictions for online sync
- โ Basic visualizations
- โ Real-time predictions (requires internet)
- Responsive design for all screen sizes
- Touch-friendly interface
- Fast loading with cached resources
- Native app-like experience
# Install Railway CLI
npm install -g @railway/cli
# Login and deploy
railway login
railway init
railway up# Install Heroku CLI and login
heroku create fraud-detection-app
git push heroku mainUse the provided Dockerfile or deploy as Python Flask application.
Flask==2.3.3
numpy==1.24.3
pandas==1.5.3
scikit-learn==1.3.0
xgboost==1.7.6
imbalanced-learn==0.11.0
Werkzeug==2.3.7pytest==7.4.0
black==23.7.0
flake8==6.0.0- Input Validation: All user inputs are validated and sanitized
- CSRF Protection: Cross-Site Request Forgery protection enabled
- Rate Limiting: API rate limiting to prevent abuse
- Secure Headers: Security headers implemented
- Model Security: Models are loaded securely without pickle vulnerabilities (XGBoost uses JSON)
# Run tests
python -m pytest tests/
# Run with coverage
python -m pytest --cov=app tests/
# Performance testing
python -m pytest tests/test_performance.pyWe welcome contributions! Please follow these guidelines:
- Fork the repository
- Create feature branch:
git checkout -b feature/AmazingFeature - Commit changes:
git commit -m 'Add AmazingFeature' - Push to branch:
git push origin feature/AmazingFeature - Open Pull Request
# Install development dependencies
pip install -r requirements-dev.txt
# Run pre-commit hooks
pre-commit install
pre-commit run --all-files
# Run tests before committing
python -m pytest- โ Added PWA support with offline functionality
- โ Implemented 4 ensemble prediction methods
- โ Enhanced responsive design for mobile
- โ Added XGBoost JSON model format
- โ Improved visualization with Plotly.js
- โ Added comprehensive error handling
- โ Initial release with 8 ML models
- โ Basic web interface
- โ CSV file upload functionality
- โ Model accuracy calculations
Live demonstration of fraud detection system in action
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2025 Md. Shakil Hossain
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
- Flask - The web framework powering our backend
- scikit-learn - Core machine learning library
- XGBoost - High-performance gradient boosting
- Plotly.js - Interactive data visualizations
- imbalanced-learn - Handling imbalanced datasets
- Font Awesome - Beautiful icons throughout the interface
- Kaggle Community - For providing credit card fraud datasets
- Open Source Community - For countless libraries and tools
โญ Star this repository if you find it helpful! โญ












