Merkez Efendi Köftecisi · Muhasebe Modülü
Bu dosya projenin kimlik dosyasıdır. Proje bilgileri, Nizam Soft standardı
ve alınan kararlar burada tutulur.
Proje
| Alan |
Değer |
| Firma |
Merkez Efendi Köftecisi |
| Ürün |
Muhasebe Modülü |
| Sektör |
Restoran |
| Platform |
Web · Mobil |
| Veritabanı |
Sıfırdan veritabanı |
| Depo |
github.com/nizamsoft/MERKEZEFENDIKOFTECISI-MuhasebeModulu |
| Alan adı |
merkezefendi.nizamsoftware.com |
| Arayüz dili |
Türkçe |
Nizam Standardı
Bunlar Nizam Soft standardıdır. Tartışılmaz, değiştirilmez, alternatif
önerilmez — gerekiyorsa önce sorulur.
Altyapı
- Barındırma · GitHub Pages
- Depoya gönderilen kod kendiliğinden yayınlanır.
- Depo · GitHub · main dalı
- Commit başına [NS-x] etiketi.
- Derleme · Yok
- Dosyalar doğrudan çalışır. Build adımı, paket yöneticisi, node_modules yoktur.
- Dil ve çatı · Vanilla JS · HTML · CSS
- Hazır çatı (React, Vue) kullanılmaz. Bağımlılık az, ömrü uzun olsun.
- Dosya düzeni · Ekran başına ayrı dosya
- Tek dosyada 1500 satırı geçme. Büyük dosyada bir yeri düzeltirken başka yer bozulur.
- Dosya düzeni · Sınıf adı tek bir bileşene aittir
- Bir stil sınıfı adı yalnız tek bir bileşene aittir. Yeni bileşene ad verirken o ad ve öneki bütün stil dosyasında aranır; kullanılıyorsa yeni bileşen başka bir önek alır. Aynı ad iki bileşende geçerse kurallar birbirini sessizce ezer, hata hiçbir yerde görünmez, yalnız ekranda bozuk bir hizayla ortaya çıkar. Ortak görünüm gerekiyorsa ad paylaşılmaz, ortak bir sınıf ikisine birden verilir.
- Geliştirme istekleri · Ayarlarda toplanır
- Ayarlar’da “Geliştirme istekleri” ekranı olur: kullanıcı isteğini yazar, liste cihazda birikir, “Hepsini kopyala” ile tek metin olarak alınır. Sunucuya gitmez, kimseye gönderilmez.
- Paketler · Yalnız Supabase istemcisi
- Excel gerekiyorsa xlsx. Başka paket eklemeden önce sor.
- PWA · Var
- Ana ekrana eklenebilir. Servis işçisi kabuğu önbelleğe alır, sürüm değişince günceller.
- Sürümleme · Sürüm, damga ve önbellek birlikte artar
- Yayına giden her değişiklikte üç şey aynı anda güncellenir: uygulamanın sürüm numarası, sayfadaki dosya adreslerine eklenen sürüm damgası ve servis işçisinin önbellek adı. Üçü birbirine bağlıdır; biri unutulursa kullanıcı eski dosyayla kalır ve hata hiçbir yerde görünmez. Sürüm damgası taşıyan dosyalar önce önbellekten okunur — adresleri sürümle birlikte değiştiği için asla bayatlamazlar. Giriş sayfası ise her zaman önce ağdan okunur; adresinde damga yoktur, önbellekten verilirse yeni sürüm hiç görülmez.
Animasyon
- Dokunma tepkisi · Bekleme göstergesi işi bitince durur
- Süren bir işi anlatan hareket, iş gerçekten bitene kadar oynar ve bittiği anda durur. İşlem başarıyla sonuçlandıysa ama ardından sayfa yenilenmesi, yönlendirme ya da başka bir bekleme geliyorsa gösterge durmaz, o da bitene kadar oynamaya devam eder — duran bir gösterge kullanıcıya “iş bitti” der, oysa hâlâ beklenmektedir ve kullanıcı bu arada başka bir şeye basar. Aynı işi başlatan düğme, iş sürerken ikinci kez çalışmaz.
- Dokunma tepkisi · Küçülme oranı öğe boyuna göre
- Basılan öğenin küçülme oranı sabit bir sayı değildir, öğenin boyuna göre seçilir: büyük bir kartta yüzde birkaçlık küçülme yeterli görünürken aynı oran küçük bir simge düğmesinde hiç fark edilmez ve dokunuş cevapsız sanılır. Küçük öğe daha çok küçülür. Kullanılamaz durumdaki bir öğe hiç küçülmez — tepki vermek, çalıştığını söylemektir.
- Dokunma tepkisi · Küçülme, karartma değil
- Basılan öğe hafifçe küçülür (%97 dolayında). Koyu temada zemini koyulaştırmak “sönüyor” gibi okunur, kullanılmaz. Parmakla basınca kalan odak halkası dokunmatik cihazlarda kapatılır.
- Liste ve kartlar · Tek tek belirme yok
- Kartlar sıraya girip birer birer belirmez; sayfa bir bütün olarak gelir. Yalnızca veriyi anlatan hareketler kalır: ilerleme çubuğunun dolması, sayacın sıfırdan sayması.
- Sayfa geçişi · Yeni ekran solarak gelir
- Sayfa değişince yeni ekran kısa bir soluklaşmayla gelir (0,25 sn), eskisi anında gider. Kayma, çevirme, büyütme yoktur. Üst çubuk ve alt çubuk geçişe katılmaz — onlar duran şeylerdir, yerlerinde kalır.
Biçim
- Arayüz dili · Sıralama arayüz diline göre
- Alfabetik sıralama, kullanıcının arayüz dilinin harf düzeniyle yapılır; İngilizce varsayılana bırakılmaz. Türkçede ç, ğ, ı, i, ö, ş ve ü kendi yerlerine oturur, listenin sonuna atılmaz. Harfleri tek tek kodlarına göre kıyaslamak “Çeviri”yi “Zeyilname”nin arkasına düşürür ve kullanıcı aradığını bulamaz.
- Arayüz dili · Türkçe
- Tek dil. Metinler koda yazılır, sözlük dosyası yoktur.
- Kayıt numarası · HARF-SIRA
- Kaydın türünü gösteren kısa harf, tire, sıra numarası: F-1042 (fatura), S-1001 (sipariş). Sayaç 1’den başlar, yıl başında sıfırlanmaz, boşluk bırakmaz.
- Liste ve kartlar · Listeler alfabetik sıralanır
- Kullanıcının aradığı şeyi bulmak için taradığı her liste alfabetik sıralanır — menü satırları, gruplar, grupların içindeki alt başlıklar ve kayıtlar dahil, iç içe kaç kademe varsa hepsi. Kayıt sırası, ekleme tarihi ya da koda gömülü sabit bir dizilim sıralamayı belirlemez; bunlar yalnızca iki ad birebir aynı çıkarsa devreye girer. Sabit sırada kullanıcı aradığı satırın listenin neresinde olduğunu ezberlemek zorunda kalır, alfabetikte adını bilmesi yeter. Sıralamanın kendisi anlam taşıyorsa bu kuralın dışındadır: bir sürecin adımları, tarihe göre akan hareket geçmişi ve kullanıcının elle dizdiği listeler kendi sırasını korur.
- Para birimi · ₺ TRY
- Binlik nokta, ondalık virgül: 12.400,00
- Sürümleme · YIL.SAYAÇ
- Örnek 2026.14. Ayarlar ekranında görünür.
- Tarih ve saat · 22.05.2025 · 14:30
- Gün.Ay.Yıl ve 24 saatlik saat.
Erişilebilirlik
- Dokunma tepkisi · Bekleme yalnız harekete bırakılmaz
- Bir işin sürdüğü bilgisi yalnızca dönen, yanıp sönen ya da kayan bir görsele bırakılmaz; öğenin yazısı da o an ne olduğunu söyler. Hareket azaltma ayarı açık olan kullanıcıda animasyonlar kapanır ve geriye hareketsiz bir simge kalır — yazı olmazsa o kullanıcı uygulamanın çalışıp çalışmadığını anlayamaz.
- Dokunma ve kontrast · 44px · 4.5:1
- Dokunma hedefi en az 44×44px, metin kontrastı en az 4.5:1.
- Dokunma ve kontrast · Basılan alan simgeden büyüktür
- Bir düğmenin dokunma alanı, içindeki simgenin boyutuyla sınırlı tutulmaz; simge küçük olsa da basılan alan en az kırk dört piksel kalır. Çerçevesiz, yalnız simgeden ibaret düğmelerde bu fark gözle görünmez, o yüzden en çok orada atlanır ve kullanıcı parmağını tam simgeye denk getirmeye çalışır.
- Yakınlaştırma · Kapalı
- Çift dokunma ve iki parmakla yakınlaştırma kapalıdır: viewport etiketinde maximum-scale=1, user-scalable=no. Yazı boyutu ayarlardan değişir, sayfa esnetilerek değil.
Güvenlik
- Dosya saklama · Belgeler imzalı adresle sunulur
- Yüklenen belgeler ve müşteriye ait görseller herkese açık klasörde durmaz; süreli ve imzalı adresle sunulur. Adresin tahmin edilebilir olması tek başına erişimi engellemez. Profil fotoğrafı gibi zaten herkese görünen şeyler bunun dışındadır.
- Giriş · E-posta + şifre
- Kayıt ekranı yoktur; hesabı yönetici açar.
- Veri katmanı · Satır güvenliği her tabloda
- Her tabloda satır güvenliği açıktır ve en az bir okuma, bir yazma kuralı tanımlıdır. Kuralı yazılmamış tablo yayına çıkmaz — güvenlik açık ama kuralsız bir tablo herkese kapalı görünür, geliştirici de kapalı olduğunu fark etmeden güvenliği kapatmaya çalışır.
- Veri katmanı · Yalnız yayınlanabilir anahtar istemcide
- İstemci koduna yalnızca yayınlanabilir anahtar girer; onu tarayıcıda görmek normaldir, veriyi koruyan şey anahtar değil satır güvenliği kurallarıdır. Bütün kuralları atlayan yönetici anahtarı istemciye, depoya ya da yapılandırma dosyasına hiçbir koşulda yazılmaz.
- Veri katmanı · Yetki sunucuda denetlenir
- Bir kullanıcının neyi görebileceği ve değiştirebileceği sunucudaki kurallarla belirlenir. Arayüzde bir düğmeyi gizlemek yetki denetimi değildir; gizlenen düğmenin çağırdığı istek hâlâ elle gönderilebilir. Arayüzdeki gizleme yalnızca görgü kuralıdır, güvenlik değil.
Optimizasyon
- Bulanıklık · Kaydırılan listede kullanılmaz
- backdrop-filter kaydırma sırasında her karede yeniden hesaplanır; ekranda sekiz kart varsa uygulama takılır. Kaydırılan içerikte kullanma. Bulanıklık sabit bir görselin arkasındaysa görselin kendisine pişir, çalışma anında hesaplatma. Yalnız yerinde duran tek bir yüzey (alt çubuk gibi) buzlu cam olabilir.
- Dosya yükleme · Yüklemeden önce küçültülür
- Kullanıcının seçtiği görsel sunucuya gönderilmeden önce tarayıcıda ölçeklenir ve WebP’ye çevrilir; en uzun kenar kullanım yerine göre sınırlanır — profil fotoğrafı 256, logo 512, tam ekran görsel 1600 piksel. Telefondan gelen bir fotoğraf birkaç megabayttır ve küçücük bir dairede gösterilmek üzere her kullanıcı tarafından indirilir. Vektör dosyalara dokunulmaz, küçültme herhangi bir sebeple başarısız olursa özgün dosya yüklenir.
- Görsel ağırlığı · Görseller WebP ve tek kopya
- Fotoğraflar WebP olarak saklanır; aynı görselin eski biçimdeki kopyası işi bittikten sonra depoda bırakılmaz. Görsel, ekranda kaplayacağı boyuta küçültülmüş olarak yüklenir — tarayıcıda küçültmek dosyayı küçültmez, yalnız indirme süresini gizler. Simge ve çizim işi olan görseller SVG’dir, fotoğraf biçimine çevrilmez.
- Görsel ağırlığı · Tek zemin görseli, kırpılmış
- Arka plan görseli kullanılacaksa tek tane olur, hedef ekran oranına kırpılır ve 200 KB’ı geçmez. Aynı görselin birden çok kopyası üst üste bindirilmez.
- Kart zemini · Saydam değil, düz koyu
- Arkasında görsel olan kartların zemini yarı saydam bırakılmaz: ekran solarak gelirken altındaki ışığı geçirir ve kart açıktan koyuya kayar. Zemin düz ve koyu olur.
- Ön yükleme · Bütün resimler açılışta iner
- Uygulamanın göstereceği her resim — kullanıcının kendi profil fotoğrafı, listelerdeki logolar, ekip fotoğrafları, ekran görselleri — açılış ekranının çubuğu dolarken indirilir; “Hazır” göründüğünde hepsi inmiş olur. Sonradan inen resim, kullanıcı ekrana bakarken beliriyor ve arayüz eksik kurulmuş gibi duruyor. Kullanıcının kendi fotoğrafı listenin başında ve tek başına iner, çünkü üst çubukta ilk görünen odur ve diğerlerinin arkasında sıra beklememelidir. Bağlantı yavaşsa açılış üç saniyede bırakılır, kalan resimler arkada tamamlanır.
- Önbellek · İmza önbelleği kırmaz
- Sunucudan imzalı adresle gelen resimler önbelleğe adresin tamamıyla değil, sorgu kısmı atılmış yoluyla kaydedilir. İmza belli aralıklarla yenilenir ve adres değişir; anahtar adresin tamamı olursa tarayıcı aynı resmi yeni bir dosya sanıp baştan indirir. Bir resim değiştirildiğinde o kaydın önbellekten silinmesi gerekir, yoksa kullanıcı yenisini yüklediği hâlde eskisini görmeye devam eder.
Tasarım
- Açıklama şeridi · Ekran tepesinde kalıcı açıklama olmaz
- Bir ekranın tepesine, her açılışta görünen kalıcı açıklama şeridi konmaz. Kullanıcı aynı üç satırı ikinci kez okumaz; okumadığı metin yalnız yer kaplar ve asıl içeriği aşağı iter. Ekran kendini yerleşimiyle anlatır. Açıklama gerçekten gerekiyorsa üç yerden birine gider: içerik henüz yokken görünen boş durum metnine, ilgili alanın altındaki ipucuna, ya da işlemi başlatan pencerenin başlığına.
- Açılış ekranı · Minimal, animasyonsuz
- Ekranın ortasında logo, altında marka adı, en altta ince bir ilerleme çubuğu ve tek satır durum yazısı bulunur. Toplam süre bir saniyeyi geçmez. Zıplayan, dönen, büyüyüp küçülen animasyon yoktur; yalnızca yumuşak bir belirme kullanılır. Açılış bittiğinde ekran silinir, geride iz bırakmaz.
- Alt çubuk · Buzlu cam, ekranın dibine yapışık
- 900 pikselin altındaki ekranlarda yan menü gizlenir, yerine ekranın altında bir sekme çubuğu gelir; sekme sayısı beşi geçmez. Çubuk yerleşimin parçası değildir, içeriğin üstünde durur ve sayfa altından akıp geçer — bu yüzden sayfa içeriğine çubuk yüksekliği kadar alt pay verilir, son satır çubuğun altında kalmaz. Zemin buzlu camdır: yarı saydam bir katman ve arkasını bulanıklaştıran bir süzgeç; tarayıcı bunu desteklemiyorsa düz koyu zemine düşülür.
- Alt çubuk · Ekranın fiziksel dibine oturur
- Ana ekran çizgisinin payı çubuğun dışına değil içine verilir; tarayıcıda ise hiç verilmez, çünkü tarayıcının kendi çubuğu zaten oradadır. iOS’ta uygulama kipinde durum çubuğu ayarı black olmalıdır; black-translucent sayfayı ekranın tepesine yapıştırıp altta erişilemeyen bir boşluk bırakır.
- Alt çubuk · Kırmızı yalnız aktif sekmede
- Her sekmede üstte simge, altında küçük bir yazı bulunur; aktif sekmenin arkasında yumuşak kırmızı bir hap belirir, yazısı ve simgesi kırmızıya döner. Kırmızı bu ekranda başka hiçbir yerde kullanılmaz.
- Ayarlar · Başlıklı bölümler, satır satır
- Ayarlar tek sütun halinde, başlıklı bölümlerden oluşur: Hesap, Uygulama, Bağlantılar. Her bölüm bir kart içinde satır satır listelenir; solda alan adı, sağda değeri. Değiştirilemeyen bilgiler düz yazı, değiştirilebilenler düğme veya anahtar olarak görünür. Çıkış düğmesi en altta ve sade durur, kırmızı değildir.
- Bildirim merkezi · Zil, sayı, okundu
- Üst çubukta bir zil simgesi bulunur; okunmamış bildirim varsa üzerinde sayı görünür. Tıklanınca açılan listede her satır: kısa başlık, bir cümlelik açıklama ve göreceli zaman (5 dk önce) içerir. Okunmamışlar sol kenarındaki nokta ile ayrılır. Satıra tıklanınca ilgili sayfaya gidilir ve bildirim okundu sayılır. “Tümünü okundu işaretle” seçeneği listenin üstünde durur.
- Dosya yükleme · Tıkla veya sürükle
- Yükleme alanı hem tıklanabilir hem sürükle-bırak kabul eder. Yüklenmeden önce dosya türü ve boyutu denetlenir; sınır aşılırsa Türkçe uyarı verilir. Görseller küçük önizleme ile listelenir, belgeler simge ve dosya adı ile. Her satırda silme düğmesi bulunur. Yükleme sırasında ilerleme çubuğu görünür ve iptal edilebilir.
- Gezinme · Masaüstünde panel, telefonda alt çubuk
- 900px ve üstünde alt sekme çubuğu gizlenir; gezinme solda dikey panele döner. Alt çubuk yalnız telefon ve tablette görünür. Seçilen çubuk dokusu ikisinde de aynıdır. Aynı bölüm iki yerde birden gösterilmez.
- Giriş ekranı · Tek kart, kayıt yok
- Tek kart içinde logo, marka adı, e-posta ve şifre alanları, tam genişlikte bir giriş düğmesi bulunur. Kayıt olma ekranı yoktur — kullanıcıları yalnızca yönetici ekler. Hatalı girişte kartın içinde kırmızı bir uyarı satırı çıkar; bu uyarı Türkçe ve anlaşılır olmalıdır, hata kodu gösterilmez. Giriş sırasında düğme pasifleşir ve “Giriş yapılıyor…” yazar. Oturum kalıcıdır: sayfa yenilenince tekrar giriş istenmez.
- Liste ve kartlar · Boş liste kendini anlatır
- Hiç kaydı olmayan liste boş bırakılmaz. Yerinde üç şey durur: ne olduğu, neden boş olduğu ve buradan çıkmak için basılacak düğme. “Kayıt bulunamadı” tek başına yetmez — kullanıcı hata mı yaptı, yoksa henüz mü başlamadı, onu anlamaz. Filtre yüzünden boşalmış liste ile hiç kaydı olmayan liste aynı metni göstermez.
- Liste ve kartlar · Izgara kartlarında başlığa sabit yer
- Yan yana duran kartlarda başlığa, en uzun başlığın kaç satır sürdüğü kadar sabit yer ayrılır. Biri iki satıra sürerken komşusu bir satırda kalırsa altındaki her şey kayar ve ızgara bozuk görünür. Aynı şey açıklama satırı için de geçerli. Metni kısaltmak yerine yer ayrılır; kısaltma bir dilde tutar, öbüründe tutmaz.
- Onay penceresi · Geri alınamaz işlem adıyla onaylatılır
- Silme ve geri alınamayan işlemler onay ister; onay penceresi neyin silineceğini adıyla söyler ve kaç şeyi etkileyeceğini yazar. Onay düğmesi “Tamam” değil, yapılacak işin adıdır. Onaylanan işlem geri alınabiliyorsa bu kısa bir süre için kullanıcıya sunulur; alınamıyorsa öyle olduğu onaydan önce söylenir.
- Panel · Önce nereye gidileceği
- Panel sayı dökmez, yol gösterir: bölümlere giden kısayol kartları asıl içeriktir. Aynı sayıyı hem panelde hem alt çubuğun rozetinde tekrarlama. Panel kaydırılmaz; içerik ekrana sığar.
- Profil paneli · Araç düğmeleri burada toplanır
- Sağ üstteki kullanıcı kutusuna basınca aşağı açılan bir panel gelir. Not defteri, bildirimler, destek ve çıkış bu panelin satırlarıdır. Üst çubuğa ayrı simge düğmeleri eklenmez.
- Profil paneli · Panel sonucu kendi içinde gösterir
- Profil panelindeki bir satır bir iş başlatıyorsa ve o iş başka bir ekran açmıyorsa panel kapanmaz: bekleme ve sonuç o satırın kendisinde görünür. Panel kapanırsa kullanıcı işin sürdüğünü gösteren tek şeyi kaybeder ve sonucu ancak geçip giden bir bildirim balonundan yakalayabilir. Satır başka bir ekrana götürüyorsa panel kapanır.
- Tablo çıktısı · Excel ve PDF
- Tablonun üstünde tek bir dışa aktar düğmesi bulunur; tıklanınca Excel ve PDF seçenekleri açılır. Çıktı ekranda görünen filtreye ve sıralamaya uyar — tüm veriyi değil, kullanıcının baktığı veriyi verir. Dosya adı “musteri-tablo-YYYY-AA-GG” biçimindedir. Çıktı hazırlanırken düğme pasifleşir ve “Hazırlanıyor…” yazar. PDF çıktısında sayfa başlığı ve tarih üst bilgide yer alır.
- Tarih filtresi · Gün · Hafta · Ay · Aralık
- Dört seçenek sunulur: Gün, Hafta, Ay ve Aralık. Varsayılan “Ay”. Aralık seçilirse iki tarih alanı açılır ve bitiş tarihi başlangıçtan önce seçilemez. Filtre değiştiğinde liste anında yenilenir, sayfa yeniden yüklenmez. Seçim adres çubuğunda saklanır ki sayfa yenilendiğinde ya da bağlantı paylaşıldığında aynı görünüm gelsin.
- Uyarı metni · Hata metni ne olduğunu ve ne yapılacağını söyler
- Kullanıcıya gösterilen her hata metni Türkçe ve anlaşılırdır; ne olduğunu ve ne yapması gerektiğini söyler. Sunucudan gelen ham hata cümlesi ve hata kodu ekrana basılmaz. Özür dilenmez, teknik terim kullanılmaz. Bir işlem tamamlanamadıysa kullanıcının girdiği veri silinmez, formda durmaya devam eder.
- Üst çubuk · Beliren düğme yerleşimi kaydırmaz
- Üst çubukta bazı ekranlarda görünüp bazılarında görünmeyen bir düğme varsa yeri her ekranda ayrılır; görünmediği yerde gizlenmez, pasifleşir. Gizlenirse yanındaki logo, marka ve sayfa adı ekran değiştikçe sağa sola kayar, çubuk her geçişte oynuyormuş gibi durur. Pasif düğme solar ve basılamaz; kullanılabilir olmadığı yokluğundan değil, solukluğundan anlaşılır.
- Üst çubuk · Geri oku her ekranda durur
- Geri oku üst çubuğun solunda, açılış ekranı dışındaki her ekranda çalışır. Yalnız birkaç derin sayfada açılıp geri kalanında sönük durması, kullanıcıya “buradan çıkamıyorum” dedirtir; oysa açılış ekranının dışındaki her yerden dönülecek bir yer vardır. Ok bir kat yukarı çıkarır: alt sayfadan üstündeki sayfaya, oradan listeye, listeden açılış ekranına. Sabit bir hedefe atlamak geri gitmek değildir.
- Üst çubuk · Yalnız marka, sayfa adı ve profil
- Üst çubukta solda logo ve marka, altında bulunulan sayfanın adı, sağda kullanıcı kutusu bulunur. Araç düğmeleri üst çubuğa dizilmez; profil kutusuna basınca açılan panele girer. Üst çubuk sayfadan sayfaya yer değiştirmez ve geçiş sırasında solmaz.
Veri
- Çevrimdışı · Her zaman çalışır
- Okuma yerelden: son görülen veri tarayıcıda durur. Yazma kuyruğa girer, internet gelince gönderilir. Çakışırsa son yazan kazanır ve kullanıcıya söylenir.
- Değişiklik kaydı · Her zaman tutulur
- Her yazma işleminde kim, ne, ne zaman kaydedilir. Ayarlarda listelenir.
- Dosya saklama · Supabase Storage
- Belge ve logolar özel klasörde, imzalı adresle sunulur. Profil fotoğrafı genel olabilir.
- Gerçek zamanlı · Her zaman açık
- Başkası bir kaydı değiştirince ekran kendiliğinden tazelenir.
- Veri katmanı · Supabase
- Postgres + Auth + Realtime + Storage. Satır güvenliği (RLS) her tabloda açık.
- Veri katmanı · Yüzde hesaplanır, girilmez
- İlerleme yüzdesi, doluluk oranı ve benzeri özet sayılar hiçbir zaman elle girilen bir alan olmaz; her zaman alttaki kayıtlardan hesaplanır — biten iş sayısı bölü toplam iş sayısı gibi. Elle girilen yüzde ilk günden sonra gerçeği göstermeyi bırakır ve kimse ne zaman bozulduğunu bilemez. Aynı sebeple bu sayılar veritabanında saklanmaz, gösterileceği anda hesaplanır.
- Yedek · Dosyaya dışa/içe aktarma
- Sunucusuz projelerde geçerlidir: Ayarlar’dan tek dosya olarak indirilir ve geri yüklenir. Yedeği almak kullanıcının sorumluluğundadır; uygulama düzenli olarak hatırlatır.
Bu projeye özel
Roller
4 katman, en alttan en üste:
- Amir
- Yönetici
- İşveren
- Admin
- Üstteki katman, alttakinin gördüğü her şeyi görür.
- Yetki veritabanı kurallarıyla (RLS) uygulanır, yalnız arayüzde gizlemekle değil.
Alan adı
merkezefendi.nizamsoftware.com
Tasarım kararları
henüz belirlenmedi
Modüller ve sayfalar
henüz belirlenmedi
Kararlar
henüz belirlenmedi