diff --git a/erpnext/utilities/demo/__init__.py b/erpnext/utilities/demo/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/utilities/demo/__init__.py
diff --git a/erpnext/utilities/demo/demo-login.css b/erpnext/utilities/demo/demo-login.css
new file mode 100644
index 0000000..f3464a3
--- /dev/null
+++ b/erpnext/utilities/demo/demo-login.css
@@ -0,0 +1,3 @@
+body, #container, .outer {
+	background-color: #888 !important;
+}
\ No newline at end of file
diff --git a/erpnext/utilities/demo/demo-login.html b/erpnext/utilities/demo/demo-login.html
new file mode 100644
index 0000000..4595cb7
--- /dev/null
+++ b/erpnext/utilities/demo/demo-login.html
@@ -0,0 +1,25 @@
+<div class="container">
+	<div class="row" style="margin-top: 100px;">
+		<div class="col-sm-offset-3 col-sm-6">
+			<div class="panel panel-default">
+				<div class="panel-heading">
+					Start ERPNext Demo
+				</div>
+				<div class="panel-body">
+					<p>
+					<input id="lead-email" type="email"
+						class="form-control" placeholder="Your Email Id (optional)">
+					</p>
+					<p>
+						<button type="submit" id="login_btn" 
+							class="btn btn-primary btn-large">Launch Demo</button>
+					</p>
+					<hr>
+					<p class="text-muted small">Some functionality is disabled for the demo app. The demo data will be cleared regulary. To start your own ERPNext Trial, <a href="https://erpnext.com/pricing-and-signup">click here</a></p>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="row">
+	</div>
+</div>
diff --git a/erpnext/utilities/demo/demo-login.js b/erpnext/utilities/demo/demo-login.js
new file mode 100644
index 0000000..509057b
--- /dev/null
+++ b/erpnext/utilities/demo/demo-login.js
@@ -0,0 +1,27 @@
+$(document).ready(function() {
+    $(".navbar, footer, .banner, #user-tools").toggle(false);
+    
+    $("#login_btn").click(function() {
+        var me = this;
+        $(this).html("Logging In...").prop("disabled", true);
+        wn.call({
+            "method": "login",
+            args: {
+                usr: "demo@erpnext.com",
+                pwd: "demo",
+                lead_email: $("#lead-email").val(),
+            },
+            callback: function(r) {
+                $(me).prop("disabled", false);
+                if(r.exc) {
+                    alert("Error, please contact support@erpnext.com");
+                } else {
+                    console.log("Logged In");
+                    window.location.href = "app.html";
+                }
+            }
+        })
+        return false;
+    })
+    .prop("disabled", false);
+})
\ No newline at end of file
diff --git a/erpnext/utilities/demo/demo_control_panel.py b/erpnext/utilities/demo/demo_control_panel.py
new file mode 100644
index 0000000..cb80373
--- /dev/null
+++ b/erpnext/utilities/demo/demo_control_panel.py
@@ -0,0 +1,16 @@
+from __future__ import unicode_literals
+import webnotes
+
+class CustomDocType(DocType):
+	def on_login(self):
+		from webnotes.utils import validate_email_add
+		from webnotes import conf
+		if "demo_notify_url" in conf:
+			if webnotes.form_dict.lead_email and validate_email_add(webnotes.form_dict.lead_email):
+				import requests
+				response = requests.post(conf.demo_notify_url, data={
+					"cmd":"erpnext.templates.utils.send_message",
+					"subject":"Logged into Demo",
+					"sender": webnotes.form_dict.lead_email,
+					"message": "via demo.erpnext.com"
+				})
diff --git a/erpnext/utilities/demo/demo_docs/Address.csv b/erpnext/utilities/demo/demo_docs/Address.csv
new file mode 100644
index 0000000..51c34b5
--- /dev/null
+++ b/erpnext/utilities/demo/demo_docs/Address.csv
@@ -0,0 +1,46 @@
+Data Import Template,,,,,,,,,,,,,,,,,,,,,
+Table:,Address,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,
+Column Labels,ID,Address Type,Address Title,Address Line1,City/Town,Country,Phone,Customer,Customer Name,Supplier,Supplier Name,Address Line2,Pincode,State,Email Id,Fax,Preferred Billing Address,Preferred Shipping Address,Sales Partner,Lead,Lead Name
+Column Name:,name,address_type,address_title,address_line1,city,country,phone,customer,customer_name,supplier,supplier_name,address_line2,pincode,state,email_id,fax,is_primary_address,is_shipping_address,sales_partner,lead,lead_name
+Mandatory:,Yes,Yes,Yes,Yes,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,No,No
+Type:,Data (text),Select,Data,Data,Data,Select,Data,Link,Data,Link,Data,Data,Data,Data,Data,Data,Check,Check,Link,Link,Data
+Info:,,"One of: Billing, Shipping, Office, Personal, Plant, Postal, Shop, Subsidiary, Warehouse, Other",,,,Valid Country,,Valid Customer,,Valid Supplier,,,,,,,0 or 1,0 or 1,Valid Sales Partner,Valid Lead,
+Start entering data below this line,,,,,,,,,,,,,,,,,,,,,
+,,Office,,254 Theotokopoulou Str.,Larnaka,Cyprus,23566775757,Adaptas,Adaptas,,,,,,,,,,,,
+,,Office,,R Patrão Caramelho 116,Fajozes,Portugal,23566775757,Asian Fusion,Asian Fusion,,,,,,,,,,,,
+,,Office,,30 Fulford Road,PENTRE-PIOD,United Kingdom,23566775757,Asian Junction,Asian Junction,,,,,,,,,,,,
+,,Office,,Schoenebergerstrasse 13,Raschau,Germany,23566775757,Big D Supermarkets,Big D Supermarkets,,,,,,,,,,,,
+,,Office,,Hoheluftchaussee 43,Kieritzsch,Germany,23566775757,Buttrey Food & Drug,Buttrey Food & Drug,,,,,,,,,,,,
+,,Office,,R Cimo Vila 6,Rebordosa,Portugal,23566775757,Chi-Chis,Chi-Chis,,,,,,,,,,,,
+,,Office,,R 5 Outubro 9,Quinta Nova São Domingos,Portugal,23566775757,Choices,Choices,,,,,,,,,,,,
+,,Office,,Avenida Macambira 953,Goiânia,Brazil,23566775757,Consumers and Consumers Express,Consumers and Consumers Express,,,,,,,,,,,,
+,,Office,,2342 Goyeau Ave,Windsor,Canada,23566775757,Crafts Canada,Crafts Canada,,,,,,,,,,,,
+,,Office,,Laukaantie 82,KOKKOLA,Finland,23566775757,Endicott Shoes,Endicott Shoes,,,,,,,,,,,,
+,,Office,,9 Brown Street,PETERSHAM,Australia,23566775757,Fayva,Fayva,,,,,,,,,,,,
+,,Office,,Via Donnalbina 41,Cala Gonone,Italy,23566775757,Intelacard,Intelacard,,,,,,,,,,,,
+,,Office,,Liljerum Grenadjärtorpet 69,TOMTEBODA,Sweden,23566775757,Landskip Yard Care,Landskip Yard Care,,,,,,,,,,,,
+,,Office,,72 Bishopgate Street,SEAHAM,United Kingdom,23566775757,Life Plan Counselling,Life Plan Counselling,,,,,,,,,,,,
+,,Office,,Σκαφίδια 105,ΠΑΡΕΚΚΛΗΣΙΑ,Cyprus,23566775757,Mr Fables,Mr Fables,,,,,,,,,,,,
+,,Office,,Mellemvej 7,Aabybro,Denmark,23566775757,Nelson Brothers,Nelson Brothers,,,,,,,,,,,,
+,,Office,,Plouggårdsvej 98,Karby,Denmark,23566775757,Netobill,Netobill,,,,,,,,,,,,
+,,Office,,176 Michalakopoulou Street,Agio Georgoudi,Cyprus,23566775757,,,Helios Air,Helios Air,,,,,,,,,,
+,,Office,,Fibichova 1102,Kokorín,Czech Republic,23566775757,,,Ks Merchandise,Ks Merchandise,,,,,,,,,,
+,,Office,,Zahradní 888,Cechtín,Czech Republic,23566775757,,,HomeBase,HomeBase,,,,,,,,,,
+,,Office,,ul. Grochowska 94,Warszawa,Poland,23566775757,,,Scott Ties,Scott Ties,,,,,,,,,,
+,,Office,,Norra Esplanaden 87,HELSINKI,Finland,23566775757,,,Reliable Investments,Reliable Investments,,,,,,,,,,
+,,Office,,2038 Fallon Drive,Dresden,Canada,23566775757,,,Nan Duskin,Nan Duskin,,,,,,,,,,
+,,Office,,77 cours Franklin Roosevelt,MARSEILLE,France,23566775757,,,Rainbow Records,Rainbow Records,,,,,,,,,,
+,,Office,,ul. Tuwima Juliana 85,Łódź,Poland,23566775757,,,New World Realty,New World Realty,,,,,,,,,,
+,,Office,,Gl. Sygehusvej 41,Narsaq,Greenland,23566775757,,,Asiatic Solutions,Asiatic Solutions,,,,,,,,,,
+,,Office,,Gosposka ulica 50,Nova Gorica,Slovenia,23566775757,,,Eagle Hardware,Eagle Hardware,,,,,,,,,,
\ No newline at end of file
diff --git a/erpnext/utilities/demo/demo_docs/BOM.csv b/erpnext/utilities/demo/demo_docs/BOM.csv
new file mode 100644
index 0000000..ab0d6f5
--- /dev/null
+++ b/erpnext/utilities/demo/demo_docs/BOM.csv
@@ -0,0 +1,47 @@
+Data Import Template,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Table:,BOM,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+DocType:,BOM,,,,,,,,,,,,,,,~,BOM Operation,bom_operations,,,,,,~,BOM Item,bom_materials,,,,,,,,,~,BOM Explosion Item,flat_bom_details,,,,,,
+Column Labels:,ID,Item,Quantity,Is Active,Is Default,With Operations,Rate Of Materials Based On,Price List,Total Cost,Total Raw Material Cost,Total Operating Cost,Item UOM,Project Name,Item Desription,Amended From,,ID,Operation No,Operation Description,Workstation,Hour Rate,Operation Time (mins),Operating Cost,,ID,Item Code,Qty,Stock UOM,Operation No,BOM No,Rate,Amount,Scrap %,Item Description,,ID,Item Code,Description,Qty,Rate,Amount,Stock UOM,Qty Consumed Per Unit
+Column Name:,name,item,quantity,is_active,is_default,with_operations,rm_cost_as_per,buying_price_list,total_cost,raw_material_cost,operating_cost,uom,project_name,description,amended_from,~,name,operation_no,opn_description,workstation,hour_rate,time_in_mins,operating_cost,~,name,item_code,qty,stock_uom,operation_no,bom_no,rate,amount,scrap,description,~,name,item_code,description,qty,rate,amount,stock_uom,qty_consumed_per_unit
+Mandatory:,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,,Yes,Yes,Yes,No,No,No,No,,Yes,Yes,Yes,Yes,No,No,No,No,No,No,,Yes,No,No,No,No,No,No,No
+Type:,Data (text),Link,Float,Check,Check,Check,Select,Link,Float,Float,Float,Select,Link,Small Text,Link,,Data,Data,Text,Link,Float,Float,Float,,Data,Link,Float,Link,Select,Link,Float,Float,Float,Text,,Data,Link,Text,Float,Float,Float,Link,Float
+Info:,,Valid Item,,0 or 1,0 or 1,0 or 1,"One of: Valuation Rate, Last Purchase Rate, Price List",Valid Price List,,,,Valid UOM,Valid Project,,Valid BOM,,Leave blank for new records,,,Valid Workstation,,,,,Leave blank for new records,Valid Item,,Valid UOM,,Valid BOM,,,,,,Leave blank for new records,Valid Item,,,,,Valid UOM,
+Start entering data below this line,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,BOM/Bearing Assembly/001,Bearing Assembly,1,1,1,,Price List,Standard Buying,130,130,0,Nos,,Bearing Assembly,,,,,,,,,,,,Base Bearing Plate,1,Nos,,,15,15,,1/4 in. x 6 in. x 6 in. Mild Steel Plate,,,Bearing Pipe,1.5 in. Diameter x 36 in. Mild Steel Tubing,1,15,15,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,Bearing Block,1,Nos,,,10,10,,"CAST IRON, MCMASTER PART NO. 3710T13",,,Bearing Collar,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,2,20,40,Nos,2
+,,,,,,,,,,,,,,,,,,,,,,,,,,Bearing Collar,2,Nos,,,20,40,,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,,,Bearing Block,"CAST IRON, MCMASTER PART NO. 3710T13",1,10,10,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,Bearing Pipe,1,Nos,,,15,15,,1.5 in. Diameter x 36 in. Mild Steel Tubing,,,Upper Bearing Plate,3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate,1,50,50,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,Upper Bearing Plate,1,Nos,,,50,50,,3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate,,,Base Bearing Plate,1/4 in. x 6 in. x 6 in. Mild Steel Plate,1,15,15,Nos,1
+,BOM/Wind Mill A Series/001,Wind Mill A Series,1,1,1,,Price List,Standard Buying,223,223,0,Nos,,Wind Mill A Series for Home Use 9ft,,,,,,,,,,,,Base Bearing Plate,1,Nos,,,15,15,,1/4 in. x 6 in. x 6 in. Mild Steel Plate,,,Shaft,1.25 in. Diameter x 6 ft. Mild Steel Tubing,1,30,30,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,Base Plate,1,Nos,,,20,20,,3/4 in. x 2 ft. x 4 ft. Pine Plywood,,,Base Bearing Plate,1/4 in. x 6 in. x 6 in. Mild Steel Plate,1,15,15,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,Bearing Block,1,Nos,,,10,10,,"CAST IRON, MCMASTER PART NO. 3710T13",,,External Disc,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,1,45,45,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,Bearing Pipe,1,Nos,,,15,15,,1.5 in. Diameter x 36 in. Mild Steel Tubing,,,Bearing Pipe,1.5 in. Diameter x 36 in. Mild Steel Tubing,1,15,15,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,External Disc,1,Nos,,,45,45,,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,,,Wing Sheet,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,4,22,88,Nos,4
+,,,,,,,,,,,,,,,,,,,,,,,,,,Shaft,1,Nos,,,30,30,,1.25 in. Diameter x 6 ft. Mild Steel Tubing,,,Base Plate,3/4 in. x 2 ft. x 4 ft. Pine Plywood,1,20,20,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,Wing Sheet,4,Nos,,,22,88,,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,,,Bearing Block,"CAST IRON, MCMASTER PART NO. 3710T13",1,10,10,Nos,1
+,BOM/Wind MIll C Series/001,Wind MIll C Series,1,1,1,,Price List,Standard Buying,314,314,0,Nos,,Wind Mill C Series for Commercial Use 18ft,,,,,,,,,,,,Base Plate,2,Nos,,,20,40,,3/4 in. x 2 ft. x 4 ft. Pine Plywood,,,Base Bearing Plate,1/4 in. x 6 in. x 6 in. Mild Steel Plate,1,15,15,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,Internal Disc,1,Nos,,,33,33,,For Bearing Collar,,,Bearing Collar,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,2,20,40,Nos,2
+,,,,,,,,,,,,,,,,,,,,,,,,,,External Disc,1,Nos,,,45,45,,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,,,Base Plate,3/4 in. x 2 ft. x 4 ft. Pine Plywood,2,20,40,Nos,2
+,,,,,,,,,,,,,,,,,,,,,,,,,,Bearing Assembly,1,Nos,,BOM/Bearing Assembly/001,130,130,,Bearing Assembly,,,Bearing Pipe,1.5 in. Diameter x 36 in. Mild Steel Tubing,1,15,15,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,Wing Sheet,3,Nos,,,22,66,,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,,,Internal Disc,For Bearing Collar,1,33,33,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Upper Bearing Plate,3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate,1,50,50,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Wing Sheet,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,3,22,66,Nos,3
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,External Disc,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,1,45,45,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Bearing Block,"CAST IRON, MCMASTER PART NO. 3710T13",1,10,10,Nos,1
+,BOM/Wind Turbine/001,Wind Turbine,1,1,1,,Price List,Standard Buying,139,139,0,Nos,,Small Wind Turbine for Home Use,,,,,,,,,,,,Base Bearing Plate,1,Nos,,,15,15,,1/4 in. x 6 in. x 6 in. Mild Steel Plate,,,Shaft,1.25 in. Diameter x 6 ft. Mild Steel Tubing,1,30,30,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,Base Plate,1,Nos,,,20,20,,3/4 in. x 2 ft. x 4 ft. Pine Plywood,,,Bearing Collar,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,1,20,20,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,Bearing Collar,1,Nos,,,20,20,,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,,,Base Plate,3/4 in. x 2 ft. x 4 ft. Pine Plywood,1,20,20,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,Blade Rib,1,Nos,,,10,10,,1/2 in. x 2 ft. x 4 ft. Pine Plywood,,,Base Bearing Plate,1/4 in. x 6 in. x 6 in. Mild Steel Plate,1,15,15,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,Shaft,1,Nos,,,30,30,,1.25 in. Diameter x 6 ft. Mild Steel Tubing,,,Blade Rib,1/2 in. x 2 ft. x 4 ft. Pine Plywood,1,10,10,Nos,1
+,,,,,,,,,,,,,,,,,,,,,,,,,,Wing Sheet,2,Nos,,,22,44,,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,,,Wing Sheet,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,2,22,44,Nos,2
diff --git a/erpnext/utilities/demo/demo_docs/Contact.csv b/erpnext/utilities/demo/demo_docs/Contact.csv
new file mode 100644
index 0000000..be3dddc
--- /dev/null
+++ b/erpnext/utilities/demo/demo_docs/Contact.csv
@@ -0,0 +1,46 @@
+Data Import Template,,,,,,,,,,,,,,,
+Table:,Contact,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,
+Column Labels,First Name,Email Id,Phone,Last Name,Status,Customer,Customer Name,Supplier,Supplier Name,Sales Partner,Is Primary Contact,Mobile No,Department,Designation,Unsubscribed
+Column Name:,first_name,email_id,phone,last_name,status,customer,customer_name,supplier,supplier_name,sales_partner,is_primary_contact,mobile_no,department,designation,unsubscribed
+Mandatory:,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No
+Type:,Data,Data,Data,Data,Select,Link,Data,Link,Data,Link,Check,Data,Data,Data,Check
+Info:,,,,,"One of: Open, Replied",Valid Customer,,Valid Supplier,,Valid Sales Partner,0 or 1,,,,0 or 1
+Start entering data below this line,,,,,,,,,,,,,,,
+,Jan,JanVaclavik@dayrep.com,456675757,Václavík,,Adaptas,Adaptas,,,,,,,,
+,Chidumaga,ChidumagaTobeolisa@armyspy.com,456675757,Tobeolisa,,Asian Fusion,Asian Fusion,,,,,,,,
+,Jana,JanaKubanova@superrito.com,456675757,Kubáňová,,Asian Junction,Asian Junction,,,,,,,,
+,紹萱,XuChaoXuan@gustr.com,456675757,于,,Big D Supermarkets,Big D Supermarkets,,,,,,,,
+,Özlem,OzlemVerwijmeren@dayrep.com,456675757,Verwijmeren,,Buttrey Food & Drug,Buttrey Food & Drug,,,,,,,,
+,Hans,HansRasmussen@superrito.com,456675757,Rasmussen,,Chi-Chis,Chi-Chis,,,,,,,,
+,Satomi,SatomiShigeki@superrito.com,456675757,Shigeki,,Choices,Choices,,,,,,,,
+,Simon,SimonVJessen@superrito.com,456675757,Jessen,,Consumers and Consumers Express,Consumers and Consumers Express,,,,,,,,
+,نگارین,NeguaranShahsaah@teleworm.us,456675757,شاه سیاه,,Crafts Canada,Crafts Canada,,,,,,,,
+,Lom-Ali,Lom-AliBataev@dayrep.com,456675757,Bataev,,Endicott Shoes,Endicott Shoes,,,,,,,,
+,Tiên,VanNgocTien@einrot.com,456675757,Văn,,Fayva,Fayva,,,,,,,,
+,Quimey,QuimeyOsorioRuelas@gustr.com,456675757,Osorio,,Intelacard,Intelacard,,,,,,,,
+,Edgarda,EdgardaSalcedoRaya@teleworm.us,456675757,Salcedo,,Landskip Yard Care,Landskip Yard Care,,,,,,,,
+,Hafsteinn,HafsteinnBjarnarsonar@armyspy.com,456675757,Bjarnarsonar,,Life Plan Counselling,Life Plan Counselling,,,,,,,,
+,Даниил,@superrito.com,456675757,Коновалов,,Mr Fables,Mr Fables,,,,,,,,
+,Selma,SelmaMAndersen@teleworm.us,456675757,Andersen,,Nelson Brothers,Nelson Brothers,,,,,,,,
+,Ladislav,LadislavKolaja@armyspy.com,456675757,Kolaja,,Netobill,Netobill,,,,,,,,
+,Tewolde,TewoldeAbaalom@teleworm.us,456675757,Abaalom,,,,Helios Air,Helios Air,,,,,,
+,Leila,LeilaFernandesRodrigues@gustr.com,456675757,Rodrigues,,,,Ks Merchandise,Ks Merchandise,,,,,,
+,Dmitry,DmitryBulgakov@gustr.com,456675757,Bulgakov,,,,HomeBase,HomeBase,,,,,,
+,Haiduc,HaiducWhitfoot@dayrep.com,456675757,Whitfoot,,,,Scott Ties,Scott Ties,,,,,,
+,Sesselja,SesseljaPetursdottir@cuvox.de,456675757,Pétursdóttir,,,,Reliable Investments,Reliable Investments,,,,,,
+,Hajdar,HajdarPignar@superrito.com,456675757,Pignar,,,,Nan Duskin,Nan Duskin,,,,,,
+,Gustava,GustavaLorenzo@teleworm.us,456675757,Lorenzo,,,,Rainbow Records,Rainbow Records,,,,,,
+,Bethany,BethanyWood@teleworm.us,456675757,Wood,,,,New World Realty,New World Realty,,,,,,
+,Gloriana,GlorianaBrownlock@cuvox.de,456675757,Brownlock,,,,Asiatic Solutions,Asiatic Solutions,,,,,,
+,Jenson,JensonFraser@gustr.com,456675757,Fraser,,,,Eagle Hardware,Eagle Hardware,,,,,,
\ No newline at end of file
diff --git a/erpnext/utilities/demo/demo_docs/Customer.csv b/erpnext/utilities/demo/demo_docs/Customer.csv
new file mode 100644
index 0000000..2ed0e1c
--- /dev/null
+++ b/erpnext/utilities/demo/demo_docs/Customer.csv
@@ -0,0 +1,38 @@
+Data Import Template,,,,,,,,,,,,,,,,
+Table:,Customer,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,
+Column Labels,ID,Customer Name,Customer Type,Customer Group,Territory,Company,Series,Lead Ref,Default Price List,Default Currency,Customer Details,Credit Days,Credit Limit,Website,Default Sales Partner,Default Commission Rate
+Column Name:,name,customer_name,customer_type,customer_group,territory,company,naming_series,lead_name,default_price_list,default_currency,customer_details,credit_days,credit_limit,website,default_sales_partner,default_commission_rate
+Mandatory:,Yes,Yes,Yes,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No
+Type:,Data (text),Data,Select,Link,Link,Link,Select,Link,Link,Link,Text,Int,Currency,Data,Link,Float
+Info:,,,"One of: Company, Individual",Valid Customer Group,Valid Territory,Valid Company,"One of: CUST, CUSTMUM",Valid Lead,Valid Price List,Valid Currency,,Integer,,,Valid Sales Partner,
+Start entering data below this line,,,,,,,,,,,,,,,,
+,,Asian Junction,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Life Plan Counselling,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Two Pesos,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Mr Fables,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Intelacard,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Big D Supermarkets,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Adaptas,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Nelson Brothers,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Landskip Yard Care,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Buttrey Food & Drug,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Fayva,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Asian Fusion,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Crafts Canada,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Consumers and Consumers Express,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Netobill,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Choices,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Chi-Chis,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Red Food,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
+,,Endicott Shoes,Company,Commercial,Rest Of The World,Wind Power LLC,,,,,,,,,,
\ No newline at end of file
diff --git a/erpnext/utilities/demo/demo_docs/Employee.csv b/erpnext/utilities/demo/demo_docs/Employee.csv
new file mode 100644
index 0000000..c9b340a
--- /dev/null
+++ b/erpnext/utilities/demo/demo_docs/Employee.csv
@@ -0,0 +1,40 @@
+Data Import Template,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Table:,Employee,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+DocType:,Employee,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Column Labels:,ID,Full Name,Date of Joining,Date of Birth,Gender,Company,Status,Naming Series,Salutation,Image,User ID,Employee Number,Employment Type,Holiday List,Scheduled Confirmation Date,Final Confirmation Date,Contract End Date,Date Of Retirement,Branch,Department,Designation,Grade,Email (By company),Notice - Number of Days,Salary Mode,Bank Name,Bank A/C No.,ESIC CARD No,PF Number,Gratuity LIC ID,Reports to,Cell Number,Personal Email,Person To Be Contacted,Relation,Emergency Phone Number,Permanent Accommodation Type,Permanent Address,Current Accommodation Type,Current Address,Bio,PAN Number,Passport Number,Date of Issue,Valid Upto,Place of Issue,Marital Status,Blood Group,Family Background,Health Details,Resignation Letter Date,Relieving Date,Reason for Leaving,Leave Encashed?,Encashment Date,Held On,Reason for Resignation,New Workplace,Feedback
+Column Name:,name,employee_name,date_of_joining,date_of_birth,gender,company,status,naming_series,salutation,image,user_id,employee_number,employment_type,holiday_list,scheduled_confirmation_date,final_confirmation_date,contract_end_date,date_of_retirement,branch,department,designation,grade,company_email,notice_number_of_days,salary_mode,bank_name,bank_ac_no,esic_card_no,pf_number,gratuity_lic_id,reports_to,cell_number,personal_email,person_to_be_contacted,relation,emergency_phone_number,permanent_accommodation_type,permanent_address,current_accommodation_type,current_address,bio,pan_number,passport_number,date_of_issue,valid_upto,place_of_issue,marital_status,blood_group,family_background,health_details,resignation_letter_date,relieving_date,reason_for_leaving,leave_encashed,encashment_date,held_on,reason_for_resignation,new_workplace,feedback
+Mandatory:,Yes,Yes,Yes,Yes,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No
+Type:,Data (text),Data,Date,Date,Select,Select,Select,Select,Select,Select,Link,Data,Link,Link,Date,Date,Date,Date,Link,Link,Link,Link,Data,Int,Select,Data,Data,Data,Data,Data,Link,Data,Data,Data,Data,Data,Select,Small Text,Select,Small Text,Text Editor,Data,Data,Date,Date,Data,Select,Select,Small Text,Small Text,Date,Date,Data,Select,Date,Date,Select,Data,Small Text
+Info:,,,,,"One of: Male, Female",Valid Company,"One of: Active, Left",One of: EMP/,"One of: Mr, Ms",One of: attach_files:,Valid Profile,,Valid Employment Type,Valid Holiday List,,,,,Valid Branch,Valid Department,Valid Designation,Valid Grade,,Integer,"One of: Bank, Cash, Cheque",,,,,,Valid Employee,,,,,,"One of: Rented, Owned",,"One of: Rented, Owned",,,,,,,,"One of: Single, Married, Divorced, Widowed","One of: A+, A-, B+, B-, AB+, AB-, O+, O-",,,,,,"One of: Yes, No",,,"One of: Better Prospects, Health Concerns",,
+Start entering data below this line,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Dikman Shervashidze Shervashidze,10-10-2001,03-01-1982,Female,Wind Power LLC,Active,EMP/,,,DikmanShervashidze@armyspy.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Zukutakitoteka ,09-16-1976,03-02-1959,Female,Wind Power LLC,Active,EMP/,,,Zukutakitoteka@teleworm.us,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Hatsue Kashiwagi,06-16-2000,03-03-1982,Female,Wind Power LLC,Active,EMP/,,,HatsueKashiwagi@cuvox.de,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Nuran Verkleij,07-01-1969,04-04-1945,Female,Wind Power LLC,Active,EMP/,,,NuranVerkleij@einrot.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Дмитрий Пирогов,12-24-1999,03-05-1978,Male,Wind Power LLC,Active,EMP/,,,aromn@armyspy.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Tilde Lindqvist,08-05-1981,03-06-1964,Female,Wind Power LLC,Active,EMP/,,,TildeLindqvist@cuvox.de,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Michał Sobczak,06-10-2006,03-07-1982,Male,Wind Power LLC,Active,EMP/,,,MichalSobczak@teleworm.us,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Gabrielle Loftus,10-21-1993,03-08-1969,Female,Wind Power LLC,Active,EMP/,,,GabrielleLoftus@superrito.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Vakhita Ryzaev,09-06-2005,03-09-1982,Male,Wind Power LLC,Active,EMP/,,,VakhitaRyzaev@teleworm.us,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Charmaine Gaudreau,12-25-2007,03-10-1985,Female,Wind Power LLC,Active,EMP/,,,CharmaineGaudreau@cuvox.de,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Rafaëla Maartens,09-02-2002,03-11-1982,Female,Wind Power LLC,Active,EMP/,,,RafaelaMaartens@cuvox.de,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Nuguse Yohannes,08-24-1984,07-12-1966,Male,Wind Power LLC,Active,EMP/,,,NuguseYohannes@dayrep.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Раиса Белякова,12-04-2002,03-13-1982,Female,Wind Power LLC,Active,EMP/,,,panca@armyspy.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,胤隆 蔡,03-14-2011,06-14-1991,Male,Wind Power LLC,Active,EMP/,,,CaYinLong@gustr.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Freddie Scott,12-14-2004,03-15-1982,Male,Wind Power LLC,Active,EMP/,,,FreddieScott@armyspy.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Bergþóra Vigfúsdóttir,05-17-2004,03-16-1982,Female,Wind Power LLC,Active,EMP/,,,BergoraVigfusdottir@superrito.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Ward Kalb,05-13-1994,03-17-1973,Male,Wind Power LLC,Active,EMP/,,,WardNajmalDinKalb@cuvox.de,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Wan Mai,12-15-2003,09-18-1982,Female,Wind Power LLC,Active,EMP/,,,WanMai@teleworm.us,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Leon Abdulov,03-15-1999,03-19-1982,Male,Wind Power LLC,Active,EMP/,,,LeonAbdulov@superrito.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,Sabina Novotná,01-25-1991,03-20-1974,Female,Wind Power LLC,Active,EMP/,,,SabinaNovotna@superrito.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
\ No newline at end of file
diff --git a/erpnext/utilities/demo/demo_docs/Fiscal_Year.csv b/erpnext/utilities/demo/demo_docs/Fiscal_Year.csv
new file mode 100644
index 0000000..d56b1b9
--- /dev/null
+++ b/erpnext/utilities/demo/demo_docs/Fiscal_Year.csv
@@ -0,0 +1,23 @@
+Data Import Template,,,,
+Table:,Fiscal Year,,,
+,,,,
+,,,,
+Notes:,,,,
+Please do not change the template headings.,,,,
+First data column must be blank.,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,
+"For updating, you can update only selective columns.",,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,
+,,,,
+DocType:,Fiscal Year,,,
+Column Labels:,ID,Year Name,Year Start Date,Year Closed
+Column Name:,name,year,year_start_date,year_end_date,is_fiscal_year_closed
+Mandatory:,Yes,Yes,Yes,Yes,No
+Type:,Data (text),Data,Date,Date,Select
+Info:,,,,,"One of: No, Yes"
+Start entering data below this line,,,,
+,,2009,01-01-2009,31-12-2009,No
+,,2010,01-01-2010,31-12-2010,No
+,,2011,01-01-2011,31-12-2011,No
\ No newline at end of file
diff --git a/erpnext/utilities/demo/demo_docs/Item.csv b/erpnext/utilities/demo/demo_docs/Item.csv
new file mode 100644
index 0000000..eeb18c5
--- /dev/null
+++ b/erpnext/utilities/demo/demo_docs/Item.csv
@@ -0,0 +1,37 @@
+Data Import Template,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Table:,Item,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+DocType:,Item,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~,Item Reorder,item_reorder,,,,~,UOM Conversion Detail,uom_conversion_details,,~,Item Supplier,item_supplier_details,,~,Item Customer Detail,item_customer_details,,~,Item Tax,item_tax,,~,Item Quality Inspection Parameter,item_specification_details,,~,Website Item Group,website_item_groups,~,Item Website Specification,item_website_specifications,
+Column Labels:,ID,Item Name,Item Group,Default Unit of Measure,Description,Is Stock Item,Is Asset Item,Has Batch No,Has Serial No,Is Purchase Item,Is Sales Item,Is Service Item,Inspection Required,Allow Bill of Materials,Allow Production Order,Is Sub Contracted Item,Document Numbering Series,Item Code,Brand,Barcode,Image,Description HTML,Default Warehouse,Allowance Percent,Valuation Method,Minimum Order Qty,Serial Number Series,Warranty Period (in days),End of Life,Net Weight,Weight UOM,Re-Order Level,Re-Order Qty,Default Supplier,Lead Time Days,Default Expense Account,Default Cost Center,Last Purchase Rate,Standard Rate,Manufacturer,Manufacturer Part Number,Max Discount (%),Default Income Account,Cost Center,Default BOM,Show in Website,Page Name,Weightage,Slideshow,Image,Website Warehouse,Website Description,,ID,Warehouse,Re-order Level,Material Request Type,Re-order Qty,,ID,UOM,Conversion Factor,,ID,Supplier,Supplier Part Number,,ID,Customer Name,Ref Code,,ID,Tax,Tax Rate,,ID,Parameter,Acceptance Criteria,,ID,Item Group,,ID,Label,Description
+Column Name:,name,item_name,item_group,stock_uom,description,is_stock_item,is_asset_item,has_batch_no,has_serial_no,is_purchase_item,is_sales_item,is_service_item,inspection_required,is_manufactured_item,is_pro_applicable,is_sub_contracted_item,naming_series,item_code,brand,barcode,image,description_html,default_warehouse,tolerance,valuation_method,min_order_qty,serial_no_series,warranty_period,end_of_life,net_weight,weight_uom,re_order_level,re_order_qty,default_supplier,lead_time_days,purchase_account,cost_center,last_purchase_rate,standard_rate,manufacturer,manufacturer_part_no,max_discount,default_income_account,default_sales_cost_center,default_bom,show_in_website,page_name,weightage,slideshow,website_image,website_warehouse,web_long_description,~,name,warehouse,warehouse_reorder_level,material_request_type,warehouse_reorder_qty,~,name,uom,conversion_factor,~,name,supplier,supplier_part_no,~,name,customer_name,ref_code,~,name,tax_type,tax_rate,~,name,specification,value,~,name,item_group,~,name,label,description
+Mandatory:,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,,Yes,Yes,Yes,Yes,No,,Yes,No,No,,Yes,No,No,,Yes,Yes,Yes,,Yes,Yes,No,,Yes,Yes,No,,Yes,No,,Yes,No,No
+Type:,Data (text),Data,Link,Link,Small Text,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Select,Data,Link,Data,Select,Small Text,Link,Float,Select,Float,Data,Data,Date,Float,Link,Float,Float,Link,Int,Link,Link,Float,Float,Data,Data,Float,Link,Link,Link,Check,Data,Int,Link,Select,Link,Text Editor,,Data,Link,Float,Select,Float,,Data,Link,Float,,Data,Link,Data,,Data,Link,Data,,Data,Link,Float,,Data,Data,Data,,Data,Link,,Data,Data,Text
+Info:,,,Valid Item Group,Valid UOM,,"One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No","One of: Yes, No",One of: ITEM,,Valid Brand,,One of: attach_files:,,Valid Warehouse,,"One of: FIFO, Moving Average",,,,,,Valid UOM,,,Valid Supplier,Integer,Valid Account,Valid Cost Center,,,,,,Valid Account,Valid Cost Center,Valid BOM,0 or 1,,Integer,Valid Website Slideshow,One of: attach_files:,Valid Warehouse,,,Leave blank for new records,Valid Warehouse,,"One of: Purchase, Transfer",,,Leave blank for new records,Valid UOM,,,Leave blank for new records,Valid Supplier,,,Leave blank for new records,Valid Customer,,,Leave blank for new records,Valid Account,,,Leave blank for new records,,,,Leave blank for new records,Valid Item Group,,Leave blank for new records,,
+Start entering data below this line,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
+,Base Bearing Plate,Base Bearing Plate,Raw Material,Nos,1/4 in. x 6 in. x 6 in. Mild Steel Plate,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Base Bearing Plate,,,,,Stores - WP,0,,0,,,,0,,0,0,Eagle Hardware,0,,,15,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
+,Base Plate,Base Plate,Raw Material,Nos,3/4 in. x 2 ft. x 4 ft. Pine Plywood,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Base Plate,,,,,Stores - WP,0,,0,,,,0,,0,0,HomeBase,0,,,20,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
+,Bearing Assembly,Bearing Assembly,Sub Assemblies,Nos,Bearing Assembly,Yes,No,No,No,No,Yes,No,No,Yes,Yes,No,,Bearing Assembly,,,,,Stores - WP,0,,0,,,,0,,0,0,Asiatic Solutions,0,,,0,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
+,Bearing Block,Bearing Block,Raw Material,Nos,"CAST IRON, MCMASTER PART NO. 3710T13",Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Bearing Block,,,,,Stores - WP,0,,0,,,,0,,0,0,Nan Duskin,0,,,10,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
+,Bearing Collar,Bearing Collar,Raw Material,Nos,1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Bearing Collar,,,,,Stores - WP,0,,0,,,,0,,0,0,Eagle Hardware,0,,,20,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
+,Bearing Pipe,Bearing Pipe,Raw Material,Nos,1.5 in. Diameter x 36 in. Mild Steel Tubing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Bearing Pipe,,,,,Stores - WP,0,,0,,,,0,,0,0,HomeBase,0,,,15,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
+,Blade Rib,Blade Rib,Raw Material,Nos,1/2 in. x 2 ft. x 4 ft. Pine Plywood,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Blade Rib,,,,,Stores - WP,0,,0,,,,0,,0,0,Ks Merchandise,0,,,0,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
+,Disc Collars,Disc Collars,Raw Material,Nos,For Upper Bearing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Disc Collars,,,,,Stores - WP,0,,0,,,,0,,0,0,Asiatic Solutions,0,,,0,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
+,External Disc,External Disc,Raw Material,Nos,15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,External Disc,,,,,Stores - WP,0,,0,,,,0,,0,0,HomeBase,0,,,45,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
+,Internal Disc,Internal Disc,Raw Material,Nos,For Bearing Collar,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Internal Disc,,,,,Stores - WP,0,,0,,,,0,,0,0,HomeBase,0,,,33,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
+,Shaft,Shaft,Raw Material,Nos,1.25 in. Diameter x 6 ft. Mild Steel Tubing,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Shaft,,,,,Stores - WP,0,,0,,,,0,,0,0,Eagle Hardware,0,,,30,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
+,Stand,Stand,Raw Material,Nos,N/A,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Stand,,,,,Stores - WP,0,,0,,,,0,,0,0,Scott Ties,0,,,0,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
+,Upper Bearing Plate,Upper Bearing Plate,Raw Material,Nos,3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Upper Bearing Plate,,,,,Stores - WP,0,,0,,,,0,,0,0,Eagle Hardware,0,,,50,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
+,Wind Mill A Series,Wind Mill A Series,Products,Nos,Wind Mill A Series for Home Use 9ft,Yes,No,No,Yes,No,Yes,Yes,No,Yes,Yes,No,,Wind Mill A Series,,,,,Finished Goods - WP,0,,0,WMA,,,0,,0,0,,0,,,0,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
+,Wind MIll C Series,Wind MIll C Series,Products,Nos,Wind Mill C Series for Commercial Use 18ft,Yes,No,No,Yes,No,Yes,Yes,No,Yes,Yes,No,,Wind MIll C Series,,,,,Finished Goods - WP,0,,0,WMC,,,0,,0,0,,0,,,0,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
+,Wind Turbine,Wind Turbine,Products,Nos,Small Wind Turbine for Home Use,Yes,No,No,Yes,No,Yes,Yes,No,Yes,Yes,No,,Wind Turbine,,,,,Finished Goods - WP,0,,0,WTU,,,0,,0,0,,0,,,0,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
+,Wing Sheet,Wing Sheet,Raw Material,Nos,1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet,Yes,No,No,No,Yes,Yes,Yes,No,No,No,No,,Wing Sheet,,,,,Stores - WP,0,,0,,,,0,,0,0,New World Realty,0,,,22,0,,,0,,,,0,,0,,,,,,,,,,,,,Nos,1,,,,,,,,,,,,,,,,,,,,,,,
diff --git a/erpnext/utilities/demo/demo_docs/Item_Price.csv b/erpnext/utilities/demo/demo_docs/Item_Price.csv
new file mode 100644
index 0000000..d70b7b3
--- /dev/null
+++ b/erpnext/utilities/demo/demo_docs/Item_Price.csv
@@ -0,0 +1,49 @@
+Data Import Template,,,,,,,
+Table:,Item Price,,,,,,
+,,,,,,,
+,,,,,,,
+Notes:,,,,,,,
+Please do not change the template headings.,,,,,,,
+First data column must be blank.,,,,,,,
+"If you are uploading new records, leave the ""name"""" (ID) column blank.""",,,,,,,
+"If you are uploading new records, ""Naming Series"""" becomes mandatory"," if present.""",,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,
+,,,,,,,
+DocType:,Item Price,,,,,,
+Column Labels:,ID,Price List,Item Code,Rate,Valid for Buying or Selling?,Item Name,Item Description
+Column Name:,name,price_list,item_code,ref_rate,buying_or_selling,item_name,item_description
+Mandatory:,Yes,Yes,Yes,Yes,No,No,No
+Type:,Data (text),Link,Link,Currency,Select,Data,Text
+Info:,,Valid Price List,Valid Item,,"One of: Selling, Buying",,
+Start entering data below this line,,,,,,,
+,,Standard Buying,Base Bearing Plate,15,Buying,,
+,,Standard Buying,Base Plate,20,Buying,,
+,,Standard Buying,Bearing Block,10,Buying,,
+,,Standard Buying,Bearing Collar,20,Buying,,
+,,Standard Buying,Bearing Pipe,15,Buying,,
+,,Standard Buying,Blade Rib,10,Buying,,
+,,Standard Buying,Disc Collars,74,Buying,,
+,,Standard Buying,External Disc,45,Buying,,
+,,Standard Buying,Internal Disc,33,Buying,,
+,,Standard Buying,Shaft,30,Buying,,
+,,Standard Buying,Stand,40,Buying,,
+,,Standard Buying,Upper Bearing Plate,50,Buying,,
+,,Standard Buying,Wing Sheet,22,Buying,,
+,,Standard Selling,Wind Turbine,21,Selling,,
+,,Standard Selling,Wind Mill A Series,28,Selling,,
+,,Standard Selling,Wind MIll C Series,14,Selling,,
+,,Standard Selling,Base Bearing Plate,28,Selling,,
+,,Standard Selling,Base Plate,21,Selling,,
+,,Standard Selling,Bearing Block,14,Selling,,
+,,Standard Selling,Bearing Collar,103.6,Selling,,
+,,Standard Selling,Bearing Pipe,63,Selling,,
+,,Standard Selling,Blade Rib,46.2,Selling,,
+,,Standard Selling,Disc Collars,42,Selling,,
+,,Standard Selling,External Disc,56,Selling,,
+,,Standard Selling,Internal Disc,70,Selling,,
+,,Standard Selling,Shaft,340,Selling,,
+,,Standard Selling,Stand,400,Selling,,
+,,Standard Selling,Upper Bearing Plate,300,Selling,,
+,,Standard Selling,Wing Sheet,30.8,Selling,,
\ No newline at end of file
diff --git a/erpnext/utilities/demo/demo_docs/Lead.csv b/erpnext/utilities/demo/demo_docs/Lead.csv
new file mode 100644
index 0000000..948a68d
--- /dev/null
+++ b/erpnext/utilities/demo/demo_docs/Lead.csv
@@ -0,0 +1,68 @@
+Data Import Template,,,,,,,,,,,,,,,,,,,,,,,,
+Table:,Lead,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"""" (ID) column blank.""",,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"""" becomes mandatory"," if present.""",,,,,,,,,,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,
+Column Labels,ID,Contact Name,Status,Naming Series,Company Name,Email Id,Source,From Customer,Campaign Name,Phone,Mobile No.,Fax,Website,Territory,Lead Type,Lead Owner,Market Segment,Industry,Request Type,Next Contact By,Next Contact Date,Company,Unsubscribed,Blog Subscriber
+Column Name:,name,lead_name,status,naming_series,company_name,email_id,source,customer,campaign_name,phone,mobile_no,fax,website,territory,type,lead_owner,market_segment,industry,request_type,contact_by,contact_date,company,unsubscribed,blog_subscriber
+Mandatory:,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No
+Type:,Data (text),Data,Select,Select,Data,Data,Select,Link,Link,Data,Data,Data,Data,Link,Select,Link,Select,Link,Select,Link,Date,Link,Check,Check
+Info:,,,"Lead, Open, Replied, Opportunity, Interested, Converted, Do Not Contact","One of: LEAD, LEAD/10-11/, LEAD/MUMBAI/",,,"One of: Advertisement, Blog Post, Campaign, Call, Customer, Exhibition, Supplier, Website, Email",Valid Customer,Valid Campaign,,,,,Valid Territory,"One of: Client, Channel Partner, Consultant",Valid Profile,"One of: Lower Income, Middle Income, Upper Income",Valid Industry Type,"One of: Product Enquiry, Request for Information, Suggestions, Other",Valid Profile,,Valid Company,0 or 1,0 or 1
+Start entering data below this line,,,,,,,,,,,,,,,,,,,,,,,,
+,,Mart Lakeman,Lead,,Zany Brainy,MartLakeman@einrot.com,,,,,,,,,,,,,,,,,,
+,,Saga Lundqvist,Lead,,Patterson-Fletcher,SagaLundqvist@dayrep.com,,,,,,,,,,,,,,,,,,
+,,Adna Sjöberg,Lead,,Griff's Hamburgers,AdnaSjoberg@gustr.com,,,,,,,,,,,,,,,,,,
+,,Ida Svendsen,Lead,,Rhodes Furniture,IdaDSvendsen@superrito.com,,,,,,,,,,,,,,,,,,
+,,Emppu Hämeenniemi,Lead,,Burger Chef,EmppuHameenniemi@teleworm.us,,,,,,,,,,,,,,,,,,
+,,Eugenio Pisano,Lead,,Stratabiz,EugenioPisano@cuvox.de,,,,,,,,,,,,,,,,,,
+,,Semhar Hagos,Lead,,Home Quarters Warehouse,SemharHagos@einrot.com,,,,,,,,,,,,,,,,,,
+,,Branimira Ivanković,Lead,,Enviro Architectural Designs,BranimiraIvankovic@einrot.com,,,,,,,,,,,,,,,,,,
+,,Shelly Fields,Lead,,Ideal Garden Management,ShellyLFields@superrito.com,,,,,,,,,,,,,,,,,,
+,,Leo Mikulić,Lead,,Listen Up,LeoMikulic@gustr.com,,,,,,,,,,,,,,,,,,
+,,Denisa Jarošová,Lead,,I. Magnin,DenisaJarosova@teleworm.us,,,,,,,,,,,,,,,,,,
+,,Janek Rutkowski,Lead,,First Rate Choice,JanekRutkowski@dayrep.com,,,,,,,,,,,,,,,,,,
+,,美月 宇藤,Lead,,Multi Tech Development,mm@gustr.com,,,,,,,,,,,,,,,,,,
+,,Даниил Афанасьев,Lead,,National Auto Parts,dd@einrot.com,,,,,,,,,,,,,,,,,,
+,,Zorislav Petković,Lead,,Integra Investment Plan,ZorislavPetkovic@cuvox.de,,,,,,,,,,,,,,,,,,
+,,Nanao Niwa,Lead,,The Lawn Guru,NanaoNiwa@superrito.com,,,,,,,,,,,,,,,,,,
+,,Hreiðar Jörundsson,Lead,,Buena Vista Realty Service,HreiarJorundsson@armyspy.com,,,,,,,,,,,,,,,,,,
+,,Lai Chu,Lead,,Bountiful Harvest Health Food Store,ChuThiBichLai@einrot.com,,,,,,,,,,,,,,,,,,
+,,Victor Aksakov,Lead,,P. Samuels Men's Clothiers,VictorAksakov@dayrep.com,,,,,,,,,,,,,,,,,,
+,,Saidalim Bisliev,Lead,,Vinyl Fever,SaidalimBisliev@cuvox.de,,,,,,,,,,,,,,,,,,
+,,Totte Jakobsson,Lead,,Garden Master,TotteJakobsson@armyspy.com,,,,,,,,,,,,,,,,,,
+,,Naná Armas,Lead,,Big Apple,NanaArmasRobles@cuvox.de,,,,,,,,,,,,,,,,,,
+,,Walerian Duda,Lead,,Monk House Sales,WalerianDuda@dayrep.com,,,,,,,,,,,,,,,,,,
+,,Moarimikashi ,Lead,,ManCharm,Moarimikashi@teleworm.us,,,,,,,,,,,,,,,,,,
+,,Dobromił Dąbrowski ,Lead,,Custom Lawn Care,DobromilDabrowski@dayrep.com,,,,,,,,,,,,,,,,,,
+,,Teigan Sinclair,Lead,,The Serendipity Dip,TeiganSinclair@gustr.com,,,,,,,,,,,,,,,,,,
+,,Fahad Guirguis,Lead,,Cavages,FahadSaidGuirguis@gustr.com,,,,,,,,,,,,,,,,,,
+,,Morten Olsen,Lead,,Gallenkamp,MortenJOlsen@armyspy.com,,,,,,,,,,,,,,,,,,
+,,Christian Baecker,Lead,,Webcom Business Services,ChristianBaecker@armyspy.com,,,,,,,,,,,,,,,,,,
+,,Sebastianus Dohmen,Lead,,Accord Investments,SebastianusDohmen@cuvox.de,,,,,,,,,,,,,,,,,,
+,,Eero Koskinen,Lead,,American Appliance,EeroKoskinen@superrito.com,,,,,,,,,,,,,,,,,,
+,,富奎 盧,Lead,,Bettendorf's,LuFuKui@teleworm.us,,,,,,,,,,,,,,,,,,
+,,Milica Jelić,Lead,,House Of Denmark,MilicaJelic@dayrep.com,,,,,,,,,,,,,,,,,,
+,,Barbora Holubová,Lead,,10000 Auto Parts,BarboraHolubova@cuvox.de,,,,,,,,,,,,,,,,,,
+,,Marta Kos,Lead,,Mages,MartaKos@einrot.com,,,,,,,,,,,,,,,,,,
+,,Simret Zula,Lead,,CSK Auto,SimretZula@cuvox.de,,,,,,,,,,,,,,,,,,
+,,Kamil Chlubna,Lead,,Eagle Hardware & Garden,KamilChlubna@einrot.com,,,,,,,,,,,,,,,,,,
+,,Aceline Bolduc,Lead,,Rustler Steak House,AcelineBolduc@armyspy.com,,,,,,,,,,,,,,,,,,
+,,Lucie Stupková,Lead,,ABCO Foods,LucieStupkova@gustr.com,,,,,,,,,,,,,,,,,,
+,,Roland Solvik,Lead,,Trak Auto,RolandSolvik@cuvox.de,,,,,,,,,,,,,,,,,,
+,,Mekirinzukushitakufu ,Lead,,Choices,Mekirinzukushitakufu@teleworm.us,,,,,,,,,,,,,,,,,,
+,,Mukharbek Sultanovich,Lead,,Megatronic,MukharbekSultanovich@cuvox.de,,,,,,,,,,,,,,,,,,
+,,Osman Amanuel,Lead,,Handy Dan,OsmanAmanuel@dayrep.com,,,,,,,,,,,,,,,,,,
+,,幸子 阪部,Lead,,Channel Home Centers,dd@armyspy.com,,,,,,,,,,,,,,,,,,
+,,Masakazu Kamitani,Lead,,Honest Air Group,MasakazuKamitani@superrito.com,,,,,,,,,,,,,,,,,,
+,,Omran Sabbagh,Lead,,Pleasures and Pasttimes,OmranNuhaidSabbagh@einrot.com,,,,,,,,,,,,,,,,,,
+,,Rikako Matsumura,Lead,,Lazysize,RikakoMatsumura@einrot.com,,,,,,,,,,,,,,,,,,
+,,Anayolisa Chukwukadibia,Lead,,Prestiga-Biz,AnayolisaChukwukadibia@einrot.com,,,,,,,,,,,,,,,,,,
+,,Gudmunda Hinna,Lead,,Childs Restaurants,GudmundaHinna@armyspy.com,,,,,,,,,,,,,,,,,,
\ No newline at end of file
diff --git a/erpnext/utilities/demo/demo_docs/Profile.csv b/erpnext/utilities/demo/demo_docs/Profile.csv
new file mode 100644
index 0000000..eb456c1
--- /dev/null
+++ b/erpnext/utilities/demo/demo_docs/Profile.csv
@@ -0,0 +1,40 @@
+Data Import Template,,,,,,,,,,,,,,,,,,,,
+Table:,Profile,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,
+DocType:,Profile,,,,,,,,,,,,,,,,,,,
+Column Labels:,ID,Email,First Name,User Type,Enabled,Middle Name (Optional),Last Name,Language,Birth Date,Gender,New Password,User Image,Background Image,Bio,Email Signature,Login After,Login Before,Restrict IP,Last Login,Last IP
+Column Name:,name,email,first_name,user_type,enabled,middle_name,last_name,language,birth_date,gender,new_password,user_image,background_image,bio,email_signature,login_after,login_before,restrict_ip,last_login,last_ip
+Mandatory:,Yes,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No
+Type:,Data (text),Data,Data,Select,Check,Data,Data,Select,Date,Select,Password,Select,Select,Small Text,Small Text,Int,Int,Data,Read Only,Read Only
+Info:,,,,"One of: System User, Website User",0 or 1,,,"One of: العربية, Deutsch, english, español, français, हिंदी, Hrvatski, nederlands, português, português brasileiro, српски, தமிழ், ไทย",,"One of: Male, Female, Other",,One of: attach_files:,One of: attach_files:,,,Integer,Integer,,,
+Start entering data below this line,,,,,,,,,,,,,,,,,,,,
+,,DikmanShervashidze@armyspy.com,Dikman,System User,1,V,Shervashidze,,,,testpass,,,,,,,,,
+,,Zukutakitoteka@teleworm.us,Zukutakitoteka,System User,1,,,,,,testpass,,,,,,,,,
+,,HatsueKashiwagi@cuvox.de,Hatsue,System User,1,H,Kashiwagi,,,,testpass,,,,,,,,,
+,,NuranVerkleij@einrot.com,Nuran,System User,1,T,Verkleij,,,,testpass,,,,,,,,,
+,,aromn@armyspy.com,Дмитрий,System User,1,З,Пирогов,,,,testpass,,,,,,,,,
+,,TildeLindqvist@cuvox.de,Tilde,System User,1,T,Lindqvist,,,,testpass,,,,,,,,,
+,,MichalSobczak@teleworm.us,Michał,System User,1,S,Sobczak,,,,testpass,,,,,,,,,
+,,GabrielleLoftus@superrito.com,Gabrielle,System User,1,J,Loftus,,,,testpass,,,,,,,,,
+,,VakhitaRyzaev@teleworm.us,Vakhita,System User,1,A,Ryzaev,,,,testpass,,,,,,,,,
+,,CharmaineGaudreau@cuvox.de,Charmaine,System User,1,D,Gaudreau,,,,testpass,,,,,,,,,
+,,RafaelaMaartens@cuvox.de,Rafaëla,System User,1,Z,Maartens,,,,testpass,,,,,,,,,
+,,NuguseYohannes@dayrep.com,Nuguse,System User,0,S,Yohannes,,,,testpass,,,,,,,,,
+,,panca@armyspy.com,Раиса,System User,0,В,Белякова,,,,testpass,,,,,,,,,
+,,CaYinLong@gustr.com,胤隆,System User,1,婷,蔡,,,,testpass,,,,,,,,,
+,,FreddieScott@armyspy.com,Freddie,System User,1,A,Scott,,,,testpass,,,,,,,,,
+,,BergoraVigfusdottir@superrito.com,Bergþóra,System User,1,Ö,Vigfúsdóttir,,,,testpass,,,,,,,,,
+,,WardNajmalDinKalb@cuvox.de,Ward,System User,1,N,Kalb,,,,testpass,,,,,,,,,
+,,WanMai@teleworm.us,Wan,System User,1,A,Mai,,,,testpass,,,,,,,,,
+,,LeonAbdulov@superrito.com,Leon,System User,1,A,Abdulov,,,,testpass,,,,,,,,,
+,,SabinaNovotna@superrito.com,Sabina,System User,1,J,Novotná,,,,testpass,,,,,,,,,
diff --git a/erpnext/utilities/demo/demo_docs/Salary_Structure.csv b/erpnext/utilities/demo/demo_docs/Salary_Structure.csv
new file mode 100644
index 0000000..a74de90
--- /dev/null
+++ b/erpnext/utilities/demo/demo_docs/Salary_Structure.csv
@@ -0,0 +1,24 @@
+Data Import Template,,,,,,,,,,,,,,,,,,,,,,,,
+Table:,Salary Structure,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,
+Notes:,,,,,,,,,,,,,,,,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,,,,,,,,,,,,,,,,
+First data column must be blank.,,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,,,,,,,,,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,,,,,,,,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,,,,,,,,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,,,,,,,,,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,,,,,,,,,,,,,,,,
+,,,,,,,,,,,,,,,,,,,,,,,,
+DocType:,Salary Structure,,,,,,,,,,,,,,~,Salary Structure Earning,earning_details,,,~,Salary Structure Deduction,deduction_details,,
+Column Labels:,ID,Employee,Is Active,From Date,Company,Employee Name,Branch,Designation,Department,Grade,To Date,Total Earning,Total Deduction,Net Pay,,ID,Type,Amount,Reduce Earning for Leave Without Pay (LWP),,ID,Type,Amount,Reduce Deduction for Leave Without Pay (LWP)
+Column Name:,name,employee,is_active,from_date,company,employee_name,branch,designation,department,grade,to_date,total_earning,total_deduction,net_pay,~,name,e_type,modified_value,depend_on_lwp,~,name,d_type,d_modified_amt,depend_on_lwp
+Mandatory:,Yes,Yes,Yes,Yes,Yes,No,No,No,No,No,No,No,No,No,,Yes,Yes,No,No,,Yes,Yes,No,No
+Type:,Data (text),Link,Select,Date,Select,Data,Select,Select,Select,Select,Date,Currency,Currency,Currency,,Data,Link,Currency,Check,,Data,Link,Currency,Check
+Info:,,Valid Employee,"One of: Yes, No",,Valid Company,,Valid Branch,Valid Designation,Valid Department,Valid Grade,,,,,,Leave blank for new records,Valid Earning Type,,0 or 1,,Leave blank for new records,Valid Deduction Type,,0 or 1
+Start entering data below this line,,,,,,,,,,,,,,,,,,,,,,,,
+,,EMP/0001,Yes,2013-08-06,Wind Power LLC,Dikman Shervashidze Shervashidze,,,,,,5000,400,4600,,,Basic,5000,,,,Income Tax,400,
+,,EMP/0002,Yes,2013-08-06,Wind Power LLC,Zukutakitoteka,,,,,,6700,400,6300,,,Basic,6700,,,,Income Tax,400,
+,,EMP/0003,Yes,2013-08-06,Wind Power LLC,Hatsue Kashiwagi,,,,,,3400,400,3000,,,Basic,3400,,,,Income Tax,400,
+,,EMP/0004,Yes,2013-08-06,Wind Power LLC,Nuran Verkleij,,,,,,6990,566,6424,,,Basic,6990,,,,Income Tax,566,
diff --git a/erpnext/utilities/demo/demo_docs/Stock Reconcilation Template.csv b/erpnext/utilities/demo/demo_docs/Stock Reconcilation Template.csv
new file mode 100644
index 0000000..eddc2bc
--- /dev/null
+++ b/erpnext/utilities/demo/demo_docs/Stock Reconcilation Template.csv
@@ -0,0 +1,25 @@
+Stock Reconciliation,,,,,,
+----,,,,,,
+"Stock Reconciliation can be used to update the stock on a particular date, usually as per physical inventory.",,,,,,
+"When submitted, the system creates difference entries to set the given stock and valuation on this date.",,,,,,
+It can also be used to create opening stock entries and to fix stock value.,,,,,,
+----,,,,,,
+Notes:,,,,,,
+Item Code and Warehouse should already exist.,,,,,,
+You can update either Quantity or Valuation Rate or both.,,,,,,
+"If no change in either Quantity or Valuation Rate, leave the cell blank.",,,,,,
+----,,,,,,
+Item Code,Warehouse,Quantity,Valuation Rate,,,
+Base Bearing Plate,Stores,4,750,,,
+Base Plate,Stores,4,1092,,,
+Bearing Block,Stores,2,355,,,
+Bearing Collar,Stores,4,980,,,
+Bearing Pipe,Stores,5,599,,,
+Blade Rib,Stores,3,430,,,
+Disc Collars,Stores,7,3000,,,
+External Disc,Stores,2,1200,,,
+Internal Disc,Stores,2,1000,,,
+Shaft,Stores,5,600,,,
+Stand,Stores,2,200,,,
+Upper Bearing Plate,Stores,10,400,,,
+Wing Sheet,Stores,20,300,,,
\ No newline at end of file
diff --git a/erpnext/utilities/demo/demo_docs/Supplier.csv b/erpnext/utilities/demo/demo_docs/Supplier.csv
new file mode 100644
index 0000000..6f91164
--- /dev/null
+++ b/erpnext/utilities/demo/demo_docs/Supplier.csv
@@ -0,0 +1,29 @@
+Data Import Template,,,,,,,,,
+Table:,Supplier,,,,,,,,
+,,,,,,,,,
+,,,,,,,,,
+Notes:,,,,,,,,,
+Please do not change the template headings.,,,,,,,,,
+First data column must be blank.,,,,,,,,,
+Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,,,,,,,,,
+"For updating, you can update only selective columns.",,,,,,,,,
+"If you are uploading new records, leave the ""name"" (ID) column blank.",,,,,,,,,
+"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.",,,,,,,,,
+You can only upload upto 5000 records in one go. (may be less in some cases),,,,,,,,,
+,,,,,,,,,
+Column Labels,ID,Supplier Name,Supplier Type,Company,Series,Default Currency,Supplier Details,Credit Days,Website
+Column Name:,name,supplier_name,supplier_type,company,naming_series,default_currency,supplier_details,credit_days,website
+Mandatory:,Yes,Yes,Yes,Yes,No,No,No,No,No
+Type:,Data (text),Data,Link,Link,Select,Link,Text,Int,Data
+Info:,,,Valid Supplier Type,Valid Company,"One of: SUPP, SUPP/10-11/",Valid Currency,,Integer,
+Start entering data below this line,,,,,,,,,
+,Helios Air,Helios Air,Raw Material,Wind Power LLC,,,,,
+,Ks Merchandise,Ks Merchandise,Electrical,Wind Power LLC,,,,,
+,HomeBase,HomeBase,Raw Material,Wind Power LLC,,,,,
+,Scott Ties,Scott Ties,Raw Material,Wind Power LLC,,,,,
+,Reliable Investments,Reliable Investments,Services,Wind Power LLC,,,,,
+,Nan Duskin,Nan Duskin,Services,Wind Power LLC,,,,,
+,Rainbow Records,Rainbow Records,Services,Wind Power LLC,,,,,
+,New World Realty,New World Realty,Services,Wind Power LLC,,,,,
+,Asiatic Solutions,Asiatic Solutions,Raw Material,Wind Power LLC,,,,,
+,Eagle Hardware,Eagle Hardware,Raw Material,Wind Power LLC,,,,,
\ No newline at end of file
diff --git a/erpnext/utilities/demo/demo_docs/bearing-block.png b/erpnext/utilities/demo/demo_docs/bearing-block.png
new file mode 100644
index 0000000..b60f2f4
--- /dev/null
+++ b/erpnext/utilities/demo/demo_docs/bearing-block.png
Binary files differ
diff --git a/erpnext/utilities/demo/demo_docs/wind-turbine.png b/erpnext/utilities/demo/demo_docs/wind-turbine.png
new file mode 100644
index 0000000..81fcfc2
--- /dev/null
+++ b/erpnext/utilities/demo/demo_docs/wind-turbine.png
Binary files differ
diff --git a/erpnext/utilities/demo/make_demo.py b/erpnext/utilities/demo/make_demo.py
new file mode 100644
index 0000000..4d40670
--- /dev/null
+++ b/erpnext/utilities/demo/make_demo.py
@@ -0,0 +1,434 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+import webnotes, os, datetime
+import webnotes.utils
+from webnotes.utils import random_string, cstr
+from webnotes.widgets import query_report
+import random
+import json
+
+webnotes.session = webnotes._dict({"user":"Administrator"})
+from webnotes.core.page.data_import_tool.data_import_tool import upload
+
+# fix price list
+# fix fiscal year
+
+company = "Wind Power LLC"
+company_abbr = "WP"
+country = "United States"
+currency = "USD"
+time_zone = "America/New_York"
+start_date = '2013-01-01'
+bank_name = "Citibank"
+runs_for = None
+prob = {
+	"default": { "make": 0.6, "qty": (1,5) },
+	"Sales Order": { "make": 0.4, "qty": (1,3) },
+	"Purchase Order": { "make": 0.7, "qty": (1,15) },
+	"Purchase Receipt": { "make": 0.7, "qty": (1,15) },
+}
+
+def make(reset=False, simulate=True):
+	#webnotes.flags.print_messages = True
+	webnotes.flags.mute_emails = True
+	webnotes.flags.rollback_on_exception = True
+	
+	if not webnotes.conf.demo_db_name:
+		raise Exception("conf.py does not have demo_db_name")
+	
+	if reset:
+		setup()
+	else:
+		if webnotes.conn:
+			webnotes.conn.close()
+		
+		webnotes.connect(db_name=webnotes.conf.demo_db_name)
+	
+	if simulate:
+		_simulate()
+		
+def setup():
+	install()
+	webnotes.connect(db_name=webnotes.conf.demo_db_name)
+	complete_setup()
+	make_customers_suppliers_contacts()
+	make_items()
+	make_price_lists()
+	make_users_and_employees()
+	make_bank_account()
+	# make_opening_stock()
+	# make_opening_accounts()
+
+def _simulate():
+	global runs_for
+	current_date = webnotes.utils.getdate(start_date)
+	
+	# continue?
+	last_posting = webnotes.conn.sql("""select max(posting_date) from `tabStock Ledger Entry`""")
+	if last_posting[0][0]:
+		current_date = webnotes.utils.add_days(last_posting[0][0], 1)
+
+	# run till today
+	if not runs_for:
+		runs_for = webnotes.utils.date_diff(webnotes.utils.nowdate(), current_date)
+	
+	for i in xrange(runs_for):		
+		print current_date.strftime("%Y-%m-%d")
+		webnotes.local.current_date = current_date
+		
+		if current_date.weekday() in (5, 6):
+			current_date = webnotes.utils.add_days(current_date, 1)
+			continue
+
+		run_sales(current_date)
+		run_purchase(current_date)
+		run_manufacturing(current_date)
+		run_stock(current_date)
+		run_accounts(current_date)
+
+		current_date = webnotes.utils.add_days(current_date, 1)
+		
+def run_sales(current_date):
+	if can_make("Quotation"):
+		for i in xrange(how_many("Quotation")):
+			make_quotation(current_date)
+					
+	if can_make("Sales Order"):
+		for i in xrange(how_many("Sales Order")):
+			make_sales_order(current_date)
+
+def run_accounts(current_date):
+	if can_make("Sales Invoice"):
+		from erpnext.selling.doctype.sales_order.sales_order import make_sales_invoice
+		report = "Ordered Items to be Billed"
+		for so in list(set([r[0] for r in query_report.run(report)["result"] if r[0]!="Total"]))[:how_many("Sales Invoice")]:
+			si = webnotes.bean(make_sales_invoice(so))
+			si.doc.posting_date = current_date
+			si.insert()
+			si.submit()
+			webnotes.conn.commit()
+
+	if can_make("Purchase Invoice"):
+		from erpnext.stock.doctype.purchase_receipt.purchase_receipt import make_purchase_invoice
+		report = "Received Items to be Billed"
+		for pr in list(set([r[0] for r in query_report.run(report)["result"] if r[0]!="Total"]))[:how_many("Purchase Invoice")]:
+			pi = webnotes.bean(make_purchase_invoice(pr))
+			pi.doc.posting_date = current_date
+			pi.doc.bill_no = random_string(6)
+			pi.insert()
+			pi.submit()
+			webnotes.conn.commit()
+			
+	if can_make("Payment Received"):
+		from erpnext.accounts.doctype.journal_voucher.journal_voucher import get_payment_entry_from_sales_invoice
+		report = "Accounts Receivable"
+		for si in list(set([r[4] for r in query_report.run(report, {"report_date": current_date })["result"] if r[3]=="Sales Invoice"]))[:how_many("Payment Received")]:
+			jv = webnotes.bean(get_payment_entry_from_sales_invoice(si))
+			jv.doc.posting_date = current_date
+			jv.doc.cheque_no = random_string(6)
+			jv.doc.cheque_date = current_date
+			jv.insert()
+			jv.submit()
+			webnotes.conn.commit()
+			
+	if can_make("Payment Made"):
+		from erpnext.accounts.doctype.journal_voucher.journal_voucher import get_payment_entry_from_purchase_invoice
+		report = "Accounts Payable"
+		for pi in list(set([r[4] for r in query_report.run(report, {"report_date": current_date })["result"] if r[3]=="Purchase Invoice"]))[:how_many("Payment Made")]:
+			jv = webnotes.bean(get_payment_entry_from_purchase_invoice(pi))
+			jv.doc.posting_date = current_date
+			jv.doc.cheque_no = random_string(6)
+			jv.doc.cheque_date = current_date
+			jv.insert()
+			jv.submit()
+			webnotes.conn.commit()
+
+def run_stock(current_date):
+	# make purchase requests
+	if can_make("Purchase Receipt"):
+		from erpnext.buying.doctype.purchase_order.purchase_order import make_purchase_receipt
+		from erpnext.stock.stock_ledger import NegativeStockError
+		report = "Purchase Order Items To Be Received"
+		for po in list(set([r[0] for r in query_report.run(report)["result"] if r[0]!="Total"]))[:how_many("Purchase Receipt")]:
+			pr = webnotes.bean(make_purchase_receipt(po))
+			pr.doc.posting_date = current_date
+			pr.doc.fiscal_year = cstr(current_date.year)
+			pr.insert()
+			try:
+				pr.submit()
+				webnotes.conn.commit()
+			except NegativeStockError: pass
+	
+	# make delivery notes (if possible)
+	if can_make("Delivery Note"):
+		from erpnext.selling.doctype.sales_order.sales_order import make_delivery_note
+		from erpnext.stock.stock_ledger import NegativeStockError
+		from erpnext.stock.doctype.serial_no.serial_no import SerialNoRequiredError, SerialNoQtyError
+		report = "Ordered Items To Be Delivered"
+		for so in list(set([r[0] for r in query_report.run(report)["result"] if r[0]!="Total"]))[:how_many("Delivery Note")]:
+			dn = webnotes.bean(make_delivery_note(so))
+			dn.doc.posting_date = current_date
+			dn.doc.fiscal_year = cstr(current_date.year)
+			dn.insert()
+			try:
+				dn.submit()
+				webnotes.conn.commit()
+			except NegativeStockError: pass
+			except SerialNoRequiredError: pass
+			except SerialNoQtyError: pass
+	
+	# try submitting existing
+	for dn in webnotes.conn.get_values("Delivery Note", {"docstatus": 0}, "name"):
+		b = webnotes.bean("Delivery Note", dn[0])
+		b.submit()
+		webnotes.conn.commit()
+	
+def run_purchase(current_date):
+	# make material requests for purchase items that have negative projected qtys
+	if can_make("Material Request"):
+		report = "Items To Be Requested"
+		for row in query_report.run(report)["result"][:how_many("Material Request")]:
+			mr = webnotes.new_bean("Material Request")
+			mr.doc.material_request_type = "Purchase"
+			mr.doc.transaction_date = current_date
+			mr.doc.fiscal_year = cstr(current_date.year)
+			mr.doclist.append({
+				"doctype": "Material Request Item",
+				"parentfield": "indent_details",
+				"schedule_date": webnotes.utils.add_days(current_date, 7),
+				"item_code": row[0],
+				"qty": -row[-1]
+			})
+			mr.insert()
+			mr.submit()
+	
+	# make supplier quotations
+	if can_make("Supplier Quotation"):
+		from erpnext.stock.doctype.material_request.material_request import make_supplier_quotation
+		report = "Material Requests for which Supplier Quotations are not created"
+		for row in query_report.run(report)["result"][:how_many("Supplier Quotation")]:
+			if row[0] != "Total":
+				sq = webnotes.bean(make_supplier_quotation(row[0]))
+				sq.doc.transaction_date = current_date
+				sq.doc.fiscal_year = cstr(current_date.year)
+				sq.insert()
+				sq.submit()
+				webnotes.conn.commit()
+		
+	# make purchase orders
+	if can_make("Purchase Order"):
+		from erpnext.stock.doctype.material_request.material_request import make_purchase_order
+		report = "Requested Items To Be Ordered"
+		for row in query_report.run(report)["result"][:how_many("Purchase Order")]:
+			if row[0] != "Total":
+				po = webnotes.bean(make_purchase_order(row[0]))
+				po.doc.transaction_date = current_date
+				po.doc.fiscal_year = cstr(current_date.year)
+				po.insert()
+				po.submit()
+				webnotes.conn.commit()
+			
+def run_manufacturing(current_date):
+	from erpnext.stock.stock_ledger import NegativeStockError
+	from erpnext.stock.doctype.stock_entry.stock_entry import IncorrectValuationRateError, DuplicateEntryForProductionOrderError
+
+	ppt = webnotes.bean("Production Planning Tool", "Production Planning Tool")
+	ppt.doc.company = company
+	ppt.doc.use_multi_level_bom = 1
+	ppt.doc.purchase_request_for_warehouse = "Stores - WP"
+	ppt.run_method("get_open_sales_orders")
+	ppt.run_method("get_items_from_so")
+	ppt.run_method("raise_production_order")
+	ppt.run_method("raise_purchase_request")
+	webnotes.conn.commit()
+	
+	# submit production orders
+	for pro in webnotes.conn.get_values("Production Order", {"docstatus": 0}, "name"):
+		b = webnotes.bean("Production Order", pro[0])
+		b.doc.wip_warehouse = "Work in Progress - WP"
+		b.submit()
+		webnotes.conn.commit()
+		
+	# submit material requests
+	for pro in webnotes.conn.get_values("Material Request", {"docstatus": 0}, "name"):
+		b = webnotes.bean("Material Request", pro[0])
+		b.submit()
+		webnotes.conn.commit()
+	
+	# stores -> wip
+	if can_make("Stock Entry for WIP"):		
+		for pro in query_report.run("Open Production Orders")["result"][:how_many("Stock Entry for WIP")]:
+			make_stock_entry_from_pro(pro[0], "Material Transfer", current_date)
+		
+	# wip -> fg
+	if can_make("Stock Entry for FG"):		
+		for pro in query_report.run("Production Orders in Progress")["result"][:how_many("Stock Entry for FG")]:
+			make_stock_entry_from_pro(pro[0], "Manufacture/Repack", current_date)
+
+	# try posting older drafts (if exists)
+	for st in webnotes.conn.get_values("Stock Entry", {"docstatus":0}, "name"):
+		try:
+			webnotes.bean("Stock Entry", st[0]).submit()
+			webnotes.conn.commit()
+		except NegativeStockError: pass
+		except IncorrectValuationRateError: pass
+		except DuplicateEntryForProductionOrderError: pass
+
+def make_stock_entry_from_pro(pro_id, purpose, current_date):
+	from erpnext.manufacturing.doctype.production_order.production_order import make_stock_entry
+	from erpnext.stock.stock_ledger import NegativeStockError
+	from erpnext.stock.doctype.stock_entry.stock_entry import IncorrectValuationRateError, DuplicateEntryForProductionOrderError
+
+	try:
+		st = webnotes.bean(make_stock_entry(pro_id, purpose))
+		st.doc.posting_date = current_date
+		st.doc.fiscal_year = cstr(current_date.year)
+		for d in st.doclist.get({"parentfield": "mtn_details"}):
+			d.expense_account = "Stock Adjustment - " + company_abbr
+			d.cost_center = "Main - " + company_abbr
+		st.insert()
+		webnotes.conn.commit()
+		st.submit()
+		webnotes.conn.commit()
+	except NegativeStockError: pass
+	except IncorrectValuationRateError: pass
+	except DuplicateEntryForProductionOrderError: pass
+	
+def make_quotation(current_date):
+	b = webnotes.bean([{
+		"creation": current_date,
+		"doctype": "Quotation",
+		"quotation_to": "Customer",
+		"customer": get_random("Customer"),
+		"order_type": "Sales",
+		"transaction_date": current_date,
+		"fiscal_year": cstr(current_date.year)
+	}])
+	
+	add_random_children(b, {
+		"doctype": "Quotation Item", 
+		"parentfield": "quotation_details", 
+	}, rows=3, randomize = {
+		"qty": (1, 5),
+		"item_code": ("Item", {"is_sales_item": "Yes"})
+	}, unique="item_code")
+	
+	b.insert()
+	webnotes.conn.commit()
+	b.submit()
+	webnotes.conn.commit()
+	
+def make_sales_order(current_date):
+	q = get_random("Quotation", {"status": "Submitted"})
+	if q:
+		from erpnext.selling.doctype.quotation.quotation import make_sales_order
+		so = webnotes.bean(make_sales_order(q))
+		so.doc.transaction_date = current_date
+		so.doc.delivery_date = webnotes.utils.add_days(current_date, 10)
+		so.insert()
+		webnotes.conn.commit()
+		so.submit()
+		webnotes.conn.commit()
+	
+def add_random_children(bean, template, rows, randomize, unique=None):
+	for i in xrange(random.randrange(1, rows)):
+		d = template.copy()
+		for key, val in randomize.items():
+			if isinstance(val[0], basestring):
+				d[key] = get_random(*val)
+			else:
+				d[key] = random.randrange(*val)
+		
+		if unique:
+			if not bean.doclist.get({"doctype": d["doctype"], unique:d[unique]}):
+				bean.doclist.append(d)
+		else:
+			bean.doclist.append(d)
+
+def get_random(doctype, filters=None):
+	condition = []
+	if filters:
+		for key, val in filters.items():
+			condition.append("%s='%s'" % (key, val))
+	if condition:
+		condition = " where " + " and ".join(condition)
+	else:
+		condition = ""
+		
+	out = webnotes.conn.sql("""select name from `tab%s` %s
+		order by RAND() limit 0,1""" % (doctype, condition))
+
+	return out and out[0][0] or None
+
+def can_make(doctype):
+	return random.random() < prob.get(doctype, prob["default"])["make"]
+
+def how_many(doctype):
+	return random.randrange(*prob.get(doctype, prob["default"])["qty"])
+
+def install():
+	print "Creating Fresh Database..."
+	from webnotes.install_lib.install import Installer
+	from webnotes import conf
+	inst = Installer('root')
+	inst.install(conf.demo_db_name, verbose=1, force=1)
+
+def complete_setup():
+	print "Complete Setup..."
+	from erpnext.setup.page.setup_wizard.setup_wizard import setup_account
+	setup_account({
+		"first_name": "Test",
+		"last_name": "User",
+		"fy_start_date": "2013-01-01",
+		"fy_end_date": "2013-12-31",
+		"industry": "Manufacturing",
+		"company_name": company,
+		"company_abbr": company_abbr,
+		"currency": currency,
+		"timezone": time_zone,
+		"country": country
+	})
+
+	import_data("Fiscal_Year")
+	
+def make_items():
+	import_data("Item")
+	import_data("BOM", submit=True)
+
+def make_price_lists():
+	import_data("Item_Price", overwrite=True)
+	
+def make_customers_suppliers_contacts():
+	import_data(["Customer", "Supplier", "Contact", "Address", "Lead"])
+
+def make_users_and_employees():
+	webnotes.conn.set_value("HR Settings", None, "emp_created_by", "Naming Series")
+	webnotes.conn.commit()
+	
+	import_data(["Profile", "Employee", "Salary_Structure"])
+
+def make_bank_account():
+	ba = webnotes.bean({
+		"doctype": "Account",
+		"account_name": bank_name,
+		"account_type": "Bank or Cash",
+		"group_or_ledger": "Ledger",
+		"parent_account": "Bank Accounts - " + company_abbr,
+		"company": company
+	}).insert()
+	
+	webnotes.set_value("Company", company, "default_bank_account", ba.doc.name)
+	webnotes.conn.commit()
+
+def import_data(dt, submit=False, overwrite=False):
+	if not isinstance(dt, (tuple, list)):
+		dt = [dt]
+	
+	for doctype in dt:
+		print "Importing", doctype.replace("_", " "), "..."
+		webnotes.local.form_dict = webnotes._dict()
+		if submit:
+			webnotes.form_dict["params"] = json.dumps({"_submit": 1})
+		webnotes.uploaded_file = os.path.join(os.path.dirname(__file__), "demo_docs", doctype+".csv")
+		upload(overwrite=overwrite)
diff --git a/erpnext/utilities/demo/make_erpnext_demo.py b/erpnext/utilities/demo/make_erpnext_demo.py
new file mode 100644
index 0000000..a094239
--- /dev/null
+++ b/erpnext/utilities/demo/make_erpnext_demo.py
@@ -0,0 +1,124 @@
+if __name__=="__main__":
+	import sys
+	sys.path.extend([".", "lib", "app"])
+
+import webnotes, os
+import utilities.demo.make_demo
+
+def make_demo_app(site=None):
+	webnotes.init(site=site)
+	webnotes.flags.mute_emails = 1
+
+	utilities.demo.make_demo.make(reset=True, simulate=False)
+	# setup demo user etc so that the site it up faster, while the data loads
+	make_demo_user()
+	make_demo_login_page()
+	make_demo_on_login_script()
+	utilities.demo.make_demo.make(reset=False, simulate=True)
+	webnotes.destroy()
+
+def make_demo_user():
+	from webnotes.auth import _update_password
+	
+	roles = ["Accounts Manager", "Analytics", "Expense Approver", "Accounts User", 
+		"Leave Approver", "Blogger", "Customer", "Sales Manager", "Employee", "Support Manager", 
+		"HR Manager", "HR User", "Maintenance Manager", "Maintenance User", "Material Manager", 
+		"Material Master Manager", "Material User", "Manufacturing Manager", 
+		"Manufacturing User", "Projects User", "Purchase Manager", "Purchase Master Manager", 
+		"Purchase User", "Quality Manager", "Report Manager", "Sales Master Manager", 
+		"Sales User", "Supplier", "Support Team"]
+		
+	def add_roles(bean):
+		for role in roles:
+			p.doclist.append({
+				"doctype": "UserRole",
+				"parentfield": "user_roles",
+				"role": role
+			})
+	
+	# make demo user
+	if webnotes.conn.exists("Profile", "demo@erpnext.com"):
+		webnotes.delete_doc("Profile", "demo@erpnext.com")
+
+	p = webnotes.new_bean("Profile")
+	p.doc.email = "demo@erpnext.com"
+	p.doc.first_name = "Demo"
+	p.doc.last_name = "User"
+	p.doc.enabled = 1
+	p.doc.user_type = "ERPNext Demo"
+	p.insert()
+	add_roles(p)
+	p.save()
+	_update_password("demo@erpnext.com", "demo")
+	
+	# make system manager user
+	if webnotes.conn.exists("Profile", "admin@erpnext.com"):
+		webnotes.delete_doc("Profile", "admin@erpnext.com")
+	
+	p = webnotes.new_bean("Profile")
+	p.doc.email = "admin@erpnext.com"
+	p.doc.first_name = "Admin"
+	p.doc.last_name = "User"
+	p.doc.enabled = 1
+	p.doc.user_type = "System User"
+	p.insert()
+	roles.append("System Manager")
+	add_roles(p)
+	p.save()
+	_update_password("admin@erpnext.com", "admin010123")
+	
+	# only read for newsletter
+	webnotes.conn.sql("""update `tabDocPerm` set `write`=0, `create`=0, `cancel`=0
+		where parent='Newsletter'""")
+	webnotes.conn.sql("""update `tabDocPerm` set `write`=0, `create`=0, `cancel`=0
+		where parent='Profile' and role='All'""")
+	
+	webnotes.conn.commit()
+
+def make_demo_login_page():
+	webnotes.conn.set_value("Website Settings", None, "home_page", "")
+
+	webnotes.conn.sql("""delete from `tabWeb Page` where name='demo-login'""")
+	p = webnotes.new_bean("Web Page")
+	p.doc.title = "Demo Login"
+	p.doc.published = 1
+	p.doc.description = "ERPNext Demo Login"
+
+	with open(os.path.join(os.path.dirname(__file__), "demo-login.html"), "r") as dfile:
+		p.doc.main_section = dfile.read()
+
+	p.doc.insert_code = 1
+	with open(os.path.join(os.path.dirname(__file__), "demo-login.js"), "r") as dfile:
+		p.doc.javascript = dfile.read()
+
+	p.doc.insert_style = 1
+	with open(os.path.join(os.path.dirname(__file__), "demo-login.css"), "r") as dfile:
+		p.doc.css = dfile.read()
+		
+	p.insert()
+	
+	website_settings = webnotes.bean("Website Settings", "Website Settings")
+	website_settings.doc.home_page = "demo-login"
+	website_settings.doc.disable_signup = 1
+	website_settings.save()
+	
+	webnotes.conn.commit()
+
+def make_demo_on_login_script():
+	import shutil
+	import webnotes.plugins
+	custom_script_path = webnotes.plugins.get_path("Core", "DocType", "Control Panel")
+	webnotes.create_folder(os.path.dirname(custom_script_path))
+	
+	shutil.copyfile(os.path.join(os.path.dirname(__file__), "demo_control_panel.py"), custom_script_path)
+	
+	cp = webnotes.bean("Control Panel")
+	cp.doc.custom_startup_code = """wn.ui.toolbar.show_banner('You are using ERPNext Demo. To start your own ERPNext Trial, <a href="https://erpnext.com/pricing-and-signup" target="_blank">click here</a>')"""
+	cp.save()
+
+	webnotes.conn.commit()
+
+if __name__=="__main__":
+	import sys
+	site = sys.argv[1:]
+	make_demo_app(site=site and site[0] or None)
