Logo Lanfrica

Frawatson/Kadu-Partners

Domain:

socioeconomic

Record type:

software
Creator:
Fra
Host:
Kadû Partners — React + Vite + TS frontend for the Liberia materials marketplace # kadu-partners Kadû Partners Web Portal — the React + Vite + TypeScript frontend for shop owners and managers. > **Status:** UI-first scaffold. The login flow is functional end-to-end against MSW; every other route renders a `PlaceholderPage`. The Figma-driven build plan, with phases, screen inventories, and tickets, lives in docs/backlog/build/. --- ## Stack | Tool | Version | Notes | |---|---|---| | React | 19 | | | Vite | 7 | Dev server on port **3002** | | TypeScript | 5 | Strict mode | | Tailwind CSS | v4 | `@tailwindcss/vite` plugin, tokens in `src/index.css` | | React Router | v7 | Nested layouts, `BrowserRouter` | | TanStack Query | v5 | `staleTime` 30s, `retry` 2 | | Zustand | v5 | Auth + active-location stores | | MSW | v2 | All `/api/v1/*` requests mocked in dev | | Axios | v1 | Bearer injection + envelope unwrap | | Vitest + RTL | v4 | Unit tests (specs land in PR-0D) | | Playwright + axe-core | v1 | E2E + accessibility | --- ## Getting started ```bash # 1. Install dependencies (peer-dep tree requires --legacy-peer-deps today) npm install --legacy-peer-deps # 2. Configure local env (optional — defaults work for dev) cp .env.example .env.local # 3. Start dev server npm run dev # → localhost ``` The MSW service worker (`public/mockServiceWorker.js`) is already committed, so no `msw init` step is needed on a fresh clone. If you ever upgrade the `msw` package and the worker shape drifts, regenerate with `npx msw init public/ --save`. **No backend needed.** All `/api/v1/*` calls in dev are intercepted by MSW with mock data from src/mocks/data/. ### Test login Navigate to `localhost` — you land on the login page. | Field | Value | |---|---| | Phone | `+231770001234` (Emmanuel Kollie — Monrovia Hardware & Supply) | | Email | `info@monroviahardware.lr` (same partner) | | Password | Any 8+ characters, e.g. `TestPass123` | The current MSW handler does **not** verify the credential value — any 8+ char password logs you in as …