by Arslan Shakil

Invoice & Billing Manager System
A full-stack Invoice & Billing Manager built with TypeScript, React, and Express. This application enables users to manage clients, create and track invoices, and generate PDF documents. Features JWT-based authentication, SQLite persistence, and a responsive UI with real-time status tracking.
| Layer | Technology |
|---|---|
| Frontend | React 19, React Router 7, TypeScript, Tailwind CSS, Vite |
| Backend | Node.js, Express, TypeScript |
| Database | SQLite (via better-sqlite3) |
| Auth | JWT (jsonwebtoken), bcryptjs |
| Validation | Zod |
| PDFKit | |
| Build | Vite (frontend), TypeScript compiler (backend) |
cd backend
npm install
npm run build
npm start
The API server runs on port 9050 by default.
Development mode with hot-reload:
npm run dev
Environment Variables:
| Variable |
|---|
Spin up an isolated sandbox and run it server-side — no local setup.
Push this product straight into your AI IDE, web builder or cloud IDE.
Download your licensed source snapshot from the library, then follow the setup guide in your workspace.
No reviews yet.
Sign in to join the discussion
Loading discussion…
| Default |
|---|
| Description |
|---|
PORT | 9050 | HTTP server port |
JWT_SECRET | invoice_secret_key_2024 | JWT signing secret (set in production) |
cd frontend
npm install
npm run dev
The frontend runs on port 5173 by default (Vite dev server).
Build for production:
npm run build
All endpoints are prefixed with /api. Protected endpoints require a Bearer token in the Authorization header.
GET /api/healthReturns server status. No authentication required.
curl http://localhost:9050/api/health
Response:
{
"status": "ok",
"timestamp": "2024-06-15T10:30:00.000Z"
}
POST /api/auth/registerCreate a new user account.
Request body:
{
"email": "user@example.com",
"password": "password123",
"name": "Jane Smith"
}
POST /api/auth/loginAuthenticate and receive a JWT token.
Request body:
{
"email": "user@example.com",
"password": "password123"
}
Response:
{
"data": {
"token": "eyJhbGciOiJIUzI1NiIs...",
"user": {
"id": "uuid",
"email": "user@example.com",
"name": "Jane Smith"
}
}
}
GET /api/clientsList all clients for the authenticated user.
POST /api/clientsCreate a new client.
Request body:
{
"name": "Acme Corp",
"email": "contact@acme.com",
"phone": "+1 (555) 000-0000",
"address": "123 Main St, City, State 12345"
}
PUT /api/clients/:idUpdate a client by ID.
DELETE /api/clients/:idDelete a client by ID.
GET /api/invoicesList all invoices for the authenticated user.
POST /api/invoicesCreate a new invoice.
Request body:
{
"clientId": "uuid",
"dueDate": "2024-12-31",
"lineItems": [
{
"description": "Web Design",
"quantity": 1,
"unitPrice": 5000
}
],
"notes": "Thank you for your business"
}
PUT /api/invoices/:idUpdate an invoice (status, line items, due date, etc.).
DELETE /api/invoices/:idDelete an invoice by ID.
GET /api/invoices/:id/pdfDownload invoice as PDF.
Tetrees License
The sandbox audition completed and the detected runnable path passed.
This Express backend / api completed archive review with strong static results. Structure, dependency manifests, documentation, functional source, and common risk patterns were checked by the Tetrees verification pipeline; runtime phases are stated separately. Final verified scores after isolated runtime evidence: overall 8.8 and security 9.
Deterministic AVCP artifact review
Pipeline avcp-2026-08-04.1 · SHA-256 eecbcfb813dd5410…
This version-scoped review deterministically inspects the submitted archive for structure, dependencies, documentation, functional source, and common malicious or high-risk signals. Build and test phases are reported as passed only after an isolated sandbox audition. It is not a guarantee of perfect security.
Reviewed Aug 7, 2026
The full install guide and integration prompts unlock after purchase.
Automation, Utilities & Developer Tools
$6