Status: public. The notes, PRD, sprint plan, testing notes and launch plan are written. Open items are listed in docs/process-and-learnings.md.
Please read first: lender names, rates, limits and thresholds here are invented test values, not any lender's real policy. Car prices are demo listings. See LICENSE and REDACTION.md.
A five-day fintech product management cohort (9 to 13 Oct 2026, Bengaluru) where I learned how lending companies and no-code lending platforms work, then planned, built, tested and fixed a product. This repo is the record: what I learned, what I built with it, what went wrong, and what I would do next.
The product: DealerFinance, a loan journey for new-car buyers at a dealership. It collects consent by OTP, verifies identity through DigiLocker, works out the price and loan, shows which lenders are likely to accept, sends the case to one lender, reroutes after a rejection, and settles the dealer's trade advance and commission. Kia cars, four lenders, built on FinStack's no-code journey builder. All lender terms and figures are test values.
People
- Sameer S Mittimani (cercit): product, PRD, sprint plan, no-code build, testing and write-ups.
- Aditya Sharan (github.com/aaDhut): teammate and colleague on Team 6.
Privacy
Mobile numbers, PAN, Aadhaar numbers, emails, logins and other people's names are not in this repo. tools/scan_sensitive.py checks for them before every commit. FinStack's own course material and platform access details are not included; the notes are in my own words.
What was removed from this repo, and how
This repo comes from real working files, chat messages, screenshots and a screen recording. Before anything went in, personal and platform-specific details were removed. This page says what and how, without repeating any of it.
Removed or masked
| Kind of detail | What was done |
|---|---|
| Mobile numbers | Not included. Screens show a masked form such as 94xxxxxx99 |
| PAN numbers | Not included. Example PANs in the notes are made up |
| Aadhaar numbers | Not included. The Aadhaar steps happen on DigiLocker, and the demo clip stops before them |
| Email addresses | Not included |
| Customer and classmate names | Not included. Screens use initials such as "S. S. M."; classmates and mentors are not named |
| Platform logins, shared passwords and links to test journeys | Not included |
| Account-specific IDs in the FinStack variable paths | Replaced by <id> in the formulas |
| Vehicle registration records | Only the field names and the three fields our rule uses are described. No owner details |
| FinStack client figures, tech details and course material | Not copied. The cohort notes are in my own words and leave out the client examples |
| Other people's work | Not included (the teammate's data folder and a public repo he started are left out) |
Left out entirely
- The WhatsApp group export, the participants' course sheet and their numbers.
- The screen recordings (see the note on the clip below).
- The FinStack brief and their pre-read recordings.
- Spreadsheets (all
.xlsxfiles are blocked by.gitignore).
The demo clip
The full recording shows a real name, mobile number, PAN, a partly typed Aadhaar number, an Aadhaar OTP, the DigiLocker security PIN, a date of birth and a password-manager popup that listed an account number. The clip in product/demo/ is about 2 minutes 25 seconds long, has no voice (only a calm background track made from code for this project, tools/make_music.py) and no zoom effects, and was made like this:
- Shown on purpose: the author's own name (in the form fields and under each step title) and the OTP boxes and digits (the Step 1 code and the Aadhaar OTP). The author chose to show these.
- Hidden behind a frosted, see-through cover (heavy blur plus a light veil, strong enough that the text cannot be read): the mobile number field on Step 1, the Aadhaar number boxes on DigiLocker, the partly shown registered mobile on the DigiLocker OTP page, the password-manager popup, the PAN field and the vehicle number field on Step 2. The covers are placed by finding each field's label on every frame, so they follow the field when the page moves.
- Wiped out: the "Code sent to
" line under the Step 1 code boxes is painted over with the card's own background. - Cut: the DigiLocker result page with the date of birth and PAN, and the first seconds of the recording (the mobile number was typed into the name box by mistake before being deleted).
- Edited for length: waiting and loading screens are fast-forwarded.
- Rejected-lender route: the recording's own rejected test ended in an error pop-up. In the clip that moment is replaced by a short diagram of the designed route (rejected, back to Step 4, choose another financier, send again, approved), labelled as a diagram. The error itself is written up in
testing/failures-and-fixes.md.
A script scanned the finished clip for leftover mobile digits, "code sent to" text, PAN text, vehicle number text, a half-typed vehicle number, digits in the name box, Aadhaar digits, the registered mobile and the popup's account number, on every second frame, and found none (the highest score was below the match limit). The same kind of scan finds each of them in the unmasked source, so the check works. Frames spread across the clip were also checked by eye, and the author watched the final clip before it was added. Income, EMI, loan figures and the credit score on screen are test values and are left visible.
How it was checked
tools/scan_sensitive.pylooks for mobile numbers, PAN patterns, Aadhaar patterns, emails, passwords and keys, login links and a private list of names (the list is kept outside the repo). It was run before every commit.- The full git history was searched for names, PAN fragments and numbers: none found.
- Links between files were checked.
Git history
Before this repository was made public, its history was rewritten: commit author details now use GitHub's no-reply address, and an early draft of one page that showed the first digits of an ID number was corrected in every commit. The history was then searched again for names, ID patterns and numbers, and none were found.
Licence
Copyright (c) 2026 Sameer S Mittimani and Aditya Sharan. All rights reserved.
This repository is shared so that it can be read and reviewed. You may view it
and quote short passages with credit. You may not copy, republish, sell or
build on it without written permission from the authors.
Parts of this work describe FinStack's platform and a cohort run by FinStack.
That material belongs to FinStack. The FinStack name and logo are FinStack's own and are shown only to identify the cohort; no endorsement is implied. Lender names, rates, limits and thresholds
in this repository are invented test values and are not any lender's real
terms. Car prices are listings used for a demonstration, not an offer.
To use any part of this repository under an open licence, ask the authors.