diff --git a/project_wizard/META-INF/plugin.xml b/project_wizard/META-INF/plugin.xml
index 5d536f7b8..7df902cd7 100644
--- a/project_wizard/META-INF/plugin.xml
+++ b/project_wizard/META-INF/plugin.xml
@@ -14,6 +14,7 @@
+
diff --git a/project_wizard/src/org/jetbrains/tutorials/project/wizard/DemoModuleBuilder.java b/project_wizard/src/org/jetbrains/tutorials/project/wizard/DemoModuleBuilder.java
new file mode 100644
index 000000000..50a9014c0
--- /dev/null
+++ b/project_wizard/src/org/jetbrains/tutorials/project/wizard/DemoModuleBuilder.java
@@ -0,0 +1,24 @@
+package org.jetbrains.tutorials.project.wizard;
+
+import com.intellij.ide.util.projectWizard.JavaModuleBuilder;
+import com.intellij.ide.util.projectWizard.ModuleBuilderListener;
+import com.intellij.ide.util.projectWizard.ModuleWizardStep;
+import com.intellij.ide.util.projectWizard.WizardContext;
+import com.intellij.openapi.module.Module;
+import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * @author Anna Bulenkova
+ */
+public class DemoModuleBuilder extends JavaModuleBuilder implements ModuleBuilderListener {
+ @Override
+ public ModuleWizardStep[] createWizardSteps(@NotNull WizardContext wizardContext, @NotNull ModulesProvider modulesProvider) {
+ return new ModuleWizardStep[]{new DemoModuleWizardStep(this)};
+ }
+
+ @Override
+ public void moduleCreated(@NotNull Module module) {
+
+ }
+}
diff --git a/project_wizard/src/org/jetbrains/tutorials/project/wizard/DemoModuleType.java b/project_wizard/src/org/jetbrains/tutorials/project/wizard/DemoModuleType.java
new file mode 100644
index 000000000..62c444ecc
--- /dev/null
+++ b/project_wizard/src/org/jetbrains/tutorials/project/wizard/DemoModuleType.java
@@ -0,0 +1,44 @@
+package org.jetbrains.tutorials.project.wizard;
+
+import com.intellij.icons.AllIcons;
+import com.intellij.openapi.module.ModuleType;
+import org.jetbrains.annotations.NotNull;
+
+import javax.swing.*;
+
+/**
+ * @author Anna Bulenkova
+ */
+public class DemoModuleType extends ModuleType {
+ public DemoModuleType() {
+ super("DEMO_MODULE");
+ }
+
+ @NotNull
+ @Override
+ public DemoModuleBuilder createModuleBuilder() {
+ return new DemoModuleBuilder();
+ }
+
+ @NotNull
+ @Override
+ public String getName() {
+ return "Demo";
+ }
+
+ @NotNull
+ @Override
+ public String getDescription() {
+ return "Demo module for educational purposes";
+ }
+
+ @Override
+ public Icon getBigIcon() {
+ return null;
+ }
+
+ @Override
+ public Icon getNodeIcon(@Deprecated boolean isOpened) {
+ return AllIcons.General.Information;
+ }
+}
diff --git a/project_wizard/src/org/jetbrains/tutorials/project/wizard/DemoModuleWizardStep.java b/project_wizard/src/org/jetbrains/tutorials/project/wizard/DemoModuleWizardStep.java
new file mode 100644
index 000000000..fd169375c
--- /dev/null
+++ b/project_wizard/src/org/jetbrains/tutorials/project/wizard/DemoModuleWizardStep.java
@@ -0,0 +1,25 @@
+package org.jetbrains.tutorials.project.wizard;
+
+import com.intellij.ide.util.projectWizard.ModuleWizardStep;
+
+import javax.swing.*;
+
+/**
+ * @author Anna Bulenkova
+ */
+public class DemoModuleWizardStep extends ModuleWizardStep {
+ private DemoModuleBuilder myBuilder;
+ public DemoModuleWizardStep(DemoModuleBuilder builder) {
+ myBuilder = builder;
+ }
+
+ @Override
+ public JComponent getComponent() {
+ return new JPanel();
+ }
+
+ @Override
+ public void updateDataModel() {
+
+ }
+}