Vikram Mulgund · Production Web Apps

Apps I’ve built for real work.

Four custom web applications built for daily operations and family finance. Each runs live in the browser, installs as a phone PWA, and solves a concrete workflow.

Sales & Inventory

● Live PWA

MIG Stock

Sales and stock for a shop that sells clamps. Ring up a sale and the stock count updates with it, on the counter laptop or a phone.

  • Sales tracked by product and customer
  • One-tap WhatsApp invoice sharing
  • Atomic stock deduction with every sale
  • Gemini assistant for “what’s low on stock?”
Live app ↗

Gaming Lounge

● Live PWA

Phoenix

Runs a PS5 gaming lounge. Start a session on a console, the timer keeps counting, and the bill is worked out when the player leaves.

  • Live station floor status for every PS5
  • Persistent timestamps that survive refreshes
  • Auto-billing: 1-hr minimum + 30-min intervals
  • Daily revenue & console utilization analytics
Live app ↗

Fixed Deposits

● Private Family PWA

Lalitamba

One family’s fixed deposits with a cooperative society, in one place: what matures when, the monthly interest, and each member’s passbook.

  • Scan a receipt — Gemini extracts FD fields
  • Super-admin approval workflow for new FDs
  • Individual member passbooks & balances
  • 90-day maturity radar & monthly interest view
Live app ↗

Family Lending

● Private Family PWA

Deposits

Tracks money lent within a family. Each deposit earns 2% a month; the app shows what is ready to collect and how close each one is to paying back.

  • Family-wide & individual member balances
  • Monthly collection readiness & due dates
  • Break-even recovery progress tracker
  • One-tap Excel ledger backup export
Live app ↗

Case Study · Sales & Inventory

MIG Stock

Stock and sales for the counter, and a PWA on the phone. A sale writes the ledger, the receipt, and today’s totals together.

Mobile Workflow

On the phone.

Bottom navigation for the day. A new sale replaces that bar with the total and Complete sale.

Dashboard
New sale
Inventory
1

The day, on one screen.

Sales today, pending balances, low stock, and a seven-day trend. Recent receipts sit under the chart.

2

A sale that moves the stock.

Pick the product, type, and size. Complete sale writes the line and the stock count in one step.

3

Low stock, before the shelf is empty.

Inventory lists what is under the threshold, with restock on the row.

mig-stock.vercel.app

Case Study · Gaming Lounge

Phoenix

Operator control for the shop floor. Start a session, keep the timer, and bill by the hour on the counter or a phone.

Mobile Operator View

On the phone.

The day’s dashboard, then the floor, timers, and the bill.

Dashboard
Floor
Active
Bill
1

The day, at a glance.

Revenue, live sessions, and what is free or in use, over the arena.

2

The floor, live.

See which PS5s are free or in use, and start a session from the station.

3

The timer is the start time.

Refresh the page and the clock is still right. It is counted from when the session began.

4

The bill rounds up.

One hour minimum, then 30 minutes. An hour and 25 minutes bills as an hour and a half.

phoenix-gaming-zone.vercel.app

Case Study · Cooperative Fixed Deposits

Lalitamba

A private PWA for one family’s fixed deposits at Shri Lalitamba Pattina Souharda Sahakari Ltd, Gadag. Photograph a certificate, confirm the fields, then track maturity, interest, and the passbook.

Phone-First Design

On the phone.

Home, the deposit list, and each member’s passbook.

Home
FDs
Passbook
1

The book, on one screen.

Principal outstanding, monthly interest, and what matures in the next 90 days. Closed deposits stay out of the totals.

2

Every certificate, by person.

Search an FD number, filter what is due soon, and open the slip. Sample numbers 01FD40599 and 01FD32450 are the practice receipts.

3

A passbook beside the deposit.

Credits and debits sit with the member. The FD principal stays on the certificate.

Case Study · Family Lending

Deposits

A custom family investment tracker for deposits, monthly interest collections, and principal withdrawals. It keeps every member’s balance and the family’s overall progress in one place.

PWA Experience

On the phone.

Home, what is ready to collect, and how close the family is to break-even.

Home
Collect
Analytics
1

The family, on one card.

Invested, interest already collected, and who has a payout ready today. Swipe the card for one person.

2

Collect only when it is due.

A payout stays locked until a full month has passed. One person can mark it collected for the whole family.

3

Break-even, from today’s book.

Pending is what is still out. The time left assumes the balances you see now stay put.

Architecture & Tooling

Tech Stack

The frontend frameworks, Supabase data layers, Gemini AI integrations, and deployment pipelines behind each application.

MIG Stock

  • Frontend: React 18, TypeScript, Vite, and React Router.
  • Interface: Material UI with Emotion, responsive side and bottom navigation.
  • Data: Supabase Postgres, email/password Auth, Row Level Security, and atomic stock and sales functions.
  • AI: Google Gemini powers natural-language questions through the app’s chat API.
  • Documents and reports: Recharts, SheetJS, jsPDF, and html2canvas.
  • Delivery: Installable PWA, deployed on Vercel.
  • Frontend: React 19, TypeScript, Vite, and React Router.
  • Interface: Tailwind CSS, Radix UI primitives, Lucide icons, and responsive desktop/mobile layouts.
  • Current data layer: A browser store keeps sessions, timers, customers, assets, and history after refresh.
  • Session engine: Timers derive from saved start timestamps; billing applies the one-hour minimum and 30-minute increments.
  • Documents: jsPDF and html2canvas are included for printable or shareable output.
  • Delivery: Offline-capable PWA, deployed on Vercel.

Supabase Auth and database schema are prepared for a later cloud cutover, while the live UI runs instantaneously on the browser store.

Lalitamba

  • Frontend: React, TypeScript, Vite, and React Router.
  • Interface: Tailwind CSS, shadcn/ui, custom stroke icons, and a phone-first PWA layout.
  • Backend: Supabase Auth, Postgres, private receipt Storage, and Row Level Security.
  • OCR: A Supabase Edge Function sends receipt images to Gemini and returns structured fields for review.
  • Security: Receipt files stay private and the Gemini key remains inside the server-side function.
  • Delivery: Installable PWA, hosted on Vercel.

Deposits

  • Frontend: React, TypeScript, Vite, Material UI, and React Router.
  • Backend: Supabase Postgres, shared-family Auth, and Row Level Security.
  • Ledger: Pure TypeScript calculates monthly payouts and break-even progress; money stays as integer paise.
  • Due dates: Payout rows are generated when the app loads, avoiding a separate cron or serverless job.
  • Backup: SheetJS exports all ledger tables to an Excel workbook.
  • Delivery: Installable PWA with automatic Vercel deployments from GitHub.

Analytics uses lightweight custom progress bars rather than a heavy charting library.

Get in Touch

Let’s build something useful.

Like the work, or want a custom web app for your business or family? Whether it’s a shop inventory system, an operator dashboard, or a custom tracker — reach out directly.

● Available for new projects

Custom Web Apps & PWAs

Built from scratch with React, TypeScript, Supabase, and Gemini AI — tailored to run smoothly on both counter laptops and phones.

📦 Shop & POS ⏱️ Lounge & Booking 🏦 Family Finance 🤖 Gemini AI / OCR
Email vikramam.1993@gmail.com Direct inbox · replies within 24h
WhatsApp +91 9036589729 Fastest for quick questions
Message ↗
GitHub github.com/vikramam Source code & repositories
Profile ↗

Start a quick conversation

Pick what you have in mind and send a pre-filled note via WhatsApp or Email in one click.