NFC nedir ve kart neyi taşır?
NFC, "yakın alan iletişimi" (Near Field Communication) anlamına gelir. Birkaç santimetre mesafede iki cihazın kablosuz haberleşmesini sağlar. Temassız banka kartı, toplu taşıma kartı ve kapı giriş kartları aynı ailenin farklı uygulamalarıdır.
Yemekhane kartının içinde küçük bir çip ve anten bulunur; kartın pili yoktur. Okuyucu cihaz elektromanyetik alan yaydığında kart bu alandan enerji alır ve çipte kayıtlı bilgiyi yanıt olarak gönderir. Yemekhane takibi için en önemli bilgi, her çipin kendine ait seri numarasıdır (UID). Aynı numaraya sahip iki kartın bulunmaması beklenir; sistem de kartı bu numaradan tanır.
Kartın içinde kişinin adı, öğün hakkı ya da bakiye gibi bilgilerin tutulması gerekmez. Kart yalnızca bir anahtar gibi davranır; kişinin kim olduğu ve hakkının ne olduğu sunucudaki kayıttan bulunur. Bu yaklaşım, kart kaybolduğunda kartı iptal etmeyi de kolaylaştırır.
Okuyucu olarak tablet: Web NFC
Geleneksel sistemlerde kartı okuyan ayrı bir cihaz bulunur. YemekhaneApp'ta bu iş, Android tabletin kendi NFC okuyucusuyla yapılır. Bunu mümkün kılan teknoloji Web NFC'dir: Android'deki Chrome tarayıcısı, güvenli (HTTPS) bir web sayfasına, kullanıcı izin verdiğinde cihazın NFC okuyucusuna erişme olanağı tanır.
Bu nedenle terminal bir uygulama mağazasından indirilen bir program değil, kurumun kendi adresinde açılan bir web sayfasıdır. Tablet bir kez eşleştirilir; sayfada "Okumayı Başlat" denildiğinde tarayıcı NFC izni ister, sayfa tam ekrana geçer ve kartlar otomatik okunmaya başlar. Okuma sürerken ekranın uykuya geçmemesi için tarayıcı destekliyorsa ekran uyku kilidi de istenir.
Bu teknolojinin sınırı, yalnızca Android'de Chrome ile çalışmasıdır; iPhone ve iPad bu amaçla kullanılamaz. Ayrıca her kart türü her cihazla aynı biçimde okunmayabilir; kart alımından önce deneme yapılması bu yüzden önerilir.
Bir okutmanın adımları
- Kart tablete yaklaşır, tarayıcı kartın seri numarasını okur.
- Terminal, kartın seri numarasını güvenli bağlantı üzerinden sunucuya gönderir. İstek, tablet eşleştirilirken verilen kimlik çerezini de taşır; böylece sunucu isteğin hangi kuruma ait yetkili bir terminalden geldiğini bilir.
- Sunucu, seri numarasını kuruma özel bir anahtarla özetler ve bu özeti kayıtlı kartlarla karşılaştırır. Eşleşme yoksa "Kart tanımlı değil" yanıtı döner.
- Kart bir kişiye bağlıysa kişinin etkin olup olmadığına bakılır. Pasif kişi ya da iptal edilmiş kart için "Kart devre dışı" yanıtı döner.
- Şu anki saat, kurumun öğün düzenine göre geçerli öğün penceresine çevrilir (Türkiye saatiyle).
- Bu kişi bu pencerede daha önce geçmişse "Bu öğün zaten alındı" yanıtı döner; geçmemişse geçiş kaydedilir.
- Terminal sonucu ekranda gösterir: yeşil onay ve ad, ya da kırmızı ret ve nedeni. Ses ve titreşim eşlik eder.
Mükerrer geçiş engeli nasıl işler?
Yemekhane takibinin kalbi, "bir kişi bir öğünde bir kez" kuralıdır. Kurum günde bir, iki veya üç öğün tanımlar. Gün bu öğünlerin saat sınırlarına göre pencerelere bölünür ve kart her pencerede yalnızca bir kez geçer. Tek öğünlü düzende kural bütün gün için geçerlidir.
Aynı anda iki istek gelirse de kural bozulmaz: kayıt tarafında, kişi ve öğün penceresi için tekil bir kısıt vardır, dolayısıyla yarış koşulunda bile iki kayıt oluşmaz. Tabletin yanıt alamadığı durumlarda kart yeniden okutulduğunda sistem aynı işlemi tanır; ilk kayıt yazıldıysa "zaten alındı" demek yerine onay döndürür. Böylece ağ sorunları kişiyi haksız yere reddetmez.
Ayrıca terminal, aynı kartın birkaç saniye içinde art arda okunmasını yok sayar; elin kart üzerinde titremesiyle oluşan çift okumalar yanlış ret olarak görünmez.
Kartın kendisi güvenli mi?
Seri numarası tek başına bir parola değildir; bu yüzden güvenlik, numaranın sistemde nasıl işlendiğiyle ilgilidir. YemekhaneApp kartın seri numarasını düz haliyle saklamaz; kuruma özel bir anahtarla özetleyerek tutar. Veritabanı bir şekilde ifşa olsa bile bu özetlerden kart numaralarına doğrudan ulaşılamaz.
Kart kaybolduğunda kartı iptal etmek yeterlidir. İptal edilen kart terminalde geçmez; kişiye yeni kart tanımlanır ve geçmiş kayıtlar aynı kişi kaydında kalır. Terminal tarafında ise tablet, kısa ömürlü ve tek kullanımlık bir jetonla eşleştirilir; tablet kaybolursa yönetici o cihazı kapatabilir.
Kartı kopyalamaya karşı mutlak koruma, yalnızca seri numarasına dayanan basit sistemlerde sağlanamaz. Çok yüksek güvenlik gerektiren alanlarda (örneğin ödeme ya da erişim kontrolü) ek doğrulama yöntemleri gerekir. Yemek hakkı gibi düşük riskli senaryolarda ise kayıt ve mükerrer geçiş denetimi çoğu kurum için yeterli bir denge sunar.
Sonuç ekranında neler görülür?
- Yeşil ekran, "Ahmet K. – Afiyet olsun!" gibi bir mesaj ve öğün bilgisi: geçiş kaydedildi. Soyad yalnızca baş harfiyle gösterilir.
- Kırmızı ekran, "Bu öğün zaten alındı": kart aynı öğünde tekrar okutuldu.
- Kırmızı ekran, "Kart devre dışı" ya da "Kart tanımlı değil": kişi pasif ya da kart sistemde yok.
- Kırmızı ekran, "İnternet yok": kayıt yapılmadı, bağlantı gelince kart yeniden okutulmalı.
Sonuç ekranı yaklaşık iki saniye görünür ve ardından terminal bir sonraki kart için hazır olur. Kuyruk hızı bu yüzden okutma süresine ve bağlantı hızına bağlıdır.
Kayıtlar nereye gider, nasıl kullanılır?
Her geçiş tarih, öğün, kişi ve terminal bilgisiyle kaydedilir. Kurum yöneticisi bu kayıtları panelde günlük olarak görür, öğün bazında sayar ve CSV olarak indirir. Kişi grup ya da sınıf bilgisiyle tanımlıysa rapor bu bilgiyi de taşır.
Bu veri, yemek firmasıyla mutabakat, yemekhane planlaması ve hak sahibi olmayan kullanımın tespiti gibi işler için kullanılır. Kişisel veri olduğu için aydınlatma ve saklama süresi gibi konularda kurumun kendi yükümlülükleri vardır.
Sistemi kendi kurumunuz için düşünüyorsanız nasıl çalışır sayfasında kurulum akışını, NFC yemekhane takip sistemi sayfasında genel özellikleri görebilirsiniz. Seçim yaparken sormanız gerekenler için de yemekhane takip sistemi nasıl seçilir? yazımıza göz atın.
