Case study

IPO Scope

An IPO tracking app for Indian markets — Flutter on iOS and Android over a FastAPI backend. Every NSE mainboard and BSE SME issue, followed automatically from the day it's announced through listing day.

FlutterDartFastAPIPythonPostgreSQL
overview

Overview

IPO Scope is a mobile app for retail IPO applicants in India. It tracks NSE mainboard and BSE SME issues across their whole lifecycle — from the day an issue is announced, through the subscription window and allotment, to listing day.

A single Flutter codebase covers iOS and Android, with the Android build live on the Google Play Store. It sits over a FastAPI and PostgreSQL backend that does the heavy lifting: pulling the issue calendar and subscription figures from the exchanges' public feeds, parsing financials out of offer documents, and talking to seven registrars for allotment checks. The app, backend, and registrar integrations were all designed and built in-house. It is an information and tracking tool — not advisory, and not a trading product.

problem

The Problem

Applying for an IPO in India means chasing information across half a dozen places. Subscription numbers live on the exchange sites, allotment results on whichever registrar happens to be handling the issue, financials in a several-hundred-page offer document, and dates in whatever you remembered to note down.

IPO Scope set out to collapse that into one app:

  • Keep a complete, always-current issue calendar without anyone maintaining it by hand.
  • Show subscription demand as it builds, broken down by investor category.
  • Surface the numbers from the official offer document without making people read the PDF.
  • Check allotment for every saved PAN across every registrar, in one place and one pass.
  • Tell people when something actually changes, rather than making them check.
architecture

Architecture

A FastAPI backend over PostgreSQL owns all of the data. Scheduled ingestion jobs read NSE and BSE public feeds to keep the issue catalog, lifecycle states, and category-wise subscription figures current, so nothing depends on manual entry. A separate extraction step parses financial statements directly out of each issuer's DRHP/RHP filing, and grey market premium is aggregated from public listings and stored flagged as unofficial.

Allotment checking runs through a registrar integration layer that puts seven different portals — KFintech, MUFG Intime, Bigshare, Cameo, Maashitla, Skyline, and Purva — behind one interface, including each one's own public captcha flow. Registrar endpoints are mirrored, with automatic failover, cooldown, and retry when one starts rate limiting, and a user's saved PANs are checked as a single batch. PANs themselves are encrypted at rest and matched by hash, so plaintext is never stored or logged.

The Flutter app consumes that one API on both iOS and Android, with push notifications for each lifecycle event — opens, closes today, allotment out, listing day, GMP moves — individually toggleable. An admin console sits alongside for operating the catalog: manual corrections, offer-document review, phased app-release rollout, and usage stats.

key features

Key Features

Full lifecycle tracking

Every issue followed from upcoming through open, closed, allotment out, and listed — ingested automatically from NSE and BSE public feeds and refreshed on a schedule, with no manual entry.

Live subscription & allotment odds

Bid demand broken down by investor category as it comes in, plus an allotment-odds estimator computed from that same real subscription data.

Grey market premium, clearly labelled

GMP aggregated from public sources and always shown with an unofficial-data disclaimer — ranked by percentage rather than raw rupee value, so the ordering reflects demand relative to the price band.

Financials from the source document

Financial statements extracted automatically from each issuer's official DRHP/RHP offer document, parsed straight out of the filed PDF rather than hand-entered.

Allotment checks across seven registrars

KFintech, MUFG Intime, Bigshare, Cameo, Maashitla, Skyline, and Purva — each registrar's own public captcha flow handled in-app, and every saved PAN checked in one batch instead of one at a time.

PAN data protected by design

PAN numbers are encrypted at rest, matched by hash, and only ever displayed masked — never stored or logged in plaintext.

tech stack

Tech Stack

Mobile App

Flutter · Dart — iOS and Android from a single codebase

Backend

FastAPI (Python) — ingestion pipeline, registrar integrations, REST API

Database

PostgreSQL

Data Ingestion

Scheduled jobs over NSE and BSE public feeds · DRHP/RHP PDF parsing

Notifications

Push alerts per lifecycle event — opens, closes today, allotment out, listing day, GMP moves — each individually toggleable

Quality & Ops

300+ backend tests · extensive Flutter widget tests · admin console with phased release rollout

engineering highlights

Engineering Highlights

  • Automated ingestion from NSE and BSE public feeds on a schedule — the catalog stays current with no manual data entry.
  • Financial statements extracted programmatically from each issuer's filed DRHP/RHP PDF rather than hand-keyed.
  • Seven registrar integrations behind one interface, each with its own public captcha flow solved in-app.
  • Multi-mirror failover across registrar endpoints, with automatic cooldown and retry when one is rate-limited.
  • Batch allotment checking — every saved PAN queried in a single pass instead of one form at a time.
  • PAN numbers encrypted at rest, matched by hash, and only ever shown masked — never stored or logged in plaintext.
  • An admin console for operating the catalog: manual corrections, offer-document review, phased app-release rollout, and usage stats.
  • Backed by an automated test suite — 300+ backend tests plus extensive Flutter widget tests — exercised on every change.
  • Every data source is an official NSE or BSE feed, a registrar's own public form, or a public GMP listing.
disclosure

Information, Not Advice

IPO Scope is a tracking and information tool. It is not investment advice and is not a SEBI-registered advisory or a trading product — the app carries that disclaimer prominently, and grey market premium is always presented as unofficial data aggregated from public sources.

outcome

Outcome

IPO Scope turns a scattered, manual routine into one app: a self-maintaining issue calendar, live subscription demand, financials lifted straight from the official filing, batched allotment checks across seven registrars, and a notification for each thing that actually changes.

The engineering underneath it is the interesting part — a scheduled ingestion pipeline over official exchange feeds, PDF extraction from regulatory filings, seven registrar integrations with captcha handling and multi-mirror failover, encryption-at-rest for PAN data, and a test suite exercised on every change — all of it fronted by a single Flutter codebase shipping to both iOS and Android, designed, built, and operated in-house.