Car Rental project with N-Layer Architecture.
Report Bug
·
Request Feature
Table of Contents
Toggle Content
- List all cars
- Searching Cars By Brand, Color
- Caching
- Get a single car
- Caching
- Ask (Create) a New Car
- Authenticated users only (Logged In Users)
- Field validation
- Edit a Question
- Authenticated users only (Logged In Users)
- Field Validation
- Delete a Question
- Authenticated users only (Logged In Users)
- List all car images
- Get a car image
- Searching Car Image By Car
- Caching
- Ask (Create) a New Car Image
- Authenticated users only (Logged In Users)
- Edit a Car Image
- Authenticated users only (Logged In Users)
- Delete a Car Image
- Authenticated users only (Logged In Users)
- Get All Brands
- Get Single Brand
- Add (Create) a New Answer To Question
- Authenticated users only (Logged In Users)
- Edit a Answer
- Authenticated users only (Logged In Users)
- Delete a Answer
- Authenticated users only (Logged In Users)
- Get All Colors
- Get Single Color
- Add (Create) a Color
- Authenticated users only (Logged In Users)
- Edit a Color
- Authenticated users only (Logged In Users)
- Delete a Color
- Authenticated users only (Logged In Users)
- Get All Customers
- Get Single Customer
- Add (Create) a Customer
- Authenticated users only (Logged In Users)
- Edit a Customer
- Authenticated users only (Logged In Users)
- Delete a Customer
- Authenticated users only (Logged In Users)
- Get All Rentals
- Get Single Rental
- Add (Create) a Rental
- Authenticated users only (Logged In Users)
- Edit a Rental
- Authenticated users only (Logged In Users)
- Delete a Rental
- Authenticated users only (Logged In Users)
- List all Users
- Get a User
- Add (Create) a User
- Edit a User
- Authenticated users only (Logged In Users)
- Delete a User
- Authenticated users only (Logged In Users)
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
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 |
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(25) | False |
Name | Data Type | Allow Nulls | Default |
---|---|---|---|
Id | int | False | |
Name | nvarchar(25) | False |
Name | Data Type | Allow Nulls | Default |
---|---|---|---|
Id | int | False | |
UserId | int | False | |
CompanyName | nchar(50) | True |
Name | Data Type | Allow Nulls | Default |
---|---|---|---|
Id | int | False | |
CarId | int | False | |
CustomerId | int | False | |
RentDate | datetime | True | |
ReturnDate | datetime | True |
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 |
Name | Data Type | Allow Nulls | Default |
---|---|---|---|
Id | int | False | |
Name | varchar(250) | False |
Name | Data Type | Allow Nulls | Default |
---|---|---|---|
Id | int | False | |
UserId | int | False | |
OperationClaimId | int | False |
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.
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
- engindemirog