Canlı Sistem • v1.0.0

Velotab POS & ERP

Yüksek performanslı, çok kiracılı (multi-tenant) restoran otomasyon ve satış noktası (POS) sistemi. Flutter frontend, Node.js backend ve MariaDB veritabanı ile inşa edilmiş kurumsal mimari.

13
Ana Modül
22
Veritabanı Tablosu
40+
API Endpoint
3
Teknoloji Katmanı
Sistem Mimarisi

Üç Katmanlı Kurumsal Yapı

Velotab, modern yazılım prensipleriyle inşa edilmiş, ölçeklenebilir bir POS ve ERP sistemidir.

🖥️

Flutter Frontend

Desktop POS Uygulaması

⚙️

Node.js Backend

Express REST API
Queue Engine

🗄️

MariaDB

22 Tablo • ACID Uyumlu

🎨

Frontend (Flutter)

Masaüstü POS uygulaması. Bloc pattern ile state yönetimi, Dio ile HTTP iletişimi, responsive dashboard layout, erişilebilirlik desteği.

Flutter 3.12DartBlocDiofl_chart
🖧

Backend (Node.js)

Express.js ile modüler REST API. Queue Engine ile yüksek eşzamanlılık. Tenant auth middleware ile çoklu işletme desteği.

Node.jsExpressMySQL2Queue Engine
Ana Modüller

13 Ana Sayfa & Tüm Alt Bileşenler

Her modülün ana sayfası, alt sayfaları, dialog pencereleri, widget'ları ve işlevleriyle eksiksiz detay.

📊

1. Özet Panel — Analytics Panel

analytics_panel.dart

📌 Sayfanın Amacı: Ana dashboard. İşletmenin genel durumunu anlık olarak gösteren metrik kartları, grafikler ve hızlı erişim widget'ları.

🔹 Alt Bileşenler & Widget'lar:

  • Canlı Metrik Kartları (4'lü Grid): Toplam Gelir, Toplam Gider, Net Bakiye, Anlık kasa durumu
  • Dönem Seçici: Günlük / Haftalık / Aylık veri filtreleme
  • Gelir-Gider Grafiği (fl_chart): Çubuk grafik ile dönemsel karşılaştırma
  • Kritik Stok Uyarı Kartı: Eşik altındaki malzemelerin listesi
  • Masa Doluluk Oranı: Toplam masa / dolu masa / aktif masa cirosu
  • Aktif Dış Kaynak Sipariş Sayacı: Platformdan gelen bekleyen sipariş sayısı
  • En Çok Satan Ürün ve Masa: Dönemin en yüksek cirolu ürünü ve masası
  • Geçmiş Kasa Listesi: Kapatılmış kasa kayıtları ve Z raporu özeti
💳

2. Adisyon & Kasa Yönetimi

finance_dashboard_page.dart (5559 satır) + cashier_dashboard_page.dart (2708 satır) + split_bill_dialog.dart

📌 Sayfanın Amacı: Tam ekran POS modülü. En kritik modül. Masa haritası, canlı sipariş, parçalı ödeme, yazıcı, dış kaynak sipariş, kasa aç/kapa/Z raporu.

🔹 4 Ana Sekme:

Sekme 1 — 🍽️ Canlı POS / Kasa
  • Restoran Masa Haritası: LayoutDesignerCanvas üzerinde canlı masa/doluluk gösterimi
  • Masa Seçimi & Aktif Sipariş Gösterimi
  • Ürün Ekleme Modalı: 3 panelli büyük dialog (kategori + ürün grid + sepet)
  • Stok Kontrolü ve İndirim Hesaplama
  • Kasa Kapalı Uyarısı
Sekme 2 — 📋 Geçmiş Siparişler & Detay
  • Sipariş Listesi: masa adı, toplam, personel, ödeme tipi
  • Sipariş Detay Modalı: ürün listesi, parçalı ödeme detayları
  • Denetim Logları: iptal/zayi/ikram işlemlerinin kaydı
Sekme 3 — 📦 Dış Kaynak & Paket Sipariş Hub'ı
  • Canlı Takip: 15 saniyede bir otomatik senkron
  • Tarih Filtreli Geçmiş: dönem, durum, ödeme, kanal filtreleri
  • Katalog Ürün Seçim Modalı: her kaynak için ayrı sepet
  • Sipariş Tamamlama Dialog'u: nakit/kart/parçalı ödeme
  • Kasa Vardiya Uyuşmazlık Kontrolü
Sekme 4 — 🏧 Kasa (Till Shift) Yönetimi
  • Kasa Durum Kartı: açık/kapalı, aktif vardiya bilgisi
  • Kasa Açma Dialog'u: açılış bakiyesi girme
  • Kasa Kapama Dialog'u: sayım bakiyesi, Z Raporu
  • Z Raporu: PDF indir veya yazıcıdan bastır
🧾

3. Yazarkasa Fiş Takip — Fiscal Audit Hub

fiscal_audit_hub_page.dart

📌 Sayfanın Amacı: Tüm mali fişlerin durum takibi ve yönetimi. Yazarkasa uyumluluk denetim merkezi.

  • Fiş Durum Filtreleri: Tümü / Bekleyen / Basıldı / Hatalı / By-pass
  • Fiş Tablosu: Sipariş ID, masa, tutar, ödeme tipi, fiş durumu, fiş/Z numarası, hata mesajı
  • Yeniden Yazdırma: Hatalı/bekleyen fişleri yeniden yazarkasaya gönderme
  • By-pass İşlemi: Yazarkasa arızasında fişi by-pass geçme
🥘

4. Malzemeler — Ingredients

ingredients_page.dart

📌 Sayfanın Amacı: Restoran malzeme/stok yönetimi. Satın alma, tüketim, fire kaydı ve stok hareketlerinin tam takibi.

  • Malzeme Listesi: ad, birim (gram/adet/ml), güncel stok, kritik eşik, son alış fiyatı, kategori
  • Kritik Stok Vurgulama: eşik altı malzemeler kırmızı işaretli
  • Stok Girişi (Satın Alma): miktar, birim fiyat, toplam maliyet
  • Fire Kaydı: çürüme, dökülme, son tüketim, diğer, personele verildi
  • Stok Hareket Geçmişi: tüm hareket tipleriyle zaman damgalı kayıtlar
📝

5. Ürünler & Reçete — Products

products_page.dart

📌 Sayfanın Amacı: Ürün tanımlama, reçete yönetimi, maliyet hesaplama ve kategori atama.

  • Ürün Listesi: ad, satış fiyatı, tür (recipe/direct), KDV, stok, durum
  • Reçete Yönetimi: ürün-malzeme çoka-çok ilişkisi
  • Soft Delete & Geri Yükleme
  • Kategori Atama (çoka-çok mapping)
  • Satış İstatistikleri ve İşlem Logları
📖

6. Adisyon ve Katalog — Catalog

catalog_page.dart

📌 Sayfanın Amacı: Katalog yönetimi. Ürün kategorileri, indirim kuralları, stok kontrol yapılandırması.

  • Kategori Listesi ve Ürün-Kategori Eşleme
  • İndirim Kuralı Yönetimi: yüzde, aktif/pasif, hedef atama
  • Stok Kontrol Ayarları: işletme bazında kısıtlama aç/kapa
🏗️

7. Restoran Dizayn — Layout

restaurant_layout_page.dart + layout_designer_canvas.dart + layout_models.dart

📌 Sayfanın Amacı: Restoranın masa/duvar/sandalye düzenini görsel olarak tasarlama ve kaydetme.

  • Tab 1 — Layout Tasarım: Sürükle-bırak masa, duvar çizme, sandalye yerleştirme, kaydetme
  • Tab 2 — Tablo Analizi: Masa bazlı ciro, sipariş sayısı, doluluk oranları
  • Veri Modelleri: TableModel, WallModel, ChairModel
📈

8. Gelir Kaynakları — Revenue Sources

revenue_sources_page.dart

📌 Sayfanın Amacı: Dış platform entegrasyonlarının yönetimi. Getir, Yemeksepeti gibi platformların API bağlantı ayarları.

  • Gelir Kaynağı Listesi ve Yeni Kaynak Ekleme
  • API Kimlik Bilgileri: API key, client secret, chain ID
  • Platform Sipariş Senkronizasyonu
🏦

9. Finans & Muhasebe — Finance Hub

finance_hub_page.dart

📌 Sayfanın Amacı: Finansal işlemlerin merkezi. Kasa hareketleri, nakit akışı, personel ödemeleri ve muhasebe raporları.

  • Kasa Hareketleri: giren/çıkan, kaynak, kategori, tutar
  • Nakit Akış Raporu ve Personel Ödemeleri
  • Gelir-Gider Analitiği ve Dönem Filtreleme
🔍

10. Gözlem Raporları — Insights

insights_page.dart

📌 Sayfanın Amacı: İş zekası ve raporlama merkezi. Satış trendleri, ürün performansı ve dönemsel analizler.

  • Satış Grafikleri: çizgi, çubuk ve pasta grafikler
  • Ürün/Kategori Bazlı Analiz ve Dönemsel Karşılaştırma
  • En Çok Satanlar ve Kasa Raporları
👥

11. Personel Yönetimi — Staff

staff_page.dart

📌 Sayfanın Amacı: Personel bilgilerinin tam yönetimi. Kimlik, maaş, izin, vardiya ve yetkilendirme.

  • Personel Listesi: ad, TC kimlik, telefon, rol, maaş, durum
  • Rol Tanımlama: owner/manager/chef/employee
  • PIN Kodu Atama (4 haneli), Maaş & Sigorta Yönetimi
  • İzin Yönetimi ve Personel Ödemeleri

12. Vardiya Yönetimi — Shift Management

shift_management_page.dart

📌 Sayfanın Amacı: Personel vardiya planlaması ve çalışma saatleri takibi.

  • Vardiya Şablonları: Sabah (09:00) ve Akşam (14:00)
  • Personel-Vardiya Eşleme, Giriş/Çıkış Kaydı
  • Otomatik Rotasyon ve Sabit Vardiya Desteği
🖨️

13. Yazıcı & Ayarlar — Printer Settings

printer_settings_page.dart (1557 satır) + printer_router_engine.dart

📌 Sayfanın Amacı: Tüm sistem ayarları. Yazıcı yönetimi, işletme profili, şifreler, Hugin yazarkasa entegrasyonu.

🔹 4 Sekme:

Sekme 1 — 🖨️ Yazıcılar
  • Yazıcı Listesi, Ekleme, Kategori-Yazıcı Eşleme
  • Sağlık Kontrolü (30dk), Test Sayfası, Failover
Sekme 2 — 🏢 İşletme Profili
  • İşletme bilgileri, vergi dairesi, VKN, adres, yetkili kişi
Sekme 3 — 🔐 Şifre Değiştirme
  • Yönetici ve terminal şifresi güncelleme
Sekme 4 — 🔗 Hugin S1 PC Link
  • IP: 192.168.1.150:4443, yazılım/donanım ID, eşleştirme, otomatik fiş
Veritabanı Mimarisi

22 Tablo • MariaDB

İlişkisel veritabanı yapısı, ACID uyumlu, foreign key constraint'ler ile veri bütünlüğü sağlanmıştır.

🏢 İşletme & Masa Yönetimi (3 tablo)

businessesİşletme kaydı. Kod, vergi, şifreler, Hugin ayarları, tasarım JSON.

businesses_tablesMasa tanımları. İşletme bazlı masa adı, sandalye sayısı.

businesses_tables_logsMasa logları. Ekleme/silme/güncelleme denetim kaydı.

👤 Personel Yönetimi (5 tablo)

employeesPersonel kaydı. TC, telefon, rol, PIN, maaş, sigorta, izin.

employee_shiftsVardiya giriş/çıkış kayıtları.

employee_leavesİzin kayıtları. Ücretli/ücretsiz/hastalık/yıllık.

employee_paymentsPersonel ödemeleri. Maaş/sigorta/ek ödeme.

shift_schedulesVardiya şablonları. Ad, saat, süre, tolerans.

📦 Ürün & Kategori (4 tablo)

productsÜrünler. Ad, fiyat, tür, KDV, stok.

product_categoriesÜrün kategorileri.

product_category_mappingsÜrün-kategori çoka-çok ilişkisi.

product_action_logsÜrün işlem logları.

🥘 Malzeme & Stok (4 tablo)

ingredientsMalzemeler. Birim, stok, kritik eşik, fiyat.

ingredients_categoryMalzeme kategorileri.

ingredients_consumptionStok hareketleri. Tüm tipler, eski/yeni stok.

ingredients_wasteFire kayıtları. Neden, miktar, personel.

🧾 Sipariş & Ödeme (4 tablo)

ordersSiparişler. Masa, durum, tutar, fiscal durum.

order_itemsSipariş kalemleri. Ürün, miktar, fiyat.

order_paymentsParçalı ödeme kayıtları. Bölme türü, yöntem, tutar.

order_item_actionsİptal/zayi/ikram/iade işlemleri.

💰 Finans & Kasa (4 tablo)

cash_registerKasa kayıtları. Açılış/kapanış, bakiye, Z raporu.

cash_movementsKasa hareketleri. Kaynak, giren/çıkan, kategori.

revenue_sourcesGelir kaynakları. Platform, API key, kimlik.

revenue_source_ordersDış kaynak siparişleri. Müşteri, adres, ödeme, fiscal.

🏷️ İndirim & Yazıcı & Log (6 tablo)

discountsİndirim kuralları. Ad, yüzde, aktif/pasif.

discount_targetsİndirim hedefleri. Ürün/kategori bazlı.

printersYazıcı tanımları. Bağlantı, grup, boyut.

printer_product_categoriesYazıcı-kategori eşlemesi.

system_logsSistem logları. Aksiyon, IP.

product_recipesÜrün reçeteleri. Malzeme ve miktar.

Backend API

13 Route Grubu • 40+ Endpoint

Express.js ile modüler yapıda, tenant auth middleware ile korunan REST API.

Route Grubu Endpoint Sayısı Açıklama
/api/businesses1İşletme girişi (login)
/api/ingredients~6Malzeme CRUD, stok, fire
/api/products~10Ürün CRUD, reçete, kategori
/api/employees~8Personel CRUD, vardiya, izin, PIN
/api/orders~8Sipariş, ödeme, yazıcı
/api/tables~4Masa CRUD, layout
/api/revenue-sources~6Gelir kaynağı, senkron
/api/finance-hub~6Kasa, nakit akışı, ödemeler
/api/insights~4Satış istatistikleri, raporlar
/api/catalog~5Kategori, ürün, stok, indirim
/api/settings~6Profil, şifre, yazıcı, Hugin
/api/pos~12POS işlemleri, kasa, dış sipariş
/api/hugin-pc-link~4Yazarkasa sağlık, eşleştirme
🔐

Auth Middleware

Her istekte X-Business-Id ve X-Employee-Id header'larını doğrular. Tenant bazlı veri izolasyonu.

Queue Engine

Yüksek eşzamanlılık için kuyruk mekanizması. Maksimum 100 işlem chunk. 250+ eşzamanlı yazma.

Frontend Mimarisi

Flutter Desktop POS

Bloc pattern, responsive layout, erişilebilirlik ve animasyonlu arayüz.

🏗️

State Yönetimi

flutter_bloc kullanılır. İki ana Bloc: AuthBloc (işletme girişi) ve EmployeeAuthBloc (PIN girişi).

📱

Responsive Dashboard

13 navigasyon öğeli yan menü. Genişletilebilir/dar mod. Tam ekran POS. Erişilebilirlik.

🎬

Animasyonlu Giriş

3 fazlı animasyon: mavi arka plan kayar, beyaz panel yükselir, login kartı ölçeklenir. Hatalı girişte shake.

🖧

API Client (Dio)

Merkezi HTTP istemcisi. Dinamik tenant injector'lar ile otomatik header ekleme.

Öne Çıkan Özellikler

Kurumsal POS & ERP Yetenekleri

Velotab'ı diğer POS sistemlerinden ayıran güçlü özellikler.

✂️

Split Bill — Parçalı Ödeme Motoru

3 bölme türü: Ürün Bazlı, Eşit Bölme, Özel Tutar. Nakit/Kart/Diğer ödeme yöntemleri.

🔄

Dış Kaynak Sipariş Entegrasyonu

15sn otomatik senkron, API key yönetimi, müşteri bilgisi, fiscal takip.

📋

Stok & Reçete Kontrolü

Reçete bazlı otomatik stok düşümü, kritik eşik uyarısı, satış engelleme.

🏷️

Akıllı İndirim Motoru

Ürün/kategori bazlı kurallar, en iyi indirim otomatik seçimi.

🖨️

Akıllı Yazıcı & Failover

Kategori bazlı yönlendirme, 30dk sağlık kontrolü, yedek yazıcı.

🧾

Hugin PC Link (Yazarkasa)

Otomatik fiş, durum takibi, bypass, sağlık kontrolü.

🏧

Kasa (Till Shift) Yönetimi

Açılış/kapanış, Z raporu, kasa açığı/fazlası tespiti.

👤

Personel PIN & Yetkilendirme

4 haneli PIN, rol bazlı yetki, çift faktörlü giriş.

🎨

Restoran Dizayn

Sürükle-bırak masa/duvar/sandalye tasarımı, canlı önizleme.

Erişilebilirlik

Yüksek kontrast, metin büyütme, sidebar daraltma, renk körü dostu.

İş Akışları

Uçtan Uca Süreçler

Velotab'ın temel iş süreçleri adım adım.

🛒 Sipariş Alma Süreci

1 Masa Seç 2 Kategori Seç 3 Ürün Ekle 4 Sepet Oluştur 5 Ödeme Al 6 Fiş Yazdır

💳 Parçalı Ödeme Süreci

1 Hesap Seç 2 Bölme Türü 3 Ödeme Yöntemi 4 Tutar Gir 5 Kaydet

📦 Dış Kaynak Sipariş Süreci

1 Platformdan Sipariş 2 15sn Senkron 3 Görüntüle 4 Hazırla 5 Tamamla 6 Fiş Kes

🔐 Giriş Süreci

1 İşletme Kodu 2 Yönetici Şifresi 3 Doğrulama 4 PIN Ekranı 5 4 Haneli PIN 6 Sisteme Giriş
Entegrasyonlar

Harici Sistem Bağlantıları

Velotab'ın dünyayla bağlantı noktaları.

🖨️

Ağ Yazıcıları

TCP/IP termal yazıcılar. Kategori bazlı yönlendirme. Failover.

💻

Hugin S1 PC Link

Mali yazarkasa. IP: 192.168.1.150:4443. Otomatik fiş.

📱

Dış Platformlar

Getir, Yemeksepeti. API key ile kimlik. 15sn senkron.

Teknoloji Yığını

Kullanılan Teknolojiler

🎯

Flutter 3.12

Dart ile desktop POS

🟢

Node.js

Express + Queue Engine

🐬

MariaDB

22 tablo, ACID

📦

Dio + Bloc

HTTP & State

📊

fl_chart

Grafikler

📄

pdf + printing

PDF & Yazdırma

🪟

window_manager

Pencere Yönetimi

⚖️

equatable

Bloc State