Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.
Security

On-Device SMS Scam Detector for Mobile Wallet Users in Roman Urdu

An Android app that warns mobile wallet and banking users about scam SMS, such as fake prize, OTP-sharing and wrong-transfer messages, using a small classifier that runs entirely on the phone and understands Roman Urdu, Urdu and English. An intermediate security and NLP final year project with a real dataset and privacy constraint.

Difficulty

Intermediate

A small team, or one strong student willing to learn something new.
Effort

2 semesters · 3 students

Deliverables

7 to ship

3 optional extras

Suggested stack

KotlinAndroid SMS and notification APIsPythonscikit-learn or a small transformerTensorFlow Lite or ONNX RuntimeRoom database
A suggestion, not a requirement. Swap anything for what you already know.

What you should ship

  • A labelled dataset of at least 2,000 messages (scam and legitimate) in Roman Urdu, Urdu script and English, built from consenting donors and public datasets, with a written labelling guide and inter-annotator agreement
  • A text classifier plus rule features (URLs, phone numbers, amounts, urgency words, requests to call back or share a code) trained and exported to run on-device under 50 ms per message
  • An Android app that checks incoming SMS locally and shows a clear warning with the reason, without uploading message content anywhere
  • A "what to do now" screen for each scam type: do not share the code, call the official helpline from the back of your card, how to report to the operator
  • An opt-in report flow that shares only a user-redacted message, never the full inbox
  • Evaluation on a held-out test set with precision, recall and false positive rate on legitimate bank and wallet messages reported separately
  • A user study with at least 15 participants, including older relatives, measuring whether they correctly decide what to do after a warning

If you have time left

  • Detect scams in WhatsApp notifications using the notification listener, with the same on-device model
  • Federated or periodic model updates shipped as signed files without collecting messages
  • Voice explanation of warnings in Urdu for users who struggle with reading

The problem mobile wallet users face with scam messages

Millions of people now keep money in mobile wallets such as JazzCash and Easypaisa, or in bank apps, and many are first-time digital finance users. Scam messages target them directly: "you have won a prize, call this number", "I sent money to you by mistake, please return it", "your account will be blocked, share the code you just received". A 2019 University of Washington study of SMS fraud in Pakistan found that most fraud messages ask the victim to call a number rather than send money in the message itself, which is why a warning at the moment of reading matters.

The same patterns appear in Kenya, India, Bangladesh and anywhere mobile money is common. The people most at risk, older relatives and first-time users, are the least likely to install a security app that needs configuration.

What already exists and the gap

  • Google Messages scam detection: on-device AI that flags conversational scams from non-contacts. It launched in English first in the US, UK and Canada; coverage of Roman Urdu and local wallet scams is not documented.
  • Truecaller: caller and SMS spam identification driven largely by crowdsourced number reputation. Scammers rotate numbers, and content-level explanation is limited.
  • Operator and regulator reporting short codes: useful after the fact, but they do not warn the user while reading.
  • Research datasets and prototypes for Roman Urdu smishing: published work exists, with datasets of around a thousand messages, but not as a maintained app.

The gap is a private, content-aware warning that understands how people here actually write (Roman Urdu with English mixed in, inconsistent spelling) and tells the user exactly what to do next.

What you build

An Android app with one main user and a small admin tool for you.

  1. After install, the app asks for SMS permission (or, where that is restricted, notification access) and explains in plain Urdu and English that nothing leaves the phone.
  2. Each incoming message is classified locally. Legitimate transaction alerts are left alone; likely scams trigger a notification with the reason ("asks you to share a code") and a "what to do" screen.
  3. Users can mark mistakes. Corrections stay on the phone and adjust local thresholds.
  4. Optionally, users can report a scam; they see and edit the redacted text before it is sent.

The technically interesting part

There are three hard problems, and you should pick one as your centrepiece.

Low-resource, code-mixed text. Roman Urdu has no standard spelling ("paise", "pesay", "paisay"). Compare character n-gram models, a small multilingual transformer distilled for mobile, and your hybrid with hand-built features. Show which generalises to spellings not seen in training.

False positives on real financial messages. Legitimate wallet and bank alerts contain the same words as scams: amounts, codes, links. A detector that flags these is uninstalled within a day. Report false positive rate on real bank alerts separately and design features (known sender IDs, template matching) to drive it down.

On-device constraints. Model size, cold-start time and battery. Measure them on a low-end phone, not just an emulator.

Android restricts SMS permissions for apps on Google Play, so document how your design handles this (for example default SMS app role or notification access) as part of the engineering.

How to evaluate it

  • Classification: precision, recall and F1 on a held-out set, with a separate false positive rate on at least 300 legitimate financial alerts.
  • Generalisation: accuracy on scams collected after the model was trained.
  • Performance: inference time and model size on a budget Android device.
  • Human outcome: in a user study with 15 or more people, the share who choose the safe action after seeing a warning, compared with a control message without a warning.

Suggested plan

  1. Weeks 1 to 5: consent process, data collection, labelling guide, dataset.
  2. Weeks 6 to 10: baseline models, feature engineering, error analysis.
  3. Weeks 11 to 15: on-device export, Android app, permission handling.
  4. Weeks 16 to 20: guidance screens, report flow, local feedback.
  5. Weeks 21 to 26: user study, performance tests, write-up.

Path to a product

The first customer could be a microfinance bank, a wallet provider or a telecom operator that wants to reduce scam losses and support calls, licensing the model and warning screens as an SDK inside their own app. A consumer app with a free tier builds the reputation and the dataset of reported scams. Expanding to other code-mixed languages follows the same pipeline.

Scope warning

Do not upload users' inboxes or build a cloud classification service. Do not try to block calls or integrate with operator networks. Do not claim protection against every scam; show the error rates honestly.

Learn what you need on Sefism

Get help with this idea

Scoping a security project is mostly about deciding what you will not defend against and how you will prove the rest works. If you want a second opinion on scope, stack or your evaluation plan, a mentor can review it with you; you still build it yourselves. New to Sefism? Create a free account first.

Ideas and guidance, not finished projects

These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.

Not sure this one fits you?

I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.

Discuss this idea
Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.