+
Skip to content

GulaySahin/reCapProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

GIF

ETIYACAMP RENT A CAR PROJECT 👨‍🎓, BACKEND 🚀 ✍!

Bu proje bir online araç kiralama projesidir. Kurumsal, Katmanlı Mimari yapısı kullanılarak SOLID prensiplerine uyularak clean code yazılması amaçlanmış , Java dili ile yazılmıştır.

Katmanlar
🧷WebAPI
🧷Business
🧷Core
🧷DataAccess
🧷Entities

Bu Projede Kullanılan Teknolojiler

✔PostgreSql
✔Spring Data JPA
✔Validation
✔Lombok
✔Cloudinary
✔Swagger UI
✔Error Handling
✔Result Türleri

📩 Connect with me:

linkedin | LinkedInLinkedIn
gulay_431@hotmail.com

GEREKSİNİMLER

1- Yeni bir proje oluşturunuz. Adı ReCapProject olacak. Entities, DataAccess, Business oluşturunuz. Bir araba nesnesi oluşturunuz. "Car" Brand ve Color nesnelerini oluşturunuz.(BrandId,BrandName… Özellik olarak : Id, BrandId, ColorId, ModelYear, DailyPrice, Description alanlarını ekleyiniz. (Brand = Marka)

2- 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 : Dto oluşturup 3 tabloya join yazınız)

3- Core katmanında Results yapılandırması yapınız.

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

5- WebAPI katmanını kurunuz. Business katmanındaki tüm servislerin Api karşılığını yazınız. Swagger’da test ediniz.

6- Validation desteği ekleyiniz.

7- 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)

8- Brand listesinde herhangi bir marka seçildiğinde, o markaya ait arabaları listeleyiniz. Color listesinde herhangi bir renk seçildiğinde, o renge ait arabaları listeleyiniz. Car listesinde bir arabaya tıklandığında o arabaya ait detay sayfası oluşturunuz. Bu sayfada bu araca ait resimleri de gösteriniz.

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

10- Markalar tekrar edemez. (Brand-add)

11- (Düzeltme) Kredi kartı formatı control edilmeli. Regex

12- Arabalar bakıma gönderilebilmelidir. Kirada olan bir araba bakıma gönderilemez. Bakımda olan bir araba kiralanamaz. Bakımda olan araba tüm listelerde listelenmemelidir.

13- Şirketimiz büyüdü. Kurumsal müşteriler araba kiralayabilmelidir. (Kurumsal Müşteri – vergiNo, Şirket ismi,email…. Kiralama kuralları bireysel müşteri ile aynıdır.

14- Tüm kiralamalar sonucunda fatura kesilmelidir. (Fatura No, Oluşturma Tarihi, Kiralama tarihleri, Toplam kiralama gün sayısı, kiralama tutarı) Belirli tarih aralığında tüm faturalar listelenebilmelidir. Müşteriye ait faturalar listelenebilmelidir.

15- Farklı illerde şubeler açmaya karar verdik. Arabalara şehir bilgisi eklenmelidir. Şehir bilgisine göre arabalar listelenebilmelidir. Kiralamada alış şehri – dönüş şehri bilgisi eklenmelidir. Araba teslim edildiğinde, dönüş şehri farklıysa, araba dönüş ili portföyüne girmelidir.

16- Arabalara güncel kilometre bilgisi eklenmelidir. Kiralamalarda başlıngıç kilometresi girilmelidir. Kiralama Dönüşlerinde dönüş kilometresi bilgisi girilmelidir. Bu bilgi arabada da güncellenmelidir.

17- Arabaya ait hasarlar girilebilmelidir. (Id,CarId,HasarBilgisi)

18-Fake pos servisi ekleyiniz.Servis olumsuz döndüğünde kiralama gerçekleştirilmemelidir.

19-Araba farklı ilde teslim edildiğinde kiralama bedeline 500 tl ek hizmet bedeli eklenmelidir.

20-Hizmet kalitesini arttırmaya karar verdik.Araba kiralanırken ek hizmetler satın alınabilir.Bebek koltuğu,scooter.

21-Ek hizmetler eklenebilmeli,güncellenebilmeli,listelenebilmelidir.Ek hizmetler isim olarak tekrar edemez.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载