Skip to content

rzayevsahil/ReCapProject

Repository files navigation

Car Rental Backend 🚘 🔑


a+l


Contact Me 📫




Bu proje Araba Kiralama Sistemi ile ilgili bir projedir.Proje hem Çok katmanlı, hem Kurumsal Mimariler, hem de SOLID prensiplerine dayalı bir projedir.Önümüzdeki süreçlerde de projeye eklemeler yapılarak daha güzel bir proje haline getirilecektir.Kampda verilen adımlara uygun olarak gerçeklekleştirdiğim bu projeyi yakından inceleyelim.



Katmanlar

  • Öncelikle Proje 6 katmandan oluşmaktadır: Business, DataAccess, Entities, ConcoleUI, Core, WebAPI

katmanlar

1.Business Katmanı- Burada işle ilgili(iş kuralları) kodlar yer alır.Bu katman Abstract ve Concrete isimli klasörlerden oluşur.Abstract içinde soyut(yani interfaceler), Concrete içinde somut(yani class'lar) nesneler yer alır.

business

  • Sarı kutucuk - NuGet paketi --> Başkalarının yazdığı kodları(paket diyoruz) kullanıyoruz.Bu kodların ortak tutulduğu ve yönetildiği ortamın adına denir.
  • Kırmızı kutucuk - Business katmanının referans aldığı katmanlar
  • Yeşil kutucuk - Abstract klasörü içinde yer alan interface'ler
  • Mavi kutucuk - Abstract klasörü içindeki interface'lerin implemente edildiği yer

2.DataAccess Katmanı- Veriye erişmek için gerekli kodlar yazılan bu katman Abstract(soyut) ve Concrete(somut) isimli klasörlerden oluşur.

dataaccess

  • Kırmızı kutucuk - DataAccess katmanının referans aldığı katmanlar
  • Yeşil kutucuk - Abstract klasörü içinde yer alan interface'ler
  • Mavi kutucuk - Abstract klasörü içindeki interface'lerin implemente edildiği yer.Aynı zamanda burda IEntityFramework isimli klasörde biz veri tabanı nesneleriyle(kısaca tablolarla) yazdığımız kodlar arasında bağ kuruyoruz.

EntityFramework --> Veri tabanı tablolarıyla Nesne Yönelimli Programlama(OOP) arasında bir köprüdür.

  • Sarı kutucuk - NuGet paketi --> Başkalarının yazdığı kodları(paket diyoruz) kullanıyoruz.Bu kodların ortak tutulduğu ve yönetildiği ortamın adına denir.

3.Entities Katmanı - Veri tabanı nesneleri için oluşturulmuş olan bu katman Abstract(soyut) ve Concrete(somut) isimli klasörlerden oluşur.

entities

  • Sarı kutucuk - NuGet paketi --> Başkalarının yazdığı kodları(paket diyoruz) kullanıyoruz.Bu kodların ortak tutulduğu ve yönetildiği ortamın adına denir.
  • Mavi kutucuk - Abstract klasörü içindeki interface'lerin implemente edildiği yer

4.ConsoleUI Katmanı - Yaptığımız işlemlerin sonuçlarını göreceğimiz bir katman

consoleui

  • Kırmızı kutucuk - ConsoleUI katmanının referans aldığı katmanlar
  • Turuncu kutucuk - Bura main kısmıdır.Yani en sonda uyguladığımız işlemlerin sonucunu buradan görüyoruz.

5.Core Katmanı - Yaptığımız işlemlerin sonuçlarını göreceğimiz bir katman

core

6.WebAPI Katmanı - Yaptığımız işlemlerin sonuçlarını göreceğimiz bir katman

webapi



Database and Tables

  • Bir database(veri tabanı) oluşturmak için:
CREATE DATABASE ReCapDb

1 2


  • Tabloları oluşturmak için: ReCapDb --> Sağ CLick --> New Query
Create table Brands(
	BrandId	 int Primary key,
	BrandName varchar(50)
)


Create table Colors(
	ColorId	 int Primary key,
	ColorName varchar(20)
)



Create table Cars(
	Id int Primary key identity,
	BrandId int,
	ColorId int,
	ModelYear int,
	DailyPrice decimal,
	Descriptions varchar(200),
	Foreign key(ColorId) References Colors(ColorId),
	Foreign key(BrandId) References Brands(BrandId)
)

DİKKAT!!! nvarcahr yerine varchar kullanmak daha performanslı.Çünkü varchar kullanmadığımız karakter alanlarını boş bıraktığı halde, nvarchar onu boşluklarla doldurarak ekstradan bellek kaplamasına sebep oluyor

d1


  • Tabloya veri eklemek için: ReCapDb --> Sağ CLick --> New Query
Insert into Brands(BrandId,BrandName) values (1,'Audi'),(2,'BMW'),(3,'Hyundai'),(4,'Mitsubishi'),(5,'Nissan'),(6,'Mazda'),(7,'Porsche');

Insert into Colors(ColorId,ColorName) values (1,'Black'),(2,'White'),(3,'Silver'),(4,'Blue'),(5,'Red'),(6,'Brown'),(7,'Green');

Insert into Cars(BrandId,ColorId,ModelYear,DailyPrice,Description) values
(1,5,'2020',450,'AUDI Q8 - Red'),
(2,2,'2018',370,'BMW 2 Gran Coupé - White'),
(3,4,'2015',250,'HYUNDAI i10 - Blue'),
(4,7,'2016',290,'Mitsubishi Outlander - Green'),
(5,6,'2017',350,'NISSAN QASHQAI - Brown'),
(6,3,'2019',630,'MAZDA CX-5 - Silver'),
(7,1,'2021',720,'PORSCHE P911 Turbo S - Black');

About

𝙲𝚊𝚛 𝚁𝚎𝚗𝚝𝚊𝚕 𝙿𝚛𝚘𝚓𝚎𝚌𝚝 - 𝙱𝚊𝚌𝚔𝚎𝚗𝚍

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages