Home/Hire/QR Kodlu Yoklama Sistemi

Case Study · 2024–Günümüz

Node.jsReact.jsPostgreSQLRedisDockerQRYönetici Paneli

QR Kodlu Yoklama Sistemi

Full-Stack Sistem · Performans Mühendisliği

2.000+Günlük Canlı Kullanıcı

The Problem

Bir üniversitenin 7 farklı fakültedeki binlerce öğrencinin yoklamasını takip etmesi gerekiyordu. Mevcut süreç manueldi — kağıt yoklama listeleri, Excel tabloları ve eğitmenler için büyük bir zaman kaybı. Kurulacak sistem, bir dersin başlangıcında yüzlerce öğrencinin aynı anda kod taradığı yoğun yük (peak load) anlarını kaldırabilmeli, uygulama indirmeden herhangi bir telefonda çalışabilmeli, yöneticilere kayıtları görüntülemeleri ve dışa aktarmaları için bir kontrol paneli sunmalı ve mesai saatlerinde %100 oranında kesintisiz çalışmalıydı.

The Solution

Hamed, eksiksiz bir QR tabanlı yoklama sistemi tasarladı ve geliştirdi. Öğrenciler, sınıfta görüntülenen bir QR kodunu tarar — kod tarayıcılarında açılır, yoklamayı anında kaydeder ve kapanır. Hile yapılmasını önlemek için her QR kodun kısa bir geçerlilik süresi vardır. Eğitmenler ve fakülte yöneticileri; kayıtları görmek, raporlar oluşturmak ve sistemi yönetmek için bir kontrol paneline giriş yaparlar. Arka planda (backend) Hamed hibrit bir doğrulama hattı kurdu: hız için bellek içi (in-memory) kontroller, doğruluk için veritabanı onayı ve herhangi bir parçanın arızalanması durumunda otomatik yedekleme (fallback). Yoğun tarama zamanlarında veritabanı yükünü büyük ölçüde azaltmak için Redis önbellekleme (caching) eklendi.

Technologies Used

  • Node.js + Express.js (backend API)
  • React.js (öğrenci check-in arayüzü)
  • React.js + admin paneli (fakülte kontrol paneli)
  • PostgreSQL (öğrenci ve yoklama veritabanı)
  • Redis (yoğun anlar için önbellek katmanı)
  • Docker (konteynerli dağıtım)
  • JWT (güvenli, süre sınırlı QR token'lar)
  • Opossum (%99.9 çalışma süresi için Devre Kesici - Circuit Breaker)

Results

%98 gecikme (latency) azalması

Redis önbelleğe alma ve sorgu optimizasyonundan sonra API yanıt süresi 94.91ms'den yalnızca 1.53ms'ye düştü.

+%6.100 daha fazla işlem kapasitesi

Sistem artık saniyede 653 isteğe kadar işlem yapabiliyor — aynı anda yüzlerce öğrencinin taramasını kaldırabiliyor.

2.000+ günlük kullanıcı

Sistem, 7 üniversite fakültesindeki öğrenciler ve öğretim üyeleri tarafından her gün canlı (production) olarak kullanılıyor.

%99.9 çalışma süresi (uptime)

Devre Kesici (Circuit Breaker) deseni, bir arka uç (backend) hizmeti sorun yaşasa bile sistemin canlı kalmasını sağlar.

~%85 test kapsamı

Doğrulama akışlarını, başarısızlık senaryolarını ve uç (edge) durumları kapsayan kapsamlı test paketi.

15+ güvenlik açığı düzeltildi

SAST/DAST güvenlik taraması, sistem canlıya geçmeden önce 15'ten fazla sorunu yakaladı ve çözdü.

What This Proves

Bu, bir demo değil, canlı bir sistemdir. Türkiye'de Tokat Gaziosmanpaşa Üniversitesi'nde gerçek öğrenciler ve öğretim üyeleri tarafından her gün çalışmaktadır. Yönetici paneline yzdd.gop.edu.tr/qr-admin/ ve öğrenci arayüzüne yzdd.gop.edu.tr/qr-ui/ adresinden erişilebilir.

Okulunuz, şirketiniz veya etkinliğiniz için bir yoklama sistemine ihtiyacınız varsa — Hamed sizin için bir tane geliştirebilir.