Back to Portfolio
★ Flagship ProjectProduction

Vanigam
GST Billing App

A complex GST billing and business management application built with scalable Flutter architecture and offline-first workflows — adopted by real B2B businesses.

01Overview

Timeline

1 Year

Solo development

Platform

Multi

Android + Windows + iOS

Status

Production

Real business users

Vanigam is a full-featured GST billing and business management system built specifically for Indian B2B sellers — distributors, wholesalers, and small businesses. Designed for real-world business complexity: multi-party transactions, inventory tracking, GST filing, offline-first operations, and cross-device data sync.

02Problem Statement

Small B2B businesses in India need GST-compliant billing but existing solutions are either too expensive (enterprise ERP), too simple (basic invoice apps), or not designed for distributor-wholesaler workflows. Many businesses still rely on paper or Excel.

  • No affordable offline-capable GST billing app for small distributors
  • Existing apps lacked multi-platform support (counter + mobile for field reps)
  • TCP-based local sync needed for shops with unreliable internet
  • GST report generation for filing missing from most affordable options

03Architecture Decisions

Offline-First Architecture

All core features (billing, inventory, customer lookup) work without internet. Data is stored locally in SQLite/Isar and synced to Firebase when connected. This was non-negotiable for shops with unreliable connectivity.

TCP Local Sync

Field sales reps create orders on Android mobile; the Windows desktop app approves and generates invoices. A TCP socket connection over local WiFi enables data transfer without internet dependency.

Multi-Platform Flutter

Single codebase targets Android, iOS, and Windows. Platform-specific code isolated using conditional imports and abstract interface patterns.

PDF Generation Pipeline

Custom PDF generation for GST invoices using the pdf package. Template system allows businesses to customize their invoice layout, colors, and branding.

State Management with BLoC

BLoC pattern for all business logic. Clear separation between UI, business rules, and data layers. Each feature (billing, inventory, reports) has its own BLoC.

04Technology Stack

Flutter / DartFirebase FirestoreFirebase AuthSQLite / IsarBLoCpdf packageTCP SocketsGitHub ActionsPlay StoreWindows Desktop

05Key Features

GST Invoice Generation

GST-compliant PDF invoices with custom templates and branding

Offline-First Billing

Full billing workflow works without internet connection

Credit/Debit Management

Track party-wise outstanding amounts and payment history

GST Report Filing

Generate GST reports in standard formats for filing

Sales & Purchase Reports

Dynamic chart and PDF reports for business analytics

Inventory Management

Product tracking with reorder suggestions and stock alerts

TCP Local Sync

Transfer data between devices over local network without internet

Sales Order Workflow

Field reps create orders on mobile; approved on desktop

06Engineering Learnings

01.Offline-first is not just about caching — it requires conflict resolution, sync queuing, and failure recovery design
02.Local network TCP sync is a practical solution when internet connectivity is unreliable in target markets
03.PDF generation at scale requires layout engine understanding — Flutter pdf package has quirks with dynamic content
04.Multi-platform Flutter (Android + Windows) requires careful platform abstraction from day one
05.Real business users find the edge cases that tests miss — post-launch support shaped the architecture significantly

Explore the Full Code

The full codebase including architecture, state management, and PDF generation is available on GitHub.