https://github.com/tortillazhawaii/frauddetection
Real time fraud detection algorithms build on streams.
https://github.com/tortillazhawaii/frauddetection
docker docker-compose flink go java kafka nextjs python react
Last synced: 3 months ago
JSON representation
Real time fraud detection algorithms build on streams.
- Host: GitHub
- URL: https://github.com/tortillazhawaii/frauddetection
- Owner: TortillaZHawaii
- Created: 2023-04-28T16:36:41.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-06-27T10:35:48.000Z (about 2 years ago)
- Last Synced: 2026-01-03T16:22:47.224Z (6 months ago)
- Topics: docker, docker-compose, flink, go, java, kafka, nextjs, python, react
- Language: Java
- Homepage:
- Size: 765 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Fraud Detection
Rozwiązanie składa się z wielu modułów.

Projekt można uruchomić korzystając z polecenia `docker compose up`. Należy chwilę odczekać, gdyż Kafka się długo uruchamia i dopiero po jej uruchomieniu rozwiązanie zaczyła działać stabilnie.
## [Generator](generator/README.md)
Tworzy losowe transakcje które są zapisywane na topic Kafki `transactions` w formacie JSON.
Parametry generatora można zmieniać poprzez parametry w pliku `docker-compose.yaml`.
## [Flink](frauddetection/README.md)
Zarządza i uruchamia algorytmy sprawdzające oszustwa. Czyta z topicu Kafki `transactions`, a zapisuje wyniki do topicu `alerts`.
Jest kilka algorytmów sprawdzających wiarygodność transakcji.
- `ExpiredCardDetector` - sprawdza, czy transakcja nie odbyła się po skończeniu ważności karty,
- `OverLimitDetector` - sprawdza, czy transakcja mieści się w limicie,
- `SmallThenLargeDetector` - sprawdza, czy w okienku minutowym nie dopuszczono się małej transakcji (poniżej 20 zł), po czym wykonano dużą transakcję (powyżej 500 zł),
- `NormalDistributionDetector` - oblicza parametry rozkładu normalnego: średnią oraz wariancję, a na ich podstawie odrzuca transakcje które są oddalone od średniej o więcej niż odchylenie standardowe,
- `LocationDetector` - który sprawdza dla ustalonego "session window" czy w trakcie okna transakcje nie są nadmiarowo oddalone od średniej lokalizacji transakcji w oknie.
Algorytmy zapisane są w folderze `frauddetection/src/java/spendreport/detectors`.
## [Alerts Reader](alerts-notification-api-py/README.md)
Zczytuje alerty z topicu Kafki `alerts` i przekazuje je klientom nasłuchującym na Websockecie.
## [Dashboard](dashboard/README.md)
Łączy się z Alerts Reader po Websockecie i na żywo wyświetla alerty oraz zlicza je na wykresie w okienkach 30 sekundowych.
## [Kafka i Kafdrop](kafka/README.md)
Kafka ma dwa topici umożliwiające komunikację. Działanie Kafki możemy podejrzeć korzystając z interfejsu graficznego Kafdrop.