Araç Kiralama Projesi
Merhaba, bu proje sayın Engin Demiroğ'un ücretsiz olarak sunduğu 'Yazılım Geliştirici Yetiştirme Kampı' için verilen ödevler doğrultusunda geliştirilmiştir.
Kullanılan Teknolojiler & Yapılar
- Back-End
- C# Vers. 7.3
- Restful Web Api Vers. .Net Core 3.1
- Katmanlı Mimari
- Temel Result Türü
- Interceptor, Aspectler
- Cache, Validate, Authorize Aspect
- Autofac
- AutoFilterer
- Fluent Validation
- Json Web Token
- Repository Design Pattern
- Asenkron Yapı
- Front-End
- Angular 11
- Bootstrap 5.0
- HttpClient Interceptor
- Temel Guard
- Özel Pipeler
Temel Ayarlar
ReCapProject içerisinde Libraries > DataAccess > Concrete > EntityFramework > Contexts içerisinde bulunan ReCapContext dosyasının içerisine kullanılacak veritabanı türünün ayarları ve bağlantı cümlesi yapılmalıdır. Varsayılan ayarlar Sql Server içindir.
Token ayarları için, Presentations > WebAPI > appsettings.json dosyasına token kimliği ile ilgili ayar yapılması önerilir.
ReCapProject içerisinde Presentations > AngularUI > src > environments klasörü içerisinde bulunan environment.ts dosyasının içerisindeki apiUrl adlı değişkene Web API bağlantısı için gerekli ip adresi ve portu verilmelidir.
Kullanım
Komut İsteminde AngularUI klasörü seçili olmalıdır.
Aşağıdaki kod, projede kullanılan ancak sizin cihazınıdaki eksik paketleri indirecektir.
npm install
Aşağıdaki kod, Angular projesini ayağa kaldırmak için kullanılır.
ng serve --open
Temel Tablo Tanımları
Marka & Renk
Sisteme markalar ve renkler tanımlanır, kayıt edilecek araçların markası ve rengi seçilir.
Araç
Araçlar; Marka, Renk, Model Yılı, Günlük Fiyat, Açıklama ve En Düşük Kredi Skoru alanlarına sahiptir.
Müşteri
Müşteriler; Firma Adı, İsim, Soyisim, E-Posta, Şifre ve Durum alanlarına sahiptir.
Kiralama
Kiralama; Araç, Müşteri, Kira Tarihi, Kira Bitiş Tarihi alanlarına sahiptir.
Ödeme
Ödeme; Kira Kimliği, Ödenen Fiyat alanlarına sahiptir.
Müşteri Kredi Kartları
Kredi Kartları; Müşteri, Kart Sahibinin Adı ve Soyadı, Kart Numarası, Son Kullanma Tarihi ve Cvv Kodu alanlarına sahiptir.
Özellikler
Araç İle İlgili
Her bir araç için 5 adet fotoğraf sınırı ayarlanmıştır. Fotoğraflar benzersiz isimlerle saklanır. Aracın hiç fotoğrafı yoksa varsayılan bir resim gösterilir.
Kira İle İlgili
Müşteri sistemi kullanarak istediği bir aracı belirlediği tarihler arasında kiralayabilir.
Müşterinin Findeks numarası hesaplanır, aracın Findeks Numarasıyla karşılaştırılır, müşterinin Findeks numarası büyükse aracı kiralayabilir.
Belirtilen tarihler arasında araç başka bir müşteriye kiralanmışsa ekranda uyarı çıkacaktır.
Kiralama işlemi bittikten sonra Ödeme Sayfası açılacaktır.
Ödeme İle İlgili
Ödeme sayfasında Kart bilgilerini doldurmak için bir form ve yan tarafında sanal bir kart tasarımı vardır. Sanal Kartın arasında daha önce müşteri bir kartını kayıt etmişse, kayıtlı kartlar listelenecektir. Kayıtlı bir kart seçildiği zaman gerekli alanlar otomatik doldurulacaktır.
Kart bilgileri girilip Ödemeyi Tamamla butonuna basınca ödeme işlemi tamamlanacak ve kartın sisteme kayıt edilip edilmeyeceği sorulur.
Kayıt İle İlgili
Kayıt olmayan birisi sistemde belirlenen sayfalara erişemez ve bir uyarı mesajı ile birlikte kayıt sayfasına yönlendirilir.
Kullanıcı İle İlgili
Kullanıcı menüden hızlıca kayıt olabilir ya da giriş yapabilir. Giriş yaptığı zaman aynı yerden profilini düzenleyebilir.
Yetki İle İlgili
Her kullanıcının yetkileri özelleştirilebilir. Back-End tarafında kullanılan her metot kullanıcının yetkileriyle çalışır. Kullanıcının yapmaya çalıştığı işlem için yetkisi yoksa durumla ilgili bir uyarı mesajı alır.