Matrix-Developers / Car-Rental-App

🚘 A comprehensive Windows Forms C# .NET application designed to manage vehicle rentals for a car rental store. It enables users to perform CRUD operations for data related to Car Rental, ensuring robust data management through Entity Framework ORM.
MIT License
3 stars 1 forks source link
crud csharp dotnet entityframework orm test-driven-development winforms

Car Rental App

The Car Rental App is a complete Windows Forms C# .NET CRUD application with almost market-level business logic used to manage the rental of vehicles on a Car Rental Store. As a CRUD application, it allows to create, read, update, and delete data entries from Employees, Clients, Services, Cupons, Partners, Groups of Vehicles, Vehicles, Rentals and Devolutions. To manage the data entries, a valid registered employee must log using valid credentials.

The app uses Entity Framework ORM for the SQL Database Integration, to allow better data scalability and maintenance.

Many other auxiliary libraries were also used, including: "Serilog" for logs, "Moq" for tests that require the use of a mock, "Autofac" for dependency injection and "PdfSharp" for the PDFs of the rental receips.

Finally, the application have a considerable test coverange of 126 tests, divided between Application Tests, ORM Tests and Unit Tests.

Environment Setup

Features

Log-in Scren

To actually open the Car Rental App, you must enter a valid username and password of a registered Employee. To demonstration reasons, you can also bypass this screen using "admin" as both User and Password.

Login screen

Dashboard

The Dashboard allows the user to view the most important information on the Car Rental App:

dashboard

Records Tab

This tab allows the managemenet most basic data entries related to a rental, including Employees, Clients, Services, Groups of Vehicles, Vehicles

image

Vehicles

You can register new entries or update and delete existing ones. For register and update, keep in mind that many of the fields are validated and will show a error message in the main screen footnote in case of error.

Register Client

Register Service

Edit Vehicle

Edit Employee

Delete Employee

Discounts Tab

Discounts are an optional feature that allows user to get discounts when applying for a car rental. This tabs allow to manage the data entry related partners and their coupons.

image image Register Partner Register Cupoun

Rental Tab

The Rental tab allows start and finish the the rental of an existing car.

image

To start to rent a car, go to the sub-tab "Rents" and register a new one for a available car to a client for using an expecific type of renting plan and for a determined ammount of time, using multiple optional features like services, insurance a coupons if desired. image Resgister Rental image

After sucessfully renting a car, a PDF receip will appear on the folder "C:\Car Rental App\Recibos" on your computer and the car will become unavailable util his Devolution.

rental receipt

To finish an existig rent, go the sub-tab "Devolution" and choose an open car rent. Here the final value is calculed based on choosen plan type, previous applied coupons, the car milleage, aditional services and how much of gas the car has in the tank. After the Devolution is registered, the car can be rented again.

Register Devolution