YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
CHUGAZ STATIONERY - POS & Inventory
A full-stack Point of Sale and Inventory Management System for stationery shops.
Features
- POS System - Sales, cart, checkout, receipts
- Inventory Management - Products, categories, suppliers, stock tracking
- Customer Management - Accounts, addresses, orders, credit
- Staff Dashboard - Orders, sales, reports, expenses
- Email Verification - SMTP configurable via Settings
- Lipa Na Mpesa - Payment instructions configurable
- Role-based Access - Admin, Manager, Cashier, Clerk
- Multi-office Support
Tech Stack
- Frontend: React 18 + Vite + React Router
- Backend: Node.js + Express + SQLite (better-sqlite3)
- Auth: JWT with refresh tokens
- Database: SQLite (better-sqlite3)
- Email: Nodemailer (SMTP configurable)
Environment Variables
| Variable | Description | Default |
|---|---|---|
PORT |
Server port | 7860 |
NODE_ENV |
Environment | production |
DB_PATH |
SQLite database path | /data/backend/stationery.db |
JWT_SECRET |
JWT signing secret | auto-generated |
JWT_EXPIRY |
Token expiry | 7d |
SMTP_HOST |
SMTP server | - |
SMTP_PORT |
SMTP port | 587 |
SMTP_USER |
SMTP username | - |
SMTP_PASS |
SMTP password | - |
SMTP_FROM |
Sender email | - |
Deployment
Local
npm install
cd backend && npm install
cd ../frontend && npm install
npm run dev # frontend (port 5173)
node backend/server.js # backend (port 4000)
Docker
docker build -t chugaz-stationery .
docker run -p 7860:7860 -v ./data:/data chugaz-stationery
Hugging Face Spaces
- Create new Space โ Docker
- Connect this GitHub repo
- Set Environment Variables in Space Settings:
SMTP_HOST,SMTP_PORT,SMTP_USER,SMTP_PASS,SMTP_FROMJWT_SECRET(random 32-char string)
- Space will auto-build and deploy
Default Login
| Role | Password | |
|---|---|---|
| Admin | admin@shop.com |
admin123 |
| Manager | manager@shop.com |
manager123 |
| Cashier | cashier@shop.com |
cashier123 |
| Clerk | clerk@shop.com |
clerk123 |
API Endpoints
GET /api/health- Health checkGET /api/system/settings- Get settings (admin)PUT /api/system/settings- Update settings (admin)POST /api/system/test-email- Test SMTP (admin)POST /api/auth/login- Staff loginPOST /api/shop/register- Customer registrationPOST /api/shop/verify-email- Email verificationPOST /api/shop/resend-verification- Resend codeGET /api/shop/info- Public shop info
Lipa Na Mpesa
Configure payment instructions in Admin โ Settings โ Lipa Namba:
356322054 - CHUGAZ STATIONERY
License
MIT
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐ Ask for provider support