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

Voice-First Udhaar Ledger App for Small Shopkeepers

A final year project that builds an Android credit ledger (udhaar khata) for small shopkeepers where entries are spoken, not typed: "Aslam, 450 rupees, sugar and tea". On-device speech parsing, offline storage, customer reminders and a clear daily balance for owners who find typing slow.

Difficulty

Intermediate

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

2 semesters · 2 to 3 students

Deliverables

7 to ship

3 optional extras

Suggested stack

Kotlin + Jetpack ComposeRoom (SQLite)Android SpeechRecognizer / VoskWorkManagerFirebase Auth + Firestore backupKotlin unit tests + Espresso
A suggestion, not a requirement. Swap anything for what you already know.

What you should ship

  • Android app that records credit and payment entries by voice in Urdu, English or mixed speech, with a confirm screen before anything is saved
  • Entry parser that extracts customer name, amount and optional items from a transcript, with fuzzy matching against the existing customer list
  • Offline-first storage in Room with an append-only entry log, so balances are always recomputed from entries and never edited in place
  • Per-customer statement screen and a shareable text or image statement for WhatsApp, plus scheduled reminder messages the owner approves
  • Encrypted cloud backup and restore to a new phone using a phone-number login
  • Parser test set of at least 300 recorded or transcribed utterances with measured field-level accuracy
  • Usability test with at least 6 real shopkeepers comparing voice entry time and errors against typed entry

If you have time left

  • Fully offline speech recognition with a small on-device model so entries work with no data at all
  • Shared ledger view for a second person at the counter with conflict-free merging of both devices
  • Monthly summary of who owes the most and for how long, read aloud on request

The problem shopkeepers have with credit books

A neighbourhood grocery shop sells a large part of its stock on credit. Regular customers take goods today and pay at the end of the month, and the owner writes it in a paper register: name, amount, sometimes the items. The register gets wet, pages go missing, a son at the counter writes in a different style, and at month end there is an argument about whether 450 or 540 was written. Disputes cost the owner money and goodwill.

Digital ledger apps exist and many owners have installed one. The friction is the typing. A shopkeeper serving a queue does not want to open a customer, tap an amount field and pick a category. They want to say the entry in the same breath they use to tell the customer the total, in the mix of Urdu and English they actually speak. The same problem exists for kirana owners in India, corner shops in Bangladesh and small traders anywhere informal credit is normal.

What already exists and the gap

  • Khatabook and OkCredit: large Indian ledger apps with reminders and backups; entry is form-based and typed.
  • DigiKhata, CreditBook and Udhaar: Pakistani equivalents with Urdu screens, PKR and SMS reminders; still tap-and-type.
  • Easy Khata by Bazaar: a ledger bundled with a B2B ordering business; same form-based entry.

The gap is not features, it is input. None of these treat speech as the primary way to record an entry, and none handle code-switched speech ("Aslam bhai, char sau pachas, cheeni") well. A voice-first ledger that is accurate enough to trust is a genuine differentiator.

What you build

An Android app with one main action: hold the button, speak the entry, check the confirm card, tap save.

  • Owner: records credit and payments, sees each customer balance and a daily total, shares statements, approves reminders.
  • Counter helper (optional): a second login on another phone with limited rights.
  • Customer: receives a statement or reminder as a WhatsApp or SMS message; no app needed.

Main flows: voice entry, customer statement, reminders, backup and restore to a new phone.

The technically interesting part

The hard part is turning a noisy, code-switched transcript into a structured entry the owner trusts. You need:

  1. Number normalisation across Urdu words, English words and digits ("sarhe teen sau", "three fifty", "350").
  2. Customer resolution: fuzzy match the spoken name against existing customers using phonetic similarity, and ask only when two candidates are close.
  3. Intent: credit given versus payment received, from cue words, with a safe default and a visible label on the confirm card.

Show evaluators a confusion table per field (name, amount, intent) and how many entries needed a correction. Keep balances derived from an append-only log so a mistaken entry is reversed, not overwritten; the same idea as an accounting journal.

How to evaluate it

  • Field-level accuracy of the parser on a held-out set of at least 300 utterances from several speakers.
  • Median time to record an entry by voice versus typing in an existing ledger app, measured with at least 6 shopkeepers.
  • Correction rate: share of voice entries edited before saving.
  • Cold start time and memory on a low-end Android phone with 2 GB RAM.

Suggested plan

  1. Weeks 1 to 3: visit shops, record real phrasing (with permission), write the entry grammar.
  2. Weeks 4 to 8: Room schema, append-only log, balance calculation, basic typed entry.
  3. Weeks 9 to 14: speech capture, parser, confirm card, first accuracy numbers.
  4. Semester 2, weeks 1 to 6: reminders, statements, backup and restore.
  5. Weeks 7 to 10: field test in shops, fix the top correction causes.
  6. Weeks 11 to 14: final evaluation and report.

Path to a product

Free core ledger, paid tier for multi-device use and automated reminders at a small monthly fee. A better first customer is a wholesaler or FMCG distributor who wants its retailers on a ledger and will pay per shop onboarded. Scale by adding languages through the parser grammar rather than new code.

Scope warning

Do not build lending, credit scoring or payments. Do not train your own speech model from scratch; use an existing recogniser and put your effort into parsing. Do not build an inventory system.

Learn what you need on Sefism

Get help with this idea

The parser grammar and the evaluation set are where most teams go wrong on this idea. A mentor can help you cut the scope to what your team can finish, choose between the stack options above, and design an evaluation your examiners will respect. You still build it; the help is on decisions, not code.

New here? 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.