Tüm projelere dön

SafePass24

Erişim kontrolü ve öğrenci giriş çıkış takibi

Okul ve kurumlarda kartlı geçişleri yönetmeyi ve velilerin öğrencilerinin giriş çıkışlarını takip etmesini sağlayan sistem.

SafePass24 tanıtımı: web kontrol merkezi ve veli mobil uygulaması; öğrenci giriş-çıkış ve devam takibi.
Fiziksel geçişten, web ve mobil takip akışına.Web yönetim ve veli mobil uygulamasının tanıtım görseli.
Kimler için?
Kurumlar, erişim yöneticileri ve veliler
Katkım
Bağımsız proje · Full-stack geliştirme

Çözülmesi gereken ihtiyaç

Okul ve kurumların geçiş kontrolünü ve cihaz yönetimini bir arada yürütmesi, velilerin de öğrencilerinin giriş çıkışlarını takip edebilmesi gerekiyor. Bağlantı kesildiğinde erişim kararları sürdürülebilmeli.

Ortaya çıkan işlevler

Kartlı geçişleri yönetme, velilerin öğrencilerinin giriş çıkışlarını takip etmesini sağlama, internet kesildiğinde yerel yetkilerle geçişe devam etme ve bağlantı geri geldiğinde kayıtları web ve mobil uygulamalara aktarma.

Ben ne yaptım?

Kart okuyucu ve turnikeleri yöneten yazılım, sunucu tarafı ve web/mobil uygulama bağlantıları üzerinde çalıştım. Fiziksel geçişleri uygulamalardan takip edilebilen kayıtlara bağladım.

Geliştirme ayrıntılarını incele

Teknik yaklaşımla ilgilenenler için: çalışma akışı, kullandığım teknolojiler ve uygulama kararları.

Süreç nasıl işliyor?

Cihazın kurulumu, erişim kararı ve olayın uygulamalara ulaşması birbirine bağlı süreçler. Bağlantı kesilirse controller yerel yetkilerle çalışmayı sürdürüyor.

Ana akış

  1. Cihazı devreye al

    Controller, okuyucular, röleler ve kamera yapılandırılır; backend ile cihaz eşleştirilir.

  2. Kartı okuyucudan al

    OSDP / RS-485 üzerinden gelen kart UID’si controller tarafından işlenir; HMAC hash ile korunur.

  3. Erişim kararını al

    Bağlantı varsa uzak yetkilendirme kullanılır. Uzak karar alınamazsa SQLite yetki cache’ine geçilir.

  4. Geçişi yönet

    İzin verilen erişim için Modbus rölesi çalıştırılır; erişim kararı geçiş olayına bağlanır.

  5. Olayı ve görüntüyü ilişkilendir

    ONVIF / ISAPI ve RTSP / FFmpeg akışlarıyla olayın kamera snapshot’ı hazırlanır; yerel görüntü şifrelenir.

  6. Olayı buluta senkronize et

    Kalıcı outbox ve retry mekanizmaları olayları bağlantı sonrasında backend’e taşır.

  7. Web ve mobilde takip et

    Kurum yöneticileri yetkileri kapsamındaki geçiş kayıtlarını, veliler ise öğrencilerinin giriş çıkışlarını Next.js / Flutter uygulamalarından takip eder.

Alternatif ve destek süreçleri

Uzak karar alınamıyorsa

  1. Yerel yetkiyi sorgula

    SQLite cache erişim kararının internet bağlantısına bağımlılığını azaltır.

  2. Olayı kalıcı tut

    Çevrimdışı oluşan olay outbox’a yazılır; bağlantı geldikten sonra 6. adımda senkronize edilir.

Akışa dönüş04Geçişi yönet

Cihaz konfigürasyonu değişirse

  1. Konfigürasyonu dağıt

    MQTT üzerinden cihaz konfigürasyonu senkronize edilir.

  2. Yeni ayarı uygula

    Controller yeni ayarlarla sonraki okuyucu ve erişim olaylarını işler.

Fiziksel geçişten, web ve mobil takip akışına.Ürünün çalışma mantığını anlatan şematik görsel.

Çözüm yaklaşımı

  • Müşteri ihtiyaçlarına göre edge controller'ın okuyucu, RS-485, röle, kamera ve Linux çalışma ortamı gereksinimlerini belirledim; donanıma uygun controller yazılımını geliştirdim.
  • Go/CGO ve libosdp ile OSDP/RS-485 okuyucuları; Modbus ile turnike rölelerini entegre ettim. ONVIF/ISAPI ve RTSP/FFmpeg üzerinden olayla ilişkili kamera snapshot akışları geliştirdim.
  • Uzak erişim kararı alınamadığında SQLite yetki cache'ine geçiş, kalıcı outbox ve retry mekanizmalarıyla çevrimdışı geçiş ve bağlantı sonrası olay senkronizasyonu uyguladım.
  • Kart UID'leri için HMAC hash, yerel kamera görüntüleri için AES-GCM şifreleme ve cihaz bazlı iletişim kontrolleri üzerinde çalıştım.
  • Go/Fiber backend'inde modüler monolit, multi-tenant veri izolasyonu ve JWT/OTP akışları; Next.js/Flutter istemcileri için API, cihaz commissioning ve MQTT konfigürasyon senkronizasyonu geliştirdim.
  • GitHub Actions ile Go testleri, race detector ve govulncheck kontrollerini CI'a ekledim; imajları GHCR'a yayınlayıp Cosign ile imzaladım.

Teknolojiler

  • Go
  • Next.js
  • TypeScript
  • Flutter
  • PostgreSQL
  • Redis
  • MQTT
  • SQLite
  • MinIO
  • Docker
  • Nginx
  • OSDP / Modbus