RentCarProject
.NET 5.0

RentCarProject

Enterprise-Level Car Rental System Backend

Overview

RentCarProject is a car rental system backend built on an N-Tier architecture with clean separation across Entities, DataAccess, Business, and WebAPI layers. It manages the complete rental workflow, from vehicle inventory and customer records to booking operations and secure user access. Cross-cutting concerns such as validation, caching, and security are handled elegantly through Aspect-Oriented Programming rather than being scattered through business code.

What It Does

The platform exposes a secure RESTful API covering the full car rental domain: vehicle inventory management, customer registration, rental and booking operations, and vehicle image handling. Every request is authenticated with JWT and authorized by role, then validated and cached transparently via AOP aspects before reaching the business layer. A generic Result pattern gives all endpoints a consistent, predictable response envelope.

Tech Stack

.NET 5.0C#ASP.NET Core Web APIEntity Framework Core 3.1SQL ServerJWTAutofac 6.1FluentValidation 9.5

Key Features

JWT-based authentication with role-based authorization (admin and user roles)

Comprehensive RESTful API covering the full car rental workflow

Vehicle inventory management with image handling

Customer registration and management

Rental and booking operations

Secure password hashing with salted HMAC-based verification

Server-side input validation with FluentValidation

AOP-driven caching for performance optimization

Generic Result pattern for consistent, uniform API responses

Technical Highlights

.NET 5.0 and C# structured on an N-Tier architecture with clear layer boundaries
EF Core 3.1 over SQL Server with a generic Repository pattern for CRUD operations
JWT bearer authentication via Microsoft.AspNetCore.Authentication.JwtBearer
Autofac 6.1 IoC container driving constructor-based dependency injection
Aspect-Oriented Programming through Autofac.Extras.DynamicProxy for cross-cutting concerns
Custom security, validation, and cache-management aspects applied declaratively to business operations
FluentValidation 9.5 for robust, reusable input validation rules
Endpoint-level authorization with production-ready error handling and logging

Key Achievements

01

Implemented a complete N-Tier architecture with disciplined separation of concerns

02

Built a reusable AOP system that centralizes validation, caching, and security

03

Delivered secure JWT authentication with role- and endpoint-based authorization

04

Developed a generic repository pattern for clean, efficient data access

05

Standardized API responses through a generic Result pattern with consistent error handling

06

Established a maintainable, testable backend foundation ready for future extension

Impact & Results

RentCarProject demonstrates enterprise-level backend development capabilities with modern .NET technologies. The implementation of N-Tier architecture ensures maintainability and scalability, while the Aspect Oriented Programming approach elegantly handles cross-cutting concerns like validation, caching, and security. The project showcases proficiency in building secure, production-ready RESTful APIs with comprehensive authentication, authorization, and data validation. The clean architecture and design patterns employed make the system easily testable and maintainable for future enhancements.