Dokümantasyon

RonaPOS nasıl çalışır?

Sistem mimarisi, roller, lisans akışı, API uçları ve veri modeli — teknik ekibiniz ve meraklı kullanıcılarınız için özet.

Genel Bakış

RonaPOS üç katmandan oluşur: masaüstü istemci (WPF / .NET, Windows), mobil uygulamalar (Android, yerel ağ üzerinden konuşur) ve web altyapısı (bu site + lisans/panel backend’i). Satış verisi yerel veritabanında tutulur; lisans, indirme ve aktivasyon kayıtları web backend’inde barındırılır.

21İş modülü
40+Yönetim ekranı
18Mobil API ucu
166Birim testi

Mimari

  • Masaüstü: WPF / .NET Framework, tam ekran dokunmatik arayüz, yerel veritabanı (metin tabanlı veya SQL Server), kural motoru ve yazıcı/yazarkasa katmanı.
  • Mobil: Android uygulamaları bilgisayarın yerel IP adresi üzerinden UDP keşfiyle bağlanır; REST benzeri yerel API kullanılır.
  • Web: React SPA (bu site) + Express backend. JWT (HS256) access token, httpOnly refresh cookie, bcrypt parola karma.
  • Yedekleme: .zip / .rbk (AES-256 şifreli) / .txt biçimleri; klasör, bulut, FTP, e-posta ve HTTP POST hedefleri.
[Garson Tablet]  ─┐
[CallerID]       ─┼── yerel ağ ──► [RonaPOS Masaüstü] ──► yerel veritabanı
[Kasa Terminali] ─┘                      │
                                         └─► (ops.) yazarkasa / mutfak yazıcısı

[Müşteri / Bayi / Admin] ──► [Web Sitesi + API] ──► lisans, indirme, davet

Roller ve Yetkiler

RolGirişYapabildikleri
Admin/adminKullanıcı, bayi, lisans, davet, aktivasyon ve indirme yönetimi; istatistikler
Bayi/bayiMüşteri oluşturur, davet kodu üretir, lisans atar ve durumunu izler
Müşteri/panelLisansını onaylar, cihazlarını görür, programı indirir, geçmişini okur
Masaüstü rolleriPOSMüdür, Kasiyer, Garson, Mutfak, Muhasebe — ekran bazlı yetki

Lisans Akışı

  1. Admin bayi oluşturur

    Bayi hesabı açılır, kota ve durumu belirlenir.

  2. Bayi müşteri + lisans üretir

    Müşteri kaydı ve davet kodu oluşur; RNP-XXXX-XXXX-XXXX-XXXX biçiminde lisans anahtarı üretilir (durum: pending).

  3. Müşteri panelden onaylar

    Anahtar, paket, süre ve cihaz limiti doğrulanır; durum active olur.

  4. Masaüstü doğrular

    Program /api/licenses/desktop/check ile anahtarı ve bilgisayarı doğrular; süresi dolan lisans expired, iptal edilen cancelled olur.

PaketAçıklamaTerminalFiyatlandırma
TRIAL-303 gün deneme1 terminalÜcretsiz
POS-1Y1 yıllık lisans2 terminalYıllık
POS-LIFEÖmür boyu lisans3 terminalTek sefer
MOBILE-1YMobil uygulamaSınırsız cihazYıllık

Anahtar alfadesi ABCDEFGHJKLMNPQRSTUVWXYZ23456789 şeklindedir; I, O, 0 ve 1 karakterleri karışıklığı önlemek için kullanılmaz.

API Tablosu

Tüm uçlar /api altında; hata biçimi her yerde aynı:

{ "ok": false, "error": "KOD", "message": "Türkçe açıklama" }
YöntemUçAçıklama
POST/api/auth/registerDavet koduyla hesap oluşturur
POST/api/auth/loginE-posta + şifre ile giriş, JWT döner
POST/api/auth/refreshRefresh cookie ile yeni access token
POST/api/auth/logoutOturumu kapatır
GET/api/meAktif kullanıcının bilgileri
GET/api/licenses/mineRol bazlı lisans listesi
POST/api/licenses/activateMüşteri lisans onayı (7 doğrulama)
POST/api/licenses/desktop/activateMasaüstü program: anahtarı bilgisayara bağlar, imzalı sertifika döner
POST/api/licenses/desktop/checkMasaüstü program: her açılışta lisans ve bilgisayar kontrolü
POST/api/licenses/issueBayi/admin lisans üretir
PATCH/api/admin/licenses/:idLisans durumunu değiştirir
POST/api/customersMüşteri + davet kodu oluşturur
GET/api/customersMüşteri listesi (?q= arama)
GET/api/dealersBayi listesi (admin)
GET/api/downloadsİndirilebilir dosyalar + SHA-256
POST/api/downloads/:id/logİndirme kaydı ekler
GET/api/statsYönetim özeti sayaçları
POST/api/contactİletişim formu mesajı

Veri Modeli

İlk aşamada dosya tabanlı JSON store kullanılır; arayüz SQLite / Turso / Postgres gibi bir ilişkisel veritabanına geçirilebilir (DATA_BACKEND=sql).

TabloAlanlar
Userid, name, email, passwordHash, role, dealerId, status, createdAt
Inviteid, code, role, dealerId, expiresAt, usedBy, usedAt
Dealerid, name, email, phone, quota, status
Licenseid, key, packageCode, status, customerId, dealerId, expiresAt, maxDevices
Deviceid, licenseId, deviceId, hostname, lastSeenAt, revokedAt
ActivationLogid, licenseId, deviceId, source, ip, ua, at, result
DownloadLogid, userId, fileId, at, ip, ua
AuditEntryid, actorId, action, target, meta, at

Kurulum

  1. Kurulum dosyasını indirin

    Sayfadaki İndir bölümünden ya da müşteri panelinden setup dosyasını alın.

  2. Önkoşulları bekleyin

    .NET Framework 4.8, WebView2 ve gerekirse SQL Server otomatik kurulur.

  3. Veritabanı bağlantısı

    Varsayılan yerel dosya veritabanı kullanılır; istenirse LocalDB/SQL Server seçilebilir.

  4. Lisansınızı onaylayın

    Müşteri panelinden anahtarı onaylayın; program açılışta anahtarı doğrular.

  5. Yedekleme ayarlayın

    Otomatik yedek hedefinizi (USB, bulut, FTP, e-posta) seçin ve ilk yedeği alın.

Güvenlik

  • Parolalar bcrypt (cost 10) ile saklanır; hiçbir yerde düz metin tutulmaz.
  • Access token 15 dakika, refresh token 7 gün — httpOnly, SameSite cookie.
  • Giriş uçlarında 10 deneme / 15 dakika, lisans aktivasyonunda 20 / saat hız sınırı.
  • Her lisans aktivasyonu ve indirme, IP + kullanıcı ajanıyla günlüğe yazılır.
  • Yedek dosyaları AES-256 ile şifrelenebilir; şifre Windows DPAPI ile korunur.
  • Masaüstü tarafında UDP keşif trafiği yerel ağla sınırlıdır; üretim ağlarında segmentasyon önerilir.

Güvenlik açığı bildirmek için security@ronapos.com adresine yazabilirsiniz.

Bir mi aradınız?

Teknik detaylar için dokümantasyon, günlük kullanım için SSS sayfalarına bakabilirsiniz.