The Car Rental System is a project that covers the work done in the (Qualified) Software Developer Training Camp.
The project was developed in C # language, implemented by the server in the back-end interface, with layered software corporate architecture, SOLID software principles, Web API, EntityFrameWork structure. JWT integration; Implementations of Transaction, Cache, Validation and Performance aspects have been implemented, and support for FluentValidation for Validation and Autofac support for IoC has been added.
It is the layer created to hold database objects to be used in the project.
It consists of three sub-folders.
1.The Abstract
folder has been moved to the Core
layer to keep the abstract objects (Abstract
folder has been moved to the Core
layer since it contains common codes in the projects that will be developed later.),
2.Concrete
folder for holding concrete objects
3.The folder DTOs
is used to give different properties to objects and to combine tables in the database.
:open_file_folder:Abstract
:clipboard: IEntity
:open_file_folder: Concrete
:clipboard: Brand
:clipboard: Car
:clipboard: Color
:clipboard: Customer
:clipboard: CarImages
:clipboard: Rental
:clipboard: Payment
:open_file_folder: DTOs
:clipboard: CarDetailsDto
:clipboard: RentalDetailsDto
:clipboard: UserForLoginDto
:clipboard: UserForRegisterDto
:clipboard: CustomerDetailDto
Database is the data access layer established to perform CRUD operations.
It consists of two subfolders.
1.Abstract
folder to hold abstract objects,
2.Concrete
folder to hold concrete objects.
:open_file_folder:Abstract
:clipboard: IBrandDal
:clipboard: ICarDal
:clipboard: IColorDal
:clipboard: ICustomerDal
:clipboard: ICarImagesDal
:clipboard: IRentalDal
:clipboard: IUserDal
:clipboard: IPayment
:open_file_folder: Concrete
:open_file_folder: EntityFrameWork
:clipboard: EfBrandDal
:clipboard: EfCarDal
:clipboard: EfColorDal
:clipboard: EfCustomerDal
:clipboard: EfCarImagesDal
:clipboard: EfRentalDal
:clipboard: EfUserDal
:clipboard: EfPaymentDal
:clipboard: CarDbContext
:open_file_folder: InMemory
:clipboard: InMemoryCarDal
It is the layer that processes the data captured by DataAccess from the database to the project. In other words, it is the layer on which workloads are written.
It consists of six subfolders.
1.Abstract
folder to hold abstract objects,
2.Concrete
folder to hold concrete objects.
3.BusinessAspect
folder for management of security operations,
4.Constants
folder for the management of information messages as a result of the operation performed with user data,
5.To create the DependecyResolvers
folder instance,
6.The ValidationRules
folder was created for the management of validation rules.
:open_file_folder:Abstract
:clipboard: IAuthService
:clipboard: IBrandService
:clipboard: ICarService
:clipboard: IColorService
:clipboard: ICustomerService
:clipboard: ICarImagesService
:clipboard: IRentalService
:clipboard: IUserService
:clipboard: IPaymentService
:open_file_folder:Concrete
:clipboard: AuthManager
:clipboard: BrandManager
:clipboard: CarManager
:clipboard: ColorManager
:clipboard: CustomersManager
:clipboard: CarImagesManager
:clipboard: RentalsManager
:clipboard: UserManager
:clipboard: Payment
: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: CarValidator
:clipboard: CustomerValidator
:clipboard: CarImagesValidator
:clipboard: PaymentValidator
:clipboard: UserValidator
It is a universal layer with common codes to be used in all projects.
It consists of seven sub-folders.
1.Aspects
folder,
2.CrossCuttingConcerns
folder,
3.DataAccess
folder,
4.Entities
folder,
5.DependecyResolvers
folder,
6.Extensions
folder,
7.Utilities
folder,
: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: BrandController
:clipboard: CarsController
:clipboard: ColorController
:clipboard: CustomersController
:clipboard: CarImagesController
:clipboard: RentalController
:clipboard: PaymentsController
:clipboard: UsersController
Thank you for taking your time to read. You can contact me from my accounts below.