A comprehensive real estate management system built with Spring Boot that handles various types of properties including residential properties, apartments, houses, and commercial spaces. The system provides robust property management features with a flexible and extensible architecture.
The system follows a domain-driven design approach with the following key components:
- Land: Base entity containing common property attributes
- Property Types:
- Residential
- Apartment
- House
- Multifamily
- TripeDecker
- Townhouse
- Mobile
- Detach
- SemiDetach
- Builder: Manages property construction and development
- Facilities:
- LockersAndStorage
- ParkingLot
- JDK 17 or higher
- Maven 3.6+ or Gradle 7+
- Your preferred IDE (IntelliJ IDEA recommended)
- MySQL/PostgreSQL database
- Multi-type property support with inheritance-based architecture
- Comprehensive property attributes management
- Advanced search and filtering capabilities
- Property status tracking
- Builder registration and profile management
- Construction progress tracking
- Project portfolio management
- Builder-property association
- Parking lot management
- Storage space allocation
- Unit capacity tracking
- Amenity management
The system uses a hierarchical database design with inheritance mapping. Key relationships include:
- One-to-Many between Builder and Properties
- One-to-One between Property and Facilities
- Inheritance mapping for different property types
