diff --git a/erpnext/demo/__init__.py b/erpnext/demo/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/demo/__init__.py
diff --git a/erpnext/demo/data/account.json b/erpnext/demo/data/account.json
new file mode 100644
index 0000000..b50b0c9
--- /dev/null
+++ b/erpnext/demo/data/account.json
@@ -0,0 +1,18 @@
+[{
+  "account_name": "Debtors EUR",
+  "parent_account": "Accounts Receivable",
+  "account_type": "Receivable",
+  "account_currency": "EUR"
+},
+{
+  "account_name": "Creditors EUR",
+  "parent_account": "Accounts Payable",
+  "account_type": "Payable",
+  "account_currency": "EUR"
+},
+{
+  "account_name": "Paypal",
+  "parent_account": "Bank Accounts",
+  "account_type": "Bank",
+  "account_currency": "EUR"
+}]
\ No newline at end of file
diff --git a/erpnext/demo/data/address.json b/erpnext/demo/data/address.json
new file mode 100644
index 0000000..be4d5ec
--- /dev/null
+++ b/erpnext/demo/data/address.json
@@ -0,0 +1,245 @@
+[
+ {
+  "address_line1": "254 Theotokopoulou Str.", 
+  "address_type": "Office", 
+  "city": "Larnaka", 
+  "country": "Cyprus", 
+  "customer": "Adaptas", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "R Patr\u00e3o Caramelho 116", 
+  "address_type": "Office", 
+  "city": "Fajozes", 
+  "country": "Portugal", 
+  "customer": "Asian Fusion", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "30 Fulford Road", 
+  "address_type": "Office", 
+  "city": "PENTRE-PIOD", 
+  "country": "United Kingdom", 
+  "customer": "Asian Junction", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "Schoenebergerstrasse 13", 
+  "address_type": "Office", 
+  "city": "Raschau", 
+  "country": "Germany", 
+  "customer": "Big D Supermarkets", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "Hoheluftchaussee 43", 
+  "address_type": "Office", 
+  "city": "Kieritzsch", 
+  "country": "Germany", 
+  "customer": "Buttrey Food & Drug", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "R Cimo Vila 6", 
+  "address_type": "Office", 
+  "city": "Rebordosa", 
+  "country": "Portugal", 
+  "customer": "Chi-Chis", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "R 5 Outubro 9", 
+  "address_type": "Office", 
+  "city": "Quinta Nova S\u00e3o Domingos", 
+  "country": "Portugal", 
+  "customer": "Choices", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "Avenida Macambira 953", 
+  "address_type": "Office", 
+  "city": "Goi\u00e2nia", 
+  "country": "Brazil", 
+  "customer": "Consumers and Consumers Express", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "2342 Goyeau Ave", 
+  "address_type": "Office", 
+  "city": "Windsor", 
+  "country": "Canada", 
+  "customer": "Crafts Canada", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "Laukaantie 82", 
+  "address_type": "Office", 
+  "city": "KOKKOLA", 
+  "country": "Finland", 
+  "customer": "Endicott Shoes", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "9 Brown Street", 
+  "address_type": "Office", 
+  "city": "PETERSHAM", 
+  "country": "Australia", 
+  "customer": "Fayva", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "Via Donnalbina 41", 
+  "address_type": "Office", 
+  "city": "Cala Gonone", 
+  "country": "Italy", 
+  "customer": "Intelacard", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "Liljerum Grenadj\u00e4rtorpet 69", 
+  "address_type": "Office", 
+  "city": "TOMTEBODA", 
+  "country": "Sweden", 
+  "customer": "Landskip Yard Care", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "72 Bishopgate Street", 
+  "address_type": "Office", 
+  "city": "SEAHAM", 
+  "country": "United Kingdom", 
+  "customer": "Life Plan Counselling", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "\u03a3\u03ba\u03b1\u03c6\u03af\u03b4\u03b9\u03b1 105", 
+  "address_type": "Office", 
+  "city": "\u03a0\u0391\u03a1\u0395\u039a\u039a\u039b\u0397\u03a3\u0399\u0391", 
+  "country": "Cyprus", 
+  "customer": "Mr Fables", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "Mellemvej 7", 
+  "address_type": "Office", 
+  "city": "Aabybro", 
+  "country": "Denmark", 
+  "customer": "Nelson Brothers", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "Plougg\u00e5rdsvej 98", 
+  "address_type": "Office", 
+  "city": "Karby", 
+  "country": "Denmark", 
+  "customer": "Netobill", 
+  "phone": "23566775757", 
+  "supplier": null
+ }, 
+ {
+  "address_line1": "176 Michalakopoulou Street", 
+  "address_type": "Office", 
+  "city": "Agio Georgoudi", 
+  "country": "Cyprus", 
+  "customer": null, 
+  "phone": "23566775757", 
+  "supplier": "Helios Air"
+ }, 
+ {
+  "address_line1": "Fibichova 1102", 
+  "address_type": "Office", 
+  "city": "Kokor\u00edn", 
+  "country": "Czech Republic", 
+  "customer": null, 
+  "phone": "23566775757", 
+  "supplier": "Ks Merchandise"
+ }, 
+ {
+  "address_line1": "Zahradn\u00ed 888", 
+  "address_type": "Office", 
+  "city": "Cecht\u00edn", 
+  "country": "Czech Republic", 
+  "customer": null, 
+  "phone": "23566775757", 
+  "supplier": "HomeBase"
+ }, 
+ {
+  "address_line1": "ul. Grochowska 94", 
+  "address_type": "Office", 
+  "city": "Warszawa", 
+  "country": "Poland", 
+  "customer": null, 
+  "phone": "23566775757", 
+  "supplier": "Scott Ties"
+ }, 
+ {
+  "address_line1": "Norra Esplanaden 87", 
+  "address_type": "Office", 
+  "city": "HELSINKI", 
+  "country": "Finland", 
+  "customer": null, 
+  "phone": "23566775757", 
+  "supplier": "Reliable Investments"
+ }, 
+ {
+  "address_line1": "2038 Fallon Drive", 
+  "address_type": "Office", 
+  "city": "Dresden", 
+  "country": "Canada", 
+  "customer": null, 
+  "phone": "23566775757", 
+  "supplier": "Nan Duskin"
+ }, 
+ {
+  "address_line1": "77 cours Franklin Roosevelt", 
+  "address_type": "Office", 
+  "city": "MARSEILLE", 
+  "country": "France", 
+  "customer": null, 
+  "phone": "23566775757", 
+  "supplier": "Rainbow Records"
+ }, 
+ {
+  "address_line1": "ul. Tuwima Juliana 85", 
+  "address_type": "Office", 
+  "city": "\u0141\u00f3d\u017a", 
+  "country": "Poland", 
+  "customer": null, 
+  "phone": "23566775757", 
+  "supplier": "New World Realty"
+ }, 
+ {
+  "address_line1": "Gl. Sygehusvej 41", 
+  "address_type": "Office", 
+  "city": "Narsaq", 
+  "country": "Greenland", 
+  "customer": null, 
+  "phone": "23566775757", 
+  "supplier": "Asiatic Solutions"
+ }, 
+ {
+  "address_line1": "Gosposka ulica 50", 
+  "address_type": "Office", 
+  "city": "Nova Gorica", 
+  "country": "Slovenia", 
+  "customer": null, 
+  "phone": "23566775757", 
+  "supplier": "Eagle Hardware"
+ }
+]
\ No newline at end of file
diff --git a/erpnext/demo/data/bom.json b/erpnext/demo/data/bom.json
new file mode 100644
index 0000000..145c0ba
--- /dev/null
+++ b/erpnext/demo/data/bom.json
@@ -0,0 +1,147 @@
+[
+ {
+  "item": "Bearing Assembly", 
+  "items": [
+   {
+    "item_code": "Base Bearing Plate", 
+    "qty": 1.0, 
+    "rate": 15.0
+   }, 
+   {
+    "item_code": "Bearing Block", 
+    "qty": 1.0, 
+    "rate": 10.0
+   }, 
+   {
+    "item_code": "Bearing Collar", 
+    "qty": 2.0, 
+    "rate": 20.0
+   }, 
+   {
+    "item_code": "Bearing Pipe", 
+    "qty": 1.0, 
+    "rate": 15.0
+   }, 
+   {
+    "item_code": "Upper Bearing Plate", 
+    "qty": 1.0, 
+    "rate": 50.0
+   }
+  ]
+ }, 
+ {
+  "item": "Wind Mill A Series", 
+  "items": [
+   {
+    "item_code": "Base Bearing Plate", 
+    "qty": 1.0, 
+    "rate": 15.0
+   }, 
+   {
+    "item_code": "Base Plate", 
+    "qty": 1.0, 
+    "rate": 20.0
+   }, 
+   {
+    "item_code": "Bearing Block", 
+    "qty": 1.0, 
+    "rate": 10.0
+   }, 
+   {
+    "item_code": "Bearing Pipe", 
+    "qty": 1.0, 
+    "rate": 15.0
+   }, 
+   {
+    "item_code": "External Disc", 
+    "qty": 1.0, 
+    "rate": 45.0
+   }, 
+   {
+    "item_code": "Shaft", 
+    "qty": 1.0, 
+    "rate": 30.0
+   }, 
+   {
+    "item_code": "Wing Sheet", 
+    "qty": 4.0, 
+    "rate": 22.0
+   }
+  ]
+ }, 
+ {
+  "item": "Wind MIll C Series", 
+  "items": [
+   {
+    "item_code": "Base Plate", 
+    "qty": 2.0, 
+    "rate": 20.0
+   }, 
+   {
+    "item_code": "Internal Disc", 
+    "qty": 1.0, 
+    "rate": 33.0
+   }, 
+   {
+    "item_code": "External Disc", 
+    "qty": 1.0, 
+    "rate": 45.0
+   }, 
+   {
+    "item_code": "Bearing Assembly", 
+    "qty": 1.0, 
+    "rate": 130.0
+   }, 
+   {
+    "item_code": "Wing Sheet", 
+    "qty": 3.0, 
+    "rate": 22.0
+   }
+  ]
+ }, 
+ {
+  "item": "Wind Turbine", 
+  "items": [
+   {
+    "item_code": "Base Bearing Plate", 
+    "qty": 1.0, 
+    "rate": 15.0
+   }, 
+   {
+    "item_code": "Base Plate", 
+    "qty": 1.0, 
+    "rate": 20.0
+   }, 
+   {
+    "item_code": "Bearing Collar", 
+    "qty": 1.0, 
+    "rate": 20.0
+   }, 
+   {
+    "item_code": "Blade Rib", 
+    "qty": 1.0, 
+    "rate": 10.0
+   }, 
+   {
+    "item_code": "Shaft", 
+    "qty": 1.0, 
+    "rate": 30.0
+   }, 
+   {
+    "item_code": "Wing Sheet", 
+    "qty": 2.0, 
+    "rate": 22.0
+   }
+  ]
+ }, 
+ {
+  "item": "Base Plate", 
+  "items": [
+   {
+    "item_code": "Base Plate Un Painted", 
+    "qty": 1.0, 
+    "rate": 16.0
+   }
+  ]
+ }
+]
\ No newline at end of file
diff --git a/erpnext/demo/data/contact.json b/erpnext/demo/data/contact.json
new file mode 100644
index 0000000..130845b
--- /dev/null
+++ b/erpnext/demo/data/contact.json
@@ -0,0 +1,191 @@
+[
+ {
+  "customer": "Adaptas", 
+  "email_id": "JanVaclavik@example.com", 
+  "first_name": "January", 
+  "last_name": "V\u00e1clav\u00edk", 
+  "supplier": null
+ }, 
+ {
+  "customer": "Asian Fusion", 
+  "email_id": "ChidumagaTobeolisa@example.com", 
+  "first_name": "Chidumaga", 
+  "last_name": "Tobeolisa", 
+  "supplier": null
+ }, 
+ {
+  "customer": "Asian Junction", 
+  "email_id": "JanaKubanova@example.com", 
+  "first_name": "Jana", 
+  "last_name": "Kub\u00e1\u0148ov\u00e1", 
+  "supplier": null
+ }, 
+ {
+  "customer": "Big D Supermarkets", 
+  "email_id": "XuChaoXuan@example.com", 
+  "first_name": "\u7d39\u8431", 
+  "last_name": "\u4e8e", 
+  "supplier": null
+ }, 
+ {
+  "customer": "Buttrey Food & Drug", 
+  "email_id": "OzlemVerwijmeren@example.com", 
+  "first_name": "\u00d6zlem", 
+  "last_name": "Verwijmeren", 
+  "supplier": null
+ }, 
+ {
+  "customer": "Chi-Chis", 
+  "email_id": "HansRasmussen@example.com", 
+  "first_name": "Hans", 
+  "last_name": "Rasmussen", 
+  "supplier": null
+ }, 
+ {
+  "customer": "Choices", 
+  "email_id": "SatomiShigeki@example.com", 
+  "first_name": "Satomi", 
+  "last_name": "Shigeki", 
+  "supplier": null
+ }, 
+ {
+  "customer": "Consumers and Consumers Express", 
+  "email_id": "SimonVJessen@example.com", 
+  "first_name": "Simon", 
+  "last_name": "Jessen", 
+  "supplier": null
+ }, 
+ {
+  "customer": "Crafts Canada", 
+  "email_id": "NeguaranShahsaah@example.com", 
+  "first_name": "\u0646\u06af\u0627\u0631\u06cc\u0646", 
+  "last_name": "\u0634\u0627\u0647 \u0633\u06cc\u0627\u0647", 
+  "supplier": null
+ }, 
+ {
+  "customer": "Endicott Shoes", 
+  "email_id": "Lom-AliBataev@example.com", 
+  "first_name": "Lom-Ali", 
+  "last_name": "Bataev", 
+  "supplier": null
+ }, 
+ {
+  "customer": "Fayva", 
+  "email_id": "VanNgocTien@example.com", 
+  "first_name": "Ti\u00ean", 
+  "last_name": "V\u0103n", 
+  "supplier": null
+ }, 
+ {
+  "customer": "Intelacard", 
+  "email_id": "QuimeyOsorioRuelas@example.com", 
+  "first_name": "Quimey", 
+  "last_name": "Osorio", 
+  "supplier": null
+ }, 
+ {
+  "customer": "Landskip Yard Care", 
+  "email_id": "EdgardaSalcedoRaya@example.com", 
+  "first_name": "Edgarda", 
+  "last_name": "Salcedo", 
+  "supplier": null
+ }, 
+ {
+  "customer": "Life Plan Counselling", 
+  "email_id": "HafsteinnBjarnarsonar@example.com", 
+  "first_name": "Hafsteinn", 
+  "last_name": "Bjarnarsonar", 
+  "supplier": null
+ }, 
+ {
+  "customer": "Mr Fables", 
+  "email_id": "\u0434\u0430\u043d\u0438\u0438\u043b@example.com", 
+  "first_name": "\u0414\u0430\u043d\u0438\u0438\u043b", 
+  "last_name": "\u041a\u043e\u043d\u043e\u0432\u0430\u043b\u043e\u0432", 
+  "supplier": null
+ }, 
+ {
+  "customer": "Nelson Brothers", 
+  "email_id": "SelmaMAndersen@example.com", 
+  "first_name": "Selma", 
+  "last_name": "Andersen", 
+  "supplier": null
+ }, 
+ {
+  "customer": "Netobill", 
+  "email_id": "LadislavKolaja@example.com", 
+  "first_name": "Ladislav", 
+  "last_name": "Kolaja", 
+  "supplier": null
+ }, 
+ {
+  "customer": null, 
+  "email_id": "TewoldeAbaalom@example.com", 
+  "first_name": "Tewolde", 
+  "last_name": "Abaalom", 
+  "supplier": "Helios Air"
+ }, 
+ {
+  "customer": null, 
+  "email_id": "LeilaFernandesRodrigues@example.com", 
+  "first_name": "Leila", 
+  "last_name": "Rodrigues", 
+  "supplier": "Ks Merchandise"
+ }, 
+ {
+  "customer": null, 
+  "email_id": "DmitryBulgakov@example.com", 
+  "first_name": "Dmitry", 
+  "last_name": "Bulgakov", 
+  "supplier": "HomeBase"
+ }, 
+ {
+  "customer": null, 
+  "email_id": "HaiducWhitfoot@example.com", 
+  "first_name": "Haiduc", 
+  "last_name": "Whitfoot", 
+  "supplier": "Scott Ties"
+ }, 
+ {
+  "customer": null, 
+  "email_id": "SesseljaPetursdottir@example.com", 
+  "first_name": "Sesselja", 
+  "last_name": "P\u00e9tursd\u00f3ttir", 
+  "supplier": "Reliable Investments"
+ }, 
+ {
+  "customer": null, 
+  "email_id": "HajdarPignar@example.com", 
+  "first_name": "Hajdar", 
+  "last_name": "Pignar", 
+  "supplier": "Nan Duskin"
+ }, 
+ {
+  "customer": null, 
+  "email_id": "GustavaLorenzo@example.com", 
+  "first_name": "Gustava", 
+  "last_name": "Lorenzo", 
+  "supplier": "Rainbow Records"
+ }, 
+ {
+  "customer": null, 
+  "email_id": "BethanyWood@example.com", 
+  "first_name": "Bethany", 
+  "last_name": "Wood", 
+  "supplier": "New World Realty"
+ }, 
+ {
+  "customer": null, 
+  "email_id": "GlorianaBrownlock@example.com", 
+  "first_name": "Gloriana", 
+  "last_name": "Brownlock", 
+  "supplier": "Asiatic Solutions"
+ }, 
+ {
+  "customer": null, 
+  "email_id": "JensonFraser@gustr.com", 
+  "first_name": "Jenson", 
+  "last_name": "Fraser", 
+  "supplier": "Eagle Hardware"
+ }
+]
\ No newline at end of file
diff --git a/erpnext/demo/data/employee.json b/erpnext/demo/data/employee.json
new file mode 100644
index 0000000..d9f4d2a
--- /dev/null
+++ b/erpnext/demo/data/employee.json
@@ -0,0 +1,72 @@
+[
+ {
+  "date_of_birth": "1982-01-03", 
+  "date_of_joining": "2001-10-10", 
+  "employee_name": "Dikman Shervashidze Shervashidze", 
+  "gender": "Female", 
+  "user_id": "DikmanShervashidze@example.com"
+ }, 
+ {
+  "date_of_birth": "1959-02-03", 
+  "date_of_joining": "1976-09-16", 
+  "employee_name": "Zukutakitoteka", 
+  "gender": "Female", 
+  "user_id": "Zukutakitoteka@example.com"
+ }, 
+ {
+  "date_of_birth": "1982-03-03", 
+  "date_of_joining": "2000-06-16", 
+  "employee_name": "Hatsue Kashiwagi", 
+  "gender": "Female", 
+  "user_id": "HatsueKashiwagi@example.com"
+ }, 
+ {
+  "date_of_birth": "1945-04-04", 
+  "date_of_joining": "1969-07-01", 
+  "employee_name": "Nuran Verkleij", 
+  "gender": "Female", 
+  "user_id": "NuranVerkleij@example.com"
+ }, 
+ {
+  "date_of_birth": "1978-05-03", 
+  "date_of_joining": "1999-12-24", 
+  "employee_name": "\u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041f\u0438\u0440\u043e\u0433\u043e\u0432", 
+  "gender": "Male", 
+  "user_id": "aromn@example.com"
+ }, 
+ {
+  "date_of_birth": "1964-06-03", 
+  "date_of_joining": "1981-08-05", 
+  "employee_name": "Tilde Lindqvist", 
+  "gender": "Female", 
+  "user_id": "TildeLindqvist@example.com"
+ }, 
+ {
+  "date_of_birth": "1982-07-03", 
+  "date_of_joining": "2006-06-10", 
+  "employee_name": "Micha\u0142 Sobczak", 
+  "gender": "Male", 
+  "user_id": "MichalSobczak@example.com"
+ }, 
+ {
+  "date_of_birth": "1969-08-03", 
+  "date_of_joining": "1993-10-21", 
+  "employee_name": "Gabrielle Loftus", 
+  "gender": "Female", 
+  "user_id": "GabrielleLoftus@example.com"
+ }, 
+ {
+  "date_of_birth": "1982-09-03", 
+  "date_of_joining": "2005-09-06", 
+  "employee_name": "Vakhita Ryzaev", 
+  "gender": "Male", 
+  "user_id": "VakhitaRyzaev@example.com"
+ }, 
+ {
+  "date_of_birth": "1985-10-03", 
+  "date_of_joining": "2007-12-25", 
+  "employee_name": "Charmaine Gaudreau", 
+  "gender": "Female", 
+  "user_id": "CharmaineGaudreau@example.com"
+ }
+]
\ No newline at end of file
diff --git a/erpnext/demo/data/item.json b/erpnext/demo/data/item.json
new file mode 100644
index 0000000..30436d1
--- /dev/null
+++ b/erpnext/demo/data/item.json
@@ -0,0 +1,224 @@
+[
+ {
+  "default_supplier": "Asiatic Solutions",
+  "default_warehouse": "Stores",
+  "description": "For Upper Bearing",
+  "image": "/assets/erpnext_demo/images/disc.png",
+  "item_code": "Disc Collars",
+  "item_group": "Raw Material",
+  "item_name": "Disc Collars"
+ },
+ {
+  "default_supplier": "Nan Duskin",
+  "default_warehouse": "Stores",
+  "description": "CAST IRON, MCMASTER PART NO. 3710T13",
+  "image": "/assets/erpnext_demo/images/bearing.jpg",
+  "item_code": "Bearing Block",
+  "item_group": "Raw Material",
+  "item_name": "Bearing Block"
+ },
+ {
+  "default_supplier": null,
+  "default_warehouse": "Finished Goods",
+  "description": "Wind Mill C Series for Commercial Use 18ft",
+  "image": "/assets/erpnext_demo/images/wind-turbine-2.png",
+  "item_code": "Wind MIll C Series",
+  "item_group": "Products",
+  "item_name": "Wind MIll C Series"
+ },
+ {
+  "default_supplier": null,
+  "default_warehouse": "Finished Goods",
+  "description": "Wind Mill A Series for Home Use 9ft",
+  "image": "/assets/erpnext_demo/images/wind-turbine.png",
+  "item_code": "Wind Mill A Series",
+  "item_group": "Products",
+  "item_name": "Wind Mill A Series"
+ },
+ {
+  "default_supplier": null,
+  "default_warehouse": "Finished Goods",
+  "description": "Small Wind Turbine for Home Use\n\n\n<!-- html -->",
+  "image": "/assets/erpnext_demo/images/wind-turbine-1.jpg",
+  "item_code": "Wind Turbine",
+  "item_group": "Products",
+  "item_name": "Wind Turbine",
+  "has_variants": 1,
+  "has_serial_no": 1,
+  "attributes":[
+      { "attribute": "Size" }
+  ]
+ },
+ {
+  "default_supplier": "HomeBase",
+  "default_warehouse": "Stores",
+  "description": "1.5 in. Diameter x 36 in. Mild Steel Tubing",
+  "image": null,
+  "item_code": "Bearing Pipe",
+  "item_group": "Raw Material",
+  "item_name": "Bearing Pipe"
+ },
+ {
+  "default_supplier": "New World Realty",
+  "default_warehouse": "Stores",
+  "description": "1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet",
+  "image": null,
+  "item_code": "Wing Sheet",
+  "item_group": "Raw Material",
+  "item_name": "Wing Sheet"
+ },
+ {
+  "default_supplier": "Eagle Hardware",
+  "default_warehouse": "Stores",
+  "description": "3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate",
+  "image": null,
+  "item_code": "Upper Bearing Plate",
+  "item_group": "Raw Material",
+  "item_name": "Upper Bearing Plate"
+ },
+ {
+  "default_supplier": "Asiatic Solutions",
+  "default_warehouse": "Stores",
+  "description": "Bearing Assembly",
+  "image": null,
+  "item_code": "Bearing Assembly",
+  "item_group": "Sub Assemblies",
+  "item_name": "Bearing Assembly"
+ },
+ {
+  "default_supplier": "HomeBase",
+  "default_warehouse": "Stores",
+  "description": "3/4 in. x 2 ft. x 4 ft. Pine Plywood",
+  "image": null,
+  "item_code": "Base Plate",
+  "item_group": "Raw Material",
+  "item_name": "Base Plate"
+ },
+ {
+  "default_supplier": "Scott Ties",
+  "default_warehouse": "Stores",
+  "description": "N/A",
+  "image": null,
+  "item_code": "Stand",
+  "item_group": "Raw Material",
+  "item_name": "Stand"
+ },
+ {
+  "default_supplier": "Eagle Hardware",
+  "default_warehouse": "Stores",
+  "description": "1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar",
+  "image": null,
+  "item_code": "Bearing Collar",
+  "item_group": "Raw Material",
+  "item_name": "Bearing Collar"
+ },
+ {
+  "default_supplier": "Eagle Hardware",
+  "default_warehouse": "Stores",
+  "description": "1/4 in. x 6 in. x 6 in. Mild Steel Plate",
+  "image": null,
+  "item_code": "Base Bearing Plate",
+  "item_group": "Raw Material",
+  "item_name": "Base Bearing Plate"
+ },
+ {
+  "default_supplier": "HomeBase",
+  "default_warehouse": "Stores",
+  "description": "15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing",
+  "image": null,
+  "item_code": "External Disc",
+  "item_group": "Raw Material",
+  "item_name": "External Disc"
+ },
+ {
+  "default_supplier": "Eagle Hardware",
+  "default_warehouse": "Stores",
+  "description": "1.25 in. Diameter x 6 ft. Mild Steel Tubing",
+  "image": null,
+  "item_code": "Shaft",
+  "item_group": "Raw Material",
+  "item_name": "Shaft"
+ },
+ {
+  "default_supplier": "Ks Merchandise",
+  "default_warehouse": "Stores",
+  "description": "1/2 in. x 2 ft. x 4 ft. Pine Plywood",
+  "image": null,
+  "item_code": "Blade Rib",
+  "item_group": "Raw Material",
+  "item_name": "Blade Rib"
+ },
+ {
+  "default_supplier": "HomeBase",
+  "default_warehouse": "Stores",
+  "description": "For Bearing Collar",
+  "image": null,
+  "item_code": "Internal Disc",
+  "item_group": "Raw Material",
+  "item_name": "Internal Disc"
+ },
+ {
+  "default_supplier": null,
+  "default_warehouse": "Finished Goods",
+  "description": "Small Wind Turbine for Home Use\n\n\n<!-- html -->\n<p>Size: Small</p>",
+  "image": "/assets/erpnext_demo/images/wind-turbine-1.jpg",
+  "item_code": "Wind Turbine-S",
+  "item_group": "Products",
+  "item_name": "Wind Turbine-S",
+  "variant_of": "Wind Turbine",
+  "attributes":[
+      {
+       "attribute": "Size",
+       "attribute_value": "Small"
+      }
+  ]
+ },
+ {
+  "default_supplier": null,
+  "default_warehouse": "Finished Goods",
+  "description": "Small Wind Turbine for Home Use\n\n\n<!-- html -->\n<p>Size: Medium</p>",
+  "image": "/assets/erpnext_demo/images/wind-turbine-1.jpg",
+  "item_code": "Wind Turbine-M",
+  "item_group": "Products",
+  "item_name": "Wind Turbine-M",
+  "variant_of": "Wind Turbine",
+  "attributes":[
+      {
+       "attribute": "Size",
+       "attribute_value": "Medium"
+      }
+  ]
+ },
+ {
+  "default_supplier": null,
+  "default_warehouse": "Finished Goods",
+  "description": "Small Wind Turbine for Home Use\n\n\n<!-- html -->\n<p>Size: Large</p>",
+  "image": "/assets/erpnext_demo/images/wind-turbine-1.jpg",
+  "item_code": "Wind Turbine-L",
+  "item_group": "Products",
+  "item_name": "Wind Turbine-L",
+  "variant_of": "Wind Turbine",
+  "attributes":[
+      {
+       "attribute": "Size",
+       "attribute_value": "Large"
+      }
+  ]
+ },
+ {
+  "is_stock_item": 0,
+  "description": "Wind Mill A Series with Spare Bearing",
+  "item_code": "Wind Mill A Series with Spare Bearing",
+  "item_group": "Products",
+  "item_name": "Wind Mill A Series with Spare Bearing"
+ },
+ {
+  "default_supplier": "HomeBase",
+  "default_warehouse": "Stores",
+  "description": "3/4 in. x 2 ft. x 4 ft. Pine Plywood",
+  "image": null,
+  "item_code": "Base Plate Un Painted",
+  "item_group": "Raw Material",
+  "item_name": "Base Plate Un Painted"
+ }
+]
\ No newline at end of file
diff --git a/erpnext/demo/data/lead.json b/erpnext/demo/data/lead.json
new file mode 100644
index 0000000..ff78877
--- /dev/null
+++ b/erpnext/demo/data/lead.json
@@ -0,0 +1,127 @@
+[
+ {
+  "company_name": "Zany Brainy", 
+  "email_id": "MartLakeman@example.com", 
+  "lead_name": "Mart Lakeman"
+ }, 
+ {
+  "company_name": "Patterson-Fletcher", 
+  "email_id": "SagaLundqvist@example.com", 
+  "lead_name": "Saga Lundqvist"
+ }, 
+ {
+  "company_name": "Griff's Hamburgers", 
+  "email_id": "AdnaSjoberg@example.com", 
+  "lead_name": "Adna Sj\u00f6berg"
+ }, 
+ {
+  "company_name": "Rhodes Furniture", 
+  "email_id": "IdaDSvendsen@example.com", 
+  "lead_name": "Ida Svendsen"
+ }, 
+ {
+  "company_name": "Burger Chef", 
+  "email_id": "EmppuHameenniemi@example.com", 
+  "lead_name": "Emppu H\u00e4meenniemi"
+ }, 
+ {
+  "company_name": "Stratabiz", 
+  "email_id": "EugenioPisano@example.com", 
+  "lead_name": "Eugenio Pisano"
+ }, 
+ {
+  "company_name": "Home Quarters Warehouse", 
+  "email_id": "SemharHagos@example.com", 
+  "lead_name": "Semhar Hagos"
+ }, 
+ {
+  "company_name": "Enviro Architectural Designs", 
+  "email_id": "BranimiraIvankovic@example.com", 
+  "lead_name": "Branimira Ivankovi\u0107"
+ }, 
+ {
+  "company_name": "Ideal Garden Management", 
+  "email_id": "ShellyLFields@example.com", 
+  "lead_name": "Shelly Fields"
+ }, 
+ {
+  "company_name": "Listen Up", 
+  "email_id": "LeoMikulic@example.com", 
+  "lead_name": "Leo Mikuli\u0107"
+ }, 
+ {
+  "company_name": "I. Magnin", 
+  "email_id": "DenisaJarosova@example.com", 
+  "lead_name": "Denisa Jaro\u0161ov\u00e1"
+ }, 
+ {
+  "company_name": "First Rate Choice", 
+  "email_id": "JanekRutkowski@example.com", 
+  "lead_name": "Janek Rutkowski"
+ }, 
+ {
+  "company_name": "Multi Tech Development", 
+  "email_id": "mm@example.com", 
+  "lead_name": "\u7f8e\u6708 \u5b87\u85e4"
+ }, 
+ {
+  "company_name": "National Auto Parts", 
+  "email_id": "dd@example.com", 
+  "lead_name": "\u0414\u0430\u043d\u0438\u0438\u043b \u0410\u0444\u0430\u043d\u0430\u0441\u044c\u0435\u0432"
+ }, 
+ {
+  "company_name": "Integra Investment Plan", 
+  "email_id": "ZorislavPetkovic@example.com", 
+  "lead_name": "Zorislav Petkovi\u0107"
+ }, 
+ {
+  "company_name": "The Lawn Guru", 
+  "email_id": "NanaoNiwa@example.com", 
+  "lead_name": "Nanao Niwa"
+ }, 
+ {
+  "company_name": "Buena Vista Realty Service", 
+  "email_id": "HreiarJorundsson@example.com", 
+  "lead_name": "Hrei\u00f0ar J\u00f6rundsson"
+ }, 
+ {
+  "company_name": "Bountiful Harvest Health Food Store", 
+  "email_id": "ChuThiBichLai@example.com", 
+  "lead_name": "Lai Chu"
+ }, 
+ {
+  "company_name": "P. Samuels Men's Clothiers", 
+  "email_id": "VictorAksakov@example.com", 
+  "lead_name": "Victor Aksakov"
+ }, 
+ {
+  "company_name": "Vinyl Fever", 
+  "email_id": "SaidalimBisliev@example.com", 
+  "lead_name": "Saidalim Bisliev"
+ }, 
+ {
+  "company_name": "Garden Master", 
+  "email_id": "TotteJakobsson@example.com", 
+  "lead_name": "Totte Jakobsson"
+ }, 
+ {
+  "company_name": "Big Apple", 
+  "email_id": "NanaArmasRobles@example.com", 
+  "lead_name": "Nan\u00e1 Armas"
+ }, 
+ {
+  "company_name": "Monk House Sales", 
+  "email_id": "WalerianDuda@example.com", 
+  "lead_name": "Walerian Duda"
+ }, 
+ {
+  "company_name": "ManCharm", 
+  "email_id": "Moarimikashi@example.com", 
+  "lead_name": "Moarimikashi"
+ }, 
+ {
+  "company_name": "Custom Lawn Care", 
+  "email_id": "DobromilDabrowski@example.com", 
+  "lead_name": "Dobromi\u0142 D\u0105browski"
+ }
+]
\ No newline at end of file
diff --git a/erpnext/demo/data/operation.json b/erpnext/demo/data/operation.json
new file mode 100644
index 0000000..47f26d1
--- /dev/null
+++ b/erpnext/demo/data/operation.json
@@ -0,0 +1,32 @@
+[
+ {
+  "description": "Setup Fixtures for Assembly", 
+  "name": "Setup Fixtures", 
+  "workstation": "Assembly Station 1"
+ }, 
+ {
+  "description": "Assemble Unit as per Standard Operating Procedures", 
+  "name": "Assembly Operation", 
+  "workstation": "Assembly Station 1"
+ }, 
+ {
+  "description": "Final Testing Checklist", 
+  "name": "Testing", 
+  "workstation": "Packing and Testing Station"
+ }, 
+ {
+  "description": "Final Packing and add Instructions", 
+  "name": "Packing", 
+  "workstation": "Packing and Testing Station"
+ }, 
+ {
+  "description": "Prepare frame for assembly", 
+  "name": "Prepare Frame", 
+  "workstation": "Drilling Machine 1"
+ }, 
+ {
+  "description": "Connect wires", 
+  "name": "Wiring", 
+  "workstation": "Assembly Station 1"
+ }
+]
\ No newline at end of file
diff --git a/erpnext/demo/data/user.json b/erpnext/demo/data/user.json
new file mode 100644
index 0000000..e353efb
--- /dev/null
+++ b/erpnext/demo/data/user.json
@@ -0,0 +1,112 @@
+[
+ {
+  "email": "test_demo@erpnext.com",
+  "first_name": "Test",
+  "last_name": "User"
+ },
+ {
+  "email": "DikmanShervashidze@example.com",
+  "first_name": "Dikman",
+  "last_name": "Shervashidze"
+ },
+ {
+  "email": "Zukutakitoteka@example.com",
+  "first_name": "Zukutakitoteka",
+  "last_name": null
+ },
+ {
+  "email": "HatsueKashiwagi@example.com",
+  "first_name": "Hatsue",
+  "last_name": "Kashiwagi"
+ },
+ {
+  "email": "NuranVerkleij@example.com",
+  "first_name": "Nuran",
+  "last_name": "Verkleij"
+ },
+ {
+  "email": "aromn@example.com",
+  "first_name": "\u0414\u043c\u0438\u0442\u0440\u0438\u0439",
+  "last_name": "\u041f\u0438\u0440\u043e\u0433\u043e\u0432"
+ },
+ {
+  "email": "TildeLindqvist@example.com",
+  "first_name": "Tilde",
+  "last_name": "Lindqvist"
+ },
+ {
+  "email": "MichalSobczak@example.com",
+  "first_name": "Micha\u0142",
+  "last_name": "Sobczak"
+ },
+ {
+  "email": "GabrielleLoftus@example.com",
+  "first_name": "Gabrielle",
+  "last_name": "Loftus"
+ },
+ {
+  "email": "VakhitaRyzaev@example.com",
+  "first_name": "Vakhita",
+  "last_name": "Ryzaev"
+ },
+ {
+  "email": "CharmaineGaudreau@example.com",
+  "first_name": "Charmaine",
+  "last_name": "Gaudreau"
+ },
+ {
+  "email": "RafaelaMaartens@example.com",
+  "first_name": "Rafa\u00ebla",
+  "last_name": "Maartens"
+ },
+ {
+  "email": "NuguseYohannes@example.com",
+  "first_name": "Nuguse",
+  "last_name": "Yohannes"
+ },
+ {
+  "email": "panca@example.com",
+  "first_name": "\u0420\u0430\u0438\u0441\u0430",
+  "last_name": "\u0411\u0435\u043b\u044f\u043a\u043e\u0432\u0430"
+ },
+ {
+  "email": "CaYinLong@example.com",
+  "first_name": "\u80e4\u9686",
+  "last_name": "\u8521"
+ },
+ {
+  "email": "FreddieScott@example.com",
+  "first_name": "Freddie",
+  "last_name": "Scott"
+ },
+ {
+  "email": "BergoraVigfusdottir@example.com",
+  "first_name": "Berg\u00fe\u00f3ra",
+  "last_name": "Vigf\u00fasd\u00f3ttir"
+ },
+ {
+  "email": "WardNajmalDinKalb@example.com",
+  "first_name": "Ward",
+  "last_name": "Kalb"
+ },
+ {
+  "email": "WanMai@example.com",
+  "first_name": "Wan",
+  "last_name": "Mai"
+ },
+ {
+  "email": "LeonAbdulov@example.com",
+  "first_name": "Leon",
+  "last_name": "Abdulov"
+ },
+ {
+  "email": "SabinaNovotna@example.com",
+  "first_name": "Sabina",
+  "last_name": "Novotn\u00e1"
+ },
+ {
+  "email": "demo@erpnext.com",
+  "first_name": "Demo",
+  "last_name": "User"
+ }
+]
\ No newline at end of file
diff --git a/erpnext/demo/demo.py b/erpnext/demo/demo.py
new file mode 100644
index 0000000..3ca8eb9
--- /dev/null
+++ b/erpnext/demo/demo.py
@@ -0,0 +1,54 @@
+from __future__ import unicode_literals
+
+import frappe, sys
+import erpnext
+import frappe.utils
+from erpnext.demo.setup_data import setup_data
+from erpnext.demo.user import hr, sales
+
+def make(domain='Manufacturing'):
+	frappe.flags.domain = domain
+	setup_data()
+	simulate()
+
+def simulate():
+	runs_for = frappe.flags.runs_for or 150
+	frappe.flags.company = erpnext.get_default_company()
+
+	if not frappe.flags.start_date:
+		# start date = 100 days back
+		frappe.flags.start_date = frappe.utils.add_days(frappe.utils.nowdate(), -1 * runs_for)
+
+	current_date = frappe.utils.getdate(frappe.flags.start_date)
+
+	# continue?
+	demo_last_date = frappe.db.get_global('demo_last_date')
+	if demo_last_date:
+		current_date = frappe.utils.add_days(demo_last_date, 1)
+
+	# run till today
+	if not runs_for:
+		runs_for = frappe.utils.date_diff(frappe.utils.nowdate(), current_date)
+		# runs_for = 100
+
+	for i in xrange(runs_for):
+		sys.stdout.write("\rSimulating {0}".format(current_date.strftime("%Y-%m-%d")))
+		sys.stdout.flush()
+		frappe.flags.current_date = current_date
+
+		if current_date.weekday() in (5, 6):
+			current_date = frappe.utils.add_days(current_date, 1)
+			continue
+
+		hr.work()
+		sales.work()
+		# run_purchase()
+		# run_manufacturing()
+		# run_stock()
+		# run_accounts()
+		# run_projects()
+		# run_messages()
+
+		current_date = frappe.utils.add_days(current_date, 1)
+
+		frappe.db.commit()
diff --git a/erpnext/demo/domains.py b/erpnext/demo/domains.py
new file mode 100644
index 0000000..0217f24
--- /dev/null
+++ b/erpnext/demo/domains.py
@@ -0,0 +1,16 @@
+from __future__ import unicode_literals
+
+data = {
+	'Manufacturing': {
+		'company_name': 'Wind Power LLC'
+	},
+	'Retail': {
+		'company_name': 'Annapurna Dairy Shop',
+	},
+	'Distribution': {
+		'company_name': 'Soltice Hardware',
+	},
+	'Services': {
+		'company_name': 'Acme Consulting'
+	}
+}
\ No newline at end of file
diff --git a/erpnext/demo/setup_data.py b/erpnext/demo/setup_data.py
new file mode 100644
index 0000000..bfaee47
--- /dev/null
+++ b/erpnext/demo/setup_data.py
@@ -0,0 +1,302 @@
+from __future__ import unicode_literals
+
+import random, json
+from erpnext.demo.domains import data
+import frappe, erpnext
+import frappe.utils
+
+def setup_data():
+	domain = frappe.flags.domain
+	complete_setup(domain)
+	setup_demo_page()
+	setup_fiscal_year()
+	setup_holiday_list()
+	setup_customer()
+	setup_supplier()
+	setup_item()
+	import_json('Address')
+	import_json('Contact')
+	setup_workstation()
+	import_json('Operation')
+	import_json('Lead')
+	setup_item_price()
+	show_item_groups_in_website()
+	setup_currency_exchange()
+	import_json('BOM', submit=True)
+	setup_user()
+	setup_employee()
+	setup_salary_structure()
+	setup_user_roles()
+
+def complete_setup(domain='Manufacturing'):
+	print "Complete Setup..."
+	from frappe.desk.page.setup_wizard.setup_wizard import setup_complete
+
+	if not frappe.get_all('Company', limit=1):
+		setup_complete({
+			"first_name": "Test",
+			"last_name": "User",
+			"email": "test_demo@erpnext.com",
+			"company_tagline": 'Awesome Products and Services',
+			"password": "test",
+			"fy_start_date": "2015-01-01",
+			"fy_end_date": "2015-12-31",
+			"bank_account": "National Bank",
+			"industry": domain,
+			"company_name": data.get(domain).get('company_name'),
+			"chart_of_accounts": "Standard",
+			"company_abbr": ''.join([d[0] for d in data.get(domain).get('company_name').split()]).upper(),
+			"currency": 'USD',
+			"timezone": 'America/New_York',
+			"country": 'United States',
+			"language": "english"
+		})
+
+def setup_demo_page():
+	# home page should always be "start"
+	website_settings = frappe.get_doc("Website Settings", "Website Settings")
+	website_settings.home_page = "demo"
+	website_settings.save()
+
+def setup_fiscal_year():
+	fiscal_year = None
+	for year in xrange(2014, frappe.utils.now_datetime().year + 1, 1):
+		try:
+			fiscal_year = frappe.get_doc({
+				"doctype": "Fiscal Year",
+				"year": frappe.utils.cstr(year),
+				"year_start_date": "{0}-01-01".format(year),
+				"year_end_date": "{0}-12-31".format(year)
+			}).insert()
+		except frappe.DuplicateEntryError:
+			pass
+
+	# set the last fiscal year (current year) as default
+	fiscal_year.set_as_default()
+
+def setup_holiday_list():
+	"""Setup Holiday List for the current year"""
+	year = frappe.utils.now_datetime().year
+	holiday_list = frappe.get_doc({
+		"doctype": "Holiday List",
+		"holiday_list_name": str(year),
+		"from_date": "{0}-01-01".format(year),
+		"to_date": "{0}-12-31".format(year),
+	})
+	holiday_list.insert()
+	holiday_list.weekly_off = "Saturday"
+	holiday_list.get_weekly_off_dates()
+	holiday_list.weekly_off = "Sunday"
+	holiday_list.get_weekly_off_dates()
+	holiday_list.save()
+
+	frappe.set_value("Company", erpnext.get_default_company(), "default_holiday_list", holiday_list.name)
+
+def setup_customer():
+	customers = [u'Asian Junction', u'Life Plan Counselling', u'Two Pesos', u'Mr Fables', u'Intelacard', u'Big D Supermarkets', u'Adaptas', u'Nelson Brothers', u'Landskip Yard Care', u'Buttrey Food & Drug', u'Fayva', u'Asian Fusion', u'Crafts Canada', u'Consumers and Consumers Express', u'Netobill', u'Choices', u'Chi-Chis', u'Red Food', u'Endicott Shoes', u'Hind Enterprises']
+	for c in customers:
+		frappe.get_doc({
+			"doctype": "Customer",
+			"customer_name": c,
+			"customer_group": "Commercial",
+			"customer_type": random.choice(["Company", "Individual"]),
+			"territory": "Rest Of The World"
+		}).insert()
+
+def setup_supplier():
+	suppliers = [u'Helios Air', u'Ks Merchandise', u'HomeBase', u'Scott Ties', u'Reliable Investments', u'Nan Duskin', u'Rainbow Records', u'New World Realty', u'Asiatic Solutions', u'Eagle Hardware', u'Modern Electricals']
+	for s in suppliers:
+		frappe.get_doc({
+			"doctype": "Supplier",
+			"supplier_name": s,
+			"supplier_type": random.choice(["Services", "Raw Material"]),
+		}).insert()
+
+def setup_workstation():
+	workstations = [u'Drilling Machine 1', u'Lathe 1', u'Assembly Station 1', u'Assembly Station 2', u'Packing and Testing Station']
+	for w in workstations:
+		frappe.get_doc({
+			"doctype": "Workstation",
+			"workstation_name": w,
+			"holiday_list": frappe.get_all("Holiday List")[0].name,
+			"hour_rate_consumable": int(random.random() * 20),
+			"hour_rate_electricity": int(random.random() * 10),
+			"hour_rate_labour": int(random.random() * 40),
+			"hour_rate_rent": int(random.random() * 10),
+			"working_hours": [
+				{
+					"enabled": 1,
+				    "start_time": "8:00:00",
+					"end_time": "15:00:00"
+				}
+			]
+		}).insert()
+
+def show_item_groups_in_website():
+	"""set show_in_website=1 for Item Groups"""
+	products = frappe.get_doc("Item Group", "Products")
+	products.show_in_website = 1
+	products.route = 'products'
+	products.save()
+
+def setup_item():
+	items = json.loads(open(frappe.get_app_path('erpnext', 'demo', 'data', 'item.json')).read())
+	for i in items:
+		item = frappe.new_doc('Item')
+		item.update(i)
+		item.default_warehouse = frappe.get_all('Warehouse', filters={'warehouse_name': item.default_warehouse}, limit=1)[0].name
+		item.insert()
+
+def setup_currency_exchange():
+	frappe.get_doc({
+		'doctype': 'Currency Exchange',
+		'from_currency': 'EUR',
+		'to_currency': 'USD',
+		'exchange_rate': 1.13
+	}).insert()
+
+	frappe.get_doc({
+		'doctype': 'Currency Exchange',
+		'from_currency': 'CNY',
+		'to_currency': 'USD',
+		'exchange_rate': 0.16
+	}).insert()
+
+def setup_product_bundle():
+	frappe.get_doc({
+		'doctype': 'Product Bundle',
+		'new_item_code': 'Wind Mill A Series with Spare Bearing',
+		'items': [
+			{'item_code': 'Wind Mill A Series', 'qty': 1},
+			{'item_code': 'Bearing Collar', 'qty': 1},
+			{'item_code': 'Bearing Assembly', 'qty': 1},
+		]
+	}).insert()
+
+def setup_user():
+	frappe.db.sql('delete from tabUser where name not in ("Guest", "Administrator")')
+	for u in json.loads(open(frappe.get_app_path('erpnext', 'demo', 'data', 'user.json')).read()):
+		user = frappe.new_doc("User")
+		user.update(u)
+		user.flags.no_welcome_mail
+		user.password = 'demo'
+		user.insert()
+
+def import_json(doctype, submit=False):
+	frappe.flags.in_import = True
+	data = json.loads(open(frappe.get_app_path('erpnext', 'demo', 'data',
+		frappe.scrub(doctype) + '.json')).read())
+	for d in data:
+		doc = frappe.new_doc(doctype)
+		doc.update(d)
+		doc.insert()
+		if submit:
+			doc.submit()
+
+def setup_employee():
+	frappe.db.set_value("HR Settings", None, "emp_created_by", "Naming Series")
+	frappe.db.commit()
+
+	import_json('Employee')
+
+def setup_item_price():
+	frappe.db.sql("delete from `tabItem Price`")
+
+	standard_selling = {
+		"Base Bearing Plate": 28,
+		"Base Plate": 21,
+		"Bearing Assembly": 300,
+		"Bearing Block": 14,
+		"Bearing Collar": 103.6,
+		"Bearing Pipe": 63,
+		"Blade Rib": 46.2,
+		"Disc Collars": 42,
+		"External Disc": 56,
+		"Internal Disc": 70,
+		"Shaft": 340,
+		"Stand": 400,
+		"Upper Bearing Plate": 300,
+		"Wind Mill A Series": 320,
+		"Wind Mill A Series with Spare Bearing": 750,
+		"Wind MIll C Series": 400,
+		"Wind Turbine": 400,
+		"Wing Sheet": 30.8
+	}
+
+	standard_buying = {
+		"Base Bearing Plate": 20,
+		"Base Plate": 28,
+		"Base Plate Un Painted": 16,
+		"Bearing Block": 13,
+		"Bearing Collar": 96.4,
+		"Bearing Pipe": 55,
+		"Blade Rib": 38,
+		"Disc Collars": 34,
+		"External Disc": 50,
+		"Internal Disc": 60,
+		"Shaft": 250,
+		"Stand": 300,
+		"Upper Bearing Plate": 200,
+		"Wing Sheet": 25
+	}
+
+	for price_list in ("standard_buying", "standard_selling"):
+		for item, rate in locals().get(price_list).iteritems():
+			frappe.get_doc({
+				"doctype": "Item Price",
+				"price_list": price_list.replace("_", " ").title(),
+				"item_code": item,
+				"selling": 1 if price_list=="standard_selling" else 0,
+				"buying": 1 if price_list=="standard_buying" else 0,
+				"price_list_rate": rate,
+				"currency": "USD"
+			}).insert()
+
+def setup_salary_structure():
+	f = frappe.get_doc('Fiscal Year', frappe.defaults.get_global_default('fiscal_year'))
+
+	for e in frappe.get_all('Employee', fields=['name', 'date_of_joining']):
+		ss = frappe.new_doc('Salary Structure')
+		ss.employee = e.name
+
+		if not e.date_of_joining:
+			continue
+
+		ss.from_date = e.date_of_joining if (e.date_of_joining
+			and e.date_of_joining > f.year_start_date) else f.year_start_date
+		ss.to_date = f.year_end_date
+		ss.append('earnings', {
+			'earning_type': 'Basic',
+			'modified_value': random.random() * 10000
+		})
+		ss.append('deductions', {
+			'deduction_type': 'Income Tax',
+			'd_modified_amt': random.random() * 1000
+		})
+		ss.insert()
+
+def setup_account():
+	frappe.flags.in_import = True
+	data = json.loads(open(frappe.get_app_path('erpnext', 'demo', 'data',
+		'account.json')).read())
+	for d in data:
+		doc = frappe.new_doc('Account')
+		doc.update(d)
+		doc.parent_account = frappe.db.get_value('Account', {'account_name': doc.parent_account})
+		doc.insert()
+
+def setup_user_roles():
+	if not frappe.db.get_global('demo_hr_user'):
+		user = frappe.get_doc('User', 'CharmaineGaudreau@example.com')
+		user.add_roles('HR User', 'HR Manager', 'Accounts User')
+		frappe.db.set_global('demo_hr_user', user.name)
+
+	if not frappe.db.get_global('demo_sales_user_1'):
+		user = frappe.get_doc('User', 'VakhitaRyzaev@example.com')
+		user.add_roles('Sales User')
+		frappe.db.set_global('demo_sales_user_1', user.name)
+
+	if not frappe.db.get_global('demo_sales_user_2'):
+		user = frappe.get_doc('User', 'GabrielleLoftus@example.com')
+		user.add_roles('Sales User', 'Sales Manager', 'Accounts User')
+		frappe.db.set_global('demo_sales_user_2', user.name)
diff --git a/erpnext/demo/user/__init__.py b/erpnext/demo/user/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/demo/user/__init__.py
diff --git a/erpnext/demo/user/hr.py b/erpnext/demo/user/hr.py
new file mode 100644
index 0000000..8196701
--- /dev/null
+++ b/erpnext/demo/user/hr.py
@@ -0,0 +1,26 @@
+from __future__ import unicode_literals
+import frappe
+from frappe.utils import random_string
+
+def work():
+	frappe.set_user(frappe.db.get_global('demo_hr_user'))
+
+	year, month = frappe.flags.current_date.strftime("%Y-%m").split("-")
+
+	# process payroll
+	if not frappe.db.get_value("Salary Slip", {"month": month, "fiscal_year": year}):
+		process_payroll = frappe.get_doc("Process Payroll", "Process Payroll")
+		process_payroll.company = frappe.flags.company
+		process_payroll.month = month
+		process_payroll.fiscal_year = year
+		process_payroll.create_sal_slip()
+		process_payroll.submit_salary_slip()
+		r = process_payroll.make_journal_entry(frappe.get_value('Account',
+			{'account_name': 'Salary'}))
+
+		journal_entry = frappe.get_doc(r)
+		journal_entry.cheque_no = random_string(10)
+		journal_entry.cheque_date = frappe.flags.current_date
+		journal_entry.posting_date = frappe.flags.current_date
+		journal_entry.insert()
+		journal_entry.submit()
diff --git a/erpnext/demo/user/purchase.py b/erpnext/demo/user/purchase.py
new file mode 100644
index 0000000..cf27358
--- /dev/null
+++ b/erpnext/demo/user/purchase.py
@@ -0,0 +1,138 @@
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+
+import frappe, random
+from frappe.utils.make_random import how_many, can_make, get_random
+from frappe.desk import query_report
+from erpnext.setup.utils import get_exchange_rate
+from erpnext.accounts.party import get_party_account_currency
+from erpnext.exceptions import InvalidCurrency
+from erpnext.stock.doctype.material_request.material_request import make_request_for_quotation
+from erpnext.buying.doctype.request_for_quotation.request_for_quotation import \
+			 make_supplier_quotation as make_quotation_from_rfq
+
+def run_purchase(current_date):
+	if random.random() < 0.3:
+		report = "Items To Be Requested"
+		for row in query_report.run(report)["result"][:how_many("Material Request")]:
+			item_code, qty = row[0], abs(row[-1])
+
+			mr = make_material_request(item_code, qty)
+
+	if random.random() < 0.3:
+		for mr in frappe.get_all('Material Request', filters={'material_request_type': 'Purchase', 'status': 'Open'}):
+			rfq = make_request_for_quotation(mr.name)
+			rfq.transaction_date = frappe.flags.current_date
+			add_suppliers(rfq)
+			rfq.save()
+			rfq.submit()
+
+				# Make suppier quotation from RFQ against each supplier.
+	if random.random() < 0.3:
+		for supplier_quotation in frappe.get_all('Request for Quotation', {'status': 'Open'}):
+			rfq = frappe.get_doc('Request for Quotation', rfq.name)
+			for supplier in rfq.suppliers:
+				supplier_quotation = make_quotation_from_rfq(rfq.name, supplier.supplier)
+				supplier_quotation.save()
+				supplier_quotation.submit()
+
+	# get supplier details
+	supplier = get_random("Supplier")
+
+	company_currency = frappe.db.get_value("Company", "Wind Power LLC", "default_currency")
+	party_account_currency = get_party_account_currency("Supplier", supplier, "Wind Power LLC")
+	if company_currency == party_account_currency:
+		exchange_rate = 1
+	else:
+		exchange_rate = get_exchange_rate(party_account_currency, company_currency)
+
+	# 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 = frappe.get_doc(make_supplier_quotation(row[0]))
+				sq.transaction_date = current_date
+				sq.supplier = supplier
+				sq.currency = party_account_currency or company_currency
+				sq.conversion_rate = exchange_rate
+				sq.insert()
+				sq.submit()
+				frappe.db.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 = frappe.get_doc(make_purchase_order(row[0]))
+				po.supplier = supplier
+				po.currency = party_account_currency or company_currency
+				po.conversion_rate = exchange_rate
+				po.transaction_date = current_date
+				po.insert()
+				po.submit()
+				frappe.db.commit()
+
+	if can_make("Subcontract"):
+		make_subcontract(current_date)
+
+def make_material_request(item_code, qty):
+	mr = frappe.new_doc("Material Request")
+
+	if frappe.db.get_value('BOM', {'item': item_code, 'is_default': 1, 'is_active': 1}):
+		mr.material_request_type = 'Manufacture'
+	else:
+		mr.material_request_type = "Purchase"
+
+	mr.transaction_date = frappe.flags.current_date
+	mr.append("items", {
+		"doctype": "Material Request Item",
+		"schedule_date": frappe.utils.add_days(mr.transaction_date, 7),
+		"item_code": item_code,
+		"qty": qty
+	})
+	mr.insert()
+	mr.submit()
+	return mr
+
+def add_suppliers(rfq):
+	for i in xrange(2):
+		supplier = get_random("Supplier")
+		if supplier not in [d.supplier for d in rfq.get('suppliers')]:
+			rfq.append("suppliers", { "supplier": supplier })
+
+def make_subcontract():
+	from erpnext.buying.doctype.purchase_order.purchase_order import make_stock_entry
+
+	# make sub-contract PO
+	po = frappe.new_doc("Purchase Order")
+	po.is_subcontracted = "Yes"
+	po.supplier = get_random("Supplier")
+
+	po.append("items", {
+		"item_code": get_random("Item", {"is_sub_contracted_item": 1}),
+		"schedule_date": frappe.utils.add_days(frappe.flags.current_date, 7),
+		"qty": 20
+	})
+	po.set_missing_values()
+	try:
+		po.insert()
+	except InvalidCurrency:
+		return
+
+	po.submit()
+
+	# make material request for
+	make_material_request(po.items[0].item_code, po.items[0].qty)
+
+	# transfer material for sub-contract
+	stock_entry = frappe.get_doc(make_stock_entry(po.name, po.items[0].item_code))
+	stock_entry.from_warehouse = "Stores - WP"
+	stock_entry.to_warehouse = "Supplier - WP"
+	stock_entry.insert()
diff --git a/erpnext/demo/user/sales.py b/erpnext/demo/user/sales.py
new file mode 100644
index 0000000..7432ba0
--- /dev/null
+++ b/erpnext/demo/user/sales.py
@@ -0,0 +1,109 @@
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+
+import frappe, random
+from frappe.utils.make_random import add_random_children, get_random
+from erpnext.setup.utils import get_exchange_rate
+from erpnext.accounts.party import get_party_account_currency
+
+def work():
+	frappe.set_user(frappe.db.get_global('demo_sales_user_2'))
+	if random.random() < 0.5:
+		for i in xrange(random.randint(1,7)):
+			make_opportunity()
+
+	if random.random() < 0.5:
+		for i in xrange(random.randint(1,3)):
+			make_quotation()
+
+	# lost quotations / inquiries
+	if random.random() < 0.3:
+		for i in xrange(random.randint(1,3)):
+			quotation = get_random('Quotation', doc=True)
+			if quotation and quotation.status == 'Submitted':
+				quotation.declare_order_lost('Did not ask')
+
+		for i in xrange(random.randint(1,3)):
+			opportunity = get_random('Opportunity', doc=True)
+			if opportunity and opportunity.status in ('Open', 'Replied'):
+				opportunity.declare_enquiry_lost('Did not ask')
+
+	if random.random() < 0.3:
+		for i in xrange(random.randint(1,3)):
+			make_sales_order()
+
+def make_opportunity():
+	b = frappe.get_doc({
+		"doctype": "Opportunity",
+		"enquiry_from": "Customer",
+		"customer": get_random("Customer"),
+		"enquiry_type": "Sales",
+		"transaction_date": frappe.flags.current_date,
+	})
+
+	add_random_children(b, "items", rows=4, randomize = {
+		"qty": (1, 5),
+		"item_code": ("Item", {"has_variants": "0"})
+	}, unique="item_code")
+
+	b.insert()
+	frappe.db.commit()
+
+def make_quotation():
+	# get open opportunites
+	opportunity = get_random("Opportunity", {"status": "Open"})
+
+	if opportunity:
+		from erpnext.crm.doctype.opportunity.opportunity import make_quotation
+		qtn = frappe.get_doc(make_quotation(opportunity))
+		qtn.insert()
+		frappe.db.commit()
+		qtn.submit()
+		frappe.db.commit()
+	else:
+		# make new directly
+
+		# get customer, currency and exchange_rate
+		customer = get_random("Customer")
+
+		company_currency = frappe.db.get_value("Company", "Wind Power LLC", "default_currency")
+		party_account_currency = get_party_account_currency("Customer", customer, "Wind Power LLC")
+		if company_currency == party_account_currency:
+			exchange_rate = 1
+		else:
+			exchange_rate = get_exchange_rate(party_account_currency, company_currency)
+
+		qtn = frappe.get_doc({
+			"creation": frappe.flags.current_date,
+			"doctype": "Quotation",
+			"quotation_to": "Customer",
+			"customer": customer,
+			"currency": party_account_currency or company_currency,
+			"conversion_rate": exchange_rate,
+			"order_type": "Sales",
+			"transaction_date": frappe.flags.current_date,
+		})
+
+		add_random_children(qtn, "items", rows=3, randomize = {
+			"qty": (1, 5),
+			"item_code": ("Item", {"has_variants": "0"})
+		}, unique="item_code")
+
+		qtn.insert()
+		frappe.db.commit()
+		qtn.submit()
+		frappe.db.commit()
+
+def make_sales_order():
+	q = get_random("Quotation", {"status": "Submitted"})
+	if q:
+		from erpnext.selling.doctype.quotation.quotation import make_sales_order
+		so = frappe.get_doc(make_sales_order(q))
+		so.transaction_date = frappe.flags.current_date
+		so.delivery_date = frappe.utils.add_days(frappe.flags.current_date, 10)
+		so.insert()
+		frappe.db.commit()
+		so.submit()
+		frappe.db.commit()
diff --git a/erpnext/templates/pages/demo.html b/erpnext/templates/pages/demo.html
new file mode 100644
index 0000000..23a9a21
--- /dev/null
+++ b/erpnext/templates/pages/demo.html
@@ -0,0 +1,43 @@
+{% extends "templates/web.html" %}
+
+{% block script %}
+	<script>{% include "templates/includes/start.js" %}</script>
+{% endblock %}
+
+{% block style %}
+<style>
+	footer, .navbar {
+		display: none;
+	}
+	.page-content {
+		right: 0%;
+		width: 100%;
+	}
+</style>
+{% endblock %}
+
+{% block title %}
+{{ _("Login") }}
+{% endblock %}
+
+{% block page_content %}
+
+<!-- no-header -->
+<div class="page-hero text-center">
+	<img src="/assets/erpnext_demo/images/erp-icon-box.svg" style="max-width: 100px; max-height: 100px;">
+	<h1>ERPNext Demo</h1>
+	<p style="margin-top: 60px;">
+		<input id="lead-email" type="email"
+			class="form-control" placeholder="Your Email Id (optional)"
+			style="width: 75%; max-width: 400px; margin: auto;">
+	</p>
+
+	<button type="submit" id="login_btn" class="btn btn-default">Launch Demo</button>
+
+	<hr style="margin: 60px 0px;">
+	<p class="text-muted small">Some functionality is disabled for the demo app. The demo data will be cleared regulary.
+		<br class="hidden-xs">
+		To start your free ERPNext account, <a href="https://erpnext.com/signup?plan=Free-Solo">click here</a></p>
+</div>
+
+{% endblock %}
