İçeriğe geç
Tüm projeler

YAZILIM PROJESİ / TEKNİK İNCELEME

DAÜTT Mobile.

Topluluk süreçlerinden
yazılım mimarisine.

DAÜ Tiyatro Topluluğunun üyelik, prova, etkinlik ve finans süreçleri için geliştirdiğim bağımsız kişisel web projesi. Backend, arayüz ve veri katmanını birlikte geliştiriyorum.

C# / .NET 10ASP.NET Core MVCEF CorePostgreSQL
Rolüm
Backend, arayüz ve veri katmanı geliştirme
Platform
Mobil uyumlu web uygulaması
Durum
Geliştirme devam ediyor
DAÜTT / SİSTEM YAKLAŞIMI

Birbirine bağlı süreçler.
Belirgin sorumluluklar.

ÜyelikProva & yoklamaEtkinlikFinans
ASP.NET Core MVCArayüz · İş kuralları · Yetkilendirme
EF Core / KalıcılıkPostgreSQL · SQLite
Uygulamanın kavramsal görünümü

01 / PROBLEM VE KAPSAM

Bir kayıt,
birden çok iş kuralı.

Üyelik durumu, prova katılımı, etkinlik kadrosu ve mali kayıtlar birbiriyle ilişkili. Kimin hangi provaya katılabileceği, hangi işlemi yapabileceği ve rapora neyin gireceği ortak kurallara ihtiyaç duyuyor.

Topluluk yönetimi deneyimimle tanıdığım bu süreçleri, ortak bir veri modeli ve sunucuda uygulanan, test edilebilir akışlara dönüştürüyorum.

  • Üyelik & erişimKayıt, üyelik yaşam döngüsü ve rol bazlı işlem yetkileri.
  • OrganizasyonProva, katılım, etkinlik ve kadro ilişkileri.
  • Kayıt & iletişimGelir-gider takibi, faaliyet raporları, uygulama içi ve e-posta bildirimleri.

02 / MİMARİ

Tek uygulama.
Ayrılmış sorumluluklar.

Sunucuda sayfa üreten bir MVC uygulaması. Controller ve servisler web projesinde; kalıcılık ve PostgreSQL migration’ları ayrı projelerde.

  1. Web & uygulama

    Razor Views · Bootstrap 5 · MVC controller’ları

    Controller ve servisler iş akışlarını yürütür; ASP.NET Core Identity ve erişim politikaları işlem yetkilerini denetler.

    ASP.NET Core
  2. Kalıcılık

    EF Core · Ortak veri modeli · DbContext

    İlişkiler, benzersizlik kuralları ve eşzamanlılık kontrolleri verinin tutarlılığını destekler.

    Ayrı proje
  3. Veritabanı & migration

    PostgreSQL · SQLite

    Sağlayıcı yapılandırmayla seçilir; her sağlayıcının migration zinciri ayrıdır.

    Sağlayıcıya özel
Kavramsal sorumluluk şeması. Katmanlar ayrı mikroservisler değildir.

Bildirim ve raporlamaUygulama servisleri → uygulama içi kayıt / e-posta kanalı / ClosedXML ile Excel çıktısı.

Dağıtım yapısıNginx reverse proxy → Docker içindeki ASP.NET Core uygulaması → PostgreSQL.

03 / BİR AKIŞIN İÇİNDE

QR okumak başlangıç.
Karar sunucuda.

QR ve konum doğrulamalı prova yoklaması, arayüzün arkasındaki iş kurallarını gösteren bir örnek. Uygulama QR, konum veya ikisini birlikte kullanan yoklama modlarını destekliyor.

  1. Oturum açılır

    Prova için süreli bir yoklama oturumu ve katılım listesi oluşturulur. QR, korumalı ve kısa ömürlü bir oturum verisi taşır.

  2. Üye doğrulanır

    QR uygulama içindeki kamerayla okunur. Kimlik, giriş yapan kullanıcıdan alınır; oturumun geçerliliği ve katılım uygunluğu sunucuda kontrol edilir.

  3. Konum değerlendirilir

    Seçilen mod gerektiriyorsa konum ölçümünün güncelliği, doğruluğu ve izin verilen alana uzaklığı sunucuda değerlendirilir.

  4. Katılım kaydedilir

    İşlem içinde oturum yeniden denetlenir; katılım durumu kaydedilir. Tekrarlanan istekler mevcut katılımı yeniden saymaz.

Mühendislik sınırı

Konum kalitesi, süre ve oturum kontrolleri birlikte değerlendirilir. Tarayıcı konumu fiziksel katılımın kesin kanıtı değildir; konum taklidini bütünüyle engellemez.

04 / KİŞİSEL KATKILARIM

Arayüzden
veri bütünlüğüne.

Bağımsız kişisel projede backend ve arayüz geliştirmeyi birlikte yürütüyorum.

UYGULAMA & ARAYÜZ

İş akışlarını geliştirdim.

Üyelik ve organizasyon arayüzlerini, QR/konum yoklamasını, uygulama içi/e-posta bildirimlerini ve Excel faaliyet raporlamasını geliştirdim.

VERİ & ERİŞİM

Kalıcılık ve yetkilendirmeyi kurdum.

Web ve kalıcılık projelerini ayırdım; EF Core veri erişimi, PostgreSQL/SQLite migration’ları ve Identity ile kimlik doğrulama/yetkilendirmeyi uyguladım.

DOĞRULAMA

Kritik kuralları testlere taşıdım.

Veri bütünlüğü, güvenlik ve eşzamanlılık testleri hazırladım; tekrarlanan yoklama, paralel erişim ve yetkisiz işlem senaryolarını ele aldım.

DAĞITIM

Çalıştırma ortamını ele aldım.

Docker ve Linux dağıtım yapılandırması üzerinde çalıştım; uygulama, veritabanı ve reverse proxy sorumluluklarını ayırdım.

05 / TEKNİK TERCİHLER

Her tercihin
bir karşılığı var.

Teknolojileri yalnız adlarıyla değil, bu uygulamadaki sorumlulukları ve getirdikleri bakım yüküyle değerlendiriyorum.

ASP.NET Core MVC & Razor

Form ve kayıt ağırlıklı iş akışları, sunucuda sayfa üretimi ve C# ile ortak uygulama akışı içinde ele alınabiliyor. Bootstrap 5 duyarlı arayüzün temelini oluşturuyor.

Karşılığı Arayüz sunucuya bağlı; ayrı bir native istemci farklı bir entegrasyon çalışması gerektiriyor.

EF Core & iki veritabanı sağlayıcısı

Ortak model ve veri erişimi, yerel SQLite kullanımı ile PostgreSQL dağıtımını aynı uygulamada destekliyor. Her sağlayıcının migration zinciri ayrı tutuluyor.

Karşılığı Tarih/saat, kısıtlar ve eşzamanlılık davranışları sağlayıcılar arasında ayrıca doğrulanmalı; SQLite testi tek başına PostgreSQL kabulü değil.

ASP.NET Core Identity

Hesap ve kimlik doğrulama akışı için framework altyapısını kullanıyorum. İşlem erişimini rollerle ve üyelik durumunu değerlendiren politikalarla sınırlandırıyorum.

Karşılığı Giriş yapmış olmak her işleme yetki vermiyor. Yetki ve üyelik kuralları sunucuda ayrı denetlenmeli.

Transaction & eşzamanlılık kontrolü

Yoklama akışında transaction ve oturum kontrolleri, mali kayıtlarda sürüm alanıyla iyimser eşzamanlılık kontrolü kullanılıyor. Benzersiz indeksler tekrar eden kayıtları sınırlandırıyor.

Karşılığı Bir çakışma yalnız veritabanı hatası olarak bırakılamaz; kullanıcıya kaydı yeniden değerlendirebileceği bir sonuç dönmeli.

Çıktı ve teslimat

ClosedXML ile faaliyet verisinden sunucuda Excel çıktısı üretiyorum. Bildirimlerde ortak kayıt ve alıcı modeli, uygulama içi görünüm ile e-posta teslimatını ayırıyor; bir teslimat hatası kaydedilmiş iş verisini geri almıyor.

06 / TEST VE GELİŞTİRME DURUMU

Çalışan akışlar.
Açık sınırlar.

xUnit ve ASP.NET Core test altyapısıyla iş kurallarını ve beklenen hata davranışlarını doğruluyorum.

  • Kimlik & erişimHTTP üzerinden giriş ve yetkilendirme regresyon senaryoları.
  • Veri & eşzamanlılıkİlişkisel kısıtlar, paralel kayıtlar ve mali kayıt çakışmaları.
  • Yoklama & zamanQR geçerliliği, konum kararları ve UTC / yerel zaman sözleşmeleri.
  • Sorgu & sağlayıcıSayfalama ve sorgu sayısı regresyonları; PostgreSQL’e özel test senaryoları.

Geliştirme devam ediyor

Native push ve MFA için altyapı çalışmaları var; aktif istemci entegrasyonu veya üretimde etkin MFA kullanımı olarak sunulmuyor. Excel faaliyet çıktısı mevcut; resmî onay, imza ve teslim akışı açık.

MÜHENDİSLİK ODAĞIM

İş kuralını anlamak.
Uygulamada karşılığını kurmak.

Backend, veri modeli, arayüz ve test çalışmalarını birlikte ele aldığım bu yaklaşımı, geliştirebileceğimiz işler için konuşabiliriz.