CarRental, Engin Demiroğ'un yazılım kampı kapsamında geliştirdiğim, modern yazılım mimarisi prensiplerini uygulayan bir araç kiralama sistemi backend projesidir. Bu proje, C# programlama dili ve .NET Core 6 framework'ü kullanılarak geliştirilmiştir.
Proje, yazılım geliştirmenin en iyi uygulamalarını takip eden katmanlı bir mimari üzerine inşa edilmiştir:
Entities Layer: Sistemdeki temel veri modellerini (Car, Customer, Rental, Brand, Color vb.) içerir.
Data Access Layer: Veritabanı işlemlerini yönetir. Repository Design Pattern kullanılarak veri erişim katmanı soyutlanmıştır. Bu sayede veritabanı teknolojisini değiştirmek gerektiğinde sadece ilgili implementasyonun değiştirilmesi yeterli olur.
Business Layer: İş kurallarının ve validasyon işlemlerinin gerçekleştirildiği katmandır. Araç kiralanabilirlik durumu, müşteri limitleri, ödemeler gibi iş kuralları bu katmanda yönetilir.
API Layer: Dış dünya ile iletişimin sağlandığı RESTful Web API katmanıdır. HTTP metotları (GET, POST, PUT, DELETE) kullanılarak sistem fonksiyonlarına erişim sağlanır.
Sistem aşağıdaki temel fonksiyonları desteklemektedir: