A desktop application for managing properties, owners, clients, rental contracts, sale contracts, installments, and payments.
The project focuses on clean separation between the UI, business logic, and data access layers while implementing real property-management workflows and business rules.
- Manage owners, clients, properties, and units.
- Create and manage rental and sale contracts.
- Generate rental installments and record payments.
- Validate contract conflicts and payment limits.
- User authentication with BCrypt password hashing.
- Dashboard with key system information.
- Search, filtering, pagination, and status-based views.
The solution follows a simple 3-Tier Architecture:
PropertyManagement_UI
↓
PropertyManagement_BLL
↓
PropertyManagement_DAL
↓
SQL Server
- UI Layer — Windows Forms screens and user interaction.
- Business Logic Layer — validation and business rules.
- Data Access Layer — database operations using ADO.NET.
- Database — SQL Server relational database.
The structure keeps UI logic, business rules, and database access separated without introducing unnecessary abstraction.
- C#
- .NET Framework 4.8
- Windows Forms
- SQL Server
- ADO.NET
- AntdUI
- BCrypt.Net-Next
- Microsoft WebView2
- Parameterized SQL queries for database operations.
- Transactional creation of rental contracts and their installments.
- Business validation for rental and sale conflicts.
- Payment validation against the remaining installment balance.
- BCrypt password hashing for user authentication.
- Reusable pagination, search, refresh, and table helpers.
- Property location display using coordinates and WebView2.
- Database lookup tables designed with Arabic and English values.
The Database folder contains two scripts:
Database/
├── PropertyManagementDB.sql
└── Seed.sql
Creates the database schema, tables, relationships, keys, constraints, and indexes required by the application.
Adds the reference data required to run the system, including items such as:
- Roles
- Contract statuses
- Payment methods
- Property categories
- Property features
- Air-conditioning types
- Countries
- Cities
- Districts
- Demo administrator account
Transactional sample data such as owners, clients, properties, contracts, installments, and payments are intentionally not included.
- Windows
- Visual Studio 2022
- .NET Framework 4.8
- SQL Server
- SQL Server Management Studio
-
Clone or download the repository.
-
Open SQL Server Management Studio.
-
Run:
Database/PropertyManagementDB.sql -
After the schema is created, run:
Database/Seed.sql -
Open:
PropertyManagement.sln -
Restore the NuGet packages if Visual Studio does not restore them automatically.
-
Make sure the UI project is the startup project.
-
Run the application.
The default connection string uses a local SQL Server instance with Windows Authentication:
Data Source=.;Initial Catalog=PropertyManagementDB;Integrated Security=True;
If your SQL Server instance is different, update PropertyManagement/App.config.
Username: admin
Password: admin!
The demo password is stored in the database as a BCrypt hash.
PropertyManagement/
│
├── Database/
│ ├── PropertyManagementDB.sql
│ └── Seed.sql
│
├── Screenshots/
│
├── PropertyManagement/
│ └── Windows Forms UI
│
├── PropertyManagement_BLL/
│ └── Business logic and validation
│
├── PropertyManagement_DAL/
│ └── ADO.NET database access
│
├── PropertyManagement.sln
├── .gitignore
└── .gitattributes
Version 1.0
- GitHub: RedHDDD
- LinkedIn: Saleh Almajed





