Magasin ESI.
A stock-management web app built to digitise the ESI Sidi Bel Abbès stockroom: it tracks every entry and exit, manages stock flows, and enforces role-based access across five roles — Director, Department Head, Storekeeper, Accountant, and Consumer. Built with Node.js and React.
Digitising the stockroom.
Magasin ESI (internally, ES3) replaced a paper-and-spreadsheet stockroom at ESI Sidi Bel Abbès with a single web application. It tracks every entry and exit, keeps a live picture of what is on the shelves, and routes stock requests through the people who have to approve them.
Role-based access, because the org chart is the spec.
The interesting constraint was access control. A stockroom is not one user — it is a chain of responsibilities, so the app implements RBAC across five roles: Director, Department Head, Storekeeper, Accountant, and Consumer. Each role sees and does exactly what its position allows; a request moves through the chain rather than around it.
Stack and scope.
Node.js and React, backed by PostgreSQL. The scope is deliberately narrow — an internal tool for one institution, not a multi-tenant product — and the interface follows from that: fast, legible, and built around the daily rhythm of the people who actually run the stockroom.
Where it runs.
The harness teaches you what the model is doing. Build it first; the rest is implementation.