jigneshpshah / greycube_helpmanual

Greycube Projects Help Manual
https://greycube.in
MIT License
9 stars 10 forks source link

Real Estate Platform #3

Open jigneshpshah opened 5 years ago

jigneshpshah commented 5 years ago

Inspiration Zillow Platform

Publish Property on Real Estate Platform

Future Portal

jigneshpshah commented 5 years ago

Home Page

zillow homepage

jigneshpshah commented 5 years ago

Property Card View

zillowcardview

  1. Created Since
  2. if already liked by logged in user
  3. Property Thumbnail Photo
  4. Property Type (Apartment, Villa, ,Bunglow etc)
  5. Transaction Type ( For Sale, For Rent)
  6. Sell Price / Rental Price
  7. Rooms, Bathrooms, Area
  8. Address & Agency Name
  9. Dot Color : Green = For Sale , Yellow = For Rent
jigneshpshah commented 5 years ago

Property List View , Map View and Filter Criteria

Filter Criteria

  For Rent / For Sale  (Checkbox)
  Property Type (Villa, Apartment, Bungalow etc)  ( Select  Dropdown )
  City (Textbox / Dropdown)
  Min - Max Price Range (Text box / Slider)
  Rooms (Textbox / Drop Down)
  Bathroom (Textbox / Drop Down)
  Min. Space  (Textbox)
  Year Built  (Textbox / Drop Down)
  Furnished (Drop Down)
  Nearby School ( Checkbox , default unchecked hence ignore)

Map View : When user will hover on the card view , the map view will highlight the property by tool tip as done on zillow

When User clicks on Card View, it will render the property detail view

image

jigneshpshah commented 5 years ago

Property Detail View 1) Property Detail View.pdf 2) Lead Form to Capture Lead and forward to the instance.

image image

Property Detail View PDF ( HTML Code)


{%- macro add_header(page_num, max_pages, doc, letter_head, no_letterhead) -%}
    {% if letter_head and not no_letterhead %}
    <div class="letter-head">{{ letter_head }}</div>
    {% endif %}
    {%- if doc.meta.is_submittable and doc.docstatus==2-%}
    <div class="alert alert-danger text-center">
        <h4 style="margin: 0px;">{{ _("CANCELLED") }}</h4></div>
    {%- endif -%}
    {% if max_pages > 1 %}
    <p class="text-right">{{ _("Page #{0} of {1}").format(page_num, max_pages) }}</p>
    {% endif %}
{%- endmacro -%}
<small>
{{ add_header(0,1,doc,letter_head, no_letterhead) }}

        <div class="row">

            <div class="col-xs-12 text-center" ><h1><label>{{ _("Propriété")}} </label></h1></div>

        </div>

                      <hr>
        <div class="row">
            <div class="col-xs-3 text-left"><label>{{ _("Property")}} </label></div>
            <div class="col-xs-3"> {{doc.property_name}}</div>
            <div class="col-xs-3 text-right"><label>Date:</label></div>
            <div class="col-xs-3">{{ frappe.format_value(frappe.utils.now(), {'fieldtype': 'Date'}) }} </div>

</div>
                      <hr>
<div class="row">
            <div class="col-xs-12 text-left"><h5><label>{{ _("Owner Details")}}</label></h5></div>
        </div>

        <div class="row">
            <div class="col-xs-2 text-left"><label>{{ _("Owner")}}</label></div>
            <div class="col-xs-2">{{ doc.customer or ''}} </div>
        <div class="col-xs-2 text-left"><label>{{ _("Telephone")}}</label></div>
            <div class="col-xs-2">{{ doc.telephone or ''}}</div>
            <div class="col-xs-2 text-left"><label>Email:</label></div>
            <div class="col-xs-2">{{ doc.email or ''}}</div>
        </div>
    <hr>
<div class="row">
            <div class="col-xs-12 text-left"><h5><label>{{_("Property Coordinates")}}</label></h5></div>
        </div>

        <div class="row">
            <div class="col-xs-2 text-left"><label>{{_("Floor")}}</label></div>
            <div class="col-xs-2">{{ doc.floor or ''}} </div>
        <div class="col-xs-2 text-left"><label>{{_("Address")}}</label></div>
            <div class="col-xs-2">{{ doc.address or '' }}</div>
            <div class="col-xs-2 text-left"><label>{{_("Postal Code")}}</label></div>
            <div class="col-xs-2">{{ doc.postal_code }}</div>
        </div>
    <br>
 <div class="row">
            <div class="col-xs-3 text-left"><label>{{_("City")}}</label></div>
            <div class="col-xs-3">{{ doc.city or ''}} </div>
        <div class="col-xs-3 text-left"><label>Country:</label></div>
            <div class="col-xs-3">{{ doc.country or '' }}</div>
        </div>
    <hr>
<div class="row">
            <div class="col-xs-12 text-left"><h5><label>{{_("Property Details")}}</label></h5></div>
        </div>

        <div class="row">
            <div class="col-xs-2 text-left"><label>{{_("Property Type")}}</label></div>
            <div class="col-xs-2">{{ doc.property_type or ''}} </div>
            <div class="col-xs-2 text-left"><label>{{_("Property Status")}}</label></div>
            <div class="col-xs-2">{{ doc.property_status or '' }}</div>
            <div class="col-xs-2 text-left"><label>{{_("Rooms")}}</label></div>
            <div class="col-xs-2">{{ doc.rooms or '' }}</div>

        </div>

        <div class="row">
            <div class="col-xs-2 text-left"><label>{{_("Space (Sq mt)")}}</label></div>
            <div class="col-xs-2">{{ doc.size_sq_mt or ''}} </div>
            <div class="col-xs-2 text-left"><label>{{_("Baths")}}</label></div>
            <div class="col-xs-2">{{ doc.baths or '' }}</div>
            <div class="col-xs-2 text-left"><label>{{_("FNR")}}</label></div>
            <div class="col-xs-2">{{ doc.fnr or '' }}</div>

        </div>

            <div class="row">

        {% if doc.property_status == "For Sale" or doc.property_status == "Sold" or doc.property_status == "For Rent and Sale" %}
            <div class="col-xs-2 text-left"><label>{{_("Sale Price")}}</label></div>
            <div class="col-xs-2">{{ doc.get_formatted("sale_price") }} </div>
            <div class="col-xs-2 text-left"><label>{{_("Negotiable")}} </label></div>
            <div class="col-xs-2"> {{ doc.negotiable or '' }} </div>

            </div>
      {% else%}
            <div class="col-xs-2 text-left"><label>{{_("Rent Price (Monthly)")}}</label></div>
            <div class="col-xs-2">{{ doc.get_formatted("rent_price") }}  </div>
        {%endif %}
        </div>
<hr>
<div class="row">
            <div class="col-xs-12 text-left"><h5><label>{{_("Building Details")}}</label></h5></div>
        </div>

    <div class="row">
            <div class="col-xs-2 text-left"><label>{{_("Year built")}}</label></div>
            <div class="col-xs-2">{{ doc.year_built or ''}} </div>
            <div class="col-xs-2 text-left"><label>{{_("Total Floors")}}</label></div>
            <div class="col-xs-2">{{ doc.total_floors or '' }}</div>
            <div class="col-xs-2 text-left"><label>{{_("Gaurdian")}}</label></div>
            <div class="col-xs-2">{{ doc.gaurdian or '' }}</div>

        </div>
        <div class="row">
            <div class="col-xs-2 text-left"><label>{{_("Orientation")}}</label></div>
            <div class="col-xs-10">{{ doc.orientation or ''}} </div>

     <hr>
     <div class="row">
            <div class="col-xs-12 text-left"><h5><label>{{_("Property Features")}}</label></h5></div>
        </div>

        <div class="row">
    <div class="col-xs-12 text-left">
    <ul>
        {% if doc.intercom %}<li><label>{{_("Intercom")}}</label></li>{%endif %} 
        {% if doc.digicode %}<li><label>{{_("Digicode")}}</label></li>{%endif %} 
         {% if doc.alarm %}<li><label>{{_("Alarm")}}</label></li>{%endif %} 
         {% if doc.armoured_door %}<li><label>{{_("Armoured Door")}}</label></li>{%endif %} 
         {% if doc.terrace %}<li><label>{{_("Terrace")}}</label></li>{%endif %} 
         {% if doc.balcony %}<li><label>{{_("Balcony")}}</label></li>{%endif %} 
         {% if doc.garage %}<li><label>{{_("Garage")}}</label></li>{%endif %}       
         {% if doc.parking %}<li><label>{{_("Parking")}}</label></li>{%endif %} 
         {% if doc.cellar %}<li><label>{{_("Cellar")}}</label></li>{%endif %} 
         {% if doc.on_ground_exterior %}<li><label>{{_("On Ground Exterior")}}</label></li>{%endif %} 
         {% if doc.internet %}<li><label>{{_("Internet")}}</label></li>{%endif %} 
         {% if doc.microwave %}<li><label>{{_("Microwave")}}</label></li>{%endif %} 
         {% if doc.double_glazing %}<li><label>{{_("Double glazing")}}</label></li>{%endif %} 
         {% if doc.dishwasher %}<li><label>{{_("Dishwasher")}}</label></li>{%endif %} 
         {% if doc.empty_garbage %}<li><label>{{_("Empty Garbage")}}</label></li>{%endif %} 
         {% if doc.dryer %}<li><label>{{_("Dryer")}}</label></li>{%endif %} 
         {% if doc.closets %}<li><label>{{_("Closets")}}</label></li>{%endif %} 
         {% if doc.antenna_tv %}<li><label>{{_("Antenna TV")}}</label></li>{%endif %} 
         {% if doc.phone_cable %}<li><label>{{_("Phone Cable")}}</label></li>{%endif %} 
         {% if doc.water %}<li><label>{{_("Water")}}</label></li>{%endif %} 
         {% if doc.electricity %}<li><label>{{_("Electricity")}}</label></li>{%endif %} 
         {% if doc.gas %}<li><label>{{_("Gas")}}</label></li>{%endif %} 
         {% if doc.wardrobe %}<li><label>{{_("Wardrobe")}}</label></li>{%endif %} 
         {% if doc.playground %}<li><label>{{_("Playground")}}</label></li>{%endif %} 
         {% if doc.oven_range %}<li><label>{{_("Oven/Range")}}</label></li>{%endif %} 
         {% if doc.refrigerator %}<li><label>{{_("Refrigerator")}}</label></li>{%endif %} 
        {% if doc.storage %}<li><label>{{_("Storage")}}</label></li>{%endif %} 
        {% if doc.tile %}<li><label>{{_("Tile")}}</label></li>{%endif %} </ul>
    </div>  </div>

    <hr> 

     <div class="row">
            <div class="col-xs-12 text-left"><h5><label>{{_("Type Of Heating")}}</label></h5></div>
        </div>

    <div class="row">
        <ul>
        {% if doc.individual %}<li><label>{{_("Individual")}}</label></li>{%endif %}
        {% if doc.collective %}<li><label>{{_("Collective")}}</label></li>{%endif %}
        {% if doc.fuel_oil %}<li><label>{{_("Fuel Oil")}}</label></li>{%endif %}
        {% if doc.electricity_heating %}<li><label>{{_("Electricity")}}</label></li>{%endif %}
        {% if doc.gas_heating %}<li><label>{{_("Gas")}}</label></li>{%endif %}
        {% if doc.floor_ceil_heating %}<li><label>{{_("Floor Ceiling")}}</label></li>{%endif %}
        {% if doc.radiator %}<li><label>{{_("Radiator")}}</label></li>{%endif %}
        {% if doc.chimney %}<li><label>{{_("Chimney")}}</label></li>{%endif %}
        </ul>
    </div>

     <hr>

        <div class="row">
            <div class="col-xs-2 text-left"><label>{{_("Sector")}}</label></div>
            <div class="col-xs-2">{{ doc.sector or ''}} </div>
            <div class="col-xs-2 text-left"><label>{{_("District")}}</label></div>
            <div class="col-xs-2">{{ doc.district or '' }}</div>

        </div>

    <div class="row">
            <div class="col-xs-12 text-left"><h5><label>{{_("Enviornment")}}</label></h5></div>
        </div>

        <div class="row">
        <ul>
        {% if doc.primary_school %}<li><label>{{_("Primary School")}}</label></li>{%endif %}
        {% if doc.secondary_school %}<li><label>{{_("Secondary School")}}</label></li>{%endif %}
        {% if doc.town_centre %}<li><label>{{_("Town Centre")}}</label></li>{%endif %}
        {% if doc.metro_tram %}<li><label>{{_("Metro/Tram")}}</label></li>{%endif %}
        {% if doc.bus %}<li><label>{{_("Bus")}}</label></li>{%endif %}
        {% if doc.railway_station %}<li><label>{{_("Rail Station")}}</label></li>{%endif %}
        {% if doc.shops %}<li><label>{{_("Shops")}}</label></li>{%endif %}
        {% if doc.market %}<li><label>{{_("Market")}}</label></li>{%endif %}
        </ul>
    </div>
    <hr>

     <div class="row">
            <div class="col-xs-12 text-left"><label>{{_("Property Photo")}}</label></div>
            </br>
            <img src="{{ doc.property_photo }}" width="50%">
        </div>

    <br>
     <div class="row">
            <div class="col-xs-2 text-left"><label>{{_("Notes")}}</label></div>
            <div class="col-xs-10 text-left">{{ doc.notes or ''}} </label></div>
            </div>

<div>
    <div id="footer-html" class="visible-pdf">
        {% if not no_letterhead and footer %}
        <div class="letter-head-footer">
            {{ footer }}
        </div>
        {% endif %}
        <p class="text-center small page-number visible-pdf">
            {{ _("Page {0} of {1}").format('<span class="page"></span>', '<span class="topage"></span>') }}
        </p>
    </div>
jigneshpshah commented 5 years ago

Publish Property on Real Estate Platform

Real Estate Main Instance

Property Doctype All Property Fields

Extra Fields

Instance Property ID Weight-age ( higher weightage will be given higher order in listing) e.g. 50 will be shown at top and then 49. Publish on Real Estate ( checkbox)

Instance Info Doctype This doctype info will be used to forward the captured lead to the instance.

Instance Domain (Unique) Company Name Contact Name Email Phone Disable Listing ( checkbox )
demo.RealEstate.com Demo Company Mr. ABC abc@xyz.com 789456787 0

Instance Property Doctype Publish on Real Estate ( checkbox)

Logic On click of the checkbox on instance, property after being validated from the instance will be inserted into the main Real-Estate instance. If the Property ID pre-exist, it will be deleted from the main instance and new record will be inserted on the main instance.

jigneshpshah commented 5 years ago

To Capture Lead and Set Email Alert

Customize Lead Doctype

Label Field Type Option
For Instance Domain Link Instance Info
Company Contact Email Data Email
Instance Property ID Data

Set Lead Source = Real-Estate Platform

Set Email Alert on new Lead creation having Lead Source = Real-Estate Platform

=======================================================

Dear <Contact Name>,

Kindly follow-up with the lead generated from Real-Estate platform.
Detail
Lead Name : 
Lead Contact : 
Lead Message : 
Lead Datetime  : 

Property Detail
Property ID : <Instance Property ID>
Property Name : <Property Name >
Property Address  : <Property Address > 

Regards,
Team Real-Estate

=========================================================