/ReCapSolution

ReCap RentACar Project

Primary LanguageC#

ReCapProject - Rent A Car System

bannerResim

📌Proje Hakkında

N-Katmanlı Solid mimari yapısı ile hazırlanan, EntityFramework kullanılarak CRUD işlemlerinin yapıldığı, kayıt olma giriş yapabilme Jwt teknikleri ile token alarak güvenliği sağlanan, Caching, Validation, Transaction,Performance işlemlerini Autofac paketi ile oluşturulan Aspectleri kullanarak gerçekleştiren, Wpf arayüzü ile çalışan, araç Kiralama iş yerlerine yönelik örnek bir projedir.Proje içerisinde data kaynakları kolayca değiştirilebilir, yeni nesneler eklenebilir, bütün iş istekleri değiştirilebilir.Yapılacak olanlar eski kodları bozmadan sürekli ekleme ile yapılabilir.Proje sürdürülebilirlik prensibini yerine getirmektedir.

Backend Teknolojileri ve Teknikleri

MsSql, Asp.Net Core for Restful api,EntityFramework Core,Autofac,FluentValidation
Layered Architecture Design Pattern,IOC, AOP, Aspects, JWT

📚Katmanlar

entities

Entities Katmanı

Entities Katmanı'nda Dtos ve Concrete olmak üzere iki adet klasör bulunmaktadır.Concrete klasörü veri tabanından gelen somut nesnelerin özelliklerini tutmak için oluşturulmuştur.Dtos klasörü ise veri tabanında birbiri ile ilişkili olan nesnelerin ilişkili özelliklerini birlikte kullanabilmek için oluşturulmuştur.

📁Dtos
      :page_facing_up: CarDetailDto.cs
      :page_facing_up: RentalDetailDto.cs
      :page_facing_up: UserForLoginDto.cs
      :page_facing_up: UserForRegisterDto.cs

📁Concrete
      :page_facing_up: CarImage.cs
      :page_facing_up: Customer.cs
      :page_facing_up: Rental.cs
      :page_facing_up: Brand.cs
      :page_facing_up: Car.cs
      :page_facing_up: Color.cs

corekatmani

Core Katmanı

Core Katmanı evrensel bir katmandır. Geliştirilecek her projede kullanılabilir, isimlendirme kuralları ve oluşturulma düzeni sebebi ile oldukça kullanışlıdır. Core Katmanı'nda DataAccess, Entities, Utilities, Aspects, CrossCuttingConcerns, DependencyResolvers ve Extensions klasörleri bulunmaktadır. Aspects kasörü Caching, Validation, Transaction,Performance işlemlerinin Autofac attribute altyapısını hazırlar.CrossCuttingConcerns klasöründe Validation ve Cache yönetimi proje içerisinde, dikey katmanda dinamik çalışabilmesi için (generics)genelleştirildi.DependencyResolvers klasöründe servis konfigrasyonları yapıldı.DataAccess klasöründe bütün CRUD operasyonları ve DataBaseler generic olarak yapılandırıldı.Extensions içerisinde Jwt için yönetimi kolaylaştıran genişlemeler yapıldı.Utilities içerisinde iş metodu kurallarının yönetimi kolaylaştırıldı, belge ekleme işlemleri kodlandı,Aspectlerin araya girebilmesi için alt yapı hazırlandı ve ezilmeyi bekliyor, Results yapısı kurularak hata yönetimi yapılandırıldı, Jwt ve hashing teknikleriyle güvenlik yapılandırıldı.

📁Core
      :page_facing_up: Autofac
      :page_facing_up: CrossCuttingConcerns
      :page_facing_up: DataAccess
      :page_facing_up: DependencyResolvers
      :page_facing_up: Entities
      :page_facing_up: Extensions
      :page_facing_up: Utilities

dataaccesskatmani

Data Access Katmanı

Data Access Katmanı'nda Abstract interfaceleri barındıran ve Concrete classları barındıran klasörler bulunmaktadır.Crud operasyonlarını core katmanından miras alarak gerçekleştirmektedir.Gelebilecek iş kodları için altyapı burada hazırlanır.Objelerin data transferleri için kullanacağı data baseler ve varlıkların bağlantıları Data Access Katmanı'nda yapılandırıldı.

📁DataAccess
      :page_facing_up: Abstract
      :page_facing_up: EntityFramework

business

Business Katmanı

Business Katmanı'nda altyapısı hazır olan bütün serviserin yönetimleri yazıldı.Sürekli değişebilen iş kodlarımızı altyapıyı değiştirmeden ekleyebildiğimiz katmandır.Sürekliliğin korunduğu ReCap projemde birçok değişikliğin sadece burada yapılıyor olması yönetimi, sürekli gelişimi çok kolaylaştırmaktadır.

📁Concrete
      :page_facing_up: AuthManager.cs
      :page_facing_up: BrandManager.cs
      :page_facing_up: CarImageManager.cs
      :page_facing_up: CarManager.cs
      :page_facing_up: ColorManager.cs
      :page_facing_up: CustomerManager.cs
      :page_facing_up: RentalManager.cs
      :page_facing_up: UserManager.cs


Projeden görüntüler ReCap Frontend

image0


image1


image2


image3


image4


image5


image6