Parçayı bulmaktan talebi sonuçlandırmaya
Bir aracın markasını bilmek, doğru yedek parçayı bulmak için yeterli değil. Model, donanım ve eldeki miktar da seçimi belirliyor. AracStok’u bu akışı yönetmek için geliştirdim: müşteri uygun parçayı buluyor, talep oluşturuyor; satıcı talebi değerlendirip stok işlemini yapıyor.
Aralık 2023–Ocak 2024 döneminde geliştirdiğim uygulama C# ve Windows Forms üzerinde çalışıyor. Müşteri, satıcı ve yönetici için ayrı ekranlar; araç, parça ve talep için ayrı veri modelleri bulunuyor.
01 / Araç ve donanıma göre katalog
Müşteri marka seçtiğinde model listesi, model seçtiğinde donanım seçenekleri güncelleniyor. Yedek parçalar mevcut miktarlarıyla gösteriliyor. Böylece talep, yalnızca bir parça adından değil, seçilmiş araç bağlamından oluşturuluyor.
02 / Satıcı tarafında araç ve stok yönetimi
Satıcı yeni bir araç için marka, model, donanım ve parça miktarlarını girebiliyor. Mevcut araçları listeleyip bir parçanın stok miktarını güncelleyebiliyor. Bu iki işlem, katalog verisini tanımlama ve eldeki miktarı değiştirme olarak ayrı tutuluyor.
03 / Talep ve onay akışı
Müşteri talebi parça, araç bilgisi ve zaman damgasıyla kaydediliyor. Satıcı talepleri inceleyip kabul veya red işlemi yapabiliyor; müşteri de talep sonucunu takip ediyor. Kullanıcı ve araç kayıtlarını silme gibi yönetim işlemleri ayrı admin ekranında yer alıyor.
Kod tarafında: nesneler ve kalıcılık
Customer, Dealer ve Admin, ortak kullanıcı alanlarını User sınıfından alıyor. Car, donanım seçenekleri ve SparePart listesini taşıyor. Request talebi temsil ediyor; CarInventory katalog dosyasının okunup yazılmasını yönetiyor.
Kullanıcı, araç ve talep kayıtları JSON.NET ile üç JSON dosyasına yazılıyor. LINQ filtreleme ve seçim işlemlerinde; DataGridView ise kayıtların tablo olarak gösterilmesinde kullanılıyor. Kayıt formunda kullanıcı adı benzersizliği, parola, e-posta ve telefon biçimi kontrol ediliyor.
Geliştirme sırasında öğrendiklerim
Talebi yalnızca IsApproved ile temsil etmek, bekleme ve red durumlarını ayırmayı zorlaştırıyor. Daha açık bir durum modeli ve tekrar uygulandığında stok miktarını değiştirmeyen onay işlemi gerekiyor. JSON dosyalarından veritabanına geçiş de stok hareketlerini transaction içinde tutmayı mümkün kılar.
Bu proje bana bir masaüstü ekranını veri modeline bağlamanın yanında, stok miktarı gibi bir iş kuralının arayüzden bağımsız korunması gerektiğini gösterdi.
Sonuç
Araç kataloğu, parça stokları, müşteri talebi ve satıcı onayı tek masaüstü uygulamasında birleştirildi. Rol kalıtımı, JSON kalıcılığı ve olay tabanlı arayüz geliştirme, projenin öne çıkan teknik parçaları.