Skip to Content
DocsAdmin PaneliArchitectureYönetim Paneli — Genel Bakış

Yönetim Paneli — Genel Bakış

smart-menu-adisyon-admin-panel, Adisyon POS sisteminin web tabanlı yönetim panelidir. Restoran yöneticisi menüyü, stoku, cihazları, personeli, restoran ayarlarını, senkronizasyonu, hata ve denetim kayıtlarını, e-belgeleri ve aboneliği buradan yönetir.

Sistemdeki yeri

Adisyon dört repodan oluşur. Hepsi aynı Jira projesini (SCRUM) ve aynı issue-key sırasını paylaşır:

RepoRolü
smart_menu_adisyon_uiFlutter istemcisi — POS, Garson, KDS ve Yazıcı uygulama rolleri
smart-menu-adisyon-backend-devGo backend — sipariş, ödeme, mutfak, yazdırma, error_logs
smart-menu-adisyon-localdb-devRestorandaki yerel Postgres şeması, migration’lar ve seed’ler
smart-menu-adisyon-admin-panelBu repo — Next.js yönetim paneli

Panel henüz kendi iş mantığını taşımıyor. Diğer repoların yaptığı işin web yüzeyi olarak tasarlandı; ekranlar şu anda sabit örnek veriyle (fixture) çalışıyor ve hiçbir backend’e bağlı değil.

Mevcut durum

  • 12 ekranın tamamı arayüz olarak hazır. Ekranlar Claude Design’da hazırlanan tasarım paketinden (admin-panel-dashboard-design/) birebir aktarıldı.
  • Veriler gerçek değil. Tüm rakamlar app/_data/panel.ts içindeki fixture’lardan geliyor. Ekranlarda yapılan düzenlemeler sayfa yenilenince kaybolur. Ayrıntılar: Veri ve entegrasyon.
  • Kimlik doğrulama yok. Giriş ekranı var ama oturum kontrolü yok; her rota herkese açık. Ayrıntılar: Rotalar ve kabuk.
  • Kalıcılık yok. Supabase istemcisi, server action veya veritabanı çağrısı bulunmuyor.
  • Otomatik test yok. Doğrulama lint, typecheck ve build ile yapılıyor.

Kapsam dışı (şimdilik)

  • Mobil yerleşim. Bu, masaüstü öncelikli bir yönetim paneli. Kabuk sabit 248px kenar çubuğu ve viewport yüksekliğine kilitli bir ızgaradan oluşur. Tasarımda iki sütunlu olan ekranlar md/lg kırılımında tek sütuna düşer, ancak telefon için bir kırılım tasarlanmadı.
  • Karanlık tema. Modernist tasarım sistemi tek bir açık zemin tanımlıyor.
  • Toast ve onay diyaloğu altyapısı. Prototipte global toast ve onay diyaloğu var; buradaki ekranlar işlemi doğrudan uygular. Gerçekten başarısız olabilen yıkıcı işlemler geldiğinde eklenmeli.

Teknoloji yığını

ÇatıNext.js 16.3.4, yalnızca App Router (pages/ dizini yok)
UIReact 19.2.8
DilTypeScript 5, strict: true, @/* yolu repo köküne eşlenir
StilTailwind CSS 4 (@tailwindcss/postcss, CSS öncelikli @theme; tailwind.config.js yok)
FontArchivo, next/font/google ile (Türkçe karakterler için latin-ext)
LintESLint 9 flat config — eslint-config-next core-web-vitals + typescript

Next.js 16, eğitim verilerindeki ve eski blog yazılarındaki sürümden farklı API’lere sahip. Kod yazmadan önce kurulu paketin kendi rehberini okuyun: node_modules/next/dist/docs/.

Dizin yapısı

app/ layout.tsx Kök layout — Archivo, lang="tr" globals.css Tailwind v4 @theme + Modernist bileşen katmanı page.tsx `/` → redirect("/panel") login/page.tsx Bölünmüş giriş ekranı (Client) _data/panel.ts Tüm fixture verisi + türetilmiş sayaçlar (panel)/ Rota grubu: yönetim kabuğunun arkasındaki her şey layout.tsx Kabuk — kenar çubuğu + başlık + kayan içerik (Server) _screens.ts Navigasyon/başlık kaydı: href, label, title, kicker, badge _components/ sidebar, header, tenant-context, primitives _lib/device-summary.ts Uygulama rolüne göre cihaz yapılandırma özeti panel/ menu/ stock/ devices/ apps/ settings/ staff/ sync/ errors/ audit/ fiscal/ billing/ admin-panel-dashboard-design/ Claude Design tasarım paketi (görsel spesifikasyon) docs/ Ekip dokümantasyonu (bu klasör) docs/claude/ Claude Code'un çalışma dokümanları

Çalıştırma ve doğrulama

npm install npm run dev # http://localhost:3000 → /panel

Her değişiklik şu üç kontrolden temiz geçmeli:

npm run lint # yeni bir uyarı da regresyon sayılır npx tsc --noEmit # typecheck npm run build # next build — App Router hatalarını yakalayan tek kontrol

Vitest, Jest ya da Playwright kurulu değil ve package.json’da test script’i yok. Test altyapısı eklemek ayrı bir Jira issue’su olarak ele alınmalı.

İş akışı

  • Her iş bir Jira issue’suna bağlıdır ve SCRUM-<n> branch’inde yapılır. Üst seviye issue’lar dev’den, subtask’lar ebeveyn issue’nun branch’inden açılır. main hiçbir zaman branch noktası değildir.
  • Branch açarken --no-track kullanın (git switch -c SCRUM-14 --no-track origin/dev). Aksi halde push, yeni branch yerine taban branch’e gider.
  • Arayüz metinleri Türkçe ve doğal cümle düzeninde yazılır (TÜMÜ BÜYÜK veya Her Kelime Büyük değil).
  • Dokümantasyon değişikliğin parçasıdır: Dokümantasyon düzeni.

Diğer sayfalar

Last updated on