← Projeler

C# ile araç ve yedek parça stok yönetimi

Windows Forms ile araç kataloğu, parça stokları, müşteri talepleri ve satıcı onay akışını yöneten masaüstü uygulaması.

Rol
Yazılım geliştirici
Kurum
Kocaeli Üniversitesi
Dönem
2023 – 2024
Teknolojiler
C# · .NET Framework · Windows Forms · JSON.NET · LINQ
AracStok müşteri, satıcı ve yönetici işlemlerini JSON kayıtlarına bağlayan uygulama akışı.

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.

Audi A3 seçimi üzerinden donanım, parça listesi ve mevcut miktarlar. Talep gönderme işlemi aynı ekranda.
Müşteri kataloğu Audi A3 seçimi üzerinden donanım, parça listesi ve mevcut miktarlar. Talep gönderme işlemi aynı ekranda.

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.

Araç bilgileri ve beş yedek parçanın başlangıç miktarları tek formda tanımlanıyor.
Araç kaydı oluşturma Araç bilgileri ve beş yedek parçanın başlangıç miktarları tek formda tanımlanıyor.
Orijinal satıcı ekranından ayrıntı: araç listesi ile seçilen parçanın miktarını güncelleyen alanlar. Görsel, okunabilirlik için ilgili bölgeye kırpıldı.
Stok ekranına yakından bakış Orijinal satıcı ekranından ayrıntı: araç listesi ile seçilen parçanın miktarını güncelleyen alanlar. Görsel, okunabilirlik için ilgili bölgeye kırpıldı.

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.

Orijinal rapordaki parça, zaman ve onay durumu listesi. Bu küçük ekran kesiti talep geçmişini gösteriyor.
Talep sonuçları Orijinal rapordaki parça, zaman ve onay durumu listesi. Bu küçük ekran kesiti talep geçmişini gösteriyor.

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ı.