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.
- Rolüm
- Backend, arayüz ve veri katmanı geliştirme
- Platform
- Mobil uyumlu web uygulaması
- Durum
- Geliştirme devam ediyor
Birbirine bağlı süreçler.
Belirgin sorumluluklar.
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.
- ASP.NET Core
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.
- Ayrı proje
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.
- Sağlayıcıya özel
Veritabanı & migration
PostgreSQL · SQLite
Sağlayıcı yapılandırmayla seçilir; her sağlayıcının migration zinciri ayrıdır.
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.
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.
Ü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.
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.
Katılım kaydedilir
İşlem içinde oturum yeniden denetlenir; katılım durumu kaydedilir. Tekrarlanan istekler mevcut katılımı yeniden saymaz.
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.
İş 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.
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.
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.
Ç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.
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.
