Car Rental project with N-Layer Architecture.
Report Bug
·
Request Feature
Toggle Content
- Get all cars
- Searching Cars By Brand, Color
- Caching
- Get a single car
- Caching
- Add a New Car
- Authorized users only
- Field validation
- Edit a Car
- Authorized users only
- Field Validation
- Delete a Car
- Authorized users only
- Get a car image
- Caching
- Get all
- Searching Car Image By Car
- Caching
- Add (Upload) a New Car Image
- Authorized users only
- Save on Disk
- Edit a Car Image
- Authorized users only
- Edit on Disk
- Delete a Car Image
- Authorized users only
- Delete on Disk
- Get all brands
- Get a brand
- Add a Brand
- Authorized users only
- Edit a Brand
- Authorized users only
- Delete a Brand
- Authorized users only
- Get All Colors
- Get Single Color
- Add a Color
- Authorized users only
- Edit a Color
- Authorized users only
- Delete a Color
- Authorized users only
- Add a Customer
- Get All Customers
- Authorized users only
- Get Single Customer
- Authorized users only
- Edit a Customer
- Authorized users only
- Delete a Customer
- Authorized users only
- Get All Rentals
- Searching Rental By Car
- Logged users only
- Get Single Rental
- Logged users only
- Add a Rental
- Logged users only
- Check Car is Rentable
- Check Findeks Score Sufficiency
- Edit a Rental
- Authorized users only
- Delete a Rental
- Authorized users only
- Get User Detail By Mail
- Add a User
- Update User Details
- Logged users only
- Get a User
- Searching user by mail
- Authorized users only
- Get all Users
- Authorized users only
- Edit a User
- Authorized users only
- Delete a User
- Authorized users only
Requests are authenticated using the Authorization
header and value Bearer {{token}}
. with a valid JWT.
- Authentication Strategy : JWT
- JWT Expiration : 10 Minutes For Testing Api
- Registration
- User can register as a "Admin" or simply "User"
- Password Salt
- Password Hash
- Token includes : "id", "email", "name" and "roles"
- Login
- User can login with "email" and "password"
- Everytime a user login, new Token are sent to to client
- Login
- Logged users only
- Create Access Token
- Register new user
- Create Access Token
- Check User Exists
- Check user is authenticated
- Logged users only
- Encryption
- Hashing
- JWT
- Get a Operation Claim
- Searching Operation Claim by name
- Get all Operation Claim
- Add a Operation Claim
- Authorized users only
- Edit a Operation Claim
- Authorized users only
- Delete a Operation Claim
- Authorized users only
- Add 'User' Claim
- Get a User Operation Claim
- Authorized users only
- Get all User Operation Claim
- Authorized users only
- Add a User Operation Claim
- Authorized users only
- Edit a User Operation Claim
- Authorized users only
- Delete a User Operation Claim
- Authorized users only
- Get a Credit Card
- Logged users only
- Get all Users
- Logged users only
- Searching Credit Card by Customer
- Add a Credit Card
- Logged users only
- Delete User Details
- Logged users only
- Payment (Fake)
- Searching Findeks by Customer
- Logged users only
- Add a Findeks
- Logged users only
- Update a Findeks
- Logged users only
- Calculate Findeks Score (Fake)
- Get a Findeks
- Authorized users only
- Get all
- Authorized users only
- Update findeks
- Authorized users only
- Delete findeks
- Authorized users only
Toggle Content
Business Layer created to process or control the incoming information according to the required conditions.
Core layer containing various particles independent of the project.
Data Access Layer created to perform database CRUD operations.
Entities Layer created for database tables.
Web API Layer that opens the business layer to the internet.
Toggle Content
Name | Data Type | Allow Nulls | Default |
---|---|---|---|
Id | int | False | |
Name | nvarchar(25) | False |
Name | Data Type | Allow Nulls | Default |
---|---|---|---|
Id | int | False | |
CarId | int | False | |
ImagePath | nvarchar(MAX) | False | |
Date | datetime | False |
Name | Data Type | Allow Nulls | Default |
---|---|---|---|
Id | int | False | |
Name | nvarchar(50) | False | |
BrandId | int | False | |
ColorId | int | False | |
DailyPrice | decimal(18,0) | False | |
ModelYear | smallint | False | |
Description | nvarchar(50) | True | |
MinFindeksScore | smallint | False | ((0)) |
Name | Data Type | Allow Nulls | Default |
---|---|---|---|
Id | int | False | |
Name | nvarchar(25) | False |
Name | Data Type | Allow Nulls | Default |
---|---|---|---|
Id | int | False | |
CustomerId | int | False | |
NameSurname | nvarchar(100) | False | |
CardNumber | nvarchar(25) | False | |
ExpMonth | tinyint | False | |
ExpYear | tinyint | False | |
Cvc | nvarchar(3) | False | |
CardType | nvarchar(20) | False |
Name | Data Type | Allow Nulls | Default |
---|---|---|---|
Id | int | False | |
UserId | int | False | |
CompanyName | nvarchar(50) | True |
Name | Data Type | Allow Nulls | Default |
---|---|---|---|
Id | int | False | |
CustomerId | int | False | |
NationalIdentity | nvarchar(50) | False | |
Score | smallint | False | ((0)) |
Name | Data Type | Allow Nulls | Default |
---|---|---|---|
Id | int | False | |
Name | varchar(250) | False |
Name | Data Type | Allow Nulls | Default |
---|---|---|---|
Id | int | False | |
CarId | int | False | |
CustomerId | int | False | |
RentStartDate | datetime | False | |
RentEndDate | datetime | False | |
ReturnDate | datetime | True |
Name | Data Type | Allow Nulls | Default |
---|---|---|---|
Id | int | False | |
UserId | int | False | |
OperationClaimId | int | False |
Name | Data Type | Allow Nulls | Default |
---|---|---|---|
Id | int | False | |
FirstName | nvarchar(50) | False | |
LastName | nvarchar(50) | False | |
nvarchar(50) | False | ||
PasswordHash | varbinary(500) | False | |
PasswordSalt | varbinary(500) | False | |
Status | bit | False |
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Ahmet ÇETİNKAYA - ahmetcetinkaya.info
Project Link: https://github.com/ahmet-cetinkaya/ReCapProject