TurkQuish
A mobile client and inference service that scans QR codes and URLs, extracts features and returns a risk assessment with bilingual explanations.

- Role
Sole author — Flutter client and the URL inference service
- What it does
Scans a QR code and returns URL risk classes with the features behind the result.
- Built with
- Flutter
- Dart
- Python
- Machine learning
Overview
TurkQuish splits the work between a Flutter client and a Python inference service. The client decodes a QR payload on the device, checks whether it is a web URL, and sends only that decoded URL string to the backend — it never fetches the page, resolves DNS, queries WHOIS, takes a screenshot or calls a third-party reputation service, and the app states this on the screen before the first scan. The backend extracts features from the URL and returns class probabilities across benign, phishing, malware, fraud and other-malicious, together with the feature groups that contributed most to the result. Explanations are rendered in both English and Turkish. Scan history is kept locally, storing the domain or a masked URL alongside the class, risk score, timestamp and model version.
What it does
- On-device QR decoding; only the decoded URL string leaves the phone
- Class probabilities across benign, phishing, malware, fraud and other-malicious
- Explanations naming the feature groups that contributed most to the result
- Bilingual English and Turkish output
- Local scan history storing domain or masked URL, class, score and model version
- Explicit privacy screen stating what is and is not sent to the backend
Interface
Captures from the project's own repository.

Decoded URL preview 
URL-only privacy design 
Scan history
Want the detail behind this? Ask me about it.