Inspiration

I'm a 2nd-year ICE student at Rajshahi University, and I'm in a bunch of student WhatsApp and Facebook groups — RUCSU updates, department groups, IEEE, tutoring circles. Every few weeks, someone forwards a message about a "scholarship" that needs a processing fee, or a part-time job that pays suspiciously well for two hours a day, or an "urgent" admission notice that looks just official enough to trust. Most students shrug it off or ask around, but some don't — especially first-years who haven't seen these patterns before.

When I saw this hackathon was built around the Gemini API, it clicked immediately: this is exactly the kind of judgment call an AI model is actually good at — reading a message, picking up on subtle red flags, and explaining why something feels off in plain language. I wanted to build something that gives students that "wait, let me double-check this" instinct, instantly, before they click a link or send money.

What it does

Second Opinion lets you paste a suspicious message — or upload a screenshot of one — and get back a structured risk read:

  • A trust score (0–100)
  • A verdict: Likely Safe / Suspicious / Likely Scam
  • Specific red flags it detected in the actual content (not generic warnings)
  • A plain-language explanation
  • A recommended action

Deliberately, it's framed as a second opinion, not a verdict. I didn't want to build something that tells students "this IS a scam" with false authority — Gemini can be wrong, and I wanted the tool to be honest about that while still being genuinely useful.

How we built it

I built this solo in a 2-hour window. My stack: React + TypeScript + Vite + Tailwind, calling the Gemini API (gemini-2.0-flash) directly from the frontend to skip backend setup entirely — there was no time for that.

The first 10 minutes went into testing the prompt in AI Studio's playground before writing any UI code, because getting Gemini to reliably return clean, structured JSON was the one thing I couldn't afford to debug live. I forced JSON mode with responseMimeType and wrote a system instruction that explicitly told it to cite specific phrases from the actual message, not give generic advice.

For the UI, I leaned on AI coding tools heavily to move fast — but I iterated on it deliberately rather than accepting the first output. My background is also in graphic design (I run a small design brand, Evan Gfx), so I cared about it not looking like a templated AI dashboard. I went back and stripped out the default "glow blob" decorations, swapped emoji for real icons, and varied the card treatments so the UI had actual hierarchy instead of every section looking identical.

I also added a hero banner section using some pre-designed graphics of mine, with a small auto-rotating carousel, just to give the landing view more personality before you even touch the tool.

Challenges we ran into

Time was the real constraint. Two hours doesn't leave room for a backend, so the API key sits client-side — fine for a hackathon demo, not something I'd ship to production as-is.

Getting Gemini's output to be specific instead of generic took a few prompt iterations. The first version of my system instruction gave vague feedback like "this looks urgent" — I had to explicitly instruct it to quote or reference exact phrases and elements from the message so the explanation actually felt grounded in what was analyzed.

Fighting the "obviously AI-generated" look. AI coding tools default to certain patterns fast — gradient glow blobs, uppercase micro-labels on every section, emoji instead of real icons. I had to deliberately catch and remove these to make the UI feel designed rather than templated.

Accomplishments that we're proud of

Getting a fully working, multimodal (text + image input), end-to-end tool built and deployed solo in 2 hours, with a UI I'd actually be willing to show people outside the hackathon — not just a proof of concept. I'm also proud that the tool is honest about its own limits (the "second opinion, not a verdict" framing) instead of overselling what it can do.

What we learned

I learned how much of Gemini's usefulness comes down to prompt specificity — telling it exactly what evidence to point to made the difference between generic output and genuinely helpful analysis. I also learned (again) that AI-assisted UI building is fastest when you treat the first draft as a starting point to critique, not a finished product — the default output is rarely "done," it just gets you to a working baseline quickly.

What's next for Second Opinion

  • A lightweight backend so the Gemini API key isn't exposed client-side
  • A WhatsApp bot version, since that's where most of these messages actually spread
  • Crowdsourced "confirmed scam" reporting, so patterns get flagged faster across the student community
  • Bangla-language explanation toggle, since a lot of the messages themselves are in Bangla or mixed Bangla-English

Built With

Share this project:

Updates