Skip to content

andrevelkov/RealEstateApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Real Estate Management App (WPF, C#/.NET)

Overview

This project is a Real Estate Management Application built using WPF, C#, and .NET. It demonstrates core concepts of Object-Oriented Programming (OOP), dynamic binding, generics, serialization, and data management using Entity Framework and LINQ.
(Currently a very basic UI implementation)

Key Features

  • Application Structure

    Categories:
    Residential, Commercial, Institutional

    Building Types:
    Residential: Villa, Apartment, Townhouse
    Commercial: Hotels, Shops, Warehouses, Factories
    Institutional: Hospitals, Schools, Universities

    Legal Forms:
    Ownership, Tenement, Rental

  • Design Principles

    (Abstract classes later got changed due to the serialization etc..)

    Interface IEstate and abstract class Estate
    Abstract classes: Residential, Commercial, Institutional
    Use of dynamic binding for runtime object creation

  • Data Management

    Generic IListManager<T> interface and ListManager<T> implementation (possible to use in other projects)
    EstateManager inherits ListManager<T>

  • Persistence

    JSON and XML serialization

  • Architecture

    Multi-layer architecture: PL (Presentation Layer), BLL (Business Logic Layer), DAL (Data Access Layer)
    DTO Layer and Service Layer
    Shared Models Library and Utilities library for shared functions

  • Database Integration

    Entity Framework for data storage and manipulation
    LINQ for querying the database

Project Setup

Prerequisites

  • .NET SDK (latest version)

  • SQL Server LocalDB (included with Visual Studio)

  • Entity Framework Core Tools

Getting Started

  1. Clone the Repository:

    git clone <repository-url>
    cd <project-folder>

  2. Install Dependencies:

    dotnet restore

  3. Set Up the Database

    • Ensure SQL Server LocalDB is instealled.
    • Update the connection string in EstateContext.cs if needed
  4. Apply Migration (In VS):

    • If migrations are present:
      (Package Manager Console)
      Update-Database
    • If not, create and apply migrations:
      Add-Migration InitialCreate -Context EstateDataAccess
      Update-Database
  5. Run the Application:

Future Enhancements

Improve UI/UX design
...

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages