
A Flutter app that scans a QR code and tells you in seconds whether it's safe, suspicious, or a scam backed by a Django risk-scoring engine. Full source code, report, and setup support included.
Flutter | Dart | Riverpod | go_router | Django 5 | Django REST Framework | Python 3.11 | SQLite | Celery | Redis | Groq LLaMA API | Google Safe Browsing API | RDAP/WHOIS | Nginx | Gunicorn | GitHub Actions
Scan to pay. Scan to donate. Scan to check in. QR codes have quietly become the default way Indians move money, and scammers noticed that a long time ago. "Quishing" — QR phishing — works because nobody can look at a black-and-white square and tell what's inside it. A scammer pastes a sticker over the shop's real QR, and the money goes somewhere else entirely. You'd never click a random link from an SMS, but you'll happily point your camera at a sticker on a petrol pump.
QuishGuard fixes that blind spot. The app decodes a QR on the device, sends the payload to a Django backend, and the backend actually investigates it — where the URL really redirects to, how old the domain is, whether the TLS certificate is valid, whether Google Safe Browsing has flagged it, whether the UPI handle belongs to a real payment service provider or a lookalike pretending to be one. Then it returns a verdict: safe, suspicious, or dangerous. In plain English or Hinglish. With every single rule that fired shown on screen, so it's never a mystery number.
Think of it as a background check for QR codes.
You open the app, point the camera at a QR, and it decodes on-device — no image ever leaves your phone, only the decoded text. That text goes to POST /api/v1/scan/ on the Django backend. The backend figures out what kind of payload it is (a URL or a UPI intent), runs it through a chain of analyzers, adds up weighted scores from a rule table stored in the database, and hands back a verdict plus a findings list.
A few rules skip the arithmetic entirely. If the link triggers an APK download, or Safe Browsing flags it, or the domain is already on the community blacklist — dangerous, immediately, no matter what the numeric score says. Because a 47/100 that ends in a malware install isn't "suspicious," it's just dangerous.
Then a Groq-hosted LLaMA model turns that findings list into two or three human sentences. If the LLM call fails or you haven't added an API key, a template fallback writes the explanation instead — so the app never shows a blank screen just because an external service was having a bad day.
X-Device-Id header — no login, no account, no OTP.The honest hard part: the domain intelligence layer. You're making network calls to RDAP, TLS endpoints, and the Safe Browsing API from your own server, which means you have to fetch untrusted URLs safely — the project ships an SSRF-safe fetcher for exactly this reason, and understanding why it exists takes a bit of reading. Layer Celery on top for background refresh and there's genuine engineering in there. Which is great for your viva, and slightly annoying on a Tuesday night.
The easier part will surprise you. The whole risk engine is a weighted rule table in the database. Want to make expired certificates count for more? Change one number in the Django admin and rescan. No code edit, no redeploy, nothing. And Redis is optional in development — Celery falls back to eager mode, so tasks just run inline and you can build the entire thing without ever installing Redis. If you've built a Django CRUD app before, you already know 60% of this backend.
If you're a student who needs a working project for your college submission, final-year project, semester project, internship, or academic demonstration, this is for you. Whether you're studying BCA, B.Tech, MCA, M.Tech, Computer Science, IT, AI, Data Science, or another related field, you can choose a project that fits your requirements. If you need the source code, project report, documentation, or help setting up and running the project, CodeAj gives you the resources and support to get started faster.
Specifically worth it if your department wants a mobile app and a real backend, if "cyber security" is on your syllabus and you're tired of seeing the same keylogger and caesar-cipher submissions, or if you want something you can demo live in front of a panel by generating a QR pointing at a sketchy domain and watching the app light up red.
You get the complete monorepo — the Django backend and the Flutter app, both finished, both tested, with their own READMEs. Plus the project report and documentation written to match what Indian universities actually ask for: abstract, literature survey, system design, methodology, results, future scope. If it won't run on your machine, the setup support is real support, not a link to a generic FAQ. Browse more cyber security final year projects if you want to compare, or check the Flutter projects with source code collection for other mobile builds. The backend side sits comfortably alongside our other Django final year projects if your guide insisted on Python.
Add any of these professional upgrades to save time and impress your evaluators.
Personal session with an expert developer
We'll install and configure the project on your PC via remote session (Google Meet, Zoom, or AnyDesk).
1-hour live session to explain logic, flow, database design, and key features.
Want to know exactly how the setup works? Review our detailed step-by-step process before scheduling your session.
Fully customized to match your college format, guidelines, and submission standards.
Need feature changes, UI updates, or new features added?
Charges vary based on complexity.
We'll review your request and provide a clear quote before starting work.
Reviews