# SARE Africa — Shop Admin Panel
Admin panel for managing shops, products and stock across the SARE retail
network. An administrator signs in, sees inventory totals across every shop on a
dashboard, and creates, edits and deletes shops and products from there.
React + TypeScript + Vite on the front end, backed by a JSON Server mock REST
API reading from `db.json`.
## Live demo
**
sare-africa-shop-admin-pane…
Sign in with the demo credentials below.
JSON Server is a dev process, so there is no server behind the deployed build.
Instead, Mock Service Worker intercepts the same REST calls
in the browser and answers them from a copy of `db.json` — so create, edit and
delete all work on the live demo. Each visitor gets their own sandbox, persisted
to `localStorage`; clearing site data resets it to the seed. Local development
is unaffected and still talks to the real JSON Server.
## Technologies used
| Area | Choice | Why |
| ----------------- | ----------------------------- | ------------------------------------------------------------------------------- |
| Framework | React 19 + TypeScript | Required by the brief; strict mode is on throughout |
| Build tool | Vite 8 | Fast dev server, native TS, `@` path alias |
| Routing | React Router 7 | Nested layout routes make the auth guard a single wrapper |
| Server state | TanStack Query 5 | Caching, loading/error states, and invalidation after every mutation |
| HTTP | Axios | One configured instance plus a single error-message translator |
| Forms | React Hook Form + Zod | Uncontrolled inputs (fewer re-renders) with one schema as t …