Upload a Shopify order CSV, configure GSTIN + tax rules, preview, and bulk-download GST-compliant PDF invoices (CGST/SGST/IGST auto-detected).
cd backend
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
# Copy Arial fonts (Windows only — already done if fonts/ has files)
python download_fonts.py
uvicorn main:app --reload --port 8000API will be at http://localhost:8000
Docs at http://localhost:8000/docs
cd frontend
cp .env.local.example .env.local # set NEXT_PUBLIC_API_URL if needed
npm install
npm run devApp at http://localhost:3000
- Push monorepo to GitHub
- New Web Service → Root dir:
backend - Build:
pip install -r requirements.txt - Start:
uvicorn main:app --host 0.0.0.0 --port $PORT
- New project → Root dir:
frontend - Env var:
NEXT_PUBLIC_API_URL=https://your-service.onrender.com - Deploy
| Method | Path | Description |
|---|---|---|
| GET | /health |
Health check |
| POST | /count |
Count orders in CSV |
| POST | /preview |
PDF of first order |
| POST | /generate |
Bulk PDF or ZIP |
All POST endpoints accept multipart/form-data:
csv_file— Shopify order export CSVconfig_json— JSON string (see below)logo_file— optional PNG/JPGformat—"zip"or"single"(generate only)
{
"company": {
"name": "Your Company Pvt Ltd",
"gstin": "27AABCU9603R1ZX",
"address": "Full registered address",
"email": "[email protected]",
"website": "company.com",
"seller_state": "Maharashtra",
"seller_state_code": "06",
"shipped_from": "Warehouse address",
"hsn_code": "621112",
"transport_mode": "Blue Dart"
},
"tax_rules": [
{"from": "2025-08-01", "to": "2025-09-21", "rate": 12},
{"from": "2025-09-22", "to": null, "rate": 5}
]
}invoicekit/
├── backend/
│ ├── main.py FastAPI app + endpoints
│ ├── csv_parser.py Shopify CSV → order dicts
│ ├── tax_logic.py GST rate/type calculation
│ ├── invoice_generator.py ReportLab PDF generation
│ ├── fonts/ arial.ttf, arialbd.ttf (bundled)
│ ├── requirements.txt
│ └── render.yaml
└── frontend/
├── app/
│ ├── page.tsx Landing page
│ └── generate/page.tsx 5-step wizard
├── components/
│ ├── steps/ CompanySetup, TaxRules, UploadCSV, Preview, Download
│ └── ui/ Button, Input, StepBar
└── lib/
├── types.ts Shared TypeScript types
└── api.ts API client