Skip to content

sedanurgulocak/ReCapProject

Repository files navigation

ReCapProject : Car Rental System

PicsArt_03-10-02 23 16

🚗 This repository includes the backend of the car rental system.
💻 You can reach the Frontend project here. ⭐ ReCapProject-Frontend

🎉 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
  • AOP
  • JWT
  • IOC
  • Autofac Dependency Resolver

📚 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:
Core-1

📂 CrossCuttingConcerns folder:
Core-2

📂 DataAccess folder:
Core-3

📂 DependencyResolvers folder:
Core-4

📂 Entities folder:
Core-5

📂 Extensions folder:
Core-6

📂 Utilities folder:
Core-7

📖 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.

WebApi

💾 Database

Database3

📦 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.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

🖋️ Author

Seda Nur Gülocak

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages