Araç Kiralama Sistemi, (Nitelikli) Yazılım Geliştirici Yetiştirme Kampı'nda yapılan çalışmaları kapsayan bir projedir.
Proje, back-end arayüzde sunucu tarafından gerçekleştirilen C# dilinde, katmanlı yazılım kurumsal mimari yapısı, SOLID yazılım prensipleri, Web API, EntityFrameWork yapısı ile geliştirilmiştir. JWT entegrasyonu; Transaction, Cache, Validation ve Performance aspectlerinin implementasyonları gerçekleştirilmiş olup Validation için FluentValidation desteği, IoC için Autofac desteği eklenmiştir.
Projede kullanılacak veritabanı nesnelerini tutmak için oluşturulan katmandır.
Üç alt klasörden oluşmaktadır.
1.Abstarct
klasörü soyut nesneleri tutmak için (Abstarct
klasörü daha sonra geliştirilecek olan projeler içinde ortak kodlar içermesinden dolayı Core
katmanına taşınmıştır.),
2.Concrete
klasörü somut nesneleri tutmak için
3.DTOs
klasörü nesnelere farklı özellikler vermek ve veritabanındaki tabloları birleştirmek için kullanılmıştır.
:open_file_folder:Abstarct
:clipboard: IEntity
:open_file_folder: Concrete
:clipboard: Brand
:clipboard: Car
:clipboard: Color
:clipboard: Customer
:clipboard: Image
:clipboard: Rental
:open_file_folder: DTOs
:clipboard: CarDetailsDto
:clipboard: RentalDetailsDto
:clipboard: UserForLoginDto
:clipboard: UserForRegisterDto
Veritabanı CRUD işlemleri gerçekleştirmek için kurulan veri erişim katmanıdır.
İki alt klasörden oluşmaktadır.
1.Abstarct
klasörü soyut nesneleri tutmak için,
2.Concrete
klasörü somut nesneleri tutmak için.
:open_file_folder:Abstarct
:clipboard: IBrandDal
:clipboard: ICarDal
:clipboard: IColorDal
:clipboard: ICustomerDal
:clipboard: IImageDal
:clipboard: IRentalDal
:clipboard: IUserDal
:open_file_folder: Concrete
:open_file_folder: EntityFrameWork
:clipboard: EfBrandDal
:clipboard: EfCarDal
:clipboard: EfColorDal
:clipboard: EfCustomerDal
:clipboard: EfImageDal
:clipboard: EfRentalDal
:clipboard: EfUserDal
:clipboard: ReCarContext
:open_file_folder: InMemory
:clipboard: InMemoryDal
DataAccess tarafından veratabanından projeye çekilen verileri alarak işleyen katmandır. Bir başka deyişle iş yüklerinin yazıldığı katmandır.
Altı alt klasörden oluşur.
1.Abstarct
klasörü soyut nesneleri tutmak için,
2.Concrete
klasörü somut nesneleri tutmak için,
3.BusinessAspect
klasörü güvenlik operasyonlarının yönetimi için,
4.Constants
klasörü kullanıcı verileri ile gerçekleştirilen işlem sonucunda bilgilendirme mesajlarının yönetimi için,
5.DependecyResolvers
klasörü instance oluşturmak için,
6.ValidationRules
klasörü doğrulama kurallarının yönetimi için oluşturulmuştur.
:open_file_folder:Abstarct
:clipboard: IAuthService
:clipboard: IBrandService
:clipboard: ICarService
:clipboard: IColorService
:clipboard: ICustomerService
:clipboard: IImageService
:clipboard: IRentalService
:clipboard: IUserService
:open_file_folder:Concrete
:clipboard: AuthManager
:clipboard: BrandManager
:clipboard: CarManager
:clipboard: ColorManager
:clipboard: CustomerManager
:clipboard: ImageManager
:clipboard: RentalManager
:clipboard: UserManager
:open_file_folder:BusinessAspect
:open_file_folder: Autofac
:clipboard: SecuredOperation
:open_file_folder:Constants
:clipboard: Messages
:open_file_folder:DependecyResolvers
:open_file_folder: Autofac
:clipboard: AutofacBusinessModule
:open_file_folder:ValidationRules
:open_file_folder: FluentValidation
:clipboard: BrandValidator
:clipboard: CarValidator
:clipboard: ColorValidator
:clipboard: CustomerValidator
:clipboard: ImageValidator
:clipboard: RentalValidator
:clipboard: UserValidator
Tüm projelerde kullanılacak ortak kodların bulunduğu evrensel bir katmandır.
Yedi alt klasörden oluşmaktadır.
1.Aspects
klasörü,
2.CrossCuttingConcerns
klasörü,
3.DataAccess
klasörü,
4.Entities
klasörü,
5.DependecyResolvers
klasörü,
6.Extensions
klasörü,
7.Utilities
klasörü,
:open_file_folder:Aspect
:open_file_folder: Autofac
:open_file_folder: Caching
:clipboard: CacheAspect
:clipboard: CacheRemoveAspect
:open_file_folder: Performance
:clipboard: PerformanceAspect
:open_file_folder: Transactional
:clipboard: TransactionScopeAspect
:open_file_folder: Validation
:clipboard: ValidationAspect
:open_file_folder:CrossCuttingConcerns
:open_file_folder: Caching
:open_file_folder: Microsoft
:clipboard: MemoryCacheManager
:open_file_folder: Validation
:clipboard: ValidationTool
:open_file_folder:DataAccess
:open_file_folder: EntityFramework
:clipboard: EfEntityRepositoryBase
:open_file_folder:DependecyResolvers
:clipboard: CoreModule
:open_file_folder:Entities
:clipboard: IDto
:open_file_folder:Concrete
:clipboard: OperationClaim
:clipboard: User
:clipboard: UserOperationClaim
:open_file_folder:Extensions
:clipboard: ClaimExtensions
:clipboard: ClaimsPrincipalExtensions
:clipboard: ServiceCollectionExtensions
:open_file_folder:Utilities
:open_file_folder:Business
:clipboard: BusinessRules
:open_file_folder:Interceptors
:clipboard: AspectInterceptorSelector
:clipboard: MethodInterception
:clipboard: MethodInterceptionBaseAttribute
:open_file_folder:IoC
:clipboard: ICoreModule
:clipboard: ServiceTool
:open_file_folder:Results
:clipboard: DataResult
:clipboard: ErrorDataResult
:clipboard: ErrorResult
:clipboard: IDataResult
:clipboard: IResult
:clipboard: Result
:clipboard: SuccessDataResult
:clipboard: SuccessResult
:open_file_folder:Security
:open_file_folder:Encryption
:clipboard: SecurityKeyHelper
:clipboard: SigningCredentialsHelper
:open_file_folder:Hashing
:clipboard: HashingHelper
:open_file_folder:JWT
:clipboard: AccessToken
:clipboard: ITokenHelper
:clipboard: JwtHelper
:clipboard: TokenOptions
:open_file_folder:Controllers
:clipboard: AuthController
:clipboard: BrandsController
:clipboard: CarsController
:clipboard: ColorsController
:clipboard: CustomersController
:clipboard: ImagesController
:clipboard: RentalsController
:clipboard: UsersController