diff --git a/view/src/main/java/se/su/dsv/scipro/applicationperiod/AdminEditApplicationPeriodPage.html b/view/src/main/java/se/su/dsv/scipro/applicationperiod/AdminEditApplicationPeriodPage.html
index 4581c0f65b..8c5597de96 100644
--- a/view/src/main/java/se/su/dsv/scipro/applicationperiod/AdminEditApplicationPeriodPage.html
+++ b/view/src/main/java/se/su/dsv/scipro/applicationperiod/AdminEditApplicationPeriodPage.html
@@ -17,6 +17,7 @@
                 <fieldset class="mb-3">
                     <legend><wicket:message key="projectTypes"/></legend>
                     <div wicket:id="projectTypes"></div>
+                    <div wicket:id="projectTypesFeedback"></div>
                 </fieldset>
 
                 <div class="form-row">
diff --git a/view/src/main/java/se/su/dsv/scipro/applicationperiod/AdminEditApplicationPeriodPage.java b/view/src/main/java/se/su/dsv/scipro/applicationperiod/AdminEditApplicationPeriodPage.java
index 51a31f8c7c..8781578a73 100644
--- a/view/src/main/java/se/su/dsv/scipro/applicationperiod/AdminEditApplicationPeriodPage.java
+++ b/view/src/main/java/se/su/dsv/scipro/applicationperiod/AdminEditApplicationPeriodPage.java
@@ -58,14 +58,15 @@ public class AdminEditApplicationPeriodPage
             );
             add(new ComponentFeedbackPanel(TITLE_FEEDBACK, title));
             add(title);
-            add(
-                new BootstrapCheckBoxMultipleChoice<>(
-                    PROJECT_TYPES,
-                    LambdaModel.of(getModel(), ApplicationPeriod::getProjectTypes, ApplicationPeriod::setProjectTypes),
-                    availableProjectTypes(),
-                    new LambdaChoiceRenderer<>(ProjectType::getName, ProjectType::getId)
-                )
+            BootstrapCheckBoxMultipleChoice<ProjectType> projectTypeChoice = new BootstrapCheckBoxMultipleChoice<>(
+                PROJECT_TYPES,
+                LambdaModel.of(getModel(), ApplicationPeriod::getProjectTypes, ApplicationPeriod::setProjectTypes),
+                availableProjectTypes(),
+                new LambdaChoiceRenderer<>(ProjectType::getName, ProjectType::getId)
             );
+            projectTypeChoice.setRequired(true);
+            add(projectTypeChoice);
+            add(new FencedFeedbackPanel("projectTypesFeedback", projectTypeChoice));
             final FormComponent<LocalDate> startDate = addDateField(
                 START_DATE,
                 LambdaModel.of(getModel(), ApplicationPeriod::getStartDate, ApplicationPeriod::setStartDate)
diff --git a/view/src/main/java/se/su/dsv/scipro/applicationperiod/AdminEditApplicationPeriodPage.properties b/view/src/main/java/se/su/dsv/scipro/applicationperiod/AdminEditApplicationPeriodPage.properties
index f5095052d4..dc945a5788 100644
--- a/view/src/main/java/se/su/dsv/scipro/applicationperiod/AdminEditApplicationPeriodPage.properties
+++ b/view/src/main/java/se/su/dsv/scipro/applicationperiod/AdminEditApplicationPeriodPage.properties
@@ -14,4 +14,5 @@ success= Application period saved.
 overlapping= Overlapping application period already exists.
 date.Required= You need to specify a valid date.
 hours.Required= Hours field is required.
-minutes.Required= Minutes field is required.
\ No newline at end of file
+minutes.Required= Minutes field is required.
+projectTypes.Required=You must select at least one project type.
diff --git a/view/src/test/java/se/su/dsv/scipro/applicationperiod/AdminEditApplicationPeriodPageTest.java b/view/src/test/java/se/su/dsv/scipro/applicationperiod/AdminEditApplicationPeriodPageTest.java
index 04809af0c2..a6bc599bd9 100644
--- a/view/src/test/java/se/su/dsv/scipro/applicationperiod/AdminEditApplicationPeriodPageTest.java
+++ b/view/src/test/java/se/su/dsv/scipro/applicationperiod/AdminEditApplicationPeriodPageTest.java
@@ -120,12 +120,25 @@ public class AdminEditApplicationPeriodPageTest extends SciProTest {
         MatcherAssert.assertThat(captor.getValue().getProjectTypes(), Matchers.hasItem(bachelor));
     }
 
+    @Test
+    public void requires_at_least_one_project_type_to_be_selected() {
+        FormTester formTester = tester.newFormTester(FORM);
+        fillInFormWithValidValues(formTester);
+        formTester.setValue(path(PROJECT_TYPES), "");
+        formTester.submit();
+        tester.assertErrorMessages(tester.getLastRenderedPage().getString("projectTypes.Required"));
+    }
+
     private void submitForm(String title, int startDate, int endDate, int courseStartDate) {
         FormTester formTester = tester.newFormTester(FORM);
         fillInForm(title, startDate, endDate, courseStartDate, formTester);
         formTester.submit();
     }
 
+    private void fillInFormWithValidValues(FormTester formTester) {
+        fillInForm("Title", 0, 1, 2, formTester);
+    }
+
     private void fillInForm(String title, int startDate, int endDate, int courseStartDate, FormTester formTester) {
         formTester.setValue(TITLE, title);
         final LocalDate now = LocalDate.now();
@@ -133,6 +146,7 @@ public class AdminEditApplicationPeriodPageTest extends SciProTest {
         formTester.setValue(END_DATE, now.plusDays(endDate).toString());
         formTester.setValue(COURSE_START_DATE, now.plusDays(courseStartDate).toString());
         formTester.setValue("courseStartTime", "08:00");
+        formTester.setValue(PROJECT_TYPES, String.valueOf(bachelor.getId()));
     }
 
     private void startPage() {