GithubHelp home page GithubHelp logo

cumalitezcan / recapproject Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 0.0 2.32 MB

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

Home Page: re-cap-project-psi.vercel.app

C# 100.00%
netcore restful-api mssql aop entity-framework-core autofac jwt-authentication ioc-container fluent-validation layered-architecture

recapproject's Introduction

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

๐Ÿ“™ Entities Layer

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

๐Ÿ“˜ Business Layer

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

๐Ÿ“• Core Layer

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

recapproject's People

Contributors

cumalitezcan avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.