Inspiration

Every day, millions of people in India and across the world fall victim to digital scams fake job offers, OTP frauds, phishing links, and WhatsApp traps. India alone lost ₹1.2 lakh crore to digital fraud in 2024. What troubled me most was that most victims simply couldn't tell if a message was a scam especially when it came in regional languages. Existing tools were either too technical, English-only, or required IT knowledge. I wanted to build something that anyone could use paste a message, get an answer in seconds, in their own language.

What it does

ScamShield is an AI-powered scam detection tool that lets users scan text, images, and URLs for scam content instantly.

📝 Text Scan —> Paste any WhatsApp message, SMS, or email and get an AI verdict 🖼️ Image Scan —> Upload a screenshot; AI reads and analyzes it for scam patterns 🔗 URL Scan —> Paste a suspicious link; AI checks domain structure and red flags 📊 Confidence Score —> Every result comes with a confidence % and a red flags breakdown 🌍 10 Languages —> Results explained in Hindi, English, Spanish, Arabic, French, and more 🏘️ Community Feed —> Users can report scams to warn others, building a crowdsourced scam database

The verdict is simple: SAFE ✅ / SUSPICIOUS ⚠️ / SCAM ❌

How we built it

→ Frontend: React.js + Tailwind CSS + Redux Toolkit for a fast, responsive UI → Backend: Node.js + Express.js REST APIs with JWT + Google OAuth 2.0 for secure auth → AI Core: Google Gemini 2.5 Flash via LangChain.js for intelligent scam analysis → Image Storage: ImageKit CDN for handling and delivering uploaded screenshots → Database: MongoDB Atlas to store scan results, user data, and community reports → Deployment: Frontend on Vercel, Backend on Render

The flow is: User input → Express API → ImageKit (if image) → LangChain + Gemini analyzes → verdict + confidence + red flags → saved to MongoDB → shown to user.

Challenges we ran into

→ Getting Gemini to return consistent structured output (verdict, confidence, red flags) across different input types -> text, image, and URL each needed different prompting strategies → Hitting a roadblock with the live deployment. → Building the community feed with relatable/duplicate scam detection so users don't flood the feed with the same scam → Managing image uploads through Multer → ImageKit pipeline while keeping the scan flow fast and seamless → Balancing Google OAuth + JWT auth across frontend and backend securely

Accomplishments that we're proud of

→ Built a fully working full-stack AI product end-to-end from auth to AI to community feed → 10 language support making scam detection accessible to non-English speakers globally → The community crowdsourcing feature that turns every user into a shield for others → Clean, intuitive UI that anyone including non-tech users can use without any guidance → Successfully deployed and live not just a prototype

What we learned

→ How to integrate LangChain.js with Gemini for structured AI outputs in a production backend → Prompt engineering for multimodal inputs (text vs image vs URL require very different approaches) → Importance of UX simplicity when building for non-technical audiences every extra click is a barrier → How to design a crowdsourced data model that scales and avoids spam/duplicates → End-to-end deployment pipeline with Vercel + Render + MongoDB Atlas

What's next for ScamShield — AI-Powered Scam Detector

🔌 Browser Extension :—> Real-time scam detection as you browse 💬 ** WhatsApp Bot** :—> Scan messages directly inside WhatsApp 🎙️ Voice Input :—> For users who prefer speaking over typing 📧 Email Scan :—> Detect phishing emails directly 📱 Mobile App :—> React Native app for on-the-go protection 🧠 Custom ML Model :—> Train on our growing crowdsourced scam dataset 📊 Admin Dashboard :—> Analytics on scam trends by region and category

Built With

  • axios
  • express.js
  • google-gemini-2.5-flash
  • google-oauth-2.0
  • imagekit
  • jwt
  • langchain.js
  • mongodb-atlas
  • mongoose
  • multer
  • node.js
  • react-router
  • react.js
  • redux-toolkit
  • render
  • tailwind-css
  • vercel
Share this project:

Updates