Skip to content

berhanu-tarekegn/fraud-detection

Repository files navigation

Epsilon - Enterprise Fraud Detection & Case Management Platform

Version Python FastAPI React TypeScript License

A production-ready fraud detection and case management platform with real-time alerting, comprehensive investigation tools, and advanced analytics.

Features β€’ Quick Start β€’ Architecture β€’ Documentation β€’ API


πŸ“‹ Table of Contents


🎯 Overview

Epsilon is an enterprise-grade fraud detection and investigation platform designed for financial institutions, fintech companies, and e-commerce platforms. It provides end-to-end fraud management capabilities from alert generation through case resolution, with complete audit trails and comprehensive analytics.

What Makes Epsilon Special?

  • βœ… Complete Workflow: Alert β†’ Case β†’ Investigation β†’ Resolution β†’ Disposition
  • βœ… Real-time Detection: JSON-based rule engine with sub-second evaluation
  • βœ… Case Management: Full-featured case workflow with notes, activities, and timeline
  • βœ… Investigation Tools: Customer 360Β° view and cross-entity search
  • βœ… Analytics & Reporting: Real-time metrics, dashboards, and performance tracking
  • βœ… Scalable Architecture: Async processing, indexed database, horizontal scaling ready
  • βœ… Production Ready: 95% feature complete, comprehensive testing, full documentation

πŸš€ Key Features

1. Alert Management

  • Real-time Alert Generation: Rule-based fraud detection with configurable thresholds
  • Alert Prioritization: Automatic priority assignment (low, medium, high, critical)
  • Alert Assignment: Assign alerts to analysts for review
  • Alert Actions: Create cases, add notes, close alerts
  • Filtering & Search: Status, priority, decision, customer filters
  • Bulk Operations: Efficient handling of high-volume alerts

2. Case Management

  • Complete Case Lifecycle: Open β†’ Investigating β†’ Resolved β†’ Closed
  • Case Creation: Create cases directly from alerts with one click
  • Case Assignment: Assign cases to team members
  • Notes & Comments: Collaborative investigation with timestamped notes
  • Activity Timeline: Complete audit trail of all case actions
  • Case Resolution: Resolve with dispositions (True/False Positive)
  • Fraud Amount Tracking: Monitor financial impact
  • Case Attachments: Document evidence (schema ready)

3. Disposition Tracking

  • Automatic Disposition: Created automatically on case resolution
  • Disposition Types: True Positive, False Positive, Unable to Determine
  • Performance Metrics: Precision rate, false positive rate tracking
  • Fraud Impact: Total fraud prevented and recovered amounts
  • Trend Analysis: Historical disposition patterns

4. Investigation Tools

  • Customer 360Β° View: Comprehensive customer profile
    • Total alerts and cases
    • True/false positive history
    • Blocked transactions
    • Fraud amount trends
  • Customer Timeline: Chronological event history
  • Cross-Entity Search: Search by customer ID, device, IP, email, phone
  • Recent Activity: Latest alerts and cases

5. Watchlist Management

  • Blocklist: High-risk entities to automatically flag
  • Greylist: Suspicious entities requiring extra scrutiny
  • Whitelist: Trusted entities to bypass certain checks
  • Entity Types: Customer ID, device ID, IP address, email, phone
  • Match Recording: Track when entities hit watchlists
  • Active/Inactive: Enable/disable watchlist entries

6. Rule Management

  • JSON-Based DSL: Flexible, declarative rule definition
  • Rule Versioning: Track rule changes over time
  • Draft/Published: Safe testing before production
  • Pattern Library: Reusable fraud patterns
  • Scoring System: Configurable thresholds and weights
  • External Enrichment: Third-party data provider integration
  • Rule Testing: Evaluate rules before deployment

7. User Management

  • Role-Based Access: Analyst, Senior Analyst, Manager, Admin, Viewer
  • Team Management: Organize users by teams
  • Activity Logging: Track all user actions
  • API Key Management: Secure API access
  • Account Security: Password hashing, account locking

8. Provider Management

  • Database Adapters: PostgreSQL, MySQL, MongoDB
  • API Adapters: DeviceCheck, SimKYC, ID Blacklist
  • Connection Testing: Verify provider connectivity
  • Rate Limiting: Prevent provider overload
  • Caching: Feature cache with TTL
  • Performance Tracking: Monitor provider response times

9. Metrics & Analytics

  • Real-time Dashboard: Live fraud metrics
  • Alert Analytics: Volume, distribution, trends
  • Case Metrics: Resolution times, status distribution
  • Rule Performance: Alert volume, precision rates
  • Disposition Summary: TP/FP rates, fraud prevented
  • Top Rules: Identify high-performing rules

πŸ—οΈ System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                      Frontend (React)                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚ Dashboard  β”‚  β”‚   Alerts   β”‚  β”‚   Cases  β”‚ Metrics etcβ”‚β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚         β”‚                β”‚                    β”‚              β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β”‚
β”‚                          β”‚                                   β”‚
β”‚                   React Query (State)                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                          β”‚ HTTPS/REST
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Backend (FastAPI)                         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚               API Layer (Routers)                        β”‚β”‚
β”‚  β”‚  alerts β”‚ cases β”‚ metrics β”‚ investigation β”‚ rules etc   β”‚β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚                       β”‚                                      β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  β”‚              Business Logic (Services)                    β”‚
β”‚  β”‚  - Case Management    - Alert Processing                 β”‚
β”‚  β”‚  - Disposition        - Rule Evaluation                  β”‚
β”‚  β”‚  - Investigation      - Provider Integration             β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚                       β”‚                                      β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  β”‚                Data Layer (Models)                        β”‚
β”‚  β”‚  SQLAlchemy ORM + Alembic Migrations                     β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                        β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   PostgreSQL Database                         β”‚
β”‚  - Cases & Notes      - Alerts & Tags    - Dispositions      β”‚
β”‚  - Rules & Patterns   - Users & Auth     - Watchlists        β”‚
β”‚  - Providers & Calls  - Metrics & Logs   - Audit Trails      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Data Flow

  1. Alert Generation: Rules evaluate transactions β†’ Alerts created
  2. Case Creation: Analyst reviews alert β†’ Creates case
  3. Investigation: Analyst adds notes, checks customer 360Β°, reviews timeline
  4. Resolution: Case resolved with disposition (TP/FP/Unable to Determine)
  5. Metrics: System aggregates data for dashboards and reports

πŸ› οΈ Tech Stack

Backend

  • Framework: FastAPI 0.109+ (Python 3.11+)
  • Database: PostgreSQL 15+ with SQLAlchemy 2.x ORM
  • Migrations: Alembic
  • Validation: Pydantic v2
  • Rule Engine: JsonLogic
  • Authentication: API Key & Password Hashing
  • Logging: Structured logging with context
  • Testing: Pytest

Frontend

  • Framework: React 18+ with TypeScript 5+
  • Build Tool: Vite
  • UI Library: shadcn/ui + Radix UI
  • Styling: Tailwind CSS
  • State Management: TanStack Query (React Query)
  • Routing: React Router v6
  • Icons: Lucide React
  • Forms: Controlled components with validation

DevOps

  • API Documentation: OpenAPI/Swagger (auto-generated)
  • Database Tools: pgAdmin, psql
  • Version Control: Git
  • Environment Management: python-dotenv

⚑ Quick Start

Prerequisites

  • Python 3.11 or higher
  • Node.js 18+ and npm
  • PostgreSQL 15+
  • Git

1. Clone Repository

git clone <repository-url>
cd Epsilon-main

2. Backend Setup

cd backend

# Create virtual environment
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -e .

# Create .env file
cat > .env << EOF
DATABASE_URL=postgresql://postgres:password@localhost:5432/Epsilon
API_KEY=dev-key-change-me
SECRET_KEY=your-secret-key-change-me
ENVIRONMENT=development
EOF

# Run migrations
alembic upgrade head

# Start backend server
uvicorn app.main:app --reload --port 8000

Backend will be available at: http://localhost:8000 API Docs at: http://localhost:8000/api/docs

3. Frontend Setup

cd frontend

# Install dependencies
npm install

# Start development server
npm run dev

Frontend will be available at: http://localhost:5173

4. Create First User

curl -X POST http://localhost:8000/api/users/register \
  -H "Content-Type: application/json" \
  -H "x-api-key: dev-key-change-me" \
  -d '{
    "username": "admin",
    "email": "[email protected]",
    "full_name": "System Admin",
    "password": "SecurePassword123!",
    "role": "admin",
    "team": "Security"
  }'

5. Login

Navigate to http://localhost:5173/auth and login with:

  • Username: admin
  • Password: SecurePassword123!

πŸ“¦ Installation

Database Setup

# Create PostgreSQL database
createdb Epsilon

# Or using psql
psql -U postgres
CREATE DATABASE Epsilon;
\q

Backend Installation

cd backend

# Create virtual environment
python3 -m venv venv
source venv/bin/activate

# Install dependencies
pip install -e .

# For development
pip install -e ".[dev]"

Frontend Installation

cd frontend
npm install

βš™οΈ Configuration

Backend Configuration

Create backend/.env:

# Database
DATABASE_URL=postgresql://user:password@localhost:5432/Epsilon

# Security
API_KEY=your-api-key-here
SECRET_KEY=your-secret-key-here

# Application
APP_NAME=Epsilon
API_PREFIX=/api
ENVIRONMENT=development

# CORS
ALLOWED_ORIGINS=http://localhost:5173,http://localhost:3000

# Logging
LOG_LEVEL=INFO

Frontend Configuration

Frontend uses environment variables from Vite. Create frontend/.env:

VITE_API_URL=http://localhost:8000/api

Database Migrations

cd backend

# Create new migration
alembic revision --autogenerate -m "description"

# Apply migrations
alembic upgrade head

# Rollback migration
alembic downgrade -1

# View current version
alembic current

πŸ“– Usage

Creating a Rule

  1. Navigate to Rules page
  2. Click "Create Rule"
  3. Define rule using JSON DSL
  4. Test rule with sample data
  5. Publish rule to activate

Managing Alerts

  1. Navigate to Alerts page
  2. View alerts with filters
  3. Click "Create Case" on high-priority alerts
  4. Assign to analyst or add notes
  5. Close false positives

Investigating Cases

  1. Navigate to Cases page
  2. Click on a case to view details
  3. Review Details tab for case information
  4. Check Timeline for activity history
  5. Add Notes for findings
  6. Assign to team members
  7. Resolve with disposition when complete

Customer Investigation

  1. Navigate to Investigation page
  2. Enter customer ID
  3. View 360Β° profile with all alerts and cases
  4. Review timeline of events
  5. Make informed decisions

Monitoring Metrics

  1. Navigate to Dashboard for real-time overview
  2. Check Metrics page for detailed analytics
  3. Review Dispositions for accuracy metrics
  4. Monitor top-performing rules

πŸ“š API Documentation

Authentication

All API requests require the x-api-key header:

curl -H "x-api-key: your-api-key" http://localhost:8000/api/endpoint

Core Endpoints

Alerts

# List alerts
GET /api/alerts?status=open&limit=50

# Get alert
GET /api/alerts/{alert_id}

# Create case from alert
POST /api/cases
{
  "alert_id": "uuid",
  "case_type": "transaction_fraud",
  "customer_id": "CUST123",
  "priority": "high",
  "created_by": "[email protected]"
}

# Assign alert
POST /api/alerts/{alert_id}/assign
{
  "assigned_to": "[email protected]"
}

# Close alert
PATCH /api/alerts/{alert_id}/close

Cases

# List cases
GET /api/cases?status=open&limit=50

# Get case detail
GET /api/cases/{case_id}

# Update case
PUT /api/cases/{case_id}?[email protected]
{
  "status": "investigating",
  "priority": "high",
  "fraud_amount": 1500.00
}

# Assign case
POST /api/cases/{case_id}/assign
{
  "assigned_to": "[email protected]",
  "assigned_by": "[email protected]"
}

# Add note
POST /api/cases/{case_id}/notes
{
  "note_text": "Customer confirmed transaction was unauthorized",
  "created_by": "[email protected]"
}

# Resolve case
POST /api/cases/{case_id}/resolve
{
  "disposition": "true_positive",
  "fraud_amount": 1500.00,
  "resolved_by": "[email protected]"
}

# Close case
PATCH /api/cases/{case_id}/close?[email protected]

# Get timeline
GET /api/cases/{case_id}/timeline

Investigation

# Customer 360
GET /api/investigation/customer/{customer_id}

# Customer timeline
GET /api/investigation/customer/{customer_id}/timeline

Metrics

# Dashboard summary
GET /api/metrics/summary

# Alert metrics
GET /api/metrics/alerts?days=7

# Case metrics
GET /api/metrics/cases?days=7

# Disposition summary
GET /api/metrics/disposition-summary?days=30

# Top rules
GET /api/metrics/top-rules?days=7&limit=10

Watchlists

# List watchlists
GET /api/watchlists?list_type=blocklist

# Create entry
POST /api/watchlists
{
  "entity_type": "customer_id",
  "entity_value": "CUST123",
  "list_type": "blocklist",
  "reason": "Confirmed fraudster",
  "created_by": "[email protected]"
}

# Delete entry
DELETE /api/watchlists/{watchlist_id}

# Check entity
POST /api/watchlists/check
{
  "entity_type": "customer_id",
  "entity_value": "CUST123"
}

API Documentation UI

Interactive API documentation available at:

  • Swagger UI: http://localhost:8000/api/docs
  • ReDoc: http://localhost:8000/api/redoc
  • OpenAPI JSON: http://localhost:8000/api/openapi.json

πŸ’» Development

Running Tests

cd backend
pytest
pytest --cov=app tests/
pytest -v tests/test_specific.py

Code Quality

# Format code
black app/
isort app/

# Lint
flake8 app/
mypy app/

# Frontend
npm run lint
npm run type-check

Database

# Connect to database
psql -U postgres Epsilon

# View tables
\dt

# View table structure
\d cases

# Query data
SELECT * FROM cases WHERE status = 'open';

Development Workflow

  1. Create feature branch: git checkout -b feature/new-feature
  2. Make changes and test locally
  3. Run tests: pytest
  4. Commit changes: git commit -m "Add new feature"
  5. Push branch: git push origin feature/new-feature
  6. Create pull request

🚒 Deployment

Production Checklist

  • Set up production PostgreSQL database
  • Configure environment variables
  • Run database migrations: alembic upgrade head
  • Create initial admin user
  • Set strong API keys and secrets
  • Configure CORS for production domains
  • Set up SSL certificates
  • Configure reverse proxy (nginx)
  • Set up monitoring and logging
  • Configure backup strategy
  • Test all endpoints
  • Load test (optional)

Environment Variables (Production)

DATABASE_URL=postgresql://user:pass@prod-db:5432/Epsilon
API_KEY=<strong-random-key>
SECRET_KEY=<strong-random-secret>
ENVIRONMENT=production
ALLOWED_ORIGINS=https://Epsilon.example.com
LOG_LEVEL=WARNING

Docker Deployment (Example)

# Backend Dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY backend/ .
RUN pip install -e .
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
# Frontend Dockerfile
FROM node:18-alpine
WORKDIR /app
COPY frontend/ .
RUN npm install && npm run build
CMD ["npm", "run", "preview"]

Reverse Proxy (nginx)

server {
    listen 80;
    server_name Epsilon.example.com;

    location /api {
        proxy_pass http://backend:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location / {
        proxy_pass http://frontend:5173;
        proxy_set_header Host $host;
    }
}

πŸ“ Project Structure

Epsilon-main/
β”œβ”€β”€ backend/                    # FastAPI Backend
β”‚   β”œβ”€β”€ alembic/               # Database migrations
β”‚   β”‚   └── versions/          # Migration files
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ core/              # Core utilities
β”‚   β”‚   β”‚   β”œβ”€β”€ config.py      # Configuration
β”‚   β”‚   β”‚   β”œβ”€β”€ security.py    # Authentication
β”‚   β”‚   β”‚   └── logging.py     # Logging setup
β”‚   β”‚   β”œβ”€β”€ db/                # Database
β”‚   β”‚   β”‚   β”œβ”€β”€ base.py        # Base model
β”‚   β”‚   β”‚   └── session.py     # DB session
β”‚   β”‚   β”œβ”€β”€ models/            # SQLAlchemy models
β”‚   β”‚   β”‚   β”œβ”€β”€ alert.py       # Alert models
β”‚   β”‚   β”‚   β”œβ”€β”€ case.py        # Case models
β”‚   β”‚   β”‚   β”œβ”€β”€ disposition.py # Disposition models
β”‚   β”‚   β”‚   β”œβ”€β”€ rule.py        # Rule models
β”‚   β”‚   β”‚   β”œβ”€β”€ user.py        # User models
β”‚   β”‚   β”‚   └── watchlist.py   # Watchlist models
β”‚   β”‚   β”œβ”€β”€ schemas/           # Pydantic schemas
β”‚   β”‚   β”‚   β”œβ”€β”€ alert.py       # Alert schemas
β”‚   β”‚   β”‚   β”œβ”€β”€ case.py        # Case schemas
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”œβ”€β”€ routers/           # API endpoints
β”‚   β”‚   β”‚   β”œβ”€β”€ alerts.py      # Alert endpoints
β”‚   β”‚   β”‚   β”œβ”€β”€ cases.py       # Case endpoints
β”‚   β”‚   β”‚   β”œβ”€β”€ metrics.py     # Metrics endpoints
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”œβ”€β”€ services/          # Business logic
β”‚   β”‚   β”‚   β”œβ”€β”€ alerts.py      # Alert service
β”‚   β”‚   β”‚   β”œβ”€β”€ cases.py       # Case service
β”‚   β”‚   β”‚   β”œβ”€β”€ providers/     # Provider adapters
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   └── main.py            # FastAPI app
β”‚   β”œβ”€β”€ tests/                 # Unit tests
β”‚   β”œβ”€β”€ .env                   # Environment variables
β”‚   β”œβ”€β”€ alembic.ini            # Alembic config
β”‚   β”œβ”€β”€ pyproject.toml         # Python dependencies
β”‚   └── README.md              # Backend docs
β”œβ”€β”€ frontend/                  # React Frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/        # React components
β”‚   β”‚   β”‚   β”œβ”€β”€ ui/           # UI components (shadcn)
β”‚   β”‚   β”‚   └── Layout.tsx    # App layout
β”‚   β”‚   β”œβ”€β”€ contexts/          # React contexts
β”‚   β”‚   β”‚   └── AuthContext.tsx
β”‚   β”‚   β”œβ”€β”€ hooks/             # Custom hooks
β”‚   β”‚   β”œβ”€β”€ lib/               # Utilities
β”‚   β”‚   β”‚   β”œβ”€β”€ api.ts        # API client
β”‚   β”‚   β”‚   └── utils.ts      # Helper functions
β”‚   β”‚   β”œβ”€β”€ pages/             # Page components
β”‚   β”‚   β”‚   β”œβ”€β”€ Dashboard.tsx  # Dashboard page
β”‚   β”‚   β”‚   β”œβ”€β”€ Alerts.tsx     # Alerts page
β”‚   β”‚   β”‚   β”œβ”€β”€ Cases.tsx      # Cases page
β”‚   β”‚   β”‚   β”œβ”€β”€ Investigation.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Metrics.tsx
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”œβ”€β”€ App.tsx            # Root component
β”‚   β”‚   └── main.tsx           # Entry point
β”‚   β”œβ”€β”€ public/                # Static assets
β”‚   β”œβ”€β”€ package.json           # NPM dependencies
β”‚   β”œβ”€β”€ tsconfig.json          # TypeScript config
β”‚   β”œβ”€β”€ vite.config.ts         # Vite config
β”‚   └── README.md              # Frontend docs
β”œβ”€β”€ CASE_MANAGEMENT_IMPLEMENTATION.md
β”œβ”€β”€ IMPLEMENTATION_GAPS.md
β”œβ”€β”€ COMPLETE_FEATURE_LIST.md
└── README.md                  # This file

🀝 Contributing

Getting Started

  1. Fork the repository
  2. Create feature branch: git checkout -b feature/amazing-feature
  3. Commit changes: git commit -m 'Add amazing feature'
  4. Push to branch: git push origin feature/amazing-feature
  5. Open pull request

Code Style

  • Python: Follow PEP 8, use Black formatter
  • TypeScript: Follow ESLint rules, use Prettier
  • Commits: Use conventional commits (feat, fix, docs, etc.)

Pull Request Process

  1. Update documentation for new features
  2. Add tests for new functionality
  3. Ensure all tests pass
  4. Update CHANGELOG.md
  5. Get approval from maintainers

πŸ“„ License

This project is proprietary software. All rights reserved.

Β© 2025 Epsilon. Unauthorized copying, distribution, or modification is prohibited.


πŸ†˜ Support

For support, please contact:

  • Email: [email protected]
  • Documentation: See /docs folder
  • Issues: GitHub Issues (if applicable)

πŸŽ‰ Acknowledgments

Built with:


πŸ“Š Project Status

Version: 1.0.0
Status: Production Ready (95% Feature Complete)
Last Updated: 2025

Recent Updates

  • βœ… Complete case management system
  • βœ… Alert-to-case workflow integration
  • βœ… Disposition tracking and metrics
  • βœ… Investigation tools (Customer 360Β°)
  • βœ… Comprehensive metrics and analytics
  • βœ… User and watchlist management
  • βœ… Full API documentation

Roadmap

  • πŸ”¨ File attachment upload/download
  • πŸ”¨ Real-time notifications (WebSocket)
  • πŸ”¨ Advanced analytics with charts
  • πŸ”¨ Bulk operations
  • πŸ”¨ SLA tracking
  • πŸ”¨ Mobile optimizations

Made with ❀️ for fraud fighters worldwide

⬆ Back to Top

About

Rule based and AI based fraud detection

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •