Cover shared envelopes/events, Admin ops DTOs, B2B portal entities, and Ecom retail shapes so one pack backs all Gishen backend sheets. Co-authored-by: Cursor <cursoragent@cursor.com>
74 lines
2.7 KiB
Markdown
74 lines
2.7 KiB
Markdown
# Gishen Admin Console
|
|
|
|
Internal ops console for Gishen Pharmacy — Pharmacist, Stock, Procurement, Finance, Marketing, Operations/Dispatch, Super Admin. Built as a React (Vite) SPA with **shadcn/ui**, Gishen branding, and **English / Amharic** i18n.
|
|
|
|
## Stack
|
|
|
|
- React 19 + Vite + TypeScript
|
|
- Tailwind + shadcn-style Radix components
|
|
- Zustand, React Router, Axios-ready, Recharts, Sonner
|
|
- i18next (en / am)
|
|
- Mocks by default (`VITE_USE_MOCKS=true`)
|
|
|
|
## Quick start
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
Demo password for all accounts: `demo123`
|
|
|
|
| Email | Role |
|
|
| --- | --- |
|
|
| admin@gishen.et | Super Admin |
|
|
| pharmacist@gishen.et | Pharmacist (Bole branch) |
|
|
| stock@gishen.et | Stock Manager |
|
|
| procurement@gishen.et | Procurement |
|
|
| finance@gishen.et | Finance |
|
|
| marketing@gishen.et | Marketing Manager |
|
|
| ops@gishen.et | Operations |
|
|
|
|
## Navigation registry
|
|
|
|
`src/config/navigation.ts` is the single source of truth for every navigable page and quick action. The sidebar and the topbar command palette (**⌘K / Ctrl+K**) both read from it, and results are filtered by the signed-in role.
|
|
|
|
**Adding a page? Register it there** alongside its route in `src/app/AppRoutes.tsx` — otherwise it will not show up in the sidebar or in search.
|
|
|
|
## Docs
|
|
|
|
- **Cross-app master:** [`docs/GISHEN-MASTER-SPEC.md`](docs/GISHEN-MASTER-SPEC.md) — Admin / Mob / Ecom / B2B surface map, shared domain objects, auth providers, divergence notes. **Refresh before `git push`** (Cursor rule + optional `.githooks/pre-push`).
|
|
- **Admin backend contract:** [`docs/admin-backend-spec.md`](docs/admin-backend-spec.md) — updated whenever Admin modules are finalized.
|
|
- **Entity schemas:** [`docs/schemas.md`](docs/schemas.md) — platform schema pack (shared + Admin + B2B + Ecom/backend).
|
|
|
|
```bash
|
|
# One-time: enable in-repo pre-push reminder for this clone
|
|
bash scripts/setup-githooks.sh
|
|
# Manual checklist / staleness check
|
|
bash scripts/sync-master-spec-reminder.sh
|
|
```
|
|
|
|
## Deploy
|
|
|
|
- Live: **[https://gishen-admin.vercel.app](https://gishen-admin.vercel.app)** (Vercel project `yaltopiatech/gishen-admin`)
|
|
- `vercel.json` SPA rewrites for React Router
|
|
- Build: `npm run build` → `dist`
|
|
- Git remote: `https://gitea.yaltopia.com/Gishen/Gishen-Admin.git`
|
|
- Redeploy: `npx vercel --prod --yes --scope yaltopiatech` (Gitea is not auto-linked; use CLI or mirror to GitHub for Git integration)
|
|
|
|
Env:
|
|
|
|
```
|
|
VITE_USE_MOCKS=true
|
|
VITE_API_BASE_URL=
|
|
```
|
|
|
|
## Related repos
|
|
|
|
Sibling apps under `Yaltopia Project/` (see master spec Sources stamp):
|
|
|
|
- Gishen-Mob — customer mobile (Expo)
|
|
- Gishen-Ecom — customer storefront
|
|
- Gishen-B2B — institutional portal (org self-register UI lives there; Admin creates/approves orgs)
|
|
- Gishen-Dispatch-Bot — rider Telegram bot
|