Yazılım
- Anasayfa
- Yazılım
Özel Yazılım Nedir ve Hangi İhtiyaçlarda Tercih Edilir
Kadıköy web yazılım hizmeti, işletmeye ait iş kurallarını temel alarak tarayıcıda çalışan bir yönetim sistemi kodlanmasını kapsar. Ortaya çıkan ürün, masaüstüne program yüklemeden bilgisayar, tablet ve telefondan oturum açılarak kullanılır. Kayıtlar merkezi bir sunucuda tutulduğu için tüm çalışanlar aynı güncel veriyi görür. Tipik örnekler arasında rezervasyon modülü, servis talep takibi, üretim emri izleme, personel vardiya çizelgesi ve B2B sipariş portalı sayılabilir. Teknik açıdan sistem üç parçaya ayrılır: kullanıcının etkileşime girdiği arayüz, hesaplama ve doğrulama işlerini yürüten arka uç, kalıcı bilgiyi barındıran depolama katmanı. Bu ayrım, bir bölümde yapılan değişikliğin diğerlerini bozmadan yayına alınmasına imkân tanır. Erişim, internet bağlantısı olan her konumdan yetkiye bağlı olarak sağlanır.
Özel geliştirmeye geçme kararı birkaç ölçütle değerlendirilir. Birincisi süreç uyumudur: paket ürünlerin sunduğu akış, işletmenin onay zinciri veya fiyat hesaplama kurallarıyla örtüşmüyorsa uyarlama maliyeti hızla artar. İkincisi bağlantı ihtiyacıdır; muhasebe, kargo ve tahsilat servisleri tek merkezden yönetilmek isteniyorsa esnek bir arka uç gerekir. Üçüncüsü veri egemenliğidir: müşteri kayıtlarının yurt içindeki bir sunucuda, işletme kontrolünde kalması şart olabilir. Dördüncüsü kullanıcı başına ödenen abonelik bedelleridir. Kadıköy yazılım taleplerinde bu dört başlık ilk toplantıda tek tek puanlanır. Sonuç düşük çıkarsa mevcut bir bulut aboneliğiyle ilerlemek önerilir; yüksek çıkarsa kapsam çalışmasına başlanır. Mağaza, klinik, restoran ve dağıtım firması gibi işletmelerde bu ölçütler sıkça yüksek çıkar.
WordPress, Drupal veya Joomla gibi içerik yönetim sistemleri metin, görsel ve menü düzenlemek üzere kurgulanmıştır. Sipariş onayı, stok düşümü ya da çok aşamalı fiyatlandırma gibi işlevler bu ürünlere eklenti ile kazandırılır. Her eklenti farklı bir geliştiriciden geldiği için sürüm çakışması riski doğar, gereksiz veritabanı tabloları çoğalır ve saldırı yüzeyi büyür. Sıfırdan hazırlanan bir yazılımda ise yalnızca gereken tablolar ve uç noktalar bulunur, iş mantığı tek bir kod tabanında toplanır. Dezavantajı, başlangıç bütçesinin daha yüksek ve teslim takviminin daha uzun olmasıdır. Öte yandan eklenti lisansı, kullanıcı sayısına bağlı ücret ve tema güncellemesi gibi tekrarlayan giderler ortadan kalkar; toplam sahip olma maliyeti birkaç yıllık dönemde hesaplanır.
Web Tabanlı Sistemin Teknik Mimarisi ve Entegrasyon Altyapısı
Arka uç için yaygın seçenekler Laravel (PHP), Django veya FastAPI (Python), Express ya da NestJS (Node.js) ve ASP.NET Core’dur. Karar verilirken ekip yetkinliği, barındırma bütçesi, beklenen eş zamanlı istek sayısı ve uzun vadeli destek süresi birlikte tartılır. Kalıcı veri çoğunlukla PostgreSQL veya MySQL gibi ilişkisel bir motorda saklanır; tablolar arası bağlar yabancı anahtarlarla korunur. Arama yoğun ekranlarda Elasticsearch, oturum ve geçici veride Redis yardımcı rol üstlenir. Kod, Docker konteynerleri içinde paketlenerek her ortamda aynı biçimde çalışacak hale getirilir. Geliştirici, hazırlık (staging) ve üretim sunucuları ayrı kurulur; canlı veriye doğrudan müdahale edilmez. Sunucular yurt içi veri merkezinde veya bölge seçimi yapılabilen bir bulut hizmetinde konumlandırılır.
Arayüz ile arka uç arasındaki haberleşme, REST veya GraphQL tipinde bir API (uygulamaların birbirine istek gönderdiği tanımlı uç noktalar) üzerinden yürür. Aynı uç noktalar ileride bir mobil istemci, bayi ekranı ya da raporlama aracı tarafından da kullanılabilir. Her istek, oturum açmış kişinin kimliğini taşıyan imzalı bir anahtarla doğrulanır ve dakika başına istek sınırı (rate limit) uygulanır. Yetkilendirme rol tabanlı kurgulanır: süper yönetici, şube sorumlusu, satış temsilcisi, depo görevlisi ve son kullanıcı gibi profiller açılır. Okuma, ekleme, düzenleme, silme ve onaylama izinleri her profil için ayrı işaretlenir. Bir personel ayrıldığında hesabı pasife alınır, geçmiş işlem kayıtları silinmeden korunur. Şifre sıfırlama ve oturum zaman aşımı kuralları da bu katmanda belirlenir.
Dış servis bağlantıları kurulurken her sağlayıcının resmi API belgesi esas alınır. Tahsilat için sanal POS hizmeti veren kuruluşların altyapısı entegre edilir; 3D Secure adımı banka sayfasında tamamlanır ve kart numarası sistemde tutulmaz. Bilgilendirme mesajları ve doğrulama kodları, operatör onaylı SMS sağlayıcılarının gönderim servisiyle iletilir. E-fatura ve e-irsaliye belgeleri, Gelir İdaresi’nin yetkilendirdiği özel entegratör firmalar aracılığıyla düzenlenir. Ön muhasebe programlarıyla cari, tahsilat ve fatura eşitlemesi yapılır. Kargo firmalarının servisleri üzerinden barkod oluşturma, gönderi kaydı açma ve teslim durumu sorgulama otomatik hale getirilir. Bağlantı hatası oluştuğunda istek kuyruğa alınır ve belirli aralıklarla tekrar gönderilir. Her sağlayıcı için önce sandbox (deneme) hesabında sınama yapılır, canlı anahtarlar ancak sonra devreye girer.
Proje Hangi Aşamalarla Planlanır, Kodlanır ve Yayına Alınır
Bir yazılım projesi, kapsamın belgelendiği keşif aşamasıyla açılır. Uygulamayı kullanacak her birimden bir temsilciyle görüşme yapılır; mevcut formlar, raporlar ve elle yürütülen işler toplanır. Bu girdilerden gereksinim dokümanı hazırlanır. Belgede kullanım durumları (use case), ekran listesi, iş kuralları, rol-izin tablosu, hız ve erişilebilirlik gibi işlevsel olmayan beklentiler ile proje dışında bırakılan konular yer alır. Her madde ölçülebilir bir kabul koşuluna bağlanır. Takvim ve fiyat, doküman onaylandıktan sonra çıkarılır; modül adedi, dış servis bağlantısı sayısı, eski kayıtların aktarımı ve özel rapor ihtiyacı bu hesabı belirleyen başlıca değişkenlerdir. Kapsama sonradan eklenen işler değişiklik talebi olarak ayrıca fiyatlandırılır. Onaylı belge iki tarafın imzasıyla sürüm numarası alır.
Kapsam onayından sonra veritabanı tasarımı yapılır. Bu çalışmada sistemin tutacağı nesneler, örneğin cari hesap, teklif, stok kalemi ve ödeme hareketi, alanlarıyla birlikte listelenir; bire çok ve çoka çok ilişkiler belirlenir. Normalizasyon (aynı bilginin birden fazla tabloda tekrar etmemesi) kuralları uygulanır, indekslenecek sütunlar seçilir. Şema onaylandıktan sonra tel kafes (wireframe) çizimleri ve tıklanabilir prototip hazırlanır. Prototip gerçek veri işlemez; amacı menü akışını, form sırasını ve liste filtrelerini kodlama öncesinde görünür kılmaktır. Kullanıcı temsilcileri prototipi inceleyip not düşer, düzeltilen sürüm onaylanınca arayüz kodlamasına geçilir. Bu sıralama, ilerideki yapısal değişiklik riskini düşürür. Şema değişiklikleri sonradan göç (migration) dosyalarıyla sürümlenir. Prototip aşaması çoğunlukla bir ile üç hafta arasında tamamlanır.
Geliştirme, Scrum yöntemine göre genellikle 10 iş günlük sprintlere bölünür. Her döngünün başında iş listesinden öncelikli maddeler alınır; döngü sonunda tamamlanan özellikler hazırlık sunucusunda canlı olarak gösterilir. Müşteri temsilcisinin geri bildirimi bir sonraki planlamaya eklenir. Kod incelemesi (code review) yapılmadan hiçbir değişiklik ana dala birleştirilmez. Son sprintten sonra regresyon testi, yani önceki işlevlerin bozulmadığının kontrolü yapılır. Yayın günü veritabanı göçleri çalıştırılır, ortam değişkenleri tanımlanır, DNS kaydı ve TLS sertifikası yapılandırılır. Canlıya geçişten sonraki ilk iki hafta destek ekibi hata kayıtlarını yakından izler ve kullanıcılara ekran bazlı eğitim verilir. Sprint uzunluğu ve toplam döngü sayısı proje planında önceden ilan edilir. Her döngü kısa bir değerlendirme toplantısıyla kapanır.
Test, Güvenlik ve KVKK Uyumu Hangi Kontrollerle Sağlanır
Doğrulama üç seviyede yapılır. Birim testleri, fiyat hesaplama veya stok düşme gibi tek bir işlevi izole ederek girdi-çıktı ilişkisini sınar. Entegrasyon testleri, birden fazla bileşenin birlikte çalıştığı akışları kontrol eder: veritabanına kaydedilen bilginin API yanıtına doğru yansıması ya da kargo servisinden gelen durumun siparişe işlenmesi bu gruba girer. Kabul testi (UAT) son adımdır; işletme kullanıcıları gereksinim belgesindeki koşulları gerçek iş akışıyla tek tek dener ve onay formunu imzalar. Otomatik testler GitHub Actions veya GitLab CI gibi bir sürekli entegrasyon hattında her birleştirme isteğinde koşturulur. Kod kapsama oranı raporlanır ve kritik modüller için alt sınır belirlenir. Kabul testi tamamlanmadan canlı yayına geçilmez.
Uygulama güvenliği, OWASP’ın (Open Web Application Security Project) yayımladığı on maddelik risk listesine göre denetlenir. Bu listede erişim kontrolü ihlalleri, kriptografik hatalar, enjeksiyon saldırıları, güvensiz yapılandırma, eskimiş bağımlılıklar ve kimlik doğrulama zayıflıkları bulunur. Karşı önlem olarak ORM katmanında hazırlanmış sorgular, sunucu tarafında girdi temizleme, içerik güvenlik politikası (CSP) başlıkları ve oturum çerezlerinde HttpOnly ile Secure bayrakları kullanılır. Trafik HTTPS üzerinden TLS 1.2 veya üstüyle taşınır. Kimlik numarası, telefon gibi hassas sütunlar veritabanında şifreli tutulur; anahtarlar kod deposunda değil, ayrı bir gizli anahtar kasasında saklanır. Parolalar tuzlanmış özet fonksiyonlarıyla kaydedilir. Dış uzman eliyle her yıl tekrarlanan bir sızma testi yapılması önerilir.
Olay kayıtları iki gruba ayrılır: teknik hatalar ve kullanıcı eylemleri. Başarısız giriş, rol değişikliği, toplu silme ve veri dışa aktarma gibi eylemler zaman damgası ve IP adresiyle denetim izine işlenir; bu kayıtlar değiştirilemez biçimde saklanır. Veritabanı her gece tam, gün içinde artımlı olarak yedeklenir ve kopyalardan biri farklı bir veri merkezine gönderilir. Felaket kurtarma belgesi, olası kesintide geri dönüş sırasını ve hedeflenen süreleri tanımlar; yedekten geri yükleme en az üç ayda bir prova edilir. 6698 sayılı KVKK gereğince kişisel veri envanteri çıkarılır, aydınlatma ve rıza metinleri ilgili formlara bağlanır, saklama süresi dolan kayıtlar otomatik imha edilir. Veri sorumlusu bilgileri ve başvuru kanalı da sistemde yer alır.
Performans, Teslim Paketi ve Bakım Desteği Neleri Kapsar
Sayfa ve API yanıt sürelerini düşük tutmak için ölçüm temelli ilerlenir. APM (uygulama performans izleme) araçlarıyla en yavaş sorgular tespit edilir; eksik indeksler eklenir, N+1 sorgu sorunu (her satır için ayrı sorgu atılması) toplu yüklemeyle giderilir. Değişmeyen sonuçlar önbelleğe alınır, statik dosyalar sıkıştırılarak içerik dağıtım ağından sunulur. PDF üretimi, toplu SMS veya gece raporu gibi ağır işler kuyruk işleyicilerine devredilir, böylece kullanıcı ekranı beklemez. Trafik arttığında sunucuya kaynak ekleme (dikey) veya aynı uygulamanın birden çok kopyasını yük dengeleyici arkasında çalıştırma (yatay) yoluna gidilir. Okuma yoğun sistemlerde veritabanı için salt okunur kopyalar açılır. Hedef yanıt süreleri gereksinim belgesinde milisaniye cinsinden belirtilir.
Proje kapanışında teslim paketi şu bileşenlerden oluşur: sürüm geçmişiyle birlikte tam kaynak kod deposu, veritabanı şeması ve göç dosyaları, uç nokta listesini içeren API belgesi, sunucu kurulum adımları ve rol bazlı kullanım kılavuzu. Barındırma hizmeti, alan adı kaydı, bulut depolama, sanal POS ve mesaj gönderim hesapları baştan müşteri şirketinin unvanıyla açılır. Ajans bu hizmetlere davet edilen ikincil kullanıcı olarak erişir ve iş bittiğinde erişimi kaldırılabilir. Tüm yönetici şifreleri teslim sırasında yenilenir. Sözleşmede kodun mülkiyetinin müşteriye geçtiği ve üçüncü taraf açık kaynak bileşenlerin lisans koşulları açıkça belirtilir. Teslim tutanağında her bileşenin sürüm numarası ve teslim tarihi kaydedilir. Belgeler Markdown veya PDF biçiminde depoya eklenir.
Canlıya alınan yazılımın sürdürülmesi için yıllık veya aylık bakım anlaşması yapılır. Anlaşma; işletim sistemi ve çatı sürümü yükseltmelerini, güvenlik yamalarını, yedek doğrulamasını ve sunucu kaynak takibini kapsar. Arızalar kritik, yüksek, orta ve düşük olarak sınıflandırılır; her sınıf için ilk yanıt ve çözüm süresi taahhüdü yazılır. Destek talepleri e-posta yerine bir bilet sistemi üzerinden açılır, böylece her talebin geçmişi izlenebilir. Yeni ekran, ek entegrasyon veya rapor gibi geliştirmeler bakım ücretine dahil değildir; ayrı teklifle planlanır. Altı ayda bir bağımlılık güncelliği ve yanıt süreleri raporlanır. Bakım sırasında yapılan her güncelleme önce hazırlık sunucusunda denenir, ardından canlıya aktarılır. Acil güvenlik yamaları ise bekletilmeden uygulanır.
