Skip to content

It is the backend side of CarRental ReCap project made with .Net Core.

Notifications You must be signed in to change notification settings

cumalitezcan/ReCapProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Car Rental Project

It is the backend side of CarRental ReCap project made with .Net Core.

 CarRental Project

🚗 This repository includes the backend of the car rental system.

🎉 Getting Started

The project was developed in C#, in accordance with the multi-layered architecture and SOLID principles. CRUD operations were performed using the Entity Framework. MSSQL Localdb was used for database in the project. This system includes authentication and authorization. Users can only perform transactions for which they are authorized. Implementations of JWT; Transaction, Cache, Validation and Performance aspects have been implemented. Fluent Validation support for Validation, Autofac support for IoC added. The project includes CRUD operations for car, brand, color, car images, user, operations claim, user operation claims, customer, credit card and rental. Car rental is carried out according to certain business rules. In addition, findeks scores increase according to the users' car rentals. Each car has its own findeks score. The user must have enough Findeks points to rent a car.

Technologies

  • .NET Core
  • Asp.NET for Restful Api
  • MsSql
  • Entity Framework Core
  • Autofac
  • Fluent Validation

Techniques

  • Layered Architecture Design Pattern
  • IOC
  • AOP
  • Autofac Dependency Resolver
  • JWT

📚 Layers

N-tier application architecture provides a flexible and reusable application model. For this reason, Layered Architecture Design Pattern was used in the car rental system.

layers

In this layer, the main classes to be used in the project are specified, that is, it is where the real objects are specified.
📂 Concrete folder: Each of the classes in the concrete folder corresponds to a table in the database.
📂 DTOs folder: Each of the classes in the DTOs folder contains DTO (Data Transfer Object) classes into which data from different tables are combined.

entities

In this layer, database connections and database operations are performed. Required configuration for database connection is done here. The task of this layer is to perform database CRUD operations.
📂 Abstract folder: Abstract objects are found
📂 Concrete folder: There are concrete objects for the Entity Framework, the context object, and the concrete objects for InMemory

dataaccess

It is the layer where business rules are defined and controlled, that will take the data taken into the project by Data Access and process it. When a command comes to the program, what actions it should perform and which set of rules it should pass through are defined here. The data from the user first goes to the Business layer, and then processed and transferred to the Data Access layer. Business layer also specifies who will access these data.
📂 Abstract folder: Services have abstract objects
📂 Concrete folder: There are concrete service objects
📂 Constants folder: Class of informative messages as a result of the transaction
📂 BusinessAspects: Security operations management
📂 DependencyResolvers: To create an instance
📂 ValidationRules: Validation rules management

Business

It is a universal layer with common codes. The core layer does not reference other layers, it is independent of the project. Items to be used in the core layer are classified according to other layers and their intended use.
Core

📂 Aspects folder:
Aspect

📂 CrossCuttingConcerns folder:
CCC

📂 DataAccess folder:
core dataaccess

📂 DependencyResolvers folder:
coredependencyresolvers

📂 Entities folder:
core entities

📂 Extensions folder:
core extentions

📂 Utilities folder:
CoreUtilitie2

📖 Web API

It is the part where the services that enable the Front-End part and other platforms to communicate with the program and perform operations are written.

web api

💾 Database

Database

📦 Prerequisites

Autofac v6.1.0
Autofac.Extensions.DependencyInjection v7.1.0
Autofac.Extras.DynamicProxy v6.0.0
FluentValidation v9.5.1
Microsoft.AspNetCore.Authentication.JwtBearer v3.1.12
Microsoft.AspNetCore.Http v2.2.2
Microsoft.AspNetCore.Http.Abstractions v2.2.0
Microsoft.AspNetCore.Mvc.Core v2.2.5
Microsoft.EntityFrameworkCore.SqlServer v3.1.1
Microsoft.Extensions.DependencyInjection v5.0.1
Microsoft.IdentityModel.Tokens v6.8.0
NETStandart.Library v2.0.3
Newtonsoft.Json v13.0.1
System.IdentityModel.Tokens.Jwt v6.8.0