A university assignment project built in C++ implementing a console-based property management system for a real estate agency operating in Varna, Bulgaria.
The system manages a portfolio of up to 50 properties across 5 city neighbourhoods — Chaika, Levski, Center, Grycka, and Mladost. Each property tracks its reference number, address, area in square meters, price, number of rooms, view count, and current sale status.
-
Property Management — Add new properties with full input validation, including duplicate reference number detection and neighbourhood selection from a predefined list. View the complete portfolio at any time.
-
Search and Filtering — Search all properties within a specific neighbourhood, find the property with the lowest price per square meter, or filter properties by a desired number of rooms and a maximum budget the client is willing to pay.
-
Sorting — Sort the main property array by area, or display properties currently for sale sorted by price per square meter in ascending or descending order.
-
Property Viewing — Register a viewing for a specific property by reference number, which increments its view counter and prompts the agent to update its status to Reserved or Sold. If the client remains interested, the system suggests similar properties with the same number of rooms from the same neighbourhood or from the two closest neighbouring areas.
-
Market Analysis — Identify the neighbourhood with the hardest to sell properties based on the average number of views across all listings still on sale.
-
File Persistence — Export the full property portfolio to a binary file and import it back, with automatic export on program exit and automatic import on startup to preserve data between sessions.