racp

Click For Turkish README File

Click For Front-End Codes

It's a simple rent a car project. But it will be professional with new updates.

Here is the list that you can make with this project right now;

  • CRUD operations for Cars, Colors, Brands, Users, Customers and Rentals.
  • Authorization Added. You need to be logged in and having a claim for add, update and delete operations
  • Working with a real DB (MSSQL)
  • EntityFramework files added
  • IEntity, IDto, IEntityRepository, EfEntityRepositoryBase added
  • Core Layer added
  • WebAPI, JWT, IoC, Interceptors,Autofac

The rules that I tried to follow rules when writing this project

  • SOLID Principles,
  • Clean Coding,
  • DRY (Don't Repeat Yourself)

New Features!

Version 1.9.x

  • Code Refactoring for Car, CarImage and Rental
  • Authentication System Added
  • Payment Service Added

Version 1.8.5

  • Autofac ✔
  • New Rules ✔
    • Model Year Must Be Between 1900-2099
    • ReturnDate Can't Be Earlier Date Than RentalDate
    • RentDate Can't Be Earlier Date Than Today
  • FluentValidation (UserValidator, CarValidator, RentalValidator) ✔
  • ValidationAspect ✔
  • AOP ✔
  • Tested on Postman ✔

LAYERS

1) Business Layer

- Concrete Classes

  1. CarManager.cs
  2. BrandManager.cs
  3. ColorManager.cs
  4. CustomerManager.cs
  5. UserManager.cs
  6. RentalManager.cs

- Abstract Classes

  1. ICarService.cs
  2. IBrandService.cs
  3. IColorService.cs
  4. ICustomerService.cs
  5. IUserService.cs
  6. IRentalService.cs

- Constants Classes

  1. Messages.cs

- DependencyResolvers

  1. AutofacBusinessModule.cs

- FluentValidation

  1. CarValidator.cs
  2. RentalValidator.cs
  3. UserValidator.cs

2) DataAccess Layer

- EntityFramework

  1. EfCarDal.cs
  2. EfBrandDal.cs
  3. EfColorDal.cs
  4. EfCustomerDal.cs
  5. EfUserDal.cs
  6. EfRentalDal.cs
  7. RentACarDbContext.cs

- InMemory

  1. InMemoryCarDal.cs
  2. InMemoryBrandDal.cs
  3. InMemoryColorDal.cs
  4. InMemoryCustomerDal.cs
  5. InMemoryUserDal.cs
  6. InMemoryRentalDal.cs

- Abstract Classes

  1. ICarDal.cs
  2. IBrandDal.cs
  3. IColorDal.cs
  4. ICustomerDal.cs
  5. IUserDal.cs
  6. IRentalDal.cs
  7. IEntityRepository.cs

3) Entities Layer

- Concrete Classes

  1. Car.cs
  2. Brand.cs
  3. Color.cs
  4. Customer.cs
  5. User.cs
  6. Rental.cs

- Abstract Classes

  1. IEntity.cs

- DTOs Classes

  1. CarDetailDto.cs
  2. RentalDetailDto.cs

4) Core Layer

- DataAccess

  1. IEntityRepository.cs
  2. EfEntityRepositoryBase.cs

- Entities

  1. IDto.cs
  2. IEntity.cs

- Utilities

- Interceptors
  1. AspectInterceptorSelector.cs
  2. MethodInterception.cs
  3. MethodInterceptionBaseAttribute.cs

- CrossCuttingConcerns

  1. ValidationTool.cs

- Aspects

  1. ValidationAspect.cs

5) ConsoleUI

  1. Program.cs

SQL Tables

rcp

OUTPUT

output1