The Nandini platform ships three Android apps built in React Native from one design system —
Material 3, deep indigo (#312E81) as the trust colour, saffron (#F59E0B) as the warmth
accent, Roboto Flex type, 8 dp grid. Every screen below links to its interactive design canvas,
where you can zoom, pan and open any screen fullscreen.
Brand moment on launch; auto-logs in returning users from the stored token and routes them by role.
01 · Login — enter phone
10-digit phone entry, the single credential for customers. Terms note + CTA to request an OTP.
02 · OTP — verify code
6-digit code entry with auto-advance boxes, resend timer and error state for wrong codes.
03 · Register — your name
Shown only on first login; captures name (and optional email) to create the account.
03b · Forgot / trouble signing in
Recovery path for users stuck at login; offers re-OTP and support contact.
03c · Set delivery location
Location permission ask + GPS confirm so the app can check serviceability before showing the catalog.
Home & browse
Land on home → scroll the rails → search → category → product detail.
Screen
What it does
04 · Home (+ scrolled states)
M3 top app bar with the delivery address as title, 28 dp pill search, ETA hero (“farm to door in 24 hours”), trust strip, category grid, banner slider and 9 product rails. Captured in four scroll states plus a full-page render of every rail.
05 · Search — live autocomplete
Recent searches, popular items and live suggestions as the user types.
06 · Category (Milk)
Category landing with sub-category chips and product grid for a single category.
07 · See all — category landing
Expanded rail view: full product list behind any “see all” tap.
08 · Product detail
Gallery, variant picker (500 ml / 1 L…), price + discount tag, sponsor badge, similar products, add-to-basket bar.
Today at a glance — pending orders, revenue, stock alerts, quick actions.
Customer orders
Screen
What it does
04 · Order queue
Incoming B2C orders to accept or reject.
05 · Order detail — assign
Assign a delivery boy from the roster (or self-deliver).
05a/b · Reject → auto-reassign
Reject with reason; the platform auto-reassigns to the next-nearest distributor.
Stock & catalog (B2B)
Screen
What it does
06 · Catalog — all SKUs
Wholesale catalog with search and pagination.
07 · Product — slab pricing
Quantity-slab wholesale prices + current depot stock.
08–09 · Stock cart → checkout
Build a stock order and pay from the wallet/credit line.
10 · Inventory
Depot stock levels with low-stock alerts.
Wallet, billing & reports
Screen
What it does
11 · Wallet (healthy / overdrawn)
Balance and credit status; overdrawn state pushes “settle now”.
12 · Add funds
Top-up via Razorpay.
13 · Invoices & billing
Stock-purchase invoices with paid/unpaid status.
14 · Reports & analytics
Sales and inventory analytics for the depot.
Account, compliance & help
Screen
What it does
15–17 · Profile, edit, password
Depot profile with GPS position; credentials management.
18 · Bank & UPI
Payout / settlement details.
19 · GST & FSSAI
Compliance documents (reviewed in the admin panel).
20 · Delivery boys — roster
Add / remove riders attached to the depot.
21–25 · Help & support chat
Bot triage → live agent → resolved + rating; thread list for history.
Design system notes
Palette. Deep indigo #312E81 frames every premium moment — ETA card, primary actions, active tab. Saffron #F59E0B is reserved for warmth: the ETA minutes, discount tags, festive promos and the checkout pill. Nothing else competes for attention.
Android-native, not web. M3 top app bar with the delivery address as title, 28 dp pill search, 8 dp grid, 5-tab bottom nav with an indigo pill indicator, 44 dp minimum hit areas, WCAG AA on every colour pair. The cart lives in the bottom nav, not floating in a header.
Signature moment. The milk-drop pull-to-refresh: pulling fills a drop of milk that falls into a bowl with a Material spring (damping 0.7, stiffness 280) — the one daily-visible animation that says dairy instead of generic quick-commerce.