diff --git a/src/middlewares/files/createFile.ts b/src/middlewares/files/createFile.ts
index 05aec9161b3d70b8e8a5fbd9cfb608b47c0f494d..a49017a1fdcd89e3bc783782ba60c76892fb8408 100644
--- a/src/middlewares/files/createFile.ts
+++ b/src/middlewares/files/createFile.ts
@@ -1,8 +1,7 @@
 import { NextFunction, Request, Response } from "express";
-
-import { ErrorHandler } from "../utils/ErrorHandler";
-import File from "../../models/FileSchema";
 import fs from "fs";
+import File from "../../models/FileSchema";
+import { ErrorHandler } from "../utils/ErrorHandler";
 
 const createFile = () => async (
   req: Request,
@@ -10,6 +9,8 @@ const createFile = () => async (
   next: NextFunction
 ) => {
   try {
+    if (!req.file) throw new ErrorHandler(400, "File wasn't provided");
+
     const newFile = new File();
 
     newFile.originalName = req.file.originalname;
diff --git a/src/middlewares/files/imageFilter.ts b/src/middlewares/files/imageFilter.ts
index c8e2f40629a9e5f0235d4acfa130bd5993591edb..6ac4fb0bed324b595ed60266ffee0f4e86425c88 100644
--- a/src/middlewares/files/imageFilter.ts
+++ b/src/middlewares/files/imageFilter.ts
@@ -1,5 +1,5 @@
-import { ErrorHandler } from "../utils/ErrorHandler";
 import { FileFilterCallback } from "multer";
+import { ErrorHandler } from "../utils/ErrorHandler";
 
 export function imageFilter(
   req: Express.Request,
diff --git a/src/middlewares/term/getTerm.ts b/src/middlewares/term/getTerm.ts
index 8d9af82a58d22f21cdd826cef63b9ddb03fe1866..1df2a15bf0c1f81e525722d63e018344cd0ef3e1 100644
--- a/src/middlewares/term/getTerm.ts
+++ b/src/middlewares/term/getTerm.ts
@@ -1,11 +1,10 @@
 import { NextFunction, Request, Response } from "express";
-
 import Term from "../../models/TermSchema";
 
 /**
  * termId -> term
  */
-const getTerm = (sendBgFile = false) => async (
+const getTerm = () => async (
   req: Request,
   res: Response,
   next: NextFunction
@@ -20,7 +19,7 @@ const getTerm = (sendBgFile = false) => async (
         endDate: 1,
         deadline: 1,
         createDate: 1,
-        backgroundFile: sendBgFile ? 1 : 0,
+        backgroundFile: 1,
         members: { $elemMatch: { user: req.params.userId } },
       }
     )
diff --git a/src/middlewares/term/isBeforeDeadline.ts b/src/middlewares/term/isBeforeDeadline.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a832b78ae2b66351b57a26afa8be52aa2810e25e
--- /dev/null
+++ b/src/middlewares/term/isBeforeDeadline.ts
@@ -0,0 +1,18 @@
+import { NextFunction, Request, Response } from "express";
+
+const isBeforeDeadline = () => async (
+  req: Request,
+  res: Response,
+  next: NextFunction
+) => {
+  try {
+    if (new Date() > res.data.term!.deadline!)
+      return res.status(400).json({ message: "You can no longer apply!" });
+
+    next();
+  } catch (err) {
+    next(err);
+  }
+};
+
+export default isBeforeDeadline;
diff --git a/src/models/TermSchema.ts b/src/models/TermSchema.ts
index a71858c11aab39933ac98eb2ee9679d5547c33e0..dff717061b808084b09159c1acbb91ac543024f2 100644
--- a/src/models/TermSchema.ts
+++ b/src/models/TermSchema.ts
@@ -1,4 +1,4 @@
-import { Document, Schema, model } from "mongoose";
+import { Document, model, Schema } from "mongoose";
 
 export enum MemberState {
   Accepted = "ACCEPTED",
@@ -8,7 +8,7 @@ export enum MemberState {
 
 export enum CardState {
   Created = "CREATED",
-  Printed = "PRINTD",
+  Printed = "PRINTED",
   Given = "GIVEN",
 }
 
diff --git a/src/routes/files.ts b/src/routes/files.ts
index 92d6093f8bdc64ab089b3efe0e3a6e40cc64c614..29e25ddb67195ec46ab25b82b1f4acefdea6823f 100644
--- a/src/routes/files.ts
+++ b/src/routes/files.ts
@@ -1,21 +1,21 @@
 import { Application } from "express";
+import multer from "multer";
+import isAdmin from "../middlewares/auth/isAdmin";
+import isRegistered from "../middlewares/auth/isRegistered";
 import createFile from "../middlewares/files/createFile";
-import createdResponse from "../middlewares/utils/createdResponse";
-import getFieldValue from "../middlewares/utils/getFieldValue";
-import getTerm from "../middlewares/term/getTerm";
-import getTermWithQuery from "../middlewares/term/getTermWithQuery";
-import getUser from "../middlewares/user/getUser";
 import { imageFilter } from "../middlewares/files/imageFilter";
 import { imageStorage } from "../middlewares/files/imageStorage";
-import isAdmin from "../middlewares/auth/isAdmin";
-import isRegistered from "../middlewares/auth/isRegistered";
-import multer from "multer";
 import sendFile from "../middlewares/files/sendFile";
 import sendUserCard from "../middlewares/files/sendUserCard";
-import setOwnUserId from "../middlewares/user/setOwnUserId";
 import updateProfilePicture from "../middlewares/files/updateProfilePicture";
 import updateTermCardBg from "../middlewares/files/updateTermCardBg";
+import getTerm from "../middlewares/term/getTerm";
+import getTermWithQuery from "../middlewares/term/getTermWithQuery";
+import getUser from "../middlewares/user/getUser";
+import setOwnUserId from "../middlewares/user/setOwnUserId";
 import userIsStaff from "../middlewares/user/userIsStaff";
+import createdResponse from "../middlewares/utils/createdResponse";
+import getFieldValue from "../middlewares/utils/getFieldValue";
 
 const profilePictureUpload = multer({
   storage: imageStorage("uploads/profile_pictures/"),
@@ -28,6 +28,7 @@ const CardImageUpload = multer({
 });
 
 // TODO in Future: OwnTermCardPreview(termId)
+// TODO delete file after update
 
 const filesRoute = (prefix: string, app: Application): void => {
   /**
@@ -103,7 +104,6 @@ const filesRoute = (prefix: string, app: Application): void => {
    */
   app.get(
     `${prefix}/staff/:userId/picture`,
-    isRegistered(),
     getUser("_id acceptedPicture isStaffMember staffMemberText"),
     userIsStaff(),
     getFieldValue("profile", "acceptedPicture"),
@@ -119,7 +119,7 @@ const filesRoute = (prefix: string, app: Application): void => {
     isRegistered(),
     isAdmin(),
     getUser("_id acceptedPicture name roomNumber"),
-    getTerm(true),
+    getTerm(),
     sendUserCard()
   );
 
diff --git a/src/routes/terms.ts b/src/routes/terms.ts
index 8a22bf5ae4430688d1c3f82179b2abcfd9361f84..14f4eef8262acb9f9a2c53cdeda21b9d0a9fa83a 100644
--- a/src/routes/terms.ts
+++ b/src/routes/terms.ts
@@ -1,25 +1,26 @@
 import { Application } from "express";
+import isAdmin from "../middlewares/auth/isAdmin";
+import isRegistered from "../middlewares/auth/isRegistered";
+import deleteFile from "../middlewares/files/deleteFile";
 import addMember from "../middlewares/term/addMember";
 import addTerm from "../middlewares/term/addTerm";
-import createdEmptyResponse from "../middlewares/utils/createdEmptyResponse";
-import createdResponse from "../middlewares/utils/createdResponse";
-import deleteFile from "../middlewares/files/deleteFile";
 import deleteTerm from "../middlewares/term/deleteTerm";
-import getFieldValue from "../middlewares/utils/getFieldValue";
 import getTerm from "../middlewares/term/getTerm";
 import getTermMembers from "../middlewares/term/getTermMembers";
 import getTermsList from "../middlewares/term/getTermsList";
-import getUser from "../middlewares/user/getUser";
-import isAdmin from "../middlewares/auth/isAdmin";
+import isBeforeDeadline from "../middlewares/term/isBeforeDeadline";
 import isNotMember from "../middlewares/term/isNotMember";
-import isRegistered from "../middlewares/auth/isRegistered";
-import noContentResponse from "../middlewares/utils/noContentResponse";
 import responseMembersList from "../middlewares/term/responseMembersList";
 import responseTerm from "../middlewares/term/responseTerm";
 import responseTermsList from "../middlewares/term/responseTermsList";
-import setOwnUserId from "../middlewares/user/setOwnUserId";
 import updateTerm from "../middlewares/term/updateTerm";
 import updateTermMember from "../middlewares/term/updateTermMember";
+import getUser from "../middlewares/user/getUser";
+import setOwnUserId from "../middlewares/user/setOwnUserId";
+import createdEmptyResponse from "../middlewares/utils/createdEmptyResponse";
+import createdResponse from "../middlewares/utils/createdResponse";
+import getFieldValue from "../middlewares/utils/getFieldValue";
+import noContentResponse from "../middlewares/utils/noContentResponse";
 
 const termsRoute = (prefix: string, app: Application): void => {
   /**
@@ -56,6 +57,7 @@ const termsRoute = (prefix: string, app: Application): void => {
     setOwnUserId(),
     getUser("_id"),
     getTerm(),
+    isBeforeDeadline(),
     isNotMember(),
     addMember(),
     createdEmptyResponse()
diff --git a/src/routes/users/user.ts b/src/routes/users/user.ts
index b54277fd44de97a5f29e70b91c1e211697989eff..0bbdab1a29de8cb8cf480dd473f039aaece0e32e 100644
--- a/src/routes/users/user.ts
+++ b/src/routes/users/user.ts
@@ -154,7 +154,7 @@ const usersRoute = (prefix: string, app: Application): void => {
   );
 
   /**
-   * Delete a User
+   * Delete a User TODO
    * Role: ADMIN
    */
   app.delete(