ÜRETİM TAKİP

{{ gateTitle }}

{{ gateNote }}
{{ loginBtnLabel }}
Parolayı değiştir ve devam etChange password and continue
{{ pwNote }}
{{ loginNote }}
{{ gateServer }} Çevrimdışı devam etContinue offline Çıkış yapSign out
ÜRETİM TAKİP Production Tracker
VARDİYA —SHIFT — · {{ today }}
{{ fileDiffMsg }}
Dosyadakini alTake repo file
Benimkini tutKeep mine
ÜretimOperations
Kat PlanıFloor Plan {{ machineCount }}
KayıtlarBatch Log {{ logCount }}
RaporlarReports
ÇalışanlarEmployees {{ employeeCount }}
ÜrünlerProducts {{ productCount }}
Sipariş TahminiOrder Estimate
Maliyet ModeliCost Model
SunucuServer
BugünToday
KarışımMix made{{ dayMix }} kg
ÜretilenProduced{{ dayPieces }} adetpcs
VerimYield{{ dayYield }}
Çalışan makineRunning{{ runningCount }} / {{ machineCount }}

Fabrika Kat PlanıFactory Floor Plan

Vakum
ÖlçekZoom {{ zoomHint }}
{{ r.label }}
{{ m.code }}
{{ m.name }}
{{ myStationsNote }} YenileRefresh
Yerleşim düzenlemeLayout editing {{ planEditHint }} IzgaraGrid {{ dragNote }} {{ planEditLabel }}
{{ s.label }} ÇalışıyorRunning BoştaIdle ArızalıOut of service
Makine seçilmedi. Kat planından bir makine seçin; parti verisi girebilir, tahmin alabilir veya istasyonu düzenleyebilirsiniz.No machine selected. Pick one on the floor plan to enter batch data, run an estimate, or edit the station.
+ Yeni istasyon aç+ Add station
{{ sel.code }} · {{ sel.section }}

{{ sel.name }}

{{ selStationNote }} YenileRefresh
Size atanmışAssigned to you
Operatörler: Operators: {{ selOperators }}
{{ stationEditorLabel }}
{{ stationEditorHint }}
Karışıma giren — gerçek miktarlarInto the mix — actual amounts
Bu girişten hesaplananCalculated from this entry
{{ r.label }} {{ r.value }}
{{ formNote }}
{{ saveLabel }}
TemizleClear
{{ noEnterNote }}
Bu makinedeki son kayıtlarRecent at this machine
Henüz kayıt yok.No entries yet.
{{ l.when }} {{ l.batch }} {{ l.flow }} {{ l.yieldTxt }}
Bu istasyon kapalı. Planda soluk görünür ve kapasiteye sayılmaz; kayıtları durur.This station is closed. It shows faded on the plan and is not counted as capacity; its records are kept.
{{ mdPlanEditNote }}
Konum ve boyut (cm)Position and size (cm)
{{ mdPosNote }}
DurumState
{{ mdHistNote }}
İstasyonu kaydetSave station
{{ mNote }}
{{ estBasis }}
Tahmini çıkışEst. output
{{ estOut }}
{{ sel.unitOut }} · {{ estYield }} verimyield
Tahmini süreEst. time
{{ estTime }}
{{ estTimeSub }}
Maliyet dağılımıCost breakdown
{{ c.label }}
{{ c.value }}
ToplamTotal
{{ estTotal }}
{{ estUnit }} / {{ sel.unitOut }}
{{ confText }}

Parti KayıtlarıBatch Log

Sahadan gelen her giriş. Tahminler bu veriden öğrenir.Every entry from the floor. The estimates learn from this data.
Üretim günüProduction day SaatTime PartiBatch MakineMachine ÜrünProduct GirenIn ÇıkanOut min VerimYield GönderildiSent to
{{ l.dateTxt }} {{ l.time }} {{ l.batch }} {{ l.machine }} {{ l.product }} {{ l.inTxt }} {{ l.outTxt }} {{ l.minutes }} {{ l.yieldTxt }} {{ l.next }} DüzeltCorrect GeçmişHistory
{{ undatedNote }}
Henüz kayıt yok. Kat planından bir istasyona tıklayıp ilk partiyi girin.No entries yet. Pick a station on the floor plan and log the first batch.
{{ leTitle }}
{{ logSaveLabel }}
VazgeçCancel
{{ logEditHint }}
{{ logNote }}
Kaydın düzeltme geçmişiCorrection history
ZamanWhen KimWho Ne değiştiWhat changed
{{ h.at }} {{ h.actor }} {{ h.summary }}
{{ logHistNote }}

ÇalışanlarEmployees

Maaş, mesai saatleri ve izinler. İzin sayıları seçili aya göre hesaplanır.Pay, working hours and leave. Leave counts are for the selected month.
+ Yeni çalışan+ New employee
Henüz çalışan eklenmedi. "+ Yeni çalışan" ile başlayın.No employees yet. Start with "+ New employee".
{{ t.label }}
{{ t.value }}
{{ t.sub }}
{{ empGapNote }}
SicilNo Ad SoyadName GörevTitle NetNet BrütGross MesaiShift SüreHours ÜcretliPaid ÜcretsizUnpaid RaporSick HesapAccount DurumState
{{ e.code }} {{ e.name }} {{ e.title }} {{ e.net }} {{ e.gross }} {{ e.shift }} {{ e.hours }} {{ e.paid }} {{ e.unpaid }} {{ e.other }} {{ e.user }} {{ e.state }}

{{ empTitle }}

{{ empUserNote }}
Atanmış istasyonlarAssigned stations {{ empStationCount }}
{{ g.label }}
{{ k.mark }} {{ k.label }}
{{ empStationNote }}
{{ empShiftNote }}
KaydetSave
İşten çıkarMark as left
Yeniden işe alReinstate
SilDelete
{{ empNote }}
İzin kaydı olan çalışan silinemez — "İşten çıkar" kaydı ve izin geçmişini korur.An employee with leave records cannot be deleted — "Mark as left" keeps the record and its history.

İzinlerLeave

{{ empLeaveSum }}
İzin ekleAdd leave
{{ leaveNote }}
Bu çalışan için izin kaydı yok.No leave records for this employee.
BaşlangıçFrom BitişTo GünDays TürType AçıklamaNote
{{ l.from }} {{ l.to }} {{ l.days }} {{ l.kind }} {{ l.note }} SilRemove

RaporlarReports

Üretim gününe göre. Yalnızca girilmiş kayıtlardan hesaplanır.By production day. Computed only from entries that exist. CSV indirDownload CSV
{{ repNote }}
{{ repWindowTxt }}
{{ repUndatedNote }}
{{ repEmptyNote }}
{{ t.label }}
{{ t.value }}
{{ t.sub }}
VerimYield
{{ repYieldTxt }}
{{ repYieldNote }}
Maliyet dağılımıCost breakdown
{{ r.label }} {{ r.share }} {{ r.value }}
{{ repBasisNote }}
{{ repCostWarn }}
Güne göreBy day
GünDay KayıtEntries ÇıkanOutput min MaliyetCost
{{ d.day }} {{ d.n }} {{ d.out }} {{ d.minutes }} {{ d.cost }}
Ürüne göreBy product
ÜrünProduct KayıtEntries ÇıkanOutput min MaliyetCost Birim maliyetCost per unit
{{ p.name }} {{ p.n }} {{ p.out }} {{ p.minutes }} {{ p.cost }} {{ p.unitCost }}
İstasyona göre — beklenen ile gerçekleşenBy station — expected vs actual
{{ repCmpWarn }}
İstasyonStation KayıtEntries VerimYield BeklenenExpected SapmaΔ Hız (dk/birim)Rate (min/unit) BeklenenExpected SapmaΔ MaliyetCost
{{ m.name }} {{ m.n }} {{ m.yieldTxt }} {{ m.baseYieldTxt }} {{ m.yieldDev }} {{ m.rateTxt }} {{ m.baseRateTxt }} {{ m.rateDev }} {{ m.cost }}

Fabrika SunucusuFactory Server

Veri fabrika sunucusundaki SQL veritabanında tutulur. Win 11, Android ve iOS istemcileri aynı API'ye bağlanır. Bağlantı yokken uygulama yerel önbellekten çalışır ve yazmaları kuyrukta tutar.Data lives in SQL on the factory server. Win 11, Android and iOS clients all use the same API. With no connection the app runs from its local cache and queues writes.
BağlantıConnection
{{ connLabel }}
{{ connMsg }}
Yazma kuyruğuWrite queue
{{ queueCount }}
{{ queueNote }}
Yerel önbellekLocal cache
{{ savedNote }}
Bağlantı kesilse de çalışır.Keeps working when the link drops.

Depo veri dosyası (geçici veritabanı)Repo data file (temporary database)

Fabrika sunucusu kurulana kadar veri git deposunda tutuluyor. Uygulama açılışta data/uretim-verisi.js dosyasını okur. Tarayıcı diske yazamadığı için değişikliklerinizi indirip o dosyanın yerine koymanız ve commit etmeniz gerekir. Until the factory server is up, data lives in the git repo. The app reads data/uretim-verisi.js on start. A browser cannot write to disk, so you download your changes, replace that file and commit.
Koda kaydetSave to code
Veriyi indirDownload data
Dosyadakine dönReload from file
{{ saveToCodeHint }}
{{ dataFileNote }}
{{ dlNote }}
  1. Veriyi indir → tarayıcı uretim-verisi.js indirir.Download data → the browser saves uretim-verisi.js.
  2. İnen dosyayı repodaki data/uretim-verisi.js üzerine kopyalayın.Copy it over data/uretim-verisi.js in the repo.
  3. git add data/uretim-verisi.jsgit commitgit push origin maingit add data/uretim-verisi.jsgit commitgit push origin main
  4. Başka bilgisayarda git pull yapıp sayfayı açınca aynı veri gelir.On another machine git pull and reload — same data.

HesapAccount

{{ loginBtnLabel }}
{{ loginHint }}
{{ meLine }} Çıkış yapSign out
{{ meEmpLine }}
YetkilerinizYour permissions
{{ c.label }}
{{ meCapsNote }}
{{ mustChangePwNote }}
Parolayı değiştirChange password
{{ pwNote }}
{{ loginNote }}

KullanıcılarUsers

Listeyi yenileRefresh + Yeni kullanıcı+ New user
KullanıcıUsername AdName RollerRoles ÇalışanEmployee DurumState Son girişLast sign-in
{{ u.username }} {{ u.name }} {{ u.roles }} {{ u.emp }} {{ u.state }} {{ u.last }} DüzenleEdit {{ u.lockNote }}
{{ udTitle }}
KaydetSave
VazgeçCancel
Roller (birden fazla seçilebilir)Roles (more than one allowed)
{{ r.mark }} {{ r.label }}
{{ udRolesLine }}
Kullanıcı adı kalıcı kimliktir, değiştirilmez. Hesap silinmez, kapatılır — parti kayıtları kullanıcıya bağlı. Parola belirlerseniz kullanıcının açık oturumları kapanır ve ilk girişte parolasını değiştirir.The username is a permanent identity and cannot be changed. Accounts are closed, not deleted — batch records are linked to the user. Setting a password closes the user's open sessions and forces a change at next sign-in.
{{ userNote }}

Roller ve yetkilerRoles and permissions

Yetkileri yükleLoad permissions Değişiklik günlüğüChange log
Rol seçinPick a role
{{ r.label }}
{{ permRoleLockNote }}
{{ g.group }}
{{ c.mark }} {{ c.label }}
Rol yetkilerini kaydetSave role permissions
VazgeçCancel
Kişiye özel yetkilerPer-user permissions
{{ permUserHint }}
{{ u.label }}
{{ permUserRoles }} · {{ permCycleHint }}
{{ g.group }}
{{ c.mark }} {{ c.label }} {{ c.note }}
Kişiye özel yetkileri kaydetSave per-user permissions
VazgeçCancel
ZamanWhen KimWho NeWhat ÖnceBefore SonraAfter
{{ l.at }} {{ l.actor }} {{ l.kind }} · {{ l.target }} {{ l.before }} {{ l.after }}
{{ permNote }}

Sunucu adresiServer address

Bağlan ve yükleConnect and load
Kuyruğu gönderSend queue
Sunucu kurulumu server/README.md dosyasında. Adres boş bırakılırsa uygulama tamamen yerel çalışır.Setup steps are in server/README.md. Leave the address empty to run fully local.

Sunucunun reddettiği yazmalarWrites rejected by the server

Listeyi temizleClear list
Bunlar sunucuya gitmedi ve bir daha denenmeyecek — sunucu isteği anladı ve reddetti (yetki, atama ya da geçersiz veri). Ekrandaki karşılıkları geri alındı. Gerekirse düzeltip yeniden girin.These did not reach the server and will not be retried — the server understood the request and rejected it (permission, assignment or invalid data). Their on-screen effects were rolled back. Correct and re-enter if needed.
SaatTime NeWhat SebepReason
{{ x.at }}{{ x.label }}{{ x.error }}
Bekleyen yazmaPending writeUç noktaEndpoint
{{ q.method }}{{ q.path }}

MimariArchitecture

Win 11 Android iOS REST API · Node SQL Server · UretimTakip
Üç istemci de aynı uç noktaları kullanır. Açılışta bir kez tüm veri çekilir, sonra yalnızca değişenler. Veri girişi önce yerele yazılır ve istemcinin ürettiği tekil kimlikle işaretlenir; ağ gelince kuyruk boşaltılır. Sunucu aynı kimliği ikinci kez görürse yeni kayıt açmaz, böylece kuyruğu tekrar göndermek zararsızdır. All three clients use the same endpoints. The full data set is fetched once at startup, then only what changed. Data entry is written locally first and stamped with a client-generated id; the queue drains when the network returns. The server ignores a repeated id, so re-sending the queue is harmless.

ÜrünlerProducts

Reçete ve istasyon rotasıRecipe and station route
{{ p.label }}
{{ p.kindLabel }}
{{ p.code }} · {{ p.steps }}
+ Yeni ürün+ New product

{{ draftTitle }}

{{ draftIdNote }}
{{ kindNote }}
ağırlık girilmedi — kg bazlı hesap eksik kalırweight not entered — kg-based calculations will be incomplete
{{ kindWarn }}
{{ recipeHiddenNote }}

Parça başına reçeteRecipe per piece

Satırları zaman içinde teker teker doldurabilirsiniz. Her değerin yanında kaynağını işaretleyin: varsayım, olması gereken teorik değer, ya da fiilen ölçtüğünüz değer.Fill the lines in over time. Mark each value's source: assumed, the theoretical target, or what you actually measured.
{{ recipeTally }}
Reçete boş. Aşağıdan girdi ekleyin — hammadde ya da yarı mamul olan bir ürün.Recipe is empty. Add an input below — a product that is a raw material or semi-finished.
{{ r.label }} {{ r.kindLabel }} {{ r.unit }}
{{ r.subNote }} {{ r.state }}
Reçeteye ekleAdd to recipe
{{ noInputNote }}
Parça başına karışım ağırlığı: Mix weight per piece: {{ draftPieceKg }} kg

İstasyon rotasıStation route

Ürünün hangi istasyondan hangisine gideceği. Sıra buradaki sıradır.Which station the product goes to, and in what order.
Rotaya ekleAdd to route
Rota boş. Yukarıdan istasyon ekleyin.Route is empty. Add stations above.
{{ s.no }} {{ s.name }} {{ s.units }}
Ürünü kaydetSave product
SilDelete
{{ prodNote }}
Rota özeti: Route: {{ routeSummary }}

Sipariş TahminiOrder Estimate

Ürün ve adet girin; hat boyunca malzeme, çıkış ve maliyet hesaplanır.Enter a product and a quantity; material, output and cost are computed along the line.
{{ f.kicker }}
{{ f.value }}
{{ f.sub }}
Üretim ağacı — hangi ürün, kaç adetProduction tree — which product, how many TürKind GerekliNeeded BaşlangıçStart qty
{{ t.label }} {{ t.tag }} {{ t.qty }} {{ t.start }}
Hammadde ihtiyacı — tüm seviyelerMaterial required — all levels KaynakSource MiktarQty MaliyetCost
{{ m.label }} {{ m.srcLabel }} {{ m.qty }} {{ m.cost }}
Reçetede miktarı girilmiş hammadde yok.No recipe line has a quantity entered.
İstasyon adımları — yarı mamuller önceStation steps — semi-finished first SaatHours ElektrikPower İşçilikLabour AdımStep
{{ s.code }} {{ s.name }} {{ s.prodLabel }} {{ s.hours }} {{ s.power }} {{ s.labour }} {{ s.total }}
{{ planDataWarn }}
{{ planNote }}

Maliyet ModeliCost Model

Uygulamadaki her tahmin bu değerleri okur. Fiyatlar değiştikçe güncelleyin.Every estimate in the app reads these numbers. Update them whenever prices move.
{{ costsUpdated }}
{{ g.group }}
{{ g.label }}
{{ g.unit }}
{{ g.hint }}

İstasyon tipleriStation types

+ Yeni tip+ New type
{{ roleNote }}
Ad (TR)Name (TR) Ad (EN)Name (EN) GirenIn ÇıkanOut RolRole KullanımUsed by DurumState
{{ t.usage }} {{ t.warn }}

İstasyon tipi parametreleriStation type parameters

Kayıtlı veri gelene kadar tahminlerde bu değerler kullanılır.Used in estimates until logged data overrides them.
Her sayının yanındaki işarete tıklayarak kaynağını değiştirin:Click the badge next to a number to change its source: Vvarsayımassumed Tteoriktheoretical Öölçülenmeasured {{ typeTally }}
TipType MakineUnits kW dk / birimmin / unit Hurda %Scrap % SarfConsum.
{{ t.name }} {{ t.units }}
{{ t.sPower.short }}
{{ t.sRate.short }}
{{ t.sScrap.short }}
{{ t.sConsum.short }}
Maliyet modelini kaydetSave cost model
{{ costsNote }}
{{ statusLeft }} {{ fxNote }} {{ savedNote }} WIN 11 · v0.2