Logo Lanfrica

yosromry-png/smarthr-sales

Domain:

socioeconomic

Record type:

software
Creator:
yos
Host:
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 …

Languages