diff --git a/erpnext/manufacturing/dashboard_fixtures.py b/erpnext/manufacturing/dashboard_fixtures.py
new file mode 100644
index 0000000..de3775f
--- /dev/null
+++ b/erpnext/manufacturing/dashboard_fixtures.py
@@ -0,0 +1,216 @@
+# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+import frappe, erpnext, json
+from frappe import _
+
+def get_data():
+	return frappe._dict({
+		"dashboards": get_dashboards(),
+		"charts": get_charts(),
+		"number_cards": get_number_cards(),
+	})
+
+def get_dashboards():
+	return [{
+		"name": "Manufacturing Dashboard",
+		"dashboard_name": "Manufacturing Dashboard",
+		"charts": [
+			{ "chart": "Produced Quantity", "width": "Half" },
+			{ "chart": "Completed Operation", "width": "Half" },
+			{ "chart": "Work Order Analysis", "width": "Half" },
+			{ "chart": "Quality Inspection Analysis", "width": "Half" },
+			{ "chart": "Pending Work Order", "width": "Half" },
+			{ "chart": "Last Month Downtime Analysis", "width": "Half" },
+			{ "chart": "Work Order Qty Analysis", "width": "Full" },
+			{ "chart": "Job Card Analysis", "width": "Full" }
+		],
+		"cards": [
+			{ "card": "Total Work Order" },
+			{ "card": "Completed Work Order" },
+			{ "card": "Ongoing Job Card" },
+			{ "card": "Total Quality Inspection"}
+		]
+	}]
+
+def get_charts():
+	company = erpnext.get_default_company()
+
+	if not company:
+		company = frappe.db.get_value("Company", {"is_group": 0}, "name")
+
+	return [{
+		"doctype": "Dashboard Chart",
+		"based_on": "creation",
+		"time_interval": "Yearly",
+		"chart_type": "Sum",
+		"chart_name": "Produced Quantity",
+		"document_type": "Work Order",
+		"filters_json": json.dumps({}),
+		"group_by_type": "Count",
+		"time_interval": "Quarterly",
+		"timespan": "Last Year",
+		"owner": "Administrator",
+		"type": "Line",
+		"value_based_on": "qty",
+		"is_public": 1,
+		"timeseries": 1
+	}, {
+		"doctype": "Dashboard Chart",
+		"based_on": "creation",
+		"time_interval": "Yearly",
+		"chart_type": "Sum",
+		"chart_name": "Completed Operation",
+		"document_type": "Work Order Operation",
+		"filters_json": json.dumps({}),
+		"group_by_type": "Count",
+		"time_interval": "Quarterly",
+		"timespan": "Last Year",
+		"owner": "Administrator",
+		"type": "Line",
+		"value_based_on": "completed_qty",
+		"is_public": 1,
+		"timeseries": 1
+	}, {
+		"doctype": "Dashboard Chart",
+		"time_interval": "Yearly",
+		"chart_type": "Report",
+		"chart_name": "Work Order Analysis",
+		"timespan": "Last Year",
+		"report_name": "Work Order Summary",
+		"owner": "Administrator",
+		"filters_json": json.dumps({"company": company, "charts_based_on": "Status"}),
+		"type": "Donut",
+		"is_public": 1,
+		"is_custom": 1,
+		"custom_options": json.dumps({
+			"axisOptions": {
+				"shortenYAxisNumbers": 1
+			},
+			"height": 300
+		}),
+	}, {
+		"doctype": "Dashboard Chart",
+		"time_interval": "Yearly",
+		"chart_type": "Report",
+		"chart_name": "Quality Inspection Analysis",
+		"timespan": "Last Year",
+		"report_name": "Quality Inspection Summary",
+		"owner": "Administrator",
+		"filters_json": json.dumps({}),
+		"type": "Donut",
+		"is_public": 1,
+		"is_custom": 1,
+		"custom_options": json.dumps({
+			"axisOptions": {
+				"shortenYAxisNumbers": 1
+			},
+			"height": 300
+		}),
+	}, {
+		"doctype": "Dashboard Chart",
+		"time_interval": "Yearly",
+		"chart_type": "Report",
+		"chart_name": "Pending Work Order",
+		"timespan": "Last Year",
+		"report_name": "Work Order Summary",
+		"filters_json": json.dumps({"company": company, "charts_based_on": "Age"}),
+		"owner": "Administrator",
+		"type": "Donut",
+		"is_public": 1,
+		"is_custom": 1,
+		"custom_options": json.dumps({
+			"axisOptions": {
+				"shortenYAxisNumbers": 1
+			},
+			"height": 300
+		}),
+	}, {
+		"doctype": "Dashboard Chart",
+		"time_interval": "Yearly",
+		"chart_type": "Report",
+		"chart_name": "Last Month Downtime Analysis",
+		"timespan": "Last Year",
+		"filters_json": json.dumps({}),
+		"report_name": "Downtime Analysis",
+		"owner": "Administrator",
+		"is_public": 1,
+		"is_custom": 1,
+		"type": "Bar"
+	}, {
+		"doctype": "Dashboard Chart",
+		"time_interval": "Yearly",
+		"chart_type": "Report",
+		"chart_name": _("Work Order Qty Analysis"),
+		"timespan": "Last Year",
+		"report_name": "Work Order Summary",
+		"filters_json": json.dumps({"company": company, "charts_based_on": "Quantity"}),
+		"owner": "Administrator",
+		"type": "Bar",
+		"is_public": 1,
+		"is_custom": 1,
+		"custom_options": json.dumps({
+			"barOptions": { "stacked": 1 }
+		}),
+	}, {
+		"doctype": "Dashboard Chart",
+		"time_interval": "Yearly",
+		"chart_type": "Report",
+		"chart_name": "Job Card Analysis",
+		"timespan": "Last Year",
+		"report_name": "Job Card Summary",
+		"owner": "Administrator",
+		"is_public": 1,
+		"is_custom": 1,
+		"filters_json": json.dumps({"company": company, "range":"Monthly"}),
+		"custom_options": json.dumps({
+			"barOptions": { "stacked": 1 }
+		}),
+		"type": "Bar"
+	}]
+
+def get_number_cards():
+	return [{
+		"doctype": "Number Card",
+		"document_type": "Work Order",
+		"name": "Total Work Order",
+		"filters_json": json.dumps([]),
+		"function": "Count",
+		"is_public": 1,
+		"label": _("Total Work Order"),
+		"show_percentage_stats": 1,
+		"stats_time_interval": "Daily"
+	},
+	{
+		"doctype": "Number Card",
+		"document_type": "Work Order",
+		"name": "Completed Work Order",
+		"filters_json": json.dumps([['Work Order', 'status','=','Completed', False]]),
+		"function": "Count",
+		"is_public": 1,
+		"label": _("Completed Work Order"),
+		"show_percentage_stats": 1,
+		"stats_time_interval": "Daily"
+	},
+	{
+		"doctype": "Number Card",
+		"document_type": "Job Card",
+		"name": "Ongoing Job Card",
+		"filters_json": json.dumps([['Job Card', 'status','!=','Completed', False]]),
+		"function": "Count",
+		"is_public": 1,
+		"label": _("Ongoing Job Card"),
+		"show_percentage_stats": 1,
+		"stats_time_interval": "Daily"
+	},
+	{
+		"doctype": "Number Card",
+		"document_type": "Quality Inspection",
+		"name": "Total Quality Inspection",
+		"filters_json": json.dumps([]),
+		"function": "Count",
+		"is_public": 1,
+		"label": _("Total Quality Inspection"),
+		"show_percentage_stats": 1,
+		"stats_time_interval": "Daily"
+	}]
\ No newline at end of file
diff --git a/erpnext/manufacturing/desk_page/manufacturing/manufacturing.json b/erpnext/manufacturing/desk_page/manufacturing/manufacturing.json
index 0464b76..f6bbf3d 100644
--- a/erpnext/manufacturing/desk_page/manufacturing/manufacturing.json
+++ b/erpnext/manufacturing/desk_page/manufacturing/manufacturing.json
@@ -3,7 +3,7 @@
   {
    "hidden": 0,
    "label": "Production",
-   "links": "[\n    {\n        \"dependencies\": [\n            \"Item\",\n            \"BOM\"\n        ],\n        \"description\": \"Orders released for production.\",\n        \"label\": \"Work Order\",\n        \"name\": \"Work Order\",\n        \"onboard\": 1,\n        \"type\": \"doctype\"\n    },\n    {\n        \"dependencies\": [\n            \"Item\",\n            \"BOM\"\n        ],\n        \"description\": \"Generate Material Requests (MRP) and Work Orders.\",\n        \"label\": \"Production Plan\",\n        \"name\": \"Production Plan\",\n        \"onboard\": 1,\n        \"type\": \"doctype\"\n    },\n    {\n        \"dependencies\": [\n            \"Item\"\n        ],\n        \"label\": \"Stock Entry\",\n        \"name\": \"Stock Entry\",\n        \"onboard\": 1,\n        \"type\": \"doctype\"\n    },\n    {\n        \"label\": \"Job Card\",\n        \"name\": \"Job Card\",\n        \"type\": \"doctype\"\n    },\n    {\n        \"label\": \"Downtime Entry\",\n        \"name\": \"Downtime Entry\",\n        \"type\": \"doctype\"\n    }\n]"
+   "links": "[\n    {\n        \"dependencies\": [\n            \"Item\",\n            \"BOM\"\n        ],\n        \"description\": \"Orders released for production.\",\n        \"label\": \"Work Order\",\n        \"name\": \"Work Order\",\n        \"onboard\": 1,\n        \"type\": \"doctype\"\n    },\n    {\n        \"dependencies\": [\n            \"Item\",\n            \"BOM\"\n        ],\n        \"description\": \"Generate Material Requests (MRP) and Work Orders.\",\n        \"label\": \"Production Plan\",\n        \"name\": \"Production Plan\",\n        \"onboard\": 1,\n        \"type\": \"doctype\"\n    },\n    {\n        \"dependencies\": [\n            \"Item\"\n        ],\n        \"label\": \"Stock Entry\",\n        \"name\": \"Stock Entry\",\n        \"onboard\": 1,\n        \"type\": \"doctype\"\n    },\n    {\n        \"dependencies\": [\n            \"Activity Type\"\n        ],\n        \"description\": \"Time Sheet for manufacturing.\",\n        \"label\": \"Timesheet\",\n        \"name\": \"Timesheet\",\n        \"onboard\": 1,\n        \"type\": \"doctype\"\n    },\n    {\n        \"label\": \"Job Card\",\n        \"name\": \"Job Card\",\n        \"type\": \"doctype\"\n    }\n]"
   },
   {
    "hidden": 0,
@@ -13,7 +13,7 @@
   {
    "hidden": 0,
    "label": "Reports",
-   "links": "[\n    {\n        \"dependencies\": [\n            \"Work Order\"\n        ],\n        \"doctype\": \"Work Order\",\n        \"is_query_report\": true,\n        \"label\": \"Work Order Summary\",\n        \"name\": \"Work Order Summary\",\n        \"type\": \"report\"\n    },\n    {\n        \"dependencies\": [\n            \"Work Order\"\n        ],\n        \"doctype\": \"Work Order\",\n        \"is_query_report\": true,\n        \"label\": \"Issued Items Against Work Order\",\n        \"name\": \"Issued Items Against Work Order\",\n        \"type\": \"report\"\n    },\n    {\n        \"dependencies\": [\n            \"Work Order\"\n        ],\n        \"doctype\": \"Work Order\",\n        \"is_query_report\": true,\n        \"label\": \"Production Analytics\",\n        \"name\": \"Production Analytics\",\n        \"type\": \"report\"\n    },\n    {\n        \"dependencies\": [\n            \"Quality Inspection\"\n        ],\n        \"doctype\": \"Quality Inspection\",\n        \"is_query_report\": true,\n        \"label\": \"Quality Inspection Summary\",\n        \"name\": \"Quality Inspection Summary\",\n        \"type\": \"report\"\n    },\n    {\n        \"dependencies\": [\n            \"Downtime Entry\"\n        ],\n        \"doctype\": \"Downtime Entry\",\n        \"is_query_report\": true,\n        \"label\": \"Downtime Analysis\",\n        \"name\": \"Downtime Analysis\",\n        \"type\": \"report\"\n    },\n    {\n        \"dependencies\": [\n            \"Job Card\"\n        ],\n        \"doctype\": \"Job Card\",\n        \"is_query_report\": true,\n        \"label\": \"Job Card Summary\",\n        \"name\": \"Job Card Summary\",\n        \"type\": \"report\"\n    },\n    {\n        \"dependencies\": [\n            \"BOM\"\n        ],\n        \"doctype\": \"BOM\",\n        \"is_query_report\": true,\n        \"label\": \"BOM Search\",\n        \"name\": \"BOM Search\",\n        \"type\": \"report\"\n    },\n    {\n        \"dependencies\": [\n            \"BOM\"\n        ],\n        \"doctype\": \"BOM\",\n        \"is_query_report\": true,\n        \"label\": \"BOM Stock Report\",\n        \"name\": \"BOM Stock Report\",\n        \"type\": \"report\"\n    }\n]"
+   "links": "[{\n\t\"dependencies\": [\"Work Order\"],\n\t\"name\": \"Work Order Summary\",\n\t\"is_query_report\": true,\n\t\"type\": \"report\",\n\t\"doctype\": \"Work Order\",\n\t\"label\": \"Work Order Summary\"\n}, {\n\t\"dependencies\": [\"Work Order\"],\n\t\"name\": \"Production Analytics\",\n\t\"is_query_report\": true,\n\t\"type\": \"report\",\n\t\"doctype\": \"Work Order\",\n\t\"label\": \"Production Analytics\"\n}, {\n\t\"dependencies\": [\"Quality Inspection\"],\n\t\"name\": \"Quality Inspection Summary\",\n\t\"is_query_report\": true,\n\t\"type\": \"report\",\n\t\"doctype\": \"Quality Inspection\",\n\t\"label\": \"Quality Inspection Summary\"\n}, {\n\t\"dependencies\": [\"Downtime Entry\"],\n\t\"name\": \"Downtime Analysis\",\n\t\"is_query_report\": true,\n\t\"type\": \"report\",\n\t\"doctype\": \"Downtime Entry\",\n\t\"label\": \"Downtime Analysis\"\n}, {\n\t\"dependencies\": [\"Job Card\"],\n\t\"name\": \"Job Card Summary\",\n\t\"is_query_report\": true,\n\t\"type\": \"report\",\n\t\"doctype\": \"Job Card\",\n\t\"label\": \"Job Card Summary\"\n}, {\n\t\"dependencies\": [\"BOM\"],\n\t\"name\": \"BOM Search\",\n\t\"is_query_report\": true,\n\t\"type\": \"report\",\n\t\"doctype\": \"BOM\",\n\t\"label\": \"BOM Search\"\n}, {\n\t\"dependencies\": [\"BOM\"],\n\t\"name\": \"BOM Stock Report\",\n\t\"is_query_report\": true,\n\t\"type\": \"report\",\n\t\"doctype\": \"BOM\",\n\t\"label\": \"BOM Stock Report\"\n}]"
   },
   {
    "hidden": 0,
@@ -32,12 +32,7 @@
   }
  ],
  "category": "Domains",
- "charts": [
-  {
-   "chart_name": "Production Analysis",
-   "label": "Production Analysis"
-  }
- ],
+ "charts": [],
  "creation": "2020-03-02 17:11:37.032604",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
@@ -47,29 +42,59 @@
  "idx": 0,
  "is_standard": 1,
  "label": "Manufacturing",
- "modified": "2020-04-27 00:17:26.323677",
+ "modified": "2020-05-14 15:06:45.963942",
  "modified_by": "Administrator",
  "module": "Manufacturing",
  "name": "Manufacturing",
+ "onboarding": "Manufacturing",
  "owner": "Administrator",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
  "restrict_to_domain": "Manufacturing",
  "shortcuts": [
   {
+   "format": "{} Active",
    "label": "Item",
    "link_to": "Item",
+   "restrict_to_domain": "Manufacturing",
+   "stats_filter": "{\n    \"disabled\": 0\n}",
    "type": "DocType"
   },
   {
+   "format": "{} Active",
    "label": "BOM",
    "link_to": "BOM",
+   "restrict_to_domain": "Manufacturing",
+   "stats_filter": "{\n    \"is_active\": 1\n}",
    "type": "DocType"
   },
   {
+   "format": "{} Open",
    "label": "Work Order",
    "link_to": "Work Order",
+   "restrict_to_domain": "Manufacturing",
+   "stats_filter": "{ \"status\": \n    (\n    \"in\", [\"Draft\", \"Not Started\", \"In Process\"]\n    )\n}",
    "type": "DocType"
+  },
+  {
+   "format": "{} Open",
+   "label": "Production Plan",
+   "link_to": "Production Plan",
+   "restrict_to_domain": "Manufacturing",
+   "stats_filter": "{ \"status\": \n    (\n    \"!=\", \"Completed\"\n    )\n}",
+   "type": "DocType"
+  },
+  {
+   "label": "Work Order Summary",
+   "link_to": "Work Order Summary",
+   "restrict_to_domain": "Manufacturing",
+   "type": "Report"
+  },
+  {
+   "label": "BOM Stock Report",
+   "link_to": "BOM Stock Report",
+   "restrict_to_domain": "Manufacturing",
+   "type": "Report"
   }
  ]
 }
\ No newline at end of file
diff --git a/erpnext/manufacturing/doctype/work_order/work_order.json b/erpnext/manufacturing/doctype/work_order/work_order.json
index 8be2287..585a09d 100644
--- a/erpnext/manufacturing/doctype/work_order/work_order.json
+++ b/erpnext/manufacturing/doctype/work_order/work_order.json
@@ -496,7 +496,7 @@
  "image_field": "image",
  "is_submittable": 1,
  "links": [],
- "modified": "2020-04-24 19:32:43.323054",
+ "modified": "2020-05-05 19:32:43.323054",
  "modified_by": "Administrator",
  "module": "Manufacturing",
  "name": "Work Order",
diff --git a/erpnext/manufacturing/onboarding/manufacturing/manufacturing.json b/erpnext/manufacturing/onboarding/manufacturing/manufacturing.json
new file mode 100644
index 0000000..50584e1
--- /dev/null
+++ b/erpnext/manufacturing/onboarding/manufacturing/manufacturing.json
@@ -0,0 +1,54 @@
+{
+ "allow_roles": [
+  {
+   "role": "Manufacturing User"
+  },
+  {
+   "role": "Manufacturing Manager"
+  },
+  {
+   "role": "Item Manager"
+  },
+  {
+   "role": "Stock User"
+  }
+ ],
+ "creation": "2020-05-05 16:37:08.238935",
+ "docstatus": 0,
+ "doctype": "Onboarding",
+ "documentation_url": "https://docs.erpnext.com/docs/user/manual/en/manufacturing",
+ "idx": 0,
+ "is_complete": 0,
+ "modified": "2020-05-12 16:22:07.050224",
+ "modified_by": "Administrator",
+ "module": "Manufacturing",
+ "name": "Manufacturing",
+ "owner": "Administrator",
+ "steps": [
+  {
+   "step": "Introduction to Manufacturing"
+  },
+  {
+   "step": "Warehouse"
+  },
+  {
+   "step": "Workstation"
+  },
+  {
+   "step": "Operation"
+  },
+  {
+   "step": "Create Product"
+  },
+  {
+   "step": "Create BOM"
+  },
+  {
+   "step": "Work Order"
+  }
+ ],
+ "subtitle": "Products, Raw Materials, BOM, Work Order and more.",
+ "success_message": "Manufacturing module is all setup!",
+ "title": "Let's Setup Manufacturing Module",
+ "user_can_dismiss": 1
+}
\ No newline at end of file
diff --git a/erpnext/manufacturing/onboarding_step/create_bom/create_bom.json b/erpnext/manufacturing/onboarding_step/create_bom/create_bom.json
new file mode 100644
index 0000000..969c2fa
--- /dev/null
+++ b/erpnext/manufacturing/onboarding_step/create_bom/create_bom.json
@@ -0,0 +1,16 @@
+{
+ "action": "Create Entry",
+ "creation": "2020-05-05 16:41:20.239696",
+ "docstatus": 0,
+ "doctype": "Onboarding Step",
+ "idx": 0,
+ "is_complete": 0,
+ "is_mandatory": 1,
+ "is_skipped": 0,
+ "modified": "2020-05-05 16:41:20.239696",
+ "modified_by": "Administrator",
+ "name": "Create BOM",
+ "owner": "Administrator",
+ "reference_document": "BOM",
+ "title": "Create BOM"
+}
\ No newline at end of file
diff --git a/erpnext/manufacturing/onboarding_step/create_product/create_product.json b/erpnext/manufacturing/onboarding_step/create_product/create_product.json
new file mode 100644
index 0000000..082f31e
--- /dev/null
+++ b/erpnext/manufacturing/onboarding_step/create_product/create_product.json
@@ -0,0 +1,16 @@
+{
+ "action": "Create Entry",
+ "creation": "2020-05-05 16:42:31.476275",
+ "docstatus": 0,
+ "doctype": "Onboarding Step",
+ "idx": 0,
+ "is_complete": 0,
+ "is_mandatory": 1,
+ "is_skipped": 0,
+ "modified": "2020-05-05 16:42:31.476275",
+ "modified_by": "Administrator",
+ "name": "Create Product",
+ "owner": "Administrator",
+ "reference_document": "Item",
+ "title": "Create Product"
+}
\ No newline at end of file
diff --git a/erpnext/manufacturing/onboarding_step/introduction_to_manufacturing/introduction_to_manufacturing.json b/erpnext/manufacturing/onboarding_step/introduction_to_manufacturing/introduction_to_manufacturing.json
new file mode 100644
index 0000000..6e5c3a9
--- /dev/null
+++ b/erpnext/manufacturing/onboarding_step/introduction_to_manufacturing/introduction_to_manufacturing.json
@@ -0,0 +1,17 @@
+{
+ "action": "Update Settings",
+ "creation": "2020-05-05 16:40:23.676406",
+ "docstatus": 0,
+ "doctype": "Onboarding Step",
+ "idx": 0,
+ "is_complete": 0,
+ "is_mandatory": 0,
+ "is_skipped": 0,
+ "modified": "2020-05-05 16:40:23.676406",
+ "modified_by": "Administrator",
+ "name": "Introduction to Manufacturing",
+ "owner": "Administrator",
+ "reference_document": "Manufacturing Settings",
+ "title": "Manufacturing Settings",
+ "video_url": "https://www.youtube.com/watch?v=UVGfzwOOZC4"
+}
\ No newline at end of file
diff --git a/erpnext/manufacturing/onboarding_step/operation/operation.json b/erpnext/manufacturing/onboarding_step/operation/operation.json
new file mode 100644
index 0000000..6f84db1
--- /dev/null
+++ b/erpnext/manufacturing/onboarding_step/operation/operation.json
@@ -0,0 +1,15 @@
+{
+ "action": "Create Entry",
+ "creation": "2020-05-12 16:15:31.706756",
+ "docstatus": 0,
+ "doctype": "Onboarding Step",
+ "idx": 0,
+ "is_complete": 0,
+ "is_mandatory": 0,
+ "is_skipped": 0,
+ "modified": "2020-05-12 16:17:06.943067",
+ "modified_by": "Administrator",
+ "name": "Operation",
+ "owner": "Administrator",
+ "title": "Create Operation"
+}
\ No newline at end of file
diff --git a/erpnext/manufacturing/onboarding_step/warehouse/warehouse.json b/erpnext/manufacturing/onboarding_step/warehouse/warehouse.json
new file mode 100644
index 0000000..36f5204
--- /dev/null
+++ b/erpnext/manufacturing/onboarding_step/warehouse/warehouse.json
@@ -0,0 +1,15 @@
+{
+ "action": "Create Entry",
+ "creation": "2020-05-12 16:13:34.014554",
+ "docstatus": 0,
+ "doctype": "Onboarding Step",
+ "idx": 0,
+ "is_complete": 0,
+ "is_mandatory": 0,
+ "is_skipped": 0,
+ "modified": "2020-05-12 16:16:48.345846",
+ "modified_by": "Administrator",
+ "name": "Warehouse",
+ "owner": "Administrator",
+ "title": "Create Warehouse"
+}
\ No newline at end of file
diff --git a/erpnext/manufacturing/onboarding_step/work_order/work_order.json b/erpnext/manufacturing/onboarding_step/work_order/work_order.json
new file mode 100644
index 0000000..57e4e7b
--- /dev/null
+++ b/erpnext/manufacturing/onboarding_step/work_order/work_order.json
@@ -0,0 +1,15 @@
+{
+ "action": "Create Entry",
+ "creation": "2020-05-12 16:15:56.084682",
+ "docstatus": 0,
+ "doctype": "Onboarding Step",
+ "idx": 0,
+ "is_complete": 0,
+ "is_mandatory": 0,
+ "is_skipped": 0,
+ "modified": "2020-05-12 16:17:33.675304",
+ "modified_by": "Administrator",
+ "name": "Work Order",
+ "owner": "Administrator",
+ "title": "Create Work Order"
+}
\ No newline at end of file
diff --git a/erpnext/manufacturing/onboarding_step/workstation/workstation.json b/erpnext/manufacturing/onboarding_step/workstation/workstation.json
new file mode 100644
index 0000000..6c1a069
--- /dev/null
+++ b/erpnext/manufacturing/onboarding_step/workstation/workstation.json
@@ -0,0 +1,15 @@
+{
+ "action": "Create Entry",
+ "creation": "2020-05-12 16:14:14.930214",
+ "docstatus": 0,
+ "doctype": "Onboarding Step",
+ "idx": 0,
+ "is_complete": 0,
+ "is_mandatory": 0,
+ "is_skipped": 0,
+ "modified": "2020-05-12 16:16:58.808906",
+ "modified_by": "Administrator",
+ "name": "Workstation",
+ "owner": "Administrator",
+ "title": "Create Workstation"
+}
\ No newline at end of file
diff --git a/erpnext/manufacturing/report/downtime_analysis/downtime_analysis.py b/erpnext/manufacturing/report/downtime_analysis/downtime_analysis.py
index d69ec18..dfc6b02 100644
--- a/erpnext/manufacturing/report/downtime_analysis/downtime_analysis.py
+++ b/erpnext/manufacturing/report/downtime_analysis/downtime_analysis.py
@@ -47,8 +47,7 @@
 				{"name": "Dataset 1", "values": datasets}
 			]
 		},
-		"type": "bar",
-		"colors": ["#ff5858"]
+		"type": "bar"
 	}
 
 	return chart
diff --git a/erpnext/manufacturing/report/job_card_summary/job_card_summary.py b/erpnext/manufacturing/report/job_card_summary/job_card_summary.py
index 0f60c13..ae1e4f3 100644
--- a/erpnext/manufacturing/report/job_card_summary/job_card_summary.py
+++ b/erpnext/manufacturing/report/job_card_summary/job_card_summary.py
@@ -49,33 +49,22 @@
 def get_chart_data(job_card_details, filters):
 	labels, periodic_data = prepare_chart_data(job_card_details, filters)
 
-	not_start, in_progress, on_hold, completed = [], [], [] , []
+	pending, completed = [], []
 	datasets = []
 
 	for d in labels:
-		not_start.append(periodic_data.get("Open").get(d))
-		in_progress.append(periodic_data.get("Work In Progress").get(d))
-		on_hold.append(periodic_data.get("On Hold").get(d))
+		pending.append(periodic_data.get("Pending").get(d))
 		completed.append(periodic_data.get("Completed").get(d))
 
-	datasets.append({'name':'Open', 'values': not_start})
-	datasets.append({'name':'Work In Progress', 'values': in_progress})
-	datasets.append({'name':'On Hold', 'values': on_hold})
-	datasets.append({'name':'Completed', 'values': completed})
+	datasets.append({"name": "Pending", "values": pending})
+	datasets.append({"name": "Completed", "values": completed})
 
 	chart = {
 		"data": {
 			'labels': labels,
 			'datasets': datasets
 		},
-		"type": "bar",
-		"colors": ["#ff5858", "#ffa00a", "#5e64ff", "#98d85b"],
-		"axisOptions": {
-			"xAxisMode": "tick"
-		},
-		"barOptions": {
-			"stacked": 1
-		}
+		"type": "bar"
 	}
 
 	return chart
@@ -84,9 +73,7 @@
 	labels = []
 
 	periodic_data = {
-		"Open": {},
-		"Work In Progress": {},
-		"On Hold": {},
+		"Pending": {},
 		"Completed": {}
 	}
 
@@ -100,10 +87,12 @@
 
 		for d in job_card_details:
 			if getdate(d.from_time) >= from_date and getdate(d.to_time) <= end_date:
-				if periodic_data.get(d.status) and periodic_data.get(d.status).get(period):
-					periodic_data[d.status][period] += 1
+				status = "Completed" if d.status == "Completed" else "Pending"
+
+				if periodic_data.get(status) and periodic_data.get(status).get(period):
+					periodic_data[status][period] += 1
 				else:
-					periodic_data[d.status][period] = 1
+					periodic_data[status][period] = 1
 
 	return labels, periodic_data
 
diff --git a/erpnext/manufacturing/report/production_analytics/production_analytics.py b/erpnext/manufacturing/report/production_analytics/production_analytics.py
index f0bdfed..f62cd25 100644
--- a/erpnext/manufacturing/report/production_analytics/production_analytics.py
+++ b/erpnext/manufacturing/report/production_analytics/production_analytics.py
@@ -38,6 +38,7 @@
 
 def get_periodic_data(filters, entry):
 	periodic_data = {
+		"All Work Orders": {},
 		"Not Started": {},
 		"Overdue": {},
 		"Pending": {},
@@ -50,6 +51,7 @@
 		period = get_period(end_date, filters)
 		for d in entry:
 			if getdate(d.creation) <= getdate(from_date) or getdate(d.creation) <= getdate(end_date) :
+				periodic_data = update_periodic_data(periodic_data, "All Work Orders", period)
 				if d.status == 'Completed':
 					if getdate(d.actual_end_date) < getdate(from_date) or getdate(d.modified) < getdate(from_date):
 						periodic_data = update_periodic_data(periodic_data, "Completed", period)
@@ -97,7 +99,7 @@
 
 	periodic_data = get_periodic_data(filters,entry)
 
-	labels = ["Not Started", "Overdue", "Pending", "Completed"]
+	labels = ["All Work Orders", "Not Started", "Overdue", "Pending", "Completed"]
 	chart_data = get_chart_data(periodic_data,columns)
 	ranges = get_period_date_ranges(filters)
 
@@ -121,11 +123,13 @@
 	datasets = []
 
 	for d in labels:
+		all_data.append(periodic_data.get("All Work Orders").get(d))
 		not_start.append(periodic_data.get("Not Started").get(d))
 		overdue.append(periodic_data.get("Overdue").get(d))
 		pending.append(periodic_data.get("Pending").get(d))
 		completed.append(periodic_data.get("Completed").get(d))
 
+	datasets.append({'name':'All Work Orders', 'values': all_data})
 	datasets.append({'name':'Not Started', 'values': not_start})
 	datasets.append({'name':'Overdue', 'values': overdue})
 	datasets.append({'name':'Pending', 'values': pending})
@@ -135,14 +139,12 @@
 		"data": {
 			'labels': labels,
 			'datasets': datasets
-		},
-		"type": "bar",
-		"colors": ["#5e64ff", "#ff5858", "#ffa00a", "#98d85b"]
+		}
 	}
+	chart["type"] = "line"
 
 	return chart
 
 
 
 
-
diff --git a/erpnext/manufacturing/report/quality_inspection_summary/quality_inspection_summary.py b/erpnext/manufacturing/report/quality_inspection_summary/quality_inspection_summary.py
index 9c1bfa4..6192632 100644
--- a/erpnext/manufacturing/report/quality_inspection_summary/quality_inspection_summary.py
+++ b/erpnext/manufacturing/report/quality_inspection_summary/quality_inspection_summary.py
@@ -50,8 +50,7 @@
 			'datasets': datasets
 		},
 		"type": "donut",
-		"height": 300,
-		"colors": ["#ff5858", "#98d85b"]
+		"height": 300
 	}
 
 	return chart
diff --git a/erpnext/manufacturing/report/work_order_summary/work_order_summary.js b/erpnext/manufacturing/report/work_order_summary/work_order_summary.js
index 33b147d..ec9fe35 100644
--- a/erpnext/manufacturing/report/work_order_summary/work_order_summary.js
+++ b/erpnext/manufacturing/report/work_order_summary/work_order_summary.js
@@ -54,5 +54,12 @@
 			fieldtype: "Int",
 			default: "0"
 		},
+		{
+			label: __("Charts Based On"),
+			fieldname:"charts_based_on",
+			fieldtype: "Select",
+			options: ["Status", "Age", "Quantity"],
+			default: "Status"
+		},
 	]
 };
diff --git a/erpnext/manufacturing/report/work_order_summary/work_order_summary.py b/erpnext/manufacturing/report/work_order_summary/work_order_summary.py
index 92c31ab..bc09ed4 100644
--- a/erpnext/manufacturing/report/work_order_summary/work_order_summary.py
+++ b/erpnext/manufacturing/report/work_order_summary/work_order_summary.py
@@ -3,8 +3,9 @@
 
 from __future__ import unicode_literals
 import frappe
-from frappe.utils import date_diff, today
+from frappe.utils import date_diff, today, getdate, flt
 from frappe import _
+from erpnext.stock.report.stock_analytics.stock_analytics import (get_period_date_ranges, get_period)
 
 def execute(filters=None):
 	columns, data = [], []
@@ -46,7 +47,15 @@
 
 	return res
 
-def get_chart_data(periodic_data, columns):
+def get_chart_data(data, filters):
+	if filters.get("charts_based_on") == "Status":
+		return get_chart_based_on_status(data)
+	elif filters.get("charts_based_on") == "Age":
+		return get_chart_based_on_age(data)
+	else:
+		return get_chart_based_on_qty(data, filters)
+
+def get_chart_based_on_status(data):
 	labels = ["Not Started", "In Process", "Stopped", "Completed"]
 
 	status_wise_data = {
@@ -56,7 +65,7 @@
 		"Completed": 0
 	}
 
-	for d in periodic_data:
+	for d in data:
 		if d.status == "In Process" and d.produced_qty:
 			status_wise_data["Completed"] += d.produced_qty
 
@@ -71,12 +80,100 @@
 			'datasets': [{'name':'Qty Wise Chart', 'values': values}]
 		},
 		"type": "donut",
-		"height": 300,
-		"colors": ["#ff5858", "#ffa00a", "#5e64ff", "#98d85b"]
+		"height": 300
 	}
 
 	return chart
 
+def get_chart_based_on_age(data):
+	labels = ["0-30 Days", "30-60 Days", "60-90 Days", "90 Above"]
+
+	age_wise_data = {
+		"0-30 Days": 0,
+		"30-60 Days": 0,
+		"60-90 Days": 0,
+		"90 Above": 0
+	}
+
+	for d in data:
+		if d.age > 0 and d.age <= 30:
+			age_wise_data["0-30 Days"] += 1
+		elif d.age > 30 and d.age <= 60:
+			age_wise_data["30-60 Days"] += 1
+		elif d.age > 60 and d.age <= 90:
+			age_wise_data["60-90 Days"] += 1
+		else:
+			age_wise_data["90 Above"] += 1
+
+	values = [age_wise_data["0-30 Days"], age_wise_data["30-60 Days"],
+		age_wise_data["60-90 Days"], age_wise_data["90 Above"]]
+
+	chart = {
+		"data": {
+			'labels': labels,
+			'datasets': [{'name':'Qty Wise Chart', 'values': values}]
+		},
+		"type": "donut",
+		"height": 300
+	}
+
+	return chart
+
+def get_chart_based_on_qty(data, filters):
+	labels, periodic_data = prepare_chart_data(data, filters)
+
+	pending, completed = [], []
+	datasets = []
+
+	for d in labels:
+		pending.append(periodic_data.get("Pending").get(d))
+		completed.append(periodic_data.get("Completed").get(d))
+
+	datasets.append({"name": "Pending", "values": pending})
+	datasets.append({"name": "Completed", "values": completed})
+
+	chart = {
+		"data": {
+			'labels': labels,
+			'datasets': datasets
+		},
+		"type": "bar",
+		"barOptions": {
+			"stacked": 1
+		}
+	}
+
+	return chart
+
+def prepare_chart_data(data, filters):
+	labels = []
+
+	periodic_data = {
+		"Pending": {},
+		"Completed": {}
+	}
+
+	filters.range = "Monthly"
+
+	ranges = get_period_date_ranges(filters)
+	for from_date, end_date in ranges:
+		period = get_period(end_date, filters)
+		if period not in labels:
+			labels.append(period)
+
+		if period not in periodic_data["Pending"]:
+			periodic_data["Pending"][period] = 0
+
+		if period not in periodic_data["Completed"]:
+			periodic_data["Completed"][period] = 0
+
+		for d in data:
+			if getdate(d.planned_start_date) >= from_date and getdate(d.planned_start_date) <= end_date:
+				periodic_data["Pending"][period] += (flt(d.qty) - flt(d.produced_qty))
+				periodic_data["Completed"][period] += flt(d.produced_qty)
+
+	return labels, periodic_data
+
 def get_columns(filters):
 	columns = [
 		{
diff --git a/erpnext/patches/v13_0/update_actual_start_and_end_date_in_wo.py b/erpnext/patches/v13_0/update_actual_start_and_end_date_in_wo.py
index 3fab004..331c559 100644
--- a/erpnext/patches/v13_0/update_actual_start_and_end_date_in_wo.py
+++ b/erpnext/patches/v13_0/update_actual_start_and_end_date_in_wo.py
@@ -6,6 +6,7 @@
 
 import frappe
 from frappe.utils import add_to_date
+from frappe.utils.dashboard import get_config, make_records
 
 def execute():
 	frappe.reload_doc("manufacturing", "doctype", "work_order")
@@ -33,11 +34,9 @@
 				planned_end_date = add_to_date(doc.planned_start_date, minutes=doc.lead_time)
 				doc.db_set("planned_end_date", doc.actual_start_date, update_modified=False)
 
-
 	frappe.db.sql(""" UPDATE `tabJob Card` as jc, `tabWork Order` as wo
 		SET
 			jc.production_item = wo.production_item, jc.item_name = wo.item_name
 		WHERE
 			jc.work_order = wo.name and IFNULL(jc.production_item, "") = ""
-	""")
-
+	""")
\ No newline at end of file
diff --git a/erpnext/setup/setup_wizard/data/dashboard_charts.py b/erpnext/setup/setup_wizard/data/dashboard_charts.py
deleted file mode 100644
index f5b6681..0000000
--- a/erpnext/setup/setup_wizard/data/dashboard_charts.py
+++ /dev/null
@@ -1,247 +0,0 @@
-from __future__ import unicode_literals
-from frappe import _
-import frappe
-import json
-
-def get_company_for_dashboards():
-	company = frappe.defaults.get_defaults().company
-	if company:
-		return company
-	else:
-		company_list = frappe.get_list("Company")
-		if company_list:
-			return company_list[0].name
-	return None
-
-def get_default_dashboards():
-	company = frappe.get_doc("Company", get_company_for_dashboards())
-	income_account = company.default_income_account or get_account("Income Account", company.name)
-	expense_account = company.default_expense_account or get_account("Expense Account", company.name)
-	bank_account = company.default_bank_account or get_account("Bank", company.name)
-
-	return {
-		"Dashboards": [
-			{
-				"doctype": "Dashboard",
-				"dashboard_name": "Accounts",
-				"charts": [
-					{ "chart": "Outgoing Bills (Sales Invoice)" },
-					{ "chart": "Incoming Bills (Purchase Invoice)" },
-					{ "chart": "Bank Balance" },
-					{ "chart": "Income" },
-					{ "chart": "Expenses" },
-					{ "chart": "Patient Appointments" }
-				]
-			},
-			{
-				"doctype": "Dashboard",
-				"dashboard_name": "Manufacturing",
-				"charts": [
-					{ "chart": "Work Order Analysis", "width": "Half" },
-					{ "chart": "Quality Inspection Analysis", "width": "Half" },
-					{ "chart": "Long Time Pending Work Orders", "width": "Half" },
-					{ "chart": "Downtime Analysis", "width": "Half" },
-					{ "chart": "Production Analysis", "width": "Full" },
-					{ "chart": "Job Card Analysis", "width": "Full" }
-				]
-			}
-		],
-		"Charts": [
-			{
-				"doctype": "Dashboard Chart",
-				"time_interval": "Quarterly",
-				"chart_name": "Income",
-				"timespan": "Last Year",
-				"color": None,
-				"filters_json": json.dumps({"company": company.name, "account": income_account}),
-				"source": "Account Balance Timeline",
-				"chart_type": "Custom",
-				"timeseries": 1,
-				"owner": "Administrator",
-				"type": "Line",
-				"width": "Half"
-			},
-			{
-				"doctype": "Dashboard Chart",
-				"time_interval": "Quarterly",
-				"chart_name": "Expenses",
-				"timespan": "Last Year",
-				"color": None,
-				"filters_json": json.dumps({"company": company.name, "account": expense_account}),
-				"source": "Account Balance Timeline",
-				"chart_type": "Custom",
-				"timeseries": 1,
-				"owner": "Administrator",
-				"type": "Line",
-				"width": "Half"
-			},
-			{
-				"doctype": "Dashboard Chart",
-				"time_interval": "Quarterly",
-				"chart_name": "Bank Balance",
-				"timespan": "Last Year",
-				"color": "#ffb868",
-				"filters_json": json.dumps({"company": company.name, "account": bank_account}),
-				"source": "Account Balance Timeline",
-				"chart_type": "Custom",
-				"timeseries": 1,
-				"owner": "Administrator",
-				"type": "Line",
-				"width": "Half"
-			},
-			{
-				"doctype": "Dashboard Chart",
-				"time_interval": "Monthly",
-				"chart_name": "Incoming Bills (Purchase Invoice)",
-				"timespan": "Last Year",
-				"color": "#a83333",
-				"value_based_on": "base_grand_total",
-				"filters_json": json.dumps({}),
-				"chart_type": "Sum",
-				"timeseries": 1,
-				"based_on": "posting_date",
-				"owner": "Administrator",
-				"document_type": "Purchase Invoice",
-				"type": "Bar",
-				"width": "Half"
-			},
-			{
-				"doctype": "Dashboard Chart",
-				"time_interval": "Monthly",
-				"chart_name": "Outgoing Bills (Sales Invoice)",
-				"timespan": "Last Year",
-				"color": "#7b933d",
-				"value_based_on": "base_grand_total",
-				"filters_json": json.dumps({}),
-				"chart_type": "Sum",
-				"timeseries": 1,
-				"based_on": "posting_date",
-				"owner": "Administrator",
-				"document_type": "Sales Invoice",
-				"type": "Bar",
-				"width": "Half"
-			},
-			{
-				"doctype": "Dashboard Chart",
-				"time_interval": "Daily",
-				"chart_name": "Patient Appointments",
-				"timespan": "Last Month",
-				"color": "#77ecca",
-				"filters_json": json.dumps({}),
-				"chart_type": "Count",
-				"timeseries": 1,
-				"based_on": "appointment_datetime",
-				"owner": "Administrator",
-				"document_type": "Patient Appointment",
-				"type": "Line",
-				"width": "Half"
-			}
-			{
-				"doctype": "Dashboard Chart",
-				"time_interval": "Yearly",
-				"chart_type": "Report",
-				"chart_name": "Work Order Analysis",
-				"timespan": "Last Year",
-				"report_name": "Work Order Summary",
-				"owner": "Administrator",
-				"filters_json": json.dumps({"company": company.name}),
-				"bar": "Donut",
-				"custom_options": json.dumps({
-					"axisOptions": {
-						"shortenYAxisNumbers": 1
-					},
-					"height": 300,
-					"colors": ["#ff5858", "#ffa00a", "#5e64ff", "#98d85b"]
-				}),
-			},
-			{
-				"doctype": "Dashboard Chart",
-				"time_interval": "Yearly",
-				"chart_type": "Report",
-				"chart_name": "Quality Inspection Analysis",
-				"timespan": "Last Year",
-				"report_name": "Quality Inspection Summary",
-				"owner": "Administrator",
-				"filters_json": json.dumps({}),
-				"bar": "Donut",
-				"custom_options": json.dumps({
-					"axisOptions": {
-						"shortenYAxisNumbers": 1
-					},
-					"height": 300,
-					"colors": ["#ff5858", "#98d85b"]
-				}),
-			},
-			{
-				"doctype": "Dashboard Chart",
-				"time_interval": "Yearly",
-				"chart_type": "Report",
-				"chart_name": "Long Time Pending Work Orders",
-				"timespan": "Last Year",
-				"report_name": "Work Order Summary",
-				"filters_json": json.dumps({"company": company.name, "age":180}),
-				"owner": "Administrator",
-				"bar": "Bar",
-				"custom_options": json.dumps({
-					"colors": ["#ff5858"],
-					"x_field": "name",
-					"y_fields": ["age"],
-					"y_axis_fields": [{"__islocal": "true", "idx": 1, "y_field": "age"}],
-					"chart_type": "Bar"
-				}),
-			},
-			{
-				"doctype": "Dashboard Chart",
-				"time_interval": "Yearly",
-				"chart_type": "Report",
-				"chart_name": "Downtime Analysis",
-				"timespan": "Last Year",
-				"filters_json": json.dumps({}),
-				"report_name": "Downtime Analysis",
-				"owner": "Administrator",
-				"bar": "Bar",
-				"custom_options": json.dumps({
-					"colors": ["#ff5858"]
-				}),
-			},
-			{
-				"doctype": "Dashboard Chart",
-				"time_interval": "Yearly",
-				"chart_type": "Report",
-				"chart_name": "Production Analysis",
-				"timespan": "Last Year",
-				"report_name": "Production Analytics",
-				"owner": "Administrator",
-				"filters_json": json.dumps({"company": company.name, "range":"Monthly"}),
-				"bar": "Bar",
-				"custom_options": json.dumps({
-					"colors": ["#7cd6fd", "#ff5858", "#ffa00a", "#98d85b"]
-				}),
-			},
-			{
-				"doctype": "Dashboard Chart",
-				"time_interval": "Yearly",
-				"chart_type": "Report",
-				"chart_name": "Job Card Analysis",
-				"timespan": "Last Year",
-				"report_name": "Job Card Summary",
-				"owner": "Administrator",
-				"filters_json": json.dumps({"company": company.name, "range":"Monthly"}),
-				"bar": "Bar",
-				"custom_options": json.dumps({
-					"axisOptions": {
-						"xAxisMode": "tick"
-					},
-					"barOptions": {
-						"stacked": 1
-					},
-					"colors": ["#ff5858", "#ffa00a", "#5e64ff", "#98d85b"]
-				}),
-			},
-		]
-	}
-
-def get_account(account_type, company):
-	accounts = frappe.get_list("Account", filters={"account_type": account_type, "company": company})
-	if accounts:
-		return accounts[0].name
