The problem
Small retailers, wholesalers and distributors must issue GST-compliant tax invoices, track stock and file GSTR-1 — yet many still juggle manual bill books, spreadsheets and a CA at quarter-end. Commercial billing software charges per-user subscriptions that small shops resent, and generic tools rarely match Indian GST workflows with HSN codes and CGST/SGST versus IGST splits. This project builds a focused, self-hosted alternative: tax invoices created in seconds with automatic tax splits, stock reduced on every sale, low-stock alerts with reorder suggestions, customer ledgers with outstanding tracking, and GSTR-1-compatible export. The design is honest about scope — it prepares the filing data; actual filing happens on the GST portal.
Builds invoices and records payments.
Follow the working sequence
How it works
- The admin creates the product master with SKU, HSN, purchase and sell price, and reorder level.
- The cashier selects a customer; the GSTIN is validated and the supply type (intra/inter-state) sets the tax split.
- Items are added to the invoice; line totals, GST split and grand total compute live in the form.
- On save, a database transaction writes the invoice, decrements stock and posts ledger entries atomically.
- Products falling below reorder level appear as low-stock alerts with suggested purchase quantities.
- At month end, the GSTR-1 export produces the filing-ready file for the period.
Tech stack:
- Django 5 (MVT) on Python 3.11+
- PostgreSQL relational database
- Django ORM transactions for atomic invoice saves
- Bootstrap responsive UI with printable invoice layout
- CSV/Excel export for GSTR-1 data
- Django authentication with role-based permissions
| Parameter | Value |
|---|---|
| Tax logic | CGST+SGST intra-state; IGST inter-state (configurable rates) |
| Invoice atomicity | Single DB transaction: invoice + stock + ledger |
| GSTR-1 | Filing-ready CSV/Excel export (filing done on GST portal) |
| User roles | Admin, cashier |
| Stock valuation | Purchase-price based (design target) |
| Deployment | Self-hosted; runs on any Python-capable server |
Project features
- [GST tax invoices] Line-item invoices with HSN capture and automatic tax computation — CGST plus SGST for intra-state sales, IGST for inter-state.
- [Automatic stock updates] Saving an invoice decrements product stock inside the same database transaction, so books and shelf never disagree.
- [Low-stock alerts] Configurable reorder levels per product, with purchase-quantity suggestions based on recent sales velocity.
- [Customer and supplier ledgers] Outstanding tracking per party with payment recording and ageing visibility.
- [GSTR-1 export] One-click export of the period's invoices in GSTR-1-compatible CSV/Excel format.
- [Role-based access] Admin and cashier roles — cashiers see billing and their day-book only.
- [Business dashboard] Month-wise sales, pending receivables, GST payable estimate and stock valuation at a glance.
What is included
- Complete source code (Django app, models, tax engine, templates, seed data)
- Database schema document and tax-computation logic notes
- Setup guide (local run, PostgreSQL setup, deployment notes)
- Project report PDF (background, GST workflow design, transaction design, testing notes)
- PPT presentation for final review
- Viva Q&A preparation document (GST concepts, ACID transactions, Django ORM, role-based access)
Limitations & prerequisites
- The export prepares GSTR-1 data; actual filing is done by the user on the GST portal.
- E-invoicing (IRN/QR) integration with the GST API is not included in this build.
- Tax rates and HSN masters must be kept current by the business as notifications change.
- Barcode scanning is not included; item selection is search-based.
- The demo ships with sample products and parties; real business data must be entered.
- Multi-branch stock transfer is out of scope for this version.
Frequently Asked Questions
How is GST calculated?
The tax engine checks the supply type: intra-state sales split GST into CGST plus SGST, inter-state sales apply IGST. Rates are configurable per product.
What if the power fails mid-invoice?
The invoice saves inside a single database transaction — either the invoice, stock update and ledger entry all save, or none do. There are no partial writes.
Can the cashier see everything?
No. Role-based permissions restrict cashiers to billing and their own day-book; masters, reports and user management are admin-only.
Does it file GSTR-1 automatically?
It produces the filing-ready export; the actual filing happens on the GST portal by the business or their CA.
Is stock updated for purchase entries too?
Yes — purchase inward entries increase stock, and sales decrement it, keeping one consistent stock figure.
Is this project suitable for a final-year project?
Yes — for Computer Science, IT and related programs. It demonstrates web development, relational database design, transaction safety and real-world tax-domain logic. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and Web Development.
Components & software requirements
- Django 5 (MVT) on Python 3.11+
- PostgreSQL relational database
- Django ORM transactions for atomic invoice saves
- Bootstrap responsive UI with printable invoice layout
- CSV/Excel export for GSTR-1 data
- Django authentication with role-based permissions
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.
Download free synopsis (PDF)
Enter your name and WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.