Angular'da custom directive ve custom form control yapılarını araştırınız.
RentACar projeniz için bunları kullanınız.
RentACar projenizde;
Login/Register yetenekleri getiriniz.
Kiralama esnasında müşterinin findeks puanını sorgulayacak sahte servis ekleyiniz.
Findeks puan aralığı 0-1900 arasındadır.
Araçların kiralanabilmesi için her aracın ayrı ayrı minimum findeks puanı olmalıdır. Bu puanı olmayan müşteriler araç kiralayamaz.
LocalStorage için servis yazınız. Ekleme/Getirme/Silme
Giriş ve register için nav'a butonlar ekleyiniz.
Eğer giriş yapılmamışsa nav'da bu butonlar olsun. Giriş yapılmışsa bu butonlar yerine müşteri adı ex: "Engin Demiroğ" yazsın.
Kullanıcı adını yazdığınız kısım açılır kutu olmalı.
Kullanıcı bilgilerini görüp güncelleyebilmelidir.
Kredi kartıyla ödeme alındığında kullanıcıya kredi kartını kaydedelim mi? Sorusu yöneltiniz. Kaydetmek isteyen müşteriye sonraki ödemede kayıtlı kredi kartını gösteriniz.
Readme dosyanızı güçlendiriniz.
Github linkini paylaşınız.
RentACar Projenizde;
Backend Custom Error Middleware ekleyip fluent validation için refactoring yapınız.
Reactive Forms kullanarak Brand, Color, Car Ekleme sayfalarını oluşturunuz.
Brand,Color,Car listesinde güncelleme butonu ekleyiniz. Tıklanan ilgili elemanın detay sayfasına yönlendirerek güncelleme imkanı veriniz.
Toast desteği veriniz.
Projenize ait github sayfanızı paylaşınız.
RentACar projenizde,
Car, Brand, Color için pipe ile arama desteği ekleyiniz.
Car sayfasına 2 adet açılır kutu ekleyiniz. Html-Select Option. Bu açılır kutularda sırasıyla Marka ve Renk listeleyiniz.
Açılır kutuların yanına "Filtrele" butonu ekleyiniz.
Filtrele butonuna tıklandığında apiden ilgili filtreye uygun arabaları listeleyiniz.
Araba detay sayfasında "Kirala" butonu ekleyiniz. Bu aracı kiralayabilecek sistemi yazınız. Araba hali hazırda başkası tarafından seçilen tarih aralığında kiralanmışsa, kiralama işlemi yapmayınız.
Kiralama işleminde tarihler seçildikten sonra, yeni bir sayfada kredi kartıyla ödeme desteği getiriniz.
Ödeme işlemi için api'de sahte bir banka servisi yazınız.
Tüm işlemler için Toastr desteği ekleyiniz.
Github adresinizi ekleyiniz.
Size güveniyorum. Yapacaksınız.
RentACar projeniz için:
Angular projesi oluşturunuz
Bootstrap entegrasyonu yapınız
Markaları listeleyiniz
Renkleri listeleyiniz
Müşterileri listeleyiniz
Arabaları listeleyiniz. (Arabaları listelerken BrandId yerine BrandName, ColorId yerine ColorName şeklinde gösteriniz)
Kiralamaları listeleyiniz (Rentals) CarId yerine BrandName, CustomerId yerine FirstName + LastName şeklinde gösteriniz.
Kodlarınızı githuba aktarıp paylaşınız.
RentACar projenize;
Cache, Transaction ve Performance aspectlerini ekleyiniz.
Github adresinizi paylaşınız.
RentACar projenize JWT entegrasyonu yapınız.
GitHub adresinizi paylaşınız.
Artık araştırma yapıp, yeni işlemleri projeye ekleyebilmemiz gerekiyor.
RentACar projenizde;
CarImages (Araba Resimleri) tablosu oluşturunuz. (Id,CarId,ImagePath,Date) Bir arabanın birden fazla resmi olabilir.
Api üzerinden arabaya resim ekleyecek sistemi yazınız.
Resimler projeniz içerisinde bir klasörde tutulacaktır. Resimler yüklendiği isimle değil, kendi vereceğiniz GUID ile dosyalanacaktır.
Resim silme, güncelleme yetenekleri ekleyiniz.
Bir arabanın en fazla 5 resmi olabilir.
Resmin eklendiği tarih sistem tarafından atanacaktır.
Bir arabaya ait resimleri listeleme imkanı oluşturunuz. (Liste)
Eğer bir arabaya ait resim yoksa, default bir resim gösteriniz. Bu resim şirket logonuz olabilir. (Tek elemanlı liste)
Github linkinizi paylaşınız.
Car Rental Projenize AOP desteği ekleyiniz.
ValidationAspect ekleyiniz.
Yazdığınız kodların Github linkini paylaşınız.
Car Rental Projenize FluentValidation desteği ekleyiniz.
Yazdığınız kodların Github linkini paylaşınız.
Car Rental Projenize Autofac desteği ekleyiniz.
Yazdığınız kodların Github linkini paylaşınız.
CarRental projenizde;
WebAPI katmanını kurunuz.
Business katmanındaki tüm servislerin Api karşılığını yazınız.
Postman'de test ediniz.
Kodlarınızı paylaşınız.
CarRental projenizde;
Kullanıcılar tablosu oluşturunuz. Users-->Id,FirstName,LastName,Email,Password
Müşteriler tablosu oluşturunuz. Customers-->UserId,CompanyName
Kullanıcılar ve müşteriler ilişkilidir.
Arabanın kiralanma bilgisini tutan tablo oluşturunuz. Rentals-->Id, CarId, CustomerId, RentDate(Kiralama Tarihi), ReturnDate(Teslim Tarihi). Araba teslim edilmemişse ReturnDate null'dır.
Projenizde bu entity'leri oluşturunuz.
CRUD operasyonlarını yazınız.
Yeni müşteriler ekleyiniz.
Arabayı kiralama imkanını kodlayınız. Rental-->Add
Arabanın kiralanabilmesi için arabanın teslim edilmesi gerekmektedir.
Car Rental Projenizde;
Core katmanında Results yapılandırması yapınız.
Daha önce geliştirdiğiniz tüm Business sınıflarını bu yapıya göre refactor (kodu iyileştirme) ediniz.
Not : İsteyenler Northwind projesindeki Core katmanını da ekleyebilir ama pekiştirmek için yeniden yazmanızı öneririm. Bu şekilde yapmak isteyenler CarRental/Solution Explorer Sağ Tık / Add /Existing Project/ Northwind içindeki Core klasöründe Core.csproj dosyasını ekleyebilirler. Bu şekilde yapanlar aşağıdaki 3. adımdan devam edebilirler.
Önerim aşağıdaki gibi yeniden yapmanızdır.
CarRental Projenizde Core katmanı oluşturunuz. IEntity, IDto, IEntityRepository, EfEntityRepositoryBase dosyalarınızı 9. gün dersindeki gibi oluşturup ekleyiniz. Car, Brand, Color sınıflarınız için tüm CRUD operasyonlarını hazır hale getiriniz. Console'da Tüm CRUD operasyonlarınızı Car, Brand, Model nesneleriniz için test ediniz. GetAll, GetById, Insert, Update, Delete. Arabaları şu bilgiler olacak şekilde listeleyiniz. CarName, BrandName, ColorName, DailyPrice. (İpucu : IDto oluşturup 3 tabloya join yazınız) Kodlarınızı Github hesabınızda paylaşıp link veriniz. Başkalarının kodlarını inceleyiniz. Beğenirseniz yıldız veriniz.
Araba Kiralama projemiz üzerinde çalışmaya devam edeceğiz.
Car nesnesine ek olarak;
- Brand ve Color nesneleri ekleyiniz(Entity)
Brand-->Id,Name
Color-->Id,Name
-
Sql Server tarafında yeni bir veritabanı kurunuz. Cars,Brands,Colors tablolarını oluşturunuz. (Araştırma)
-
Sisteme Generic IEntityRepository altyapısı yazınız.
-
Car, Brand ve Color nesneleri için Entity Framework altyapısını yazınız.
-
GetCarsByBrandId , GetCarsByColorId servislerini yazınız.
-
Sisteme yeni araba eklendiğinde aşağıdaki kuralları çalıştırınız.
Araba ismi minimum 2 karakter olmalıdır
Araba günlük fiyatı 0'dan büyük olmalıdır.
Ödevinize ait github linkini paylaşınız.
Kampımızla beraber paralelde geliştireceğimiz bir projemiz daha olacak. Araba kiralama sistemi yazıyoruz.
Yepyeni bir proje oluşturunuz. Adı ReCapProject olacak. (Tekrar ve geliştirme projesi)
Entities, DataAccess, Business ve Console katmanlarını oluşturunuz.
Bir araba nesnesi oluşturunuz. "Car"
Özellik olarak : Id, BrandId, ColorId, ModelYear, DailyPrice, Description alanlarını ekleyiniz. (Brand = Marka)
InMemory formatta GetById, GetAll, Add, Update, Delete oprasyonlarını yazınız.
Consolda test ediniz.
Önemli: Copy-Paste yasak fakat kamp projesinden destek almak serbest.
Kodlarınızı Github'a aktarıp paylaşınız. İncelediğiniz arkadaşlarınıza yıldız vermeyi unutmayınız.