Local Business Management Software — A full-stack application for managing customers, inventory, sales, expenses, and employees.
Works on Windows 10/11 and Linux (Ubuntu, Debian, Fedora, and other distros).
| Requirement | Windows | Linux |
|---|---|---|
| Node.js ≥ 18.11 | nodejs.org (LTS installer) | sudo apt install nodejs npm / nvm |
| npm ≥ 9 | Included with Node.js | Included with Node.js |
C++ Build Tools (for better-sqlite3) |
See note below | sudo apt install build-essential python3 |
Windows Build Tools note:
better-sqlite3is a native addon that must compile from source. Run this once in an Administrator PowerShell/CMD before the firstnpm install:npm install --global windows-build-toolsOr install Visual C++ Build Tools manually and reopen your terminal.
The easiest way to get started is to use the included startup scripts. They install dependencies, set up the database, and launch both servers automatically.
Double-click start-windows.bat, or run in CMD/PowerShell:
start-windows.batbash start-linux.shBoth scripts open http://localhost:5173 in your browser when ready.
If you prefer step-by-step control:
git clone <repo-url>
cd bizmanagercd backend
npm install
npm run init # Creates .env from .env.example (works on Windows & Linux)
npm run setup # Creates the SQLite database and default admin account
npm run dev # Starts API server on http://localhost:5000Windows CMD note:
npm run inituses a Node.js script, so it works identically on all platforms — nocp/copyneeded.
cd frontend
npm install
npm run dev # Starts dev server on http://localhost:5173Open http://localhost:5173 in your browser.
| Password | |
|---|---|
| admin@bizmanager.local | admin123 |
⚠️ Change the default password after first login!
# Backend (any platform)
cd backend
npm start
# Frontend — build static files
cd frontend
npm run build # Output written to frontend/dist/
npm run preview # Preview the production build locallyServe frontend/dist/ with any static-file host (nginx, IIS, Caddy, etc.) and point the backend at your domain via FRONTEND_URL in .env.
| Variable | Description | Default |
|---|---|---|
PORT |
API server port | 5000 |
NODE_ENV |
Environment (development / production) |
development |
JWT_SECRET |
Change this! JWT signing secret | placeholder |
JWT_REFRESH_SECRET |
Change this! Refresh token secret | placeholder |
JWT_EXPIRES_IN |
Access token TTL | 15m |
JWT_REFRESH_EXPIRES_IN |
Refresh token TTL | 7d |
DB_PATH |
SQLite database file path | ./database/bizmanager.db |
FRONTEND_URL |
Allowed CORS origin | http://localhost:5173 |
On Windows you can edit
.envwith Notepad, VS Code, or any text editor.
| Feature | Admin | Manager | Employee |
|---|---|---|---|
| Dashboard | ✅ | ✅ | ✅ |
| Customers (view) | ✅ | ✅ | ✅ |
| Customers (create/edit/delete) | ✅ | ✅ | ❌ |
| Inventory | ✅ | ✅ | ❌ |
| Sales (view/create) | ✅ | ✅ | ✅ |
| Sales (update status) | ✅ | ✅ | ❌ |
| Sales (delete) | ✅ | ❌ | ❌ |
| Expenses | ✅ | ✅ | ❌ |
| Employees | ✅ | ✅ | ❌ |
| Reports | ✅ | ✅ | ❌ |
| Settings | ✅ | ❌ | ❌ |
| Backup | ✅ | ❌ | ❌ |
Use the Settings page in the app to download a backup, or call the API directly:
# Linux / macOS / Windows PowerShell
curl -H "Authorization: Bearer <token>" http://localhost:5000/api/backup/download -o backup.dbInstall the Visual C++ build tools first (see Prerequisites above), then retry:
cd backend
npm installYour Node.js version is older than 18.11.
Upgrade to the current LTS at nodejs.org.
Change PORT (backend) in backend/.env and update FRONTEND_URL to match.
Change the frontend port in frontend/vite.config.js (server.port).
Run PowerShell as Administrator and allow scripts:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserThen use the .bat file or run npm commands in CMD instead.
Use nvm to manage Node.js without root, or fix npm permissions:
https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
| Guide | Audience | Contents |
|---|---|---|
| User Guide | Business users | Dashboard, customers, products, sales, expenses, employees, reports, settings, backup, role permissions, tips |
| Developer Guide | Developers | Architecture, full API reference, database schema, adding features, production deployment, contributing |
Browser (http://localhost:5173)
│
├── React 18 + Vite + Tailwind CSS
├── Zustand state management
├── axios (auto token-refresh interceptor)
│
▼
Express.js API (http://localhost:5000)
│
├── JWT Authentication (access + refresh tokens)
├── Role-based Authorization
├── Input Validation (express-validator)
│
▼
SQLite — better-sqlite3
└── backend/database/bizmanager.db