From 673af5e181629d0abbe1bee363e314b49367fd81 Mon Sep 17 00:00:00 2001
From: Christoph Thelen <christoph.thelen@mni.thm.de>
Date: Wed, 27 May 2015 15:33:23 +0200
Subject: [PATCH] Add javadoc to classes, interfaces, and packages

---
 src/main/java/de/thm/arsnova/CASLogoutSuccessHandler.java   | 3 +++
 src/main/java/de/thm/arsnova/CasUserDetailsService.java     | 3 +++
 src/main/java/de/thm/arsnova/FeedbackStorage.java           | 3 +++
 .../de/thm/arsnova/LoginAuthenticationFailureHandler.java   | 4 ++++
 .../de/thm/arsnova/LoginAuthenticationSucessHandler.java    | 3 +++
 src/main/java/de/thm/arsnova/aop/UserSessionAspect.java     | 4 ++++
 src/main/java/de/thm/arsnova/aop/package-info.java          | 3 +++
 src/main/java/de/thm/arsnova/config/ExtraConfig.java        | 3 +++
 src/main/java/de/thm/arsnova/config/SecurityConfig.java     | 3 +++
 src/main/java/de/thm/arsnova/config/package-info.java       | 3 +++
 .../java/de/thm/arsnova/controller/AbstractController.java  | 3 +++
 .../thm/arsnova/controller/AudienceQuestionController.java  | 3 +++
 .../java/de/thm/arsnova/controller/CourseController.java    | 3 +++
 .../java/de/thm/arsnova/controller/FeedbackController.java  | 6 ++++++
 .../thm/arsnova/controller/LecturerQuestionController.java  | 3 +++
 .../java/de/thm/arsnova/controller/LegacyController.java    | 3 +++
 .../java/de/thm/arsnova/controller/LoginController.java     | 3 +++
 .../controller/SecurityExceptionControllerAdvice.java       | 3 +++
 .../java/de/thm/arsnova/controller/SessionController.java   | 3 +++
 .../java/de/thm/arsnova/controller/SocketController.java    | 3 +++
 .../de/thm/arsnova/controller/StatisticsController.java     | 3 +++
 src/main/java/de/thm/arsnova/controller/UserController.java | 3 +++
 .../java/de/thm/arsnova/controller/WelcomeController.java   | 3 +++
 src/main/java/de/thm/arsnova/controller/package-info.java   | 3 +++
 src/main/java/de/thm/arsnova/dao/CouchDBDao.java            | 6 ++++++
 src/main/java/de/thm/arsnova/dao/IDatabaseDao.java          | 3 +++
 src/main/java/de/thm/arsnova/dao/package-info.java          | 3 +++
 src/main/java/de/thm/arsnova/domain/CourseScore.java        | 3 +++
 .../de/thm/arsnova/domain/ILearningProgressFactory.java     | 3 +++
 src/main/java/de/thm/arsnova/domain/LearningProgress.java   | 3 +++
 .../java/de/thm/arsnova/domain/LearningProgressFactory.java | 5 +++++
 .../de/thm/arsnova/domain/LearningProgressListener.java     | 5 +++++
 .../de/thm/arsnova/domain/PointBasedLearningProgress.java   | 3 +++
 .../thm/arsnova/domain/QuestionBasedLearningProgress.java   | 4 ++++
 src/main/java/de/thm/arsnova/domain/QuestionScore.java      | 3 +++
 src/main/java/de/thm/arsnova/domain/UserScore.java          | 3 +++
 .../java/de/thm/arsnova/domain/VariantLearningProgress.java | 2 +-
 src/main/java/de/thm/arsnova/domain/package-info.java       | 3 +++
 src/main/java/de/thm/arsnova/entities/Answer.java           | 5 +++++
 src/main/java/de/thm/arsnova/entities/DbUser.java           | 3 +++
 src/main/java/de/thm/arsnova/entities/Feedback.java         | 3 +++
 .../java/de/thm/arsnova/entities/InterposedQuestion.java    | 3 +++
 .../de/thm/arsnova/entities/InterposedReadingCount.java     | 3 +++
 .../de/thm/arsnova/entities/LearningProgressOptions.java    | 3 +++
 src/main/java/de/thm/arsnova/entities/LoggedIn.java         | 3 +++
 src/main/java/de/thm/arsnova/entities/PossibleAnswer.java   | 3 +++
 src/main/java/de/thm/arsnova/entities/Question.java         | 3 +++
 .../java/de/thm/arsnova/entities/ServiceDescription.java    | 3 +++
 src/main/java/de/thm/arsnova/entities/Session.java          | 3 +++
 src/main/java/de/thm/arsnova/entities/SessionFeature.java   | 3 +++
 src/main/java/de/thm/arsnova/entities/SessionInfo.java      | 4 ++++
 src/main/java/de/thm/arsnova/entities/SortOrder.java        | 3 +++
 src/main/java/de/thm/arsnova/entities/Statistics.java       | 3 +++
 src/main/java/de/thm/arsnova/entities/User.java             | 3 +++
 src/main/java/de/thm/arsnova/entities/VisitedSession.java   | 4 +++-
 src/main/java/de/thm/arsnova/entities/package-info.java     | 3 +++
 src/main/java/de/thm/arsnova/entities/transport/Answer.java | 3 +++
 .../thm/arsnova/entities/transport/AnswerQueueElement.java  | 4 ++++
 .../thm/arsnova/entities/transport/ImportExportSession.java | 3 +++
 .../thm/arsnova/entities/transport/InterposedQuestion.java  | 3 +++
 .../arsnova/entities/transport/LearningProgressOptions.java | 3 +++
 .../arsnova/entities/transport/LearningProgressValues.java  | 3 +++
 .../de/thm/arsnova/entities/transport/package-info.java     | 6 ++++++
 .../de/thm/arsnova/events/ChangeLearningProgressEvent.java  | 3 +++
 .../de/thm/arsnova/events/DeleteAllLectureAnswersEvent.java | 3 +++
 .../arsnova/events/DeleteAllPreparationAnswersEvent.java    | 3 +++
 .../thm/arsnova/events/DeleteAllQuestionsAnswersEvent.java  | 3 +++
 .../java/de/thm/arsnova/events/DeleteAllQuestionsEvent.java | 4 ++++
 src/main/java/de/thm/arsnova/events/DeleteAnswerEvent.java  | 3 +++
 .../thm/arsnova/events/DeleteFeedbackForSessionsEvent.java  | 3 +++
 .../thm/arsnova/events/DeleteInterposedQuestionEvent.java   | 3 +++
 .../java/de/thm/arsnova/events/DeleteQuestionEvent.java     | 3 +++
 src/main/java/de/thm/arsnova/events/DeleteSessionEvent.java | 4 ++++
 src/main/java/de/thm/arsnova/events/LockQuestionEvent.java  | 3 +++
 src/main/java/de/thm/arsnova/events/LockQuestionsEvent.java | 3 +++
 src/main/java/de/thm/arsnova/events/LockVoteEvent.java      | 3 +++
 src/main/java/de/thm/arsnova/events/LockVotesEvent.java     | 3 +++
 src/main/java/de/thm/arsnova/events/NewAnswerEvent.java     | 3 +++
 src/main/java/de/thm/arsnova/events/NewFeedbackEvent.java   | 3 +++
 .../de/thm/arsnova/events/NewInterposedQuestionEvent.java   | 3 +++
 src/main/java/de/thm/arsnova/events/NewQuestionEvent.java   | 3 +++
 src/main/java/de/thm/arsnova/events/NewSessionEvent.java    | 3 +++
 src/main/java/de/thm/arsnova/events/NovaEvent.java          | 3 +++
 src/main/java/de/thm/arsnova/events/NovaEventVisitor.java   | 3 +++
 src/main/java/de/thm/arsnova/events/PiRoundCancelEvent.java | 3 +++
 .../de/thm/arsnova/events/PiRoundDelayedStartEvent.java     | 4 ++++
 src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java    | 3 +++
 src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java  | 3 +++
 src/main/java/de/thm/arsnova/events/SessionEvent.java       | 3 +++
 src/main/java/de/thm/arsnova/events/StatusSessionEvent.java | 3 +++
 .../java/de/thm/arsnova/events/UnlockQuestionEvent.java     | 3 +++
 .../java/de/thm/arsnova/events/UnlockQuestionsEvent.java    | 3 +++
 src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java    | 3 +++
 src/main/java/de/thm/arsnova/events/UnlockVotesEvent.java   | 3 +++
 src/main/java/de/thm/arsnova/events/package-info.java       | 3 +--
 .../java/de/thm/arsnova/exceptions/BadRequestException.java | 3 +++
 .../java/de/thm/arsnova/exceptions/ForbiddenException.java  | 3 +++
 .../java/de/thm/arsnova/exceptions/NoContentException.java  | 3 +++
 .../java/de/thm/arsnova/exceptions/NotFoundException.java   | 3 +++
 .../de/thm/arsnova/exceptions/NotImplementedException.java  | 3 +++
 .../de/thm/arsnova/exceptions/PayloadTooLargeException.java | 3 +++
 .../thm/arsnova/exceptions/PreconditionFailedException.java | 3 +++
 .../de/thm/arsnova/exceptions/UnauthorizedException.java    | 3 +++
 src/main/java/de/thm/arsnova/exceptions/package-info.java   | 3 +++
 src/main/java/de/thm/arsnova/package-info.java              | 3 +++
 .../arsnova/security/ApplicationPermissionEvaluator.java    | 3 +++
 .../java/de/thm/arsnova/security/DbUserDetailsService.java  | 3 +++
 src/main/java/de/thm/arsnova/services/FeedbackService.java  | 3 +++
 src/main/java/de/thm/arsnova/services/IFeedbackService.java | 3 +++
 src/main/java/de/thm/arsnova/services/IQuestionService.java | 3 +++
 src/main/java/de/thm/arsnova/services/ISessionService.java  | 3 +++
 .../java/de/thm/arsnova/services/IStatisticsService.java    | 3 +++
 src/main/java/de/thm/arsnova/services/IUserService.java     | 3 +++
 src/main/java/de/thm/arsnova/services/QuestionService.java  | 3 +++
 src/main/java/de/thm/arsnova/services/SessionService.java   | 3 +++
 .../java/de/thm/arsnova/services/StatisticsService.java     | 3 +++
 src/main/java/de/thm/arsnova/services/UserService.java      | 3 +++
 .../java/de/thm/arsnova/services/UserSessionService.java    | 3 +++
 .../de/thm/arsnova/services/UserSessionServiceImpl.java     | 3 +++
 src/main/java/de/thm/arsnova/services/package-info.java     | 3 +++
 .../java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java   | 3 +++
 src/main/java/de/thm/arsnova/socket/message/Feedback.java   | 3 +++
 src/main/java/de/thm/arsnova/socket/message/Question.java   | 3 +++
 src/main/java/de/thm/arsnova/socket/message/Session.java    | 3 +++
 .../java/de/thm/arsnova/socket/message/package-info.java    | 3 +++
 src/main/java/de/thm/arsnova/socket/package-info.java       | 3 +++
 src/main/java/de/thm/arsnova/web/CacheControl.java          | 3 +++
 .../de/thm/arsnova/web/CacheControlInterceptorHandler.java  | 3 +++
 src/main/java/de/thm/arsnova/web/CorsFilter.java            | 3 +++
 src/main/java/de/thm/arsnova/web/DeprecatedApi.java         | 3 +++
 .../de/thm/arsnova/web/DeprecatedApiInterceptorHandler.java | 4 ++++
 src/main/java/de/thm/arsnova/web/package-info.java          | 4 ++++
 132 files changed, 417 insertions(+), 4 deletions(-)
 create mode 100644 src/main/java/de/thm/arsnova/web/package-info.java

diff --git a/src/main/java/de/thm/arsnova/CASLogoutSuccessHandler.java b/src/main/java/de/thm/arsnova/CASLogoutSuccessHandler.java
index ad223ea27..5d73848f3 100644
--- a/src/main/java/de/thm/arsnova/CASLogoutSuccessHandler.java
+++ b/src/main/java/de/thm/arsnova/CASLogoutSuccessHandler.java
@@ -30,6 +30,9 @@ import org.springframework.security.web.DefaultRedirectStrategy;
 import org.springframework.security.web.RedirectStrategy;
 import org.springframework.security.web.authentication.logout.LogoutSuccessHandler;
 
+/**
+ * This class gets called when a user has been successfully logged out from CAS.
+ */
 public class CASLogoutSuccessHandler implements LogoutSuccessHandler {
 
 	public static final Logger LOGGER = LoggerFactory.getLogger(CASLogoutSuccessHandler.class);
diff --git a/src/main/java/de/thm/arsnova/CasUserDetailsService.java b/src/main/java/de/thm/arsnova/CasUserDetailsService.java
index 66bf0eff7..5998d96e8 100644
--- a/src/main/java/de/thm/arsnova/CasUserDetailsService.java
+++ b/src/main/java/de/thm/arsnova/CasUserDetailsService.java
@@ -28,6 +28,9 @@ import org.springframework.security.core.userdetails.User;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.stereotype.Service;
 
+/**
+ * Class to load a user based on the results from CAS.
+ */
 @Service
 public class CasUserDetailsService extends AbstractCasAssertionUserDetailsService {
 
diff --git a/src/main/java/de/thm/arsnova/FeedbackStorage.java b/src/main/java/de/thm/arsnova/FeedbackStorage.java
index 96636e852..07a203b4a 100644
--- a/src/main/java/de/thm/arsnova/FeedbackStorage.java
+++ b/src/main/java/de/thm/arsnova/FeedbackStorage.java
@@ -32,6 +32,9 @@ import de.thm.arsnova.entities.Feedback;
 import de.thm.arsnova.entities.Session;
 import de.thm.arsnova.entities.User;
 
+/**
+ * In-memory storage of feedback data.
+ */
 public class FeedbackStorage {
 	private static class FeedbackStorageObject {
 		private final int value;
diff --git a/src/main/java/de/thm/arsnova/LoginAuthenticationFailureHandler.java b/src/main/java/de/thm/arsnova/LoginAuthenticationFailureHandler.java
index 18d2b1cfb..706fb388b 100644
--- a/src/main/java/de/thm/arsnova/LoginAuthenticationFailureHandler.java
+++ b/src/main/java/de/thm/arsnova/LoginAuthenticationFailureHandler.java
@@ -31,6 +31,10 @@ import org.springframework.security.web.DefaultRedirectStrategy;
 import org.springframework.security.web.RedirectStrategy;
 import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler;
 
+
+/**
+ * This class gets called when a user failed to login.
+ */
 public class LoginAuthenticationFailureHandler extends
 		SimpleUrlAuthenticationFailureHandler {
 
diff --git a/src/main/java/de/thm/arsnova/LoginAuthenticationSucessHandler.java b/src/main/java/de/thm/arsnova/LoginAuthenticationSucessHandler.java
index fafaff400..68ccd362d 100644
--- a/src/main/java/de/thm/arsnova/LoginAuthenticationSucessHandler.java
+++ b/src/main/java/de/thm/arsnova/LoginAuthenticationSucessHandler.java
@@ -25,6 +25,9 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler;
 
+/**
+ * This class gets called when a user successfully logged in.
+ */
 public class LoginAuthenticationSucessHandler extends
 		SimpleUrlAuthenticationSuccessHandler {
 
diff --git a/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java b/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java
index 202558acf..ee9b6a90c 100644
--- a/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java
+++ b/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java
@@ -25,6 +25,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import de.thm.arsnova.entities.Session;
 import de.thm.arsnova.services.UserSessionService;
 
+/**
+ * Assigns a session to the {@link de.thm.arsnova.services.UserSessionService} whenever a user joins a
+ * session.
+ */
 @Aspect
 public class UserSessionAspect {
 
diff --git a/src/main/java/de/thm/arsnova/aop/package-info.java b/src/main/java/de/thm/arsnova/aop/package-info.java
index e23654023..b39e67531 100644
--- a/src/main/java/de/thm/arsnova/aop/package-info.java
+++ b/src/main/java/de/thm/arsnova/aop/package-info.java
@@ -1 +1,4 @@
+/**
+ * Classes and interfaces to support aspect-oriented programming
+ */
 package de.thm.arsnova.aop;
diff --git a/src/main/java/de/thm/arsnova/config/ExtraConfig.java b/src/main/java/de/thm/arsnova/config/ExtraConfig.java
index f971a219a..c6966dc1f 100644
--- a/src/main/java/de/thm/arsnova/config/ExtraConfig.java
+++ b/src/main/java/de/thm/arsnova/config/ExtraConfig.java
@@ -37,6 +37,9 @@ import de.thm.arsnova.socket.ARSnovaSocket;
 import de.thm.arsnova.socket.ARSnovaSocketIOServer;
 import de.thm.arsnova.ImageUtils;
 
+/**
+ * Loads property file and configures non-security related beans and components.
+ */
 @Configuration
 @EnableCaching
 public class ExtraConfig {
diff --git a/src/main/java/de/thm/arsnova/config/SecurityConfig.java b/src/main/java/de/thm/arsnova/config/SecurityConfig.java
index 76a5b047a..c63911006 100644
--- a/src/main/java/de/thm/arsnova/config/SecurityConfig.java
+++ b/src/main/java/de/thm/arsnova/config/SecurityConfig.java
@@ -80,6 +80,9 @@ import de.thm.arsnova.LoginAuthenticationSucessHandler;
 import de.thm.arsnova.security.ApplicationPermissionEvaluator;
 import de.thm.arsnova.security.DbUserDetailsService;
 
+/**
+ * Loads property file and configures components used for authentication.
+ */
 @Configuration
 @EnableGlobalMethodSecurity(prePostEnabled = true)
 @EnableWebSecurity
diff --git a/src/main/java/de/thm/arsnova/config/package-info.java b/src/main/java/de/thm/arsnova/config/package-info.java
index 87aa44641..817ab1d11 100644
--- a/src/main/java/de/thm/arsnova/config/package-info.java
+++ b/src/main/java/de/thm/arsnova/config/package-info.java
@@ -1 +1,4 @@
+/**
+ * Configuration of Spring's and ARSnova's components
+ */
 package de.thm.arsnova.config;
diff --git a/src/main/java/de/thm/arsnova/controller/AbstractController.java b/src/main/java/de/thm/arsnova/controller/AbstractController.java
index 4f20a2cfd..bdb2d8f7e 100644
--- a/src/main/java/de/thm/arsnova/controller/AbstractController.java
+++ b/src/main/java/de/thm/arsnova/controller/AbstractController.java
@@ -17,6 +17,9 @@
  */
 package de.thm.arsnova.controller;
 
+/**
+ * Base class of all controllers.
+ */
 public class AbstractController {
 	protected static final String X_DEPRECATED_API = "X-Deprecated-API";
 	protected static final String X_FORWARDED = "X-Forwarded";
diff --git a/src/main/java/de/thm/arsnova/controller/AudienceQuestionController.java b/src/main/java/de/thm/arsnova/controller/AudienceQuestionController.java
index da4da99a4..2202338ca 100644
--- a/src/main/java/de/thm/arsnova/controller/AudienceQuestionController.java
+++ b/src/main/java/de/thm/arsnova/controller/AudienceQuestionController.java
@@ -37,6 +37,9 @@ import de.thm.arsnova.exceptions.BadRequestException;
 import de.thm.arsnova.services.IQuestionService;
 import de.thm.arsnova.web.DeprecatedApi;
 
+/**
+ * Handles requests related to audience questions, which are also called interposed or feedback questions.
+ */
 @RestController
 @RequestMapping("/audiencequestion")
 public class AudienceQuestionController extends AbstractController {
diff --git a/src/main/java/de/thm/arsnova/controller/CourseController.java b/src/main/java/de/thm/arsnova/controller/CourseController.java
index f35bb4f96..a7104db07 100644
--- a/src/main/java/de/thm/arsnova/controller/CourseController.java
+++ b/src/main/java/de/thm/arsnova/controller/CourseController.java
@@ -39,6 +39,9 @@ import de.thm.arsnova.exceptions.NotImplementedException;
 import de.thm.arsnova.exceptions.UnauthorizedException;
 import de.thm.arsnova.services.IUserService;
 
+/**
+ * Provides access to a user's courses in an LMS such as Moodle.
+ */
 @RestController
 public class CourseController extends AbstractController {
 
diff --git a/src/main/java/de/thm/arsnova/controller/FeedbackController.java b/src/main/java/de/thm/arsnova/controller/FeedbackController.java
index a9b2397c1..cee5de523 100644
--- a/src/main/java/de/thm/arsnova/controller/FeedbackController.java
+++ b/src/main/java/de/thm/arsnova/controller/FeedbackController.java
@@ -35,6 +35,12 @@ import de.thm.arsnova.services.IFeedbackService;
 import de.thm.arsnova.services.IUserService;
 import de.thm.arsnova.web.DeprecatedApi;
 
+/**
+ * Handles requests concerning the user's feedback, i.e., "too fast" or "faster, please". This HTTP API is
+ * deprecated in favor of the socket implementation.
+ *
+ * @see de.thm.arsnova.socket.ARSnovaSocketIOServer
+ */
 @RestController
 public class FeedbackController extends AbstractController {
 
diff --git a/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java b/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java
index cd2577a1e..59df5aaa8 100644
--- a/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java
+++ b/src/main/java/de/thm/arsnova/controller/LecturerQuestionController.java
@@ -44,6 +44,9 @@ import de.thm.arsnova.exceptions.NotFoundException;
 import de.thm.arsnova.services.IQuestionService;
 import de.thm.arsnova.web.DeprecatedApi;
 
+/**
+ * Handles requests related to questions teachers are asking their students.
+ */
 @RestController
 @RequestMapping("/lecturerquestion")
 public class LecturerQuestionController extends AbstractController {
diff --git a/src/main/java/de/thm/arsnova/controller/LegacyController.java b/src/main/java/de/thm/arsnova/controller/LegacyController.java
index caeb383ad..c15295d06 100644
--- a/src/main/java/de/thm/arsnova/controller/LegacyController.java
+++ b/src/main/java/de/thm/arsnova/controller/LegacyController.java
@@ -29,6 +29,9 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import de.thm.arsnova.services.IQuestionService;
 import de.thm.arsnova.web.DeprecatedApi;
 
+/**
+ * This controller forwards requests from deprecated URLs to their new controller, where the requests are handled.
+ */
 @Controller
 public class LegacyController extends AbstractController {
 
diff --git a/src/main/java/de/thm/arsnova/controller/LoginController.java b/src/main/java/de/thm/arsnova/controller/LoginController.java
index ca1667641..3b6d96803 100644
--- a/src/main/java/de/thm/arsnova/controller/LoginController.java
+++ b/src/main/java/de/thm/arsnova/controller/LoginController.java
@@ -64,6 +64,9 @@ import de.thm.arsnova.exceptions.UnauthorizedException;
 import de.thm.arsnova.services.IUserService;
 import de.thm.arsnova.services.UserSessionService;
 
+/**
+ * Handles authentication specific requests.
+ */
 @Controller
 public class LoginController extends AbstractController {
 
diff --git a/src/main/java/de/thm/arsnova/controller/SecurityExceptionControllerAdvice.java b/src/main/java/de/thm/arsnova/controller/SecurityExceptionControllerAdvice.java
index f1cb01dfa..d1a472a24 100644
--- a/src/main/java/de/thm/arsnova/controller/SecurityExceptionControllerAdvice.java
+++ b/src/main/java/de/thm/arsnova/controller/SecurityExceptionControllerAdvice.java
@@ -39,6 +39,9 @@ import de.thm.arsnova.exceptions.PreconditionFailedException;
 import de.thm.arsnova.exceptions.UnauthorizedException;
 import de.thm.arsnova.exceptions.PayloadTooLargeException;
 
+/**
+ * Translates security/authentication related exceptions into HTTP status codes.
+ */
 @ControllerAdvice
 public class SecurityExceptionControllerAdvice {
 
diff --git a/src/main/java/de/thm/arsnova/controller/SessionController.java b/src/main/java/de/thm/arsnova/controller/SessionController.java
index d777e1a4d..4a75665e8 100644
--- a/src/main/java/de/thm/arsnova/controller/SessionController.java
+++ b/src/main/java/de/thm/arsnova/controller/SessionController.java
@@ -51,6 +51,9 @@ import de.thm.arsnova.services.SessionService.SessionNameComparator;
 import de.thm.arsnova.services.SessionService.SessionShortNameComparator;
 import de.thm.arsnova.web.DeprecatedApi;
 
+/**
+ * Handles requests related to ARSnova sessions.
+ */
 @RestController
 @RequestMapping("/session")
 public class SessionController extends AbstractController {
diff --git a/src/main/java/de/thm/arsnova/controller/SocketController.java b/src/main/java/de/thm/arsnova/controller/SocketController.java
index bbe1bdd48..64a58710f 100644
--- a/src/main/java/de/thm/arsnova/controller/SocketController.java
+++ b/src/main/java/de/thm/arsnova/controller/SocketController.java
@@ -37,6 +37,9 @@ import de.thm.arsnova.services.IUserService;
 import de.thm.arsnova.services.UserSessionService;
 import de.thm.arsnova.socket.ARSnovaSocket;
 
+/**
+ * Initiates the socket communication.
+ */
 @RestController
 @RequestMapping("/socket")
 public class SocketController extends AbstractController {
diff --git a/src/main/java/de/thm/arsnova/controller/StatisticsController.java b/src/main/java/de/thm/arsnova/controller/StatisticsController.java
index a7bad05c9..0acfb9d61 100644
--- a/src/main/java/de/thm/arsnova/controller/StatisticsController.java
+++ b/src/main/java/de/thm/arsnova/controller/StatisticsController.java
@@ -27,6 +27,9 @@ import de.thm.arsnova.services.IStatisticsService;
 import de.thm.arsnova.web.CacheControl;
 import de.thm.arsnova.web.DeprecatedApi;
 
+/**
+ * Allows retrieval of several statistics such as the number of active users.
+ */
 @RestController
 public class StatisticsController extends AbstractController {
 
diff --git a/src/main/java/de/thm/arsnova/controller/UserController.java b/src/main/java/de/thm/arsnova/controller/UserController.java
index 3bc7a769b..a113f184a 100644
--- a/src/main/java/de/thm/arsnova/controller/UserController.java
+++ b/src/main/java/de/thm/arsnova/controller/UserController.java
@@ -35,6 +35,9 @@ import de.thm.arsnova.entities.DbUser;
 import de.thm.arsnova.services.IUserService;
 import de.thm.arsnova.services.UserSessionService;
 
+/**
+ * Handles requests related to ARSnova's own user registration and login process.
+ */
 @Controller
 @RequestMapping("/user")
 public class UserController extends AbstractController {
diff --git a/src/main/java/de/thm/arsnova/controller/WelcomeController.java b/src/main/java/de/thm/arsnova/controller/WelcomeController.java
index 509ed38cd..6688df712 100644
--- a/src/main/java/de/thm/arsnova/controller/WelcomeController.java
+++ b/src/main/java/de/thm/arsnova/controller/WelcomeController.java
@@ -38,6 +38,9 @@ import org.springframework.web.servlet.view.RedirectView;
 
 import de.thm.arsnova.exceptions.NoContentException;
 
+/**
+ * Default controller that handles requests which have not set a path.
+ */
 @Controller
 public class WelcomeController extends AbstractController {
 
diff --git a/src/main/java/de/thm/arsnova/controller/package-info.java b/src/main/java/de/thm/arsnova/controller/package-info.java
index ab9a862ae..71e44bcf6 100644
--- a/src/main/java/de/thm/arsnova/controller/package-info.java
+++ b/src/main/java/de/thm/arsnova/controller/package-info.java
@@ -1 +1,4 @@
+/**
+ * The 'C' in MVC
+ */
 package de.thm.arsnova.controller;
diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
index 374d9705a..cad6b9d1e 100644
--- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
+++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
@@ -82,6 +82,9 @@ import de.thm.arsnova.events.NewAnswerEvent;
 import de.thm.arsnova.exceptions.NotFoundException;
 import de.thm.arsnova.services.ISessionService;
 
+/**
+ * Database implementation based on CouchDB.
+ */
 @Component("databaseDao")
 public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware {
 
@@ -1421,6 +1424,9 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware
 		return result;
 	}
 
+	/**
+	 * Adds convenience methods to CouchDB4J's view class.
+	 */
 	private static class ExtendedView extends NovaView {
 
 		public ExtendedView(final String fullname) {
diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
index 0f6255948..833761262 100644
--- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
+++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
@@ -34,6 +34,9 @@ import de.thm.arsnova.entities.Statistics;
 import de.thm.arsnova.entities.User;
 import de.thm.arsnova.entities.transport.ImportExportSession;
 
+/**
+ * All methods the database must support.
+ */
 public interface IDatabaseDao {
 	Session getSessionFromKeyword(String keyword);
 
diff --git a/src/main/java/de/thm/arsnova/dao/package-info.java b/src/main/java/de/thm/arsnova/dao/package-info.java
index 1178f0094..1b1c0dd99 100644
--- a/src/main/java/de/thm/arsnova/dao/package-info.java
+++ b/src/main/java/de/thm/arsnova/dao/package-info.java
@@ -1 +1,4 @@
+/**
+ * Classes and interfaces for accessing the database
+ */
 package de.thm.arsnova.dao;
diff --git a/src/main/java/de/thm/arsnova/domain/CourseScore.java b/src/main/java/de/thm/arsnova/domain/CourseScore.java
index 6065b8e01..8a689b75c 100644
--- a/src/main/java/de/thm/arsnova/domain/CourseScore.java
+++ b/src/main/java/de/thm/arsnova/domain/CourseScore.java
@@ -26,6 +26,9 @@ import java.util.Set;
 
 import de.thm.arsnova.entities.User;
 
+/**
+ * Calculates the learning progress for users and their courses.
+ */
 public class CourseScore implements Iterable<QuestionScore> {
 
 	private final Map<String, QuestionScore> scores;
diff --git a/src/main/java/de/thm/arsnova/domain/ILearningProgressFactory.java b/src/main/java/de/thm/arsnova/domain/ILearningProgressFactory.java
index 586b28381..1504a1498 100644
--- a/src/main/java/de/thm/arsnova/domain/ILearningProgressFactory.java
+++ b/src/main/java/de/thm/arsnova/domain/ILearningProgressFactory.java
@@ -17,6 +17,9 @@
  */
 package de.thm.arsnova.domain;
 
+/**
+ * Interface for Spring dependency injection.
+ */
 public interface ILearningProgressFactory {
 
 	public abstract LearningProgress create(String progressType, String questionVariant);
diff --git a/src/main/java/de/thm/arsnova/domain/LearningProgress.java b/src/main/java/de/thm/arsnova/domain/LearningProgress.java
index 3cb8d49c6..28e8f03f5 100644
--- a/src/main/java/de/thm/arsnova/domain/LearningProgress.java
+++ b/src/main/java/de/thm/arsnova/domain/LearningProgress.java
@@ -21,6 +21,9 @@ import de.thm.arsnova.entities.Session;
 import de.thm.arsnova.entities.User;
 import de.thm.arsnova.entities.transport.LearningProgressValues;
 
+/**
+ * Defines the core functionality which the learning progress calculation should provide.
+ */
 public interface LearningProgress {
 
 	public LearningProgressValues getCourseProgress(Session session);
diff --git a/src/main/java/de/thm/arsnova/domain/LearningProgressFactory.java b/src/main/java/de/thm/arsnova/domain/LearningProgressFactory.java
index 2ef264989..4de4fa37c 100644
--- a/src/main/java/de/thm/arsnova/domain/LearningProgressFactory.java
+++ b/src/main/java/de/thm/arsnova/domain/LearningProgressFactory.java
@@ -54,6 +54,11 @@ import de.thm.arsnova.events.StatusSessionEvent;
 import de.thm.arsnova.events.UnlockVoteEvent;
 import de.thm.arsnova.events.UnlockVotesEvent;
 
+/**
+ * Creates a learning progress implementation.
+ *
+ * This class additionally clears all learning progress caches and reports this via event system.
+ */
 @Component
 public class LearningProgressFactory implements NovaEventVisitor, ILearningProgressFactory, ApplicationEventPublisherAware {
 
diff --git a/src/main/java/de/thm/arsnova/domain/LearningProgressListener.java b/src/main/java/de/thm/arsnova/domain/LearningProgressListener.java
index 28bc8e0ee..641e26ae6 100644
--- a/src/main/java/de/thm/arsnova/domain/LearningProgressListener.java
+++ b/src/main/java/de/thm/arsnova/domain/LearningProgressListener.java
@@ -24,6 +24,11 @@ import org.springframework.stereotype.Component;
 import de.thm.arsnova.events.NovaEvent;
 import de.thm.arsnova.events.NovaEventVisitor;
 
+/**
+ * Listener registration for the learning progress.
+ *
+ * Note that this class is necessary in order for the annotations to work.
+ */
 @Component
 public class LearningProgressListener implements ApplicationListener<NovaEvent> {
 
diff --git a/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java b/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java
index ef718b4f4..72be81b2a 100644
--- a/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java
+++ b/src/main/java/de/thm/arsnova/domain/PointBasedLearningProgress.java
@@ -21,6 +21,9 @@ import de.thm.arsnova.dao.IDatabaseDao;
 import de.thm.arsnova.entities.User;
 import de.thm.arsnova.entities.transport.LearningProgressValues;
 
+/**
+ * Calculates learning progress based on a question's value.
+ */
 public class PointBasedLearningProgress extends VariantLearningProgress {
 
 	public PointBasedLearningProgress(IDatabaseDao dao) {
diff --git a/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java b/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java
index 9cb4a92d0..327174e04 100644
--- a/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java
+++ b/src/main/java/de/thm/arsnova/domain/QuestionBasedLearningProgress.java
@@ -21,6 +21,10 @@ import de.thm.arsnova.dao.IDatabaseDao;
 import de.thm.arsnova.entities.User;
 import de.thm.arsnova.entities.transport.LearningProgressValues;
 
+/**
+ * Calculates learning progress based on overall correctness of an answer. A question is answered correctly iff the
+ * maximum question value possible has been achieved.
+ */
 public class QuestionBasedLearningProgress extends VariantLearningProgress {
 
 	public QuestionBasedLearningProgress(IDatabaseDao dao) {
diff --git a/src/main/java/de/thm/arsnova/domain/QuestionScore.java b/src/main/java/de/thm/arsnova/domain/QuestionScore.java
index d5c1f8c29..c2021f15c 100644
--- a/src/main/java/de/thm/arsnova/domain/QuestionScore.java
+++ b/src/main/java/de/thm/arsnova/domain/QuestionScore.java
@@ -24,6 +24,9 @@ import java.util.Set;
 
 import de.thm.arsnova.entities.User;
 
+/**
+ * Calculates learning progress score for a specific question.
+ */
 public class QuestionScore implements Iterable<UserScore> {
 
 	private String questionId;
diff --git a/src/main/java/de/thm/arsnova/domain/UserScore.java b/src/main/java/de/thm/arsnova/domain/UserScore.java
index 282fd06e7..2f33a7539 100644
--- a/src/main/java/de/thm/arsnova/domain/UserScore.java
+++ b/src/main/java/de/thm/arsnova/domain/UserScore.java
@@ -19,6 +19,9 @@ package de.thm.arsnova.domain;
 
 import de.thm.arsnova.entities.User;
 
+/**
+ * The learning progress answer score of a particular user.
+ */
 public class UserScore {
 
 	private String username;
diff --git a/src/main/java/de/thm/arsnova/domain/VariantLearningProgress.java b/src/main/java/de/thm/arsnova/domain/VariantLearningProgress.java
index 74d67138d..c394277ac 100644
--- a/src/main/java/de/thm/arsnova/domain/VariantLearningProgress.java
+++ b/src/main/java/de/thm/arsnova/domain/VariantLearningProgress.java
@@ -23,7 +23,7 @@ import de.thm.arsnova.entities.User;
 import de.thm.arsnova.entities.transport.LearningProgressValues;
 
 /**
- * Base class for the Learning Progress feature that allows filtering on the question variant.
+ * Base class for the learning progress feature that allows filtering on the question variant.
  */
 abstract class VariantLearningProgress implements LearningProgress {
 
diff --git a/src/main/java/de/thm/arsnova/domain/package-info.java b/src/main/java/de/thm/arsnova/domain/package-info.java
index ee2d2f1de..0733c68fb 100644
--- a/src/main/java/de/thm/arsnova/domain/package-info.java
+++ b/src/main/java/de/thm/arsnova/domain/package-info.java
@@ -1 +1,4 @@
+/**
+ * The 'M' in MVC
+ */
 package de.thm.arsnova.domain;
\ No newline at end of file
diff --git a/src/main/java/de/thm/arsnova/entities/Answer.java b/src/main/java/de/thm/arsnova/entities/Answer.java
index dcc3bc317..ef2d18d82 100644
--- a/src/main/java/de/thm/arsnova/entities/Answer.java
+++ b/src/main/java/de/thm/arsnova/entities/Answer.java
@@ -19,6 +19,11 @@ package de.thm.arsnova.entities;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
+/**
+ * Both a regular (single choice, evaluation, etc.) as well as a freetext answer.
+ *
+ * This class has additional fields to transport generated answer statistics.
+ */
 public class Answer {
 
 	private String _id;
diff --git a/src/main/java/de/thm/arsnova/entities/DbUser.java b/src/main/java/de/thm/arsnova/entities/DbUser.java
index 84217b5b7..dbdbd7e97 100644
--- a/src/main/java/de/thm/arsnova/entities/DbUser.java
+++ b/src/main/java/de/thm/arsnova/entities/DbUser.java
@@ -17,6 +17,9 @@
  */
 package de.thm.arsnova.entities;
 
+/**
+ * A user account for ARSnova's own registration and login process.
+ */
 public class DbUser {
 	private String id;
 	private String rev;
diff --git a/src/main/java/de/thm/arsnova/entities/Feedback.java b/src/main/java/de/thm/arsnova/entities/Feedback.java
index e2949c913..102002ac8 100644
--- a/src/main/java/de/thm/arsnova/entities/Feedback.java
+++ b/src/main/java/de/thm/arsnova/entities/Feedback.java
@@ -20,6 +20,9 @@ package de.thm.arsnova.entities;
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * The feedback values of a single session.
+ */
 public class Feedback {
 	public static final int MIN_FEEDBACK_TYPE = 0;
 	public static final int MAX_FEEDBACK_TYPE = 3;
diff --git a/src/main/java/de/thm/arsnova/entities/InterposedQuestion.java b/src/main/java/de/thm/arsnova/entities/InterposedQuestion.java
index ce9cc6adb..807297687 100644
--- a/src/main/java/de/thm/arsnova/entities/InterposedQuestion.java
+++ b/src/main/java/de/thm/arsnova/entities/InterposedQuestion.java
@@ -19,6 +19,9 @@ package de.thm.arsnova.entities;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
+/**
+ * A question the user is asking the teacher. Also known as feedback or audience question.
+ */
 public class InterposedQuestion {
 
 	private String _id;
diff --git a/src/main/java/de/thm/arsnova/entities/InterposedReadingCount.java b/src/main/java/de/thm/arsnova/entities/InterposedReadingCount.java
index d6550faa1..179cc1b4b 100644
--- a/src/main/java/de/thm/arsnova/entities/InterposedReadingCount.java
+++ b/src/main/java/de/thm/arsnova/entities/InterposedReadingCount.java
@@ -17,6 +17,9 @@
  */
 package de.thm.arsnova.entities;
 
+/**
+ * Wrapper class for counting read and unread interposed questions for a session or a single user.
+ */
 public class InterposedReadingCount {
 
 	private int read;
diff --git a/src/main/java/de/thm/arsnova/entities/LearningProgressOptions.java b/src/main/java/de/thm/arsnova/entities/LearningProgressOptions.java
index f51d77aea..fcde16cf3 100644
--- a/src/main/java/de/thm/arsnova/entities/LearningProgressOptions.java
+++ b/src/main/java/de/thm/arsnova/entities/LearningProgressOptions.java
@@ -17,6 +17,9 @@
  */
 package de.thm.arsnova.entities;
 
+/**
+ * A session's settings regarding the calculation of the learning progress.
+ */
 public class LearningProgressOptions {
 
 	private String type = "questions";
diff --git a/src/main/java/de/thm/arsnova/entities/LoggedIn.java b/src/main/java/de/thm/arsnova/entities/LoggedIn.java
index 796935621..213f37c69 100644
--- a/src/main/java/de/thm/arsnova/entities/LoggedIn.java
+++ b/src/main/java/de/thm/arsnova/entities/LoggedIn.java
@@ -20,6 +20,9 @@ package de.thm.arsnova.entities;
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * Once a user joins a session, this class is used to identify a returning user.
+ */
 public class LoggedIn {
 
 	private String _id;
diff --git a/src/main/java/de/thm/arsnova/entities/PossibleAnswer.java b/src/main/java/de/thm/arsnova/entities/PossibleAnswer.java
index b6648fbd5..f66842389 100644
--- a/src/main/java/de/thm/arsnova/entities/PossibleAnswer.java
+++ b/src/main/java/de/thm/arsnova/entities/PossibleAnswer.java
@@ -17,6 +17,9 @@
  */
 package de.thm.arsnova.entities;
 
+/**
+ * This class represents an answer option of a question.
+ */
 public class PossibleAnswer {
 
 	private String id;
diff --git a/src/main/java/de/thm/arsnova/entities/Question.java b/src/main/java/de/thm/arsnova/entities/Question.java
index 6a87f338f..2f449a15c 100644
--- a/src/main/java/de/thm/arsnova/entities/Question.java
+++ b/src/main/java/de/thm/arsnova/entities/Question.java
@@ -20,6 +20,9 @@ package de.thm.arsnova.entities;
 import java.util.Date;
 import java.util.List;
 
+/**
+ * A question the teacher is asking.
+ */
 public class Question {
 
 	private String type;
diff --git a/src/main/java/de/thm/arsnova/entities/ServiceDescription.java b/src/main/java/de/thm/arsnova/entities/ServiceDescription.java
index 6d37ad730..1f756cfa5 100644
--- a/src/main/java/de/thm/arsnova/entities/ServiceDescription.java
+++ b/src/main/java/de/thm/arsnova/entities/ServiceDescription.java
@@ -17,6 +17,9 @@
  */
 package de.thm.arsnova.entities;
 
+/**
+ * A login service description. For example, this class is used to display the login buttons in ARSnova mobile.
+ */
 public class ServiceDescription {
 	private String id;
 	private String name;
diff --git a/src/main/java/de/thm/arsnova/entities/Session.java b/src/main/java/de/thm/arsnova/entities/Session.java
index 61cd50cfa..5994c219a 100644
--- a/src/main/java/de/thm/arsnova/entities/Session.java
+++ b/src/main/java/de/thm/arsnova/entities/Session.java
@@ -22,6 +22,9 @@ import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
+/**
+ * Represents an ARSnova session.
+ */
 public class Session implements Serializable {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/entities/SessionFeature.java b/src/main/java/de/thm/arsnova/entities/SessionFeature.java
index 4f2879f58..b8f59b38a 100644
--- a/src/main/java/de/thm/arsnova/entities/SessionFeature.java
+++ b/src/main/java/de/thm/arsnova/entities/SessionFeature.java
@@ -17,6 +17,9 @@
  */
 package de.thm.arsnova.entities;
 
+/**
+ * Contains fields that describe which specific feature is activated for a session.
+ */
 public class SessionFeature {
 
 	private boolean jitt = true;
diff --git a/src/main/java/de/thm/arsnova/entities/SessionInfo.java b/src/main/java/de/thm/arsnova/entities/SessionInfo.java
index c83d21d1c..9ef283b9f 100644
--- a/src/main/java/de/thm/arsnova/entities/SessionInfo.java
+++ b/src/main/java/de/thm/arsnova/entities/SessionInfo.java
@@ -20,6 +20,10 @@ package de.thm.arsnova.entities;
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * Summary information of a specific session. For example, this is used to display list entries of 'my sessions' as well
+ * as 'my visited sessions'.
+ */
 public class SessionInfo {
 
 	private String name;
diff --git a/src/main/java/de/thm/arsnova/entities/SortOrder.java b/src/main/java/de/thm/arsnova/entities/SortOrder.java
index f6356f131..7eb83a1e7 100644
--- a/src/main/java/de/thm/arsnova/entities/SortOrder.java
+++ b/src/main/java/de/thm/arsnova/entities/SortOrder.java
@@ -19,6 +19,9 @@ package de.thm.arsnova.entities;
 
 import java.util.List;
 
+/**
+ * Defines how a question list should be sorted.
+ */
 public class SortOrder {
 
 	private String sessionId;
diff --git a/src/main/java/de/thm/arsnova/entities/Statistics.java b/src/main/java/de/thm/arsnova/entities/Statistics.java
index 1caa6a18c..919e24234 100644
--- a/src/main/java/de/thm/arsnova/entities/Statistics.java
+++ b/src/main/java/de/thm/arsnova/entities/Statistics.java
@@ -17,6 +17,9 @@
  */
 package de.thm.arsnova.entities;
 
+/**
+ * Collection of several statistics about ARSnova.
+ */
 public class Statistics {
 
 	private int answers;
diff --git a/src/main/java/de/thm/arsnova/entities/User.java b/src/main/java/de/thm/arsnova/entities/User.java
index 710f909d2..f7bf65ad8 100644
--- a/src/main/java/de/thm/arsnova/entities/User.java
+++ b/src/main/java/de/thm/arsnova/entities/User.java
@@ -28,6 +28,9 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio
 
 import de.thm.arsnova.services.UserSessionService;
 
+/**
+ * Represents a user.
+ */
 public class User implements Serializable {
 	public static final String GOOGLE = "google";
 	public static final String TWITTER = "twitter";
diff --git a/src/main/java/de/thm/arsnova/entities/VisitedSession.java b/src/main/java/de/thm/arsnova/entities/VisitedSession.java
index e5af42dfa..47e961357 100644
--- a/src/main/java/de/thm/arsnova/entities/VisitedSession.java
+++ b/src/main/java/de/thm/arsnova/entities/VisitedSession.java
@@ -17,7 +17,9 @@
  */
 package de.thm.arsnova.entities;
 
-
+/**
+ * A session a user has visited previously.
+ */
 public class VisitedSession {
 	private String _id;
 	private String name;
diff --git a/src/main/java/de/thm/arsnova/entities/package-info.java b/src/main/java/de/thm/arsnova/entities/package-info.java
index 97e2a5dae..ed8a4656b 100644
--- a/src/main/java/de/thm/arsnova/entities/package-info.java
+++ b/src/main/java/de/thm/arsnova/entities/package-info.java
@@ -1 +1,4 @@
+/**
+ * Classes to translate objects to and from JSON
+ */
 package de.thm.arsnova.entities;
diff --git a/src/main/java/de/thm/arsnova/entities/transport/Answer.java b/src/main/java/de/thm/arsnova/entities/transport/Answer.java
index 7bc7e8b43..dcc884721 100644
--- a/src/main/java/de/thm/arsnova/entities/transport/Answer.java
+++ b/src/main/java/de/thm/arsnova/entities/transport/Answer.java
@@ -24,6 +24,9 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.User;
 
+/**
+ * A user's answer to a question.
+ */
 @JsonInclude(JsonInclude.Include.NON_DEFAULT)
 public class Answer {
 
diff --git a/src/main/java/de/thm/arsnova/entities/transport/AnswerQueueElement.java b/src/main/java/de/thm/arsnova/entities/transport/AnswerQueueElement.java
index a47f9e7f9..d8b987ad4 100644
--- a/src/main/java/de/thm/arsnova/entities/transport/AnswerQueueElement.java
+++ b/src/main/java/de/thm/arsnova/entities/transport/AnswerQueueElement.java
@@ -22,6 +22,10 @@ import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 import de.thm.arsnova.entities.User;
 
+/**
+ * An answer that is about to get saved in the database. Answers are not saved immediately, they are instead stored
+ * in a queue that is cleared at specific intervals.
+ */
 public class AnswerQueueElement {
 
 	private final Session session;
diff --git a/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java b/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java
index 3b223628f..6ce7606c3 100644
--- a/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java
+++ b/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java
@@ -24,6 +24,9 @@ import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 import de.thm.arsnova.entities.User;
 
+/**
+ * This class is used to allow the import and export of a session.
+ */
 public class ImportExportSession {
 
 	private ImportExportSesssion session;
diff --git a/src/main/java/de/thm/arsnova/entities/transport/InterposedQuestion.java b/src/main/java/de/thm/arsnova/entities/transport/InterposedQuestion.java
index 692ddf955..7cf960a08 100644
--- a/src/main/java/de/thm/arsnova/entities/transport/InterposedQuestion.java
+++ b/src/main/java/de/thm/arsnova/entities/transport/InterposedQuestion.java
@@ -20,6 +20,9 @@ package de.thm.arsnova.entities.transport;
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * A question a student is asking. Also known as feedback or audience question.
+ */
 public class InterposedQuestion {
 
 	private String id;
diff --git a/src/main/java/de/thm/arsnova/entities/transport/LearningProgressOptions.java b/src/main/java/de/thm/arsnova/entities/transport/LearningProgressOptions.java
index 081bc4fac..be5ccdf79 100644
--- a/src/main/java/de/thm/arsnova/entities/transport/LearningProgressOptions.java
+++ b/src/main/java/de/thm/arsnova/entities/transport/LearningProgressOptions.java
@@ -17,6 +17,9 @@
  */
 package de.thm.arsnova.entities.transport;
 
+/**
+ * A session's settings regarding the calculation of the learning progress.
+ */
 public class LearningProgressOptions {
 
 	private String sessionKeyword;
diff --git a/src/main/java/de/thm/arsnova/entities/transport/LearningProgressValues.java b/src/main/java/de/thm/arsnova/entities/transport/LearningProgressValues.java
index 554f793a3..22dc4ac87 100644
--- a/src/main/java/de/thm/arsnova/entities/transport/LearningProgressValues.java
+++ b/src/main/java/de/thm/arsnova/entities/transport/LearningProgressValues.java
@@ -17,6 +17,9 @@
  */
 package de.thm.arsnova.entities.transport;
 
+/**
+ * The calculated learning progress along with meta-data.
+ */
 public class LearningProgressValues {
 
 	private int courseProgress;
diff --git a/src/main/java/de/thm/arsnova/entities/transport/package-info.java b/src/main/java/de/thm/arsnova/entities/transport/package-info.java
index accb5a5a2..a6920b7c8 100644
--- a/src/main/java/de/thm/arsnova/entities/transport/package-info.java
+++ b/src/main/java/de/thm/arsnova/entities/transport/package-info.java
@@ -1 +1,7 @@
+/**
+ * Contains classes similar to regular entities, but with a reduced set of properties.
+ *
+ * Since sometimes only a subset of properties are needed, sending the whole entity is a waste of bandwith. Therefore,
+ * entities optimized for data transport are located here.
+ */
 package de.thm.arsnova.entities.transport;
diff --git a/src/main/java/de/thm/arsnova/events/ChangeLearningProgressEvent.java b/src/main/java/de/thm/arsnova/events/ChangeLearningProgressEvent.java
index 418711c26..57bc07686 100644
--- a/src/main/java/de/thm/arsnova/events/ChangeLearningProgressEvent.java
+++ b/src/main/java/de/thm/arsnova/events/ChangeLearningProgressEvent.java
@@ -19,6 +19,9 @@ package de.thm.arsnova.events;
 
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever a learning progress related value changes.
+ */
 public class ChangeLearningProgressEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/DeleteAllLectureAnswersEvent.java b/src/main/java/de/thm/arsnova/events/DeleteAllLectureAnswersEvent.java
index 132f2f450..f7ab96dd8 100644
--- a/src/main/java/de/thm/arsnova/events/DeleteAllLectureAnswersEvent.java
+++ b/src/main/java/de/thm/arsnova/events/DeleteAllLectureAnswersEvent.java
@@ -19,6 +19,9 @@ package de.thm.arsnova.events;
 
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever all answers of all lecture questions of a session are deleted.
+ */
 public class DeleteAllLectureAnswersEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/DeleteAllPreparationAnswersEvent.java b/src/main/java/de/thm/arsnova/events/DeleteAllPreparationAnswersEvent.java
index 4c823f768..ad7739791 100644
--- a/src/main/java/de/thm/arsnova/events/DeleteAllPreparationAnswersEvent.java
+++ b/src/main/java/de/thm/arsnova/events/DeleteAllPreparationAnswersEvent.java
@@ -19,6 +19,9 @@ package de.thm.arsnova.events;
 
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever all answers of all preparation questions of a session are deleted.
+ */
 public class DeleteAllPreparationAnswersEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsAnswersEvent.java b/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsAnswersEvent.java
index 6ac6683c4..28ce03cfa 100644
--- a/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsAnswersEvent.java
+++ b/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsAnswersEvent.java
@@ -19,6 +19,9 @@ package de.thm.arsnova.events;
 
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever all answers of all questions of a session are deleted.
+ */
 public class DeleteAllQuestionsAnswersEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsEvent.java b/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsEvent.java
index e0bb0421f..03ece7d53 100644
--- a/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsEvent.java
+++ b/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsEvent.java
@@ -19,6 +19,10 @@ package de.thm.arsnova.events;
 
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever all questions of a session are deleted. Note that this implies that all answers are deleted as well,
+ * even though the specific answer events are not fired.
+ */
 public class DeleteAllQuestionsEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/DeleteAnswerEvent.java b/src/main/java/de/thm/arsnova/events/DeleteAnswerEvent.java
index 02ed5a9c0..5480b5c39 100644
--- a/src/main/java/de/thm/arsnova/events/DeleteAnswerEvent.java
+++ b/src/main/java/de/thm/arsnova/events/DeleteAnswerEvent.java
@@ -20,6 +20,9 @@ package de.thm.arsnova.events;
 import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever a single answer is deleted.
+ */
 public class DeleteAnswerEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/DeleteFeedbackForSessionsEvent.java b/src/main/java/de/thm/arsnova/events/DeleteFeedbackForSessionsEvent.java
index 857e59374..54e233819 100644
--- a/src/main/java/de/thm/arsnova/events/DeleteFeedbackForSessionsEvent.java
+++ b/src/main/java/de/thm/arsnova/events/DeleteFeedbackForSessionsEvent.java
@@ -22,6 +22,9 @@ import java.util.Set;
 import de.thm.arsnova.entities.Session;
 import de.thm.arsnova.entities.User;
 
+/**
+ * Fires whenever the feedback of a specific user has been reset.
+ */
 public class DeleteFeedbackForSessionsEvent extends NovaEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/DeleteInterposedQuestionEvent.java b/src/main/java/de/thm/arsnova/events/DeleteInterposedQuestionEvent.java
index a0dbfdef4..6daca8979 100644
--- a/src/main/java/de/thm/arsnova/events/DeleteInterposedQuestionEvent.java
+++ b/src/main/java/de/thm/arsnova/events/DeleteInterposedQuestionEvent.java
@@ -20,6 +20,9 @@ package de.thm.arsnova.events;
 import de.thm.arsnova.entities.InterposedQuestion;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever an interposed question is deleted.
+ */
 public class DeleteInterposedQuestionEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/DeleteQuestionEvent.java b/src/main/java/de/thm/arsnova/events/DeleteQuestionEvent.java
index e92f2e6a1..37e4ada10 100644
--- a/src/main/java/de/thm/arsnova/events/DeleteQuestionEvent.java
+++ b/src/main/java/de/thm/arsnova/events/DeleteQuestionEvent.java
@@ -20,6 +20,9 @@ package de.thm.arsnova.events;
 import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever a question is deleted.
+ */
 public class DeleteQuestionEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/DeleteSessionEvent.java b/src/main/java/de/thm/arsnova/events/DeleteSessionEvent.java
index a4eee9df2..2ad03793e 100644
--- a/src/main/java/de/thm/arsnova/events/DeleteSessionEvent.java
+++ b/src/main/java/de/thm/arsnova/events/DeleteSessionEvent.java
@@ -19,6 +19,10 @@ package de.thm.arsnova.events;
 
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever a session is deleted. Note that this implies that all related data such as interposed questions,
+ * lecturer questions, and answers are deleted as well, even though those events are not fired.
+ */
 public class DeleteSessionEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/LockQuestionEvent.java b/src/main/java/de/thm/arsnova/events/LockQuestionEvent.java
index 72d1239b8..c25175308 100644
--- a/src/main/java/de/thm/arsnova/events/LockQuestionEvent.java
+++ b/src/main/java/de/thm/arsnova/events/LockQuestionEvent.java
@@ -20,6 +20,9 @@ package de.thm.arsnova.events;
 import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever a question is disabled, i.e., it is hidden from students.
+ */
 public class LockQuestionEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/LockQuestionsEvent.java b/src/main/java/de/thm/arsnova/events/LockQuestionsEvent.java
index 0b00e9b6d..0d382bbe1 100644
--- a/src/main/java/de/thm/arsnova/events/LockQuestionsEvent.java
+++ b/src/main/java/de/thm/arsnova/events/LockQuestionsEvent.java
@@ -22,6 +22,9 @@ import java.util.List;
 import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever a set of questions are disabled, i.e., they are hidden from students.
+ */
 public class LockQuestionsEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/LockVoteEvent.java b/src/main/java/de/thm/arsnova/events/LockVoteEvent.java
index 8a695a109..11167ff23 100644
--- a/src/main/java/de/thm/arsnova/events/LockVoteEvent.java
+++ b/src/main/java/de/thm/arsnova/events/LockVoteEvent.java
@@ -22,6 +22,9 @@ import java.util.HashMap;
 import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever voting on a question is disabled.
+ */
 public class LockVoteEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/LockVotesEvent.java b/src/main/java/de/thm/arsnova/events/LockVotesEvent.java
index 2f42f00a1..58a47610c 100644
--- a/src/main/java/de/thm/arsnova/events/LockVotesEvent.java
+++ b/src/main/java/de/thm/arsnova/events/LockVotesEvent.java
@@ -22,6 +22,9 @@ import java.util.List;
 import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever voting of multiple questions is disabled.
+ */
 public class LockVotesEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/NewAnswerEvent.java b/src/main/java/de/thm/arsnova/events/NewAnswerEvent.java
index 624258732..760ca29fb 100644
--- a/src/main/java/de/thm/arsnova/events/NewAnswerEvent.java
+++ b/src/main/java/de/thm/arsnova/events/NewAnswerEvent.java
@@ -22,6 +22,9 @@ import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 import de.thm.arsnova.entities.User;
 
+/**
+ * Fires whenever a new answer is added.
+ */
 public class NewAnswerEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/NewFeedbackEvent.java b/src/main/java/de/thm/arsnova/events/NewFeedbackEvent.java
index c06f84cac..1aa43cbcb 100644
--- a/src/main/java/de/thm/arsnova/events/NewFeedbackEvent.java
+++ b/src/main/java/de/thm/arsnova/events/NewFeedbackEvent.java
@@ -19,6 +19,9 @@ package de.thm.arsnova.events;
 
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever the feedback changes.
+ */
 public class NewFeedbackEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/NewInterposedQuestionEvent.java b/src/main/java/de/thm/arsnova/events/NewInterposedQuestionEvent.java
index 2d0fbfcee..f5e45a02e 100644
--- a/src/main/java/de/thm/arsnova/events/NewInterposedQuestionEvent.java
+++ b/src/main/java/de/thm/arsnova/events/NewInterposedQuestionEvent.java
@@ -20,6 +20,9 @@ package de.thm.arsnova.events;
 import de.thm.arsnova.entities.InterposedQuestion;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever a new interposed (aka. feedback or audience) question is added.
+ */
 public class NewInterposedQuestionEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/NewQuestionEvent.java b/src/main/java/de/thm/arsnova/events/NewQuestionEvent.java
index 898104edc..7996993ac 100644
--- a/src/main/java/de/thm/arsnova/events/NewQuestionEvent.java
+++ b/src/main/java/de/thm/arsnova/events/NewQuestionEvent.java
@@ -20,6 +20,9 @@ package de.thm.arsnova.events;
 import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever a new question is added.
+ */
 public class NewQuestionEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/NewSessionEvent.java b/src/main/java/de/thm/arsnova/events/NewSessionEvent.java
index 1565443bf..510bdee80 100644
--- a/src/main/java/de/thm/arsnova/events/NewSessionEvent.java
+++ b/src/main/java/de/thm/arsnova/events/NewSessionEvent.java
@@ -19,6 +19,9 @@ package de.thm.arsnova.events;
 
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever a new session is created.
+ */
 public class NewSessionEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/NovaEvent.java b/src/main/java/de/thm/arsnova/events/NovaEvent.java
index 47117d8d6..1ceb0fd89 100644
--- a/src/main/java/de/thm/arsnova/events/NovaEvent.java
+++ b/src/main/java/de/thm/arsnova/events/NovaEvent.java
@@ -19,6 +19,9 @@ package de.thm.arsnova.events;
 
 import org.springframework.context.ApplicationEvent;
 
+/**
+ * Base class of an ARSnova event.
+ */
 public abstract class NovaEvent extends ApplicationEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/NovaEventVisitor.java b/src/main/java/de/thm/arsnova/events/NovaEventVisitor.java
index eba55e64e..216c38f8e 100644
--- a/src/main/java/de/thm/arsnova/events/NovaEventVisitor.java
+++ b/src/main/java/de/thm/arsnova/events/NovaEventVisitor.java
@@ -17,6 +17,9 @@
  */
 package de.thm.arsnova.events;
 
+/**
+ * Listeners wanting to receive ARSnova's internal events should implement this interface.
+ */
 public interface NovaEventVisitor {
 
 	void visit(NewInterposedQuestionEvent newInterposedQuestionEvent);
diff --git a/src/main/java/de/thm/arsnova/events/PiRoundCancelEvent.java b/src/main/java/de/thm/arsnova/events/PiRoundCancelEvent.java
index adca0cdfd..d40a6e17a 100644
--- a/src/main/java/de/thm/arsnova/events/PiRoundCancelEvent.java
+++ b/src/main/java/de/thm/arsnova/events/PiRoundCancelEvent.java
@@ -20,6 +20,9 @@ package de.thm.arsnova.events;
 import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever a peer instruction round is canceled.
+ */
 public class PiRoundCancelEvent extends PiRoundEndEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/PiRoundDelayedStartEvent.java b/src/main/java/de/thm/arsnova/events/PiRoundDelayedStartEvent.java
index db39ab101..df301caa2 100644
--- a/src/main/java/de/thm/arsnova/events/PiRoundDelayedStartEvent.java
+++ b/src/main/java/de/thm/arsnova/events/PiRoundDelayedStartEvent.java
@@ -22,6 +22,10 @@ import java.util.HashMap;
 import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever a delayed peer instruction round is initiated. The delayed part denotes that this round might not
+ * have been started yet.
+ */
 public class PiRoundDelayedStartEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java b/src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java
index 2a26f2716..16344c6ac 100644
--- a/src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java
+++ b/src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java
@@ -22,6 +22,9 @@ import java.util.HashMap;
 import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever a peer instruction round has ended.
+ */
 public class PiRoundEndEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java b/src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java
index 0215f9b2e..626fd0e1f 100644
--- a/src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java
+++ b/src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java
@@ -22,6 +22,9 @@ import java.util.HashMap;
 import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever a peer instruction round is reset.
+ */
 public class PiRoundResetEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/SessionEvent.java b/src/main/java/de/thm/arsnova/events/SessionEvent.java
index 2c34956c0..9536db104 100644
--- a/src/main/java/de/thm/arsnova/events/SessionEvent.java
+++ b/src/main/java/de/thm/arsnova/events/SessionEvent.java
@@ -19,6 +19,9 @@ package de.thm.arsnova.events;
 
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Base class for all {@link NovaEvent}s that are related to a session.
+ */
 public abstract class SessionEvent extends NovaEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/StatusSessionEvent.java b/src/main/java/de/thm/arsnova/events/StatusSessionEvent.java
index 19034dc9a..2a2baf65e 100644
--- a/src/main/java/de/thm/arsnova/events/StatusSessionEvent.java
+++ b/src/main/java/de/thm/arsnova/events/StatusSessionEvent.java
@@ -19,6 +19,9 @@ package de.thm.arsnova.events;
 
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever the status of a session changes, i.e., it is enabled or disabled.
+ */
 public class StatusSessionEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/UnlockQuestionEvent.java b/src/main/java/de/thm/arsnova/events/UnlockQuestionEvent.java
index acd1b6d0c..272f26f6f 100644
--- a/src/main/java/de/thm/arsnova/events/UnlockQuestionEvent.java
+++ b/src/main/java/de/thm/arsnova/events/UnlockQuestionEvent.java
@@ -20,6 +20,9 @@ package de.thm.arsnova.events;
 import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever a question is enabled, i.e., it becomes visible to students.
+ */
 public class UnlockQuestionEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/UnlockQuestionsEvent.java b/src/main/java/de/thm/arsnova/events/UnlockQuestionsEvent.java
index 5f1e4617e..d8b6a5363 100644
--- a/src/main/java/de/thm/arsnova/events/UnlockQuestionsEvent.java
+++ b/src/main/java/de/thm/arsnova/events/UnlockQuestionsEvent.java
@@ -22,6 +22,9 @@ import java.util.List;
 import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever a set of questions are enabled, i.e., they become visible to students.
+ */
 public class UnlockQuestionsEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java b/src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java
index eb8441179..6eb0af7df 100644
--- a/src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java
+++ b/src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java
@@ -22,6 +22,9 @@ import java.util.HashMap;
 import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever voting on a question is enabled.
+ */
 public class UnlockVoteEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/UnlockVotesEvent.java b/src/main/java/de/thm/arsnova/events/UnlockVotesEvent.java
index 90ce5127b..231fef7b8 100644
--- a/src/main/java/de/thm/arsnova/events/UnlockVotesEvent.java
+++ b/src/main/java/de/thm/arsnova/events/UnlockVotesEvent.java
@@ -22,6 +22,9 @@ import java.util.List;
 import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.Session;
 
+/**
+ * Fires whenever voting of multiple questions is enabled.
+ */
 public class UnlockVotesEvent extends SessionEvent {
 
 	private static final long serialVersionUID = 1L;
diff --git a/src/main/java/de/thm/arsnova/events/package-info.java b/src/main/java/de/thm/arsnova/events/package-info.java
index acecfa4e5..838fc4cd6 100644
--- a/src/main/java/de/thm/arsnova/events/package-info.java
+++ b/src/main/java/de/thm/arsnova/events/package-info.java
@@ -1,5 +1,4 @@
 /**
- * @author Christoph Thelen
- *
+ * ARSnova's internal event system
  */
 package de.thm.arsnova.events;
diff --git a/src/main/java/de/thm/arsnova/exceptions/BadRequestException.java b/src/main/java/de/thm/arsnova/exceptions/BadRequestException.java
index f2289bf51..c9b728742 100644
--- a/src/main/java/de/thm/arsnova/exceptions/BadRequestException.java
+++ b/src/main/java/de/thm/arsnova/exceptions/BadRequestException.java
@@ -1,5 +1,8 @@
 package de.thm.arsnova.exceptions;
 
+/**
+ * Bad Request means status code 400.
+ */
 public class BadRequestException extends RuntimeException {
 	private static final long serialVersionUID = 1L;
 }
diff --git a/src/main/java/de/thm/arsnova/exceptions/ForbiddenException.java b/src/main/java/de/thm/arsnova/exceptions/ForbiddenException.java
index 8f1f74d51..05ed5bf3b 100644
--- a/src/main/java/de/thm/arsnova/exceptions/ForbiddenException.java
+++ b/src/main/java/de/thm/arsnova/exceptions/ForbiddenException.java
@@ -1,5 +1,8 @@
 package de.thm.arsnova.exceptions;
 
+/**
+ * Forbidden means status code 403.
+ */
 public class ForbiddenException extends RuntimeException {
 	private static final long serialVersionUID = 1L;
 }
diff --git a/src/main/java/de/thm/arsnova/exceptions/NoContentException.java b/src/main/java/de/thm/arsnova/exceptions/NoContentException.java
index adb0e1140..f0de3c46c 100644
--- a/src/main/java/de/thm/arsnova/exceptions/NoContentException.java
+++ b/src/main/java/de/thm/arsnova/exceptions/NoContentException.java
@@ -1,5 +1,8 @@
 package de.thm.arsnova.exceptions;
 
+/**
+ * No Content means status code 204.
+ */
 public class NoContentException extends RuntimeException {
 	private static final long serialVersionUID = 1L;
 }
diff --git a/src/main/java/de/thm/arsnova/exceptions/NotFoundException.java b/src/main/java/de/thm/arsnova/exceptions/NotFoundException.java
index caca267d4..0937ebde4 100644
--- a/src/main/java/de/thm/arsnova/exceptions/NotFoundException.java
+++ b/src/main/java/de/thm/arsnova/exceptions/NotFoundException.java
@@ -1,5 +1,8 @@
 package de.thm.arsnova.exceptions;
 
+/**
+ * Not Found means status code 404.
+ */
 public class NotFoundException extends RuntimeException {
 	private static final long serialVersionUID = 1L;
 }
diff --git a/src/main/java/de/thm/arsnova/exceptions/NotImplementedException.java b/src/main/java/de/thm/arsnova/exceptions/NotImplementedException.java
index 3e0552197..ed5e30f65 100644
--- a/src/main/java/de/thm/arsnova/exceptions/NotImplementedException.java
+++ b/src/main/java/de/thm/arsnova/exceptions/NotImplementedException.java
@@ -1,5 +1,8 @@
 package de.thm.arsnova.exceptions;
 
+/**
+ * Not Implemented means status code 501.
+ */
 public class NotImplementedException extends RuntimeException {
 	private static final long serialVersionUID = 1L;
 }
diff --git a/src/main/java/de/thm/arsnova/exceptions/PayloadTooLargeException.java b/src/main/java/de/thm/arsnova/exceptions/PayloadTooLargeException.java
index 756d8300c..6562a149b 100644
--- a/src/main/java/de/thm/arsnova/exceptions/PayloadTooLargeException.java
+++ b/src/main/java/de/thm/arsnova/exceptions/PayloadTooLargeException.java
@@ -1,5 +1,8 @@
 package de.thm.arsnova.exceptions;
 
+/**
+ * Payload Too Large means status code 413.
+ */
 public class PayloadTooLargeException extends RuntimeException {
 	private static final long serialVersionUID = 1L;
 }
diff --git a/src/main/java/de/thm/arsnova/exceptions/PreconditionFailedException.java b/src/main/java/de/thm/arsnova/exceptions/PreconditionFailedException.java
index 827f0c5bf..423b3a4f8 100644
--- a/src/main/java/de/thm/arsnova/exceptions/PreconditionFailedException.java
+++ b/src/main/java/de/thm/arsnova/exceptions/PreconditionFailedException.java
@@ -1,5 +1,8 @@
 package de.thm.arsnova.exceptions;
 
+/**
+ * Precondition Failed means status code 412.
+ */
 public class PreconditionFailedException extends RuntimeException {
 	private static final long serialVersionUID = 1L;
 }
diff --git a/src/main/java/de/thm/arsnova/exceptions/UnauthorizedException.java b/src/main/java/de/thm/arsnova/exceptions/UnauthorizedException.java
index 4b3e94984..7a4c3dc8a 100644
--- a/src/main/java/de/thm/arsnova/exceptions/UnauthorizedException.java
+++ b/src/main/java/de/thm/arsnova/exceptions/UnauthorizedException.java
@@ -1,5 +1,8 @@
 package de.thm.arsnova.exceptions;
 
+/**
+ * Unauthorized means status code 401.
+ */
 public class UnauthorizedException extends RuntimeException {
 	private static final long serialVersionUID = 1L;
 }
diff --git a/src/main/java/de/thm/arsnova/exceptions/package-info.java b/src/main/java/de/thm/arsnova/exceptions/package-info.java
index 8eb89c801..ea831c868 100644
--- a/src/main/java/de/thm/arsnova/exceptions/package-info.java
+++ b/src/main/java/de/thm/arsnova/exceptions/package-info.java
@@ -1 +1,4 @@
+/**
+ * Contains exceptions used to return HTTP status codes
+ */
 package de.thm.arsnova.exceptions;
diff --git a/src/main/java/de/thm/arsnova/package-info.java b/src/main/java/de/thm/arsnova/package-info.java
index b789ffca3..b0aeba268 100644
--- a/src/main/java/de/thm/arsnova/package-info.java
+++ b/src/main/java/de/thm/arsnova/package-info.java
@@ -1 +1,4 @@
+/**
+ * Miscellaneous classes and interfaces that do not fit in any of the given sub-packages
+ */
 package de.thm.arsnova;
diff --git a/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java b/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java
index 167d1dd06..488f890cc 100644
--- a/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java
+++ b/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java
@@ -36,6 +36,9 @@ import de.thm.arsnova.entities.Session;
 import de.thm.arsnova.entities.User;
 import de.thm.arsnova.exceptions.UnauthorizedException;
 
+/**
+ * Provides access control methods that can be used in annotations.
+ */
 public class ApplicationPermissionEvaluator implements PermissionEvaluator {
 
 	@Autowired
diff --git a/src/main/java/de/thm/arsnova/security/DbUserDetailsService.java b/src/main/java/de/thm/arsnova/security/DbUserDetailsService.java
index 0b55e0247..9eb476e8d 100644
--- a/src/main/java/de/thm/arsnova/security/DbUserDetailsService.java
+++ b/src/main/java/de/thm/arsnova/security/DbUserDetailsService.java
@@ -34,6 +34,9 @@ import org.springframework.stereotype.Service;
 import de.thm.arsnova.dao.IDatabaseDao;
 import de.thm.arsnova.entities.DbUser;
 
+/**
+ * Class to load a user based on the username.
+ */
 @Service
 public class DbUserDetailsService implements UserDetailsService {
 	@Autowired
diff --git a/src/main/java/de/thm/arsnova/services/FeedbackService.java b/src/main/java/de/thm/arsnova/services/FeedbackService.java
index 9fadfbd07..03112362a 100644
--- a/src/main/java/de/thm/arsnova/services/FeedbackService.java
+++ b/src/main/java/de/thm/arsnova/services/FeedbackService.java
@@ -42,6 +42,9 @@ import de.thm.arsnova.events.NewFeedbackEvent;
 import de.thm.arsnova.exceptions.NoContentException;
 import de.thm.arsnova.exceptions.NotFoundException;
 
+/**
+ * Performs all feedback related operations.
+ */
 @Service
 public class FeedbackService implements IFeedbackService, ApplicationEventPublisherAware {
 
diff --git a/src/main/java/de/thm/arsnova/services/IFeedbackService.java b/src/main/java/de/thm/arsnova/services/IFeedbackService.java
index 8fd8b679a..407f323fd 100644
--- a/src/main/java/de/thm/arsnova/services/IFeedbackService.java
+++ b/src/main/java/de/thm/arsnova/services/IFeedbackService.java
@@ -20,6 +20,9 @@ package de.thm.arsnova.services;
 import de.thm.arsnova.entities.Feedback;
 import de.thm.arsnova.entities.User;
 
+/**
+ * The functionality the feedback service should provide.
+ */
 public interface IFeedbackService {
 	void cleanFeedbackVotes();
 
diff --git a/src/main/java/de/thm/arsnova/services/IQuestionService.java b/src/main/java/de/thm/arsnova/services/IQuestionService.java
index 521fbd02f..0a2f1fce3 100644
--- a/src/main/java/de/thm/arsnova/services/IQuestionService.java
+++ b/src/main/java/de/thm/arsnova/services/IQuestionService.java
@@ -27,6 +27,9 @@ import de.thm.arsnova.entities.Question;
 import de.thm.arsnova.entities.SortOrder;
 import de.thm.arsnova.entities.User;
 
+/**
+ * The functionality the question service should provide.
+ */
 public interface IQuestionService {
 	Question saveQuestion(Question question);
 
diff --git a/src/main/java/de/thm/arsnova/services/ISessionService.java b/src/main/java/de/thm/arsnova/services/ISessionService.java
index a46d51a2a..ab4a395af 100644
--- a/src/main/java/de/thm/arsnova/services/ISessionService.java
+++ b/src/main/java/de/thm/arsnova/services/ISessionService.java
@@ -28,6 +28,9 @@ import de.thm.arsnova.entities.User;
 import de.thm.arsnova.entities.transport.ImportExportSession;
 import de.thm.arsnova.entities.transport.LearningProgressValues;
 
+/**
+ * The functionality the session service should provide.
+ */
 public interface ISessionService {
 	Session getSession(String keyword);
 
diff --git a/src/main/java/de/thm/arsnova/services/IStatisticsService.java b/src/main/java/de/thm/arsnova/services/IStatisticsService.java
index a2cbb1753..ca1b2df94 100644
--- a/src/main/java/de/thm/arsnova/services/IStatisticsService.java
+++ b/src/main/java/de/thm/arsnova/services/IStatisticsService.java
@@ -19,6 +19,9 @@ package de.thm.arsnova.services;
 
 import de.thm.arsnova.entities.Statistics;
 
+/**
+ * The functionality the statistics service should provide.
+ */
 public interface IStatisticsService {
 	Statistics getStatistics();
 }
diff --git a/src/main/java/de/thm/arsnova/services/IUserService.java b/src/main/java/de/thm/arsnova/services/IUserService.java
index 6428fb03d..4049a48ac 100644
--- a/src/main/java/de/thm/arsnova/services/IUserService.java
+++ b/src/main/java/de/thm/arsnova/services/IUserService.java
@@ -24,6 +24,9 @@ import java.util.UUID;
 import de.thm.arsnova.entities.DbUser;
 import de.thm.arsnova.entities.User;
 
+/**
+ * The functionality the user service should provide.
+ */
 public interface IUserService {
 	User getCurrentUser();
 
diff --git a/src/main/java/de/thm/arsnova/services/QuestionService.java b/src/main/java/de/thm/arsnova/services/QuestionService.java
index 103b9374b..450456526 100644
--- a/src/main/java/de/thm/arsnova/services/QuestionService.java
+++ b/src/main/java/de/thm/arsnova/services/QuestionService.java
@@ -74,6 +74,9 @@ import de.thm.arsnova.exceptions.ForbiddenException;
 import de.thm.arsnova.exceptions.NotFoundException;
 import de.thm.arsnova.exceptions.UnauthorizedException;
 
+/**
+ * Performs all question, interposed question, and answer related operations.
+ */
 @Service
 public class QuestionService implements IQuestionService, ApplicationEventPublisherAware {
 
diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java
index 01abb9275..f9a49bf2f 100644
--- a/src/main/java/de/thm/arsnova/services/SessionService.java
+++ b/src/main/java/de/thm/arsnova/services/SessionService.java
@@ -55,6 +55,9 @@ import de.thm.arsnova.exceptions.NotFoundException;
 import de.thm.arsnova.exceptions.PayloadTooLargeException;
 import de.thm.arsnova.exceptions.UnauthorizedException;
 
+/**
+ * Performs all session related operations.
+ */
 @Service
 public class SessionService implements ISessionService, ApplicationEventPublisherAware {
 
diff --git a/src/main/java/de/thm/arsnova/services/StatisticsService.java b/src/main/java/de/thm/arsnova/services/StatisticsService.java
index 979c03126..ace061a60 100644
--- a/src/main/java/de/thm/arsnova/services/StatisticsService.java
+++ b/src/main/java/de/thm/arsnova/services/StatisticsService.java
@@ -23,6 +23,9 @@ import org.springframework.stereotype.Service;
 import de.thm.arsnova.dao.IDatabaseDao;
 import de.thm.arsnova.entities.Statistics;
 
+/**
+ * Performs all statistics related operations.
+ */
 @Service
 public class StatisticsService implements IStatisticsService {
 
diff --git a/src/main/java/de/thm/arsnova/services/UserService.java b/src/main/java/de/thm/arsnova/services/UserService.java
index ced1cd28f..bf0777c9f 100644
--- a/src/main/java/de/thm/arsnova/services/UserService.java
+++ b/src/main/java/de/thm/arsnova/services/UserService.java
@@ -71,6 +71,9 @@ import de.thm.arsnova.exceptions.BadRequestException;
 import de.thm.arsnova.exceptions.NotFoundException;
 import de.thm.arsnova.exceptions.UnauthorizedException;
 
+/**
+ * Performs all user related operations.
+ */
 @Service
 public class UserService implements IUserService {
 
diff --git a/src/main/java/de/thm/arsnova/services/UserSessionService.java b/src/main/java/de/thm/arsnova/services/UserSessionService.java
index 56b7f7fb3..03df6b270 100644
--- a/src/main/java/de/thm/arsnova/services/UserSessionService.java
+++ b/src/main/java/de/thm/arsnova/services/UserSessionService.java
@@ -22,6 +22,9 @@ import java.util.UUID;
 import de.thm.arsnova.entities.Session;
 import de.thm.arsnova.entities.User;
 
+/**
+ * The functionality the user-session service should provide.
+ */
 public interface UserSessionService {
 
 	enum Role {
diff --git a/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java b/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java
index 9d18f826f..98f817773 100644
--- a/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java
@@ -27,6 +27,9 @@ import org.springframework.stereotype.Component;
 import de.thm.arsnova.entities.Session;
 import de.thm.arsnova.entities.User;
 
+/**
+ * This service is used to assign and check for a specific role.
+ */
 @Component
 @Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)
 public class UserSessionServiceImpl implements UserSessionService, Serializable {
diff --git a/src/main/java/de/thm/arsnova/services/package-info.java b/src/main/java/de/thm/arsnova/services/package-info.java
index ff6c1eba9..d87d15a84 100644
--- a/src/main/java/de/thm/arsnova/services/package-info.java
+++ b/src/main/java/de/thm/arsnova/services/package-info.java
@@ -1 +1,4 @@
+/**
+ * Classes and interfaces for the service layer
+ */
 package de.thm.arsnova.services;
diff --git a/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java b/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java
index bbed7ccef..b764d11f0 100644
--- a/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java
+++ b/src/main/java/de/thm/arsnova/socket/ARSnovaSocketIOServer.java
@@ -90,6 +90,9 @@ import de.thm.arsnova.socket.message.Feedback;
 import de.thm.arsnova.socket.message.Question;
 import de.thm.arsnova.socket.message.Session;
 
+/**
+ * Web socket implementation based on Socket.io.
+ */
 @Component
 public class ARSnovaSocketIOServer implements ARSnovaSocket, NovaEventVisitor {
 
diff --git a/src/main/java/de/thm/arsnova/socket/message/Feedback.java b/src/main/java/de/thm/arsnova/socket/message/Feedback.java
index 58ea04f77..b7ca3899b 100644
--- a/src/main/java/de/thm/arsnova/socket/message/Feedback.java
+++ b/src/main/java/de/thm/arsnova/socket/message/Feedback.java
@@ -17,6 +17,9 @@
  */
 package de.thm.arsnova.socket.message;
 
+/**
+ * The feedback values.
+ */
 public class Feedback {
 
 	private int value;
diff --git a/src/main/java/de/thm/arsnova/socket/message/Question.java b/src/main/java/de/thm/arsnova/socket/message/Question.java
index e47c72d12..048122186 100644
--- a/src/main/java/de/thm/arsnova/socket/message/Question.java
+++ b/src/main/java/de/thm/arsnova/socket/message/Question.java
@@ -17,6 +17,9 @@
  */
 package de.thm.arsnova.socket.message;
 
+/**
+ * Represents a question.
+ */
 public class Question {
 
 	private final String _id;
diff --git a/src/main/java/de/thm/arsnova/socket/message/Session.java b/src/main/java/de/thm/arsnova/socket/message/Session.java
index 83688e24d..15f49d7fe 100644
--- a/src/main/java/de/thm/arsnova/socket/message/Session.java
+++ b/src/main/java/de/thm/arsnova/socket/message/Session.java
@@ -17,6 +17,9 @@
  */
 package de.thm.arsnova.socket.message;
 
+/**
+ * Represents a session.
+ */
 public class Session {
 	private String keyword;
 
diff --git a/src/main/java/de/thm/arsnova/socket/message/package-info.java b/src/main/java/de/thm/arsnova/socket/message/package-info.java
index 8267a4040..98beea04a 100644
--- a/src/main/java/de/thm/arsnova/socket/message/package-info.java
+++ b/src/main/java/de/thm/arsnova/socket/message/package-info.java
@@ -1 +1,4 @@
+/**
+ * Contains classes that are used as web socket messages
+ */
 package de.thm.arsnova.socket.message;
diff --git a/src/main/java/de/thm/arsnova/socket/package-info.java b/src/main/java/de/thm/arsnova/socket/package-info.java
index 93c3360d8..d4f65e727 100644
--- a/src/main/java/de/thm/arsnova/socket/package-info.java
+++ b/src/main/java/de/thm/arsnova/socket/package-info.java
@@ -1 +1,4 @@
+/**
+ * Classes and interfaces for communication over web sockets
+ */
 package de.thm.arsnova.socket;
diff --git a/src/main/java/de/thm/arsnova/web/CacheControl.java b/src/main/java/de/thm/arsnova/web/CacheControl.java
index a391c980e..c11893b57 100644
--- a/src/main/java/de/thm/arsnova/web/CacheControl.java
+++ b/src/main/java/de/thm/arsnova/web/CacheControl.java
@@ -22,6 +22,9 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
+/**
+ * Allows specifying HTTP cache headers.
+ */
 @Target(ElementType.METHOD)
 @Retention(RetentionPolicy.RUNTIME)
 public @interface CacheControl {
diff --git a/src/main/java/de/thm/arsnova/web/CacheControlInterceptorHandler.java b/src/main/java/de/thm/arsnova/web/CacheControlInterceptorHandler.java
index 7546eb16d..7c721d6a7 100644
--- a/src/main/java/de/thm/arsnova/web/CacheControlInterceptorHandler.java
+++ b/src/main/java/de/thm/arsnova/web/CacheControlInterceptorHandler.java
@@ -24,6 +24,9 @@ import org.springframework.stereotype.Component;
 import org.springframework.web.method.HandlerMethod;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
 
+/**
+ * Adds caching headers to a HTTP request based on {@link CacheControl} annotation.
+ */
 @Component
 public class CacheControlInterceptorHandler extends HandlerInterceptorAdapter {
 
diff --git a/src/main/java/de/thm/arsnova/web/CorsFilter.java b/src/main/java/de/thm/arsnova/web/CorsFilter.java
index 49c65a346..a250689f2 100644
--- a/src/main/java/de/thm/arsnova/web/CorsFilter.java
+++ b/src/main/java/de/thm/arsnova/web/CorsFilter.java
@@ -27,6 +27,9 @@ import javax.servlet.http.HttpServletResponse;
 import org.springframework.stereotype.Component;
 import org.springframework.web.filter.OncePerRequestFilter;
 
+/**
+ * Sets response headers to allow CORS requests.
+ */
 @Component
 public class CorsFilter extends OncePerRequestFilter {
 
diff --git a/src/main/java/de/thm/arsnova/web/DeprecatedApi.java b/src/main/java/de/thm/arsnova/web/DeprecatedApi.java
index 763442d33..63db68586 100644
--- a/src/main/java/de/thm/arsnova/web/DeprecatedApi.java
+++ b/src/main/java/de/thm/arsnova/web/DeprecatedApi.java
@@ -22,6 +22,9 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
+/**
+ * Annotation to denote the deprecation of a controller method.
+ */
 @Target(ElementType.METHOD)
 @Retention(RetentionPolicy.RUNTIME)
 public @interface DeprecatedApi {
diff --git a/src/main/java/de/thm/arsnova/web/DeprecatedApiInterceptorHandler.java b/src/main/java/de/thm/arsnova/web/DeprecatedApiInterceptorHandler.java
index edbd54ccf..d7b7d8107 100644
--- a/src/main/java/de/thm/arsnova/web/DeprecatedApiInterceptorHandler.java
+++ b/src/main/java/de/thm/arsnova/web/DeprecatedApiInterceptorHandler.java
@@ -24,6 +24,10 @@ import org.springframework.stereotype.Component;
 import org.springframework.web.method.HandlerMethod;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
 
+/**
+ * Adds a "deprecated" header to any HTTP response that is served by a controller method with the {@link DeprecatedApi}
+ * annotation.
+ */
 @Component
 public class DeprecatedApiInterceptorHandler extends HandlerInterceptorAdapter {
 
diff --git a/src/main/java/de/thm/arsnova/web/package-info.java b/src/main/java/de/thm/arsnova/web/package-info.java
new file mode 100644
index 000000000..c22db2a22
--- /dev/null
+++ b/src/main/java/de/thm/arsnova/web/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * Contains HTTP related classes and interfaces
+ */
+package de.thm.arsnova.web;
-- 
GitLab