Full-stack prototype for Tunisian SME field-sales quoting (fiscal cascade, discounts, commissions) and HR/payroll prep (CNSS, mileage, monthly export). React + Express + SQLite.
# SmartHR & Sales
A full-stack prototype for Tunisian SMEs combining **field-sales quote
management** (devis with a fiscal cascade — FODEC, TVA, timbre fiscal —
plus a discount/dérogation approval workflow and commission calculation)
with **HR/payroll prep** (CNSS, mileage allowance, salary adjustments,
one-click monthly export). Three roles: **Admin/DAF**, **Superviseur**,
and **Commercial**.
For the full endpoint/schema reference, see
`docs/api-contract.md`. For architecture
decisions, exact run instructions, and QA/testing details, see
`docs/build-summary.md`. For the fiscal/logic
verification report, see `tests/report.md`.
## Quick start
```bash
export PATH="$HOME/.local/node/bin:$PATH" # if node isn't already on PATH
npm install && npm run install:all # install root + backend + frontend deps
npm run seed # populate realistic demo data
npm run dev # backend on :5000, frontend on :3000
```
> **macOS note:** port 5000 is sometimes occupied by the system AirPlay
> Receiver. If the backend fails to bind, go to **System Settings → General
> → AirDrop & Handoff** and turn **AirPlay Receiver** off, then retry. See
> `docs/build-summary.md` for the full explanation and a fallback if you'd
> rather not change that setting.
## Demo credentials
All demo accounts use the password **`password123`**.
| Role | Email | Gouvernorat |
|---|---|---|
| Admin/DAF | `admin@smarthr.tn` | — |
| Superviseur | `sana.trabelsi@smarthr.tn` | Sousse |
| Superviseur | `walid.chaouch@smarthr.tn` | Kairouan |
| Commercial | `karim.ferjani@smarthr.tn` | Sousse |
| Commercial | `nizar.ayari@smarthr.tn` | Sousse |
| Commercial | `youssef.guesmi@smarthr.tn` | Kairouan |
| Commercial | `lilia.mansour@smarthr.tn` | Monastir |
| Commercial | `mehdi.jaziri@smarthr.tn` | Mahdia |
The seeded data tells a complete story out of the box: draft and finalized
quotes, a quote **locked pending dérogation** (Youssef Guesmi's
`DEV-2026-0004`), a quo …