Project Images
Real Estate Management System
This project is a Real Estate Management System, providing a platform for listing and managing properties available for rent and sale. It is built using .NET Core, ASP.NET Core MVC, Entity Framework Core for database operations, and Dapper for enhanced query performance.
Technologies Used
- .NET Core: The project is built on the .NET Core framework.
- ASP.NET Core MVC: Used to create the web-based real estate platform.
- Entity Framework Core: EF Core is used as the Object-Relational Mapping (ORM) tool for database operations.
- Dapper: Dapper is used for enhanced database query performance.
- SQL Server: The application uses SQL Server as its database system.
Why Dapper?
Dapper is chosen as the database access library for this project due to its lightweight and high-performance nature. Here are some reasons why Dapper is used:
- Performance: Dapper provides high performance and minimizes the overhead associated with traditional ORMs like Entity Framework.
- SQL Control: Dapper allows developers to write and control SQL queries directly, providing flexibility and optimization opportunities.
- Lightweight: It is a lightweight library that adds minimal overhead to your application.
- Stability: Dapper is stable and widely adopted in the .NET community.
Testing is a crucial aspect of the Real Estate Management System to ensure the reliability, functionality, and performance of the application. Various testing strategies have been implemented to validate the correctness of the code and to ensure a seamless user experience.
Testing Tools and Frameworks
- xUnit is used as the primary testing framework for unit testing. It is well-integrated with .NET Core and provides a rich set of features for writing and executing tests.
- Moq is a popular mocking library used in conjunction with xUnit. It helps in creating mock objects for dependencies, allowing for the isolation of components during unit testing.
- For testing data access layers, an in-memory database provided by SQL Server is used to simulate database operations without affecting the actual database. This ensures that tests run quickly and consistently.
Testing Methodologies
- Each component of the system is tested in isolation to ensure that individual units of code function as expected. Unit tests cover a wide range of scenarios, including edge cases and error conditions.
- Integration tests are performed to verify that different modules of the system work together as expected. This includes testing the interaction between the application and the database, as well as between different components within the application.
- The performance of the application is tested under various load conditions to ensure it can handle real-world usage scenarios. Tools like Apache JMeter or Visual Studio Load Test are used to simulate high traffic and measure the system's responsiveness and stability.
Continuous Integration (CI)
- The project integrates with GitHub Actions for continuous integration, ensuring that tests are automatically run on every commit. This helps maintain code quality and prevents regressions.