Files
meezi/web/dashboard
soroush.asadi cd1af30bbc
CI/CD / CI · API (dotnet build + test) (push) Successful in 5m50s
CI/CD / CI · Admin API (dotnet build) (push) Successful in 32s
CI/CD / CI · Dashboard (tsc) (push) Successful in 1m3s
CI/CD / CI · Admin Web (tsc) (push) Successful in 35s
CI/CD / CI · Website (tsc) (push) Successful in 44s
CI/CD / CI · Koja (tsc) (push) Successful in 48s
CI/CD / Deploy · all services (push) Has been cancelled
fix: sidebar accordion + koja slug + support ticket LINQ crash
Sidebar:
- All groups start collapsed on first load (v4 storage key resets old state)
- Opening one group closes all others (accordion)
- Navigating to a section opens only that section's group

Koja slug:
- SlugHelper: Persian->Latin transliteration, slug validation
- Registration accepts optional custom slug; auto-derives from cafe name
- Slug can be updated from dashboard Settings -> Profile
- Settings PATCH validates uniqueness (SLUG_TAKEN) and format (INVALID_SLUG)
- koja.meezi.ir/{slug} now redirects to /fa/cafe/{slug} (short URL support)

Bug fix:
- SupportTicketService: cafeId/status filters applied before Select() projection
  to fix EF "could not be translated" crash on the support tickets page

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 22:28:25 +03:30
..

Meezi Dashboard

Next.js 14 POS dashboard for Meezi (میزی).

Setup

cd web/dashboard
npm install
cp .env.example .env.local
npm run dev

Open http://localhost:3000/fa/login

Ensure the API is running at NEXT_PUBLIC_API_URL (default https://localhost:7208).

Demo login

  • Phone: 09121234567
  • OTP: check API console log (DEV OTP for ...) when Kavenegar is not configured

Features (Sprint 4)

  • i18n: fa (default, RTL), ar (RTL), en (LTR)
  • Dashboard layout with RTL-aware sidebar
  • POS screen: menu grid + cart + order submit
  • KDS screen: live orders + SignalR + status advance
  • Placeholder pages for upcoming modules