Skip to content

Enterprise Systems

Offline retail POS software for India: GST-inclusive MRP billing, udhaar and barcode checkout

NodeDR POS is a self-hosted retail point of sale for Indian shops. How it bills GST-inclusive MRP correctly, tracks customer credit and keeps working with no internet.

By · Published · 6 min read

Short answer: NodeDR POS is an offline-first, self-hosted point of sale and inventory system for Indian retail. It installs as a native program on Windows or Debian and Ubuntu, or runs from one Docker command, and it bills GST-inclusive MRP so the receipt adds up to what the customer actually pays.

What does an Indian retail counter need?

Billing, MRP pricing that already includes GST, customer dues, stock and loyalty often live in separate tools, behind a monthly fee and a hard internet dependency. NodeDR POS puts them in one local system.

  • Barcode-first checkout with a GST breakup on the receipt.
  • Returns that restock automatically.
  • An udhaar ledger for customers who buy on credit.
  • Loyalty points, and a dashboard of revenue trends, best sellers and top customers with CSV export.
  • Receipts printed or saved as PDF, and barcode labels generated in the browser.

How is GST-inclusive MRP calculated?

MRP in India already contains the tax, so the tax amount is calculated backwards from the shelf price and split into CGST and SGST. The difficult part is rounding across a whole bill: the receipt must add up to the amount paid. The tax, rounding and receipt totals are computed on the server and never accepted as numbers from the browser. I explain the arithmetic in Calculating GST-inclusive MRP in a POS.

Does it work without internet?

Yes. The application and database run on the shop's own machine or network, so billing continues when the connection is down. That is not the same as surviving a failure of the shop's own server, so the operator still needs a backup and recovery plan. The repository documents how to back up and update the data volume.

How is it built?

A Next.js frontend is the only browser-facing port and proxies requests to an Express service on the internal network. SQLite through Prisma is the local system of record, which keeps a single-shop install simple because no separate database server is needed to take a sale. Zod validates requests at the API edge. Security covers admin and cashier roles, bcrypt-hashed passwords, an HttpOnly JWT cookie, security headers and rate limiting.

What is it not for?

It is a focused single-shop system. SQLite and a single-shop scope reduce administration, and they also mean this is not the architecture for a chain that needs central inventory and simultaneous multi-branch writes. For that, see Rechvix. The patterns from this product, including authentication, receipts, ESC/POS printing and currency rounding, became the base for OrderRestro. Read the full NodeDR POS case study for the decisions in detail.

References

Author

Raktim Ranjit is a software engineer and the founder of NodeDR Infotech. He builds and maintains the software described here.

Have something in mind?

Let’s build something useful.

Tell me about the idea, product, or workflow you’re working through.

Tap to say hello