diff --git a/src/main/scala/de/tobias/playpad/server/PlayPadServer.scala b/src/main/scala/de/tobias/playpad/server/PlayPadServer.scala
index 7f5c3029dfbcf49a87a67035b38952081697c324..d38f16983184b4b380a9b455e43b16b8cb6c932e 100644
--- a/src/main/scala/de/tobias/playpad/server/PlayPadServer.scala
+++ b/src/main/scala/de/tobias/playpad/server/PlayPadServer.scala
@@ -12,7 +12,7 @@ import de.tobias.playpad.server.plugin.Plugin
 import de.tobias.playpad.server.project.{Design, Pad, Page, Project}
 import de.tobias.playpad.server.server.account._
 import de.tobias.playpad.server.server.plugin.{PluginGet, PluginList}
-import de.tobias.playpad.server.server.project.{ProjectGet, ProjectHandler}
+import de.tobias.playpad.server.server.project._
 import de.tobias.playpad.server.settings.SettingsHandler
 import de.tobias.playpad.server.transformer.JsonTransformer
 import spark.Spark._
@@ -62,6 +62,8 @@ object PlayPadServer extends App {
 
 	// Project
 	get("/projects", new ProjectGet(databaseConnection, sessionDao), new JsonTransformer)
+	post("/projects", new ProjectPost(databaseConnection, sessionDao), new JsonTransformer)
+	delete("/projects", new ProjectDelete(databaseConnection, sessionDao), new JsonTransformer)
 
 	// Plugins
 	get("/plugins/:id", new PluginGet(pluginDao), new JsonTransformer)
diff --git a/src/main/scala/de/tobias/playpad/server/project/loader/sql/ProjectLoader.scala b/src/main/scala/de/tobias/playpad/server/project/loader/sql/ProjectLoader.scala
index dffb418a8acb32a80e912449f8c138a5758bcdf9..f2bce4a7ee9db15ac820b18a4b604ae31e97f43a 100644
--- a/src/main/scala/de/tobias/playpad/server/project/loader/sql/ProjectLoader.scala
+++ b/src/main/scala/de/tobias/playpad/server/project/loader/sql/ProjectLoader.scala
@@ -35,4 +35,26 @@ class ProjectLoader {
 
 		projects
 	}
+
+	def getAccountId(connection: Connection, id: UUID): Int = {
+		val sql = s"SELECT account_id FROM $PROJECT WHERE $PROJECT_ID = ?"
+
+		val preparedStatement = connection.prepareStatement(sql)
+		preparedStatement.setString(1, id.toString)
+		val result = preparedStatement.executeQuery()
+
+		while (result.next()) {
+			val account_id = result.getInt(PROJECT_ACCOUNT_ID)
+
+			result.close()
+			preparedStatement.close()
+
+			return account_id
+		}
+
+		result.close()
+		preparedStatement.close()
+
+		-1
+	}
 }
diff --git a/src/main/scala/de/tobias/playpad/server/project/saver/sql/ProjectSaver.scala b/src/main/scala/de/tobias/playpad/server/project/saver/sql/ProjectSaver.scala
index 44ce81054e41f06cbd05df22747f5cf67d3938ea..be385e41e82cab37cd7eb7e305fde150f5270372 100644
--- a/src/main/scala/de/tobias/playpad/server/project/saver/sql/ProjectSaver.scala
+++ b/src/main/scala/de/tobias/playpad/server/project/saver/sql/ProjectSaver.scala
@@ -1,6 +1,7 @@
 package de.tobias.playpad.server.project.saver.sql
 
 import java.sql.Connection
+import java.util.UUID
 
 import de.tobias.playpad.server.project.Project
 import de.tobias.playpad.server.project.utils.SqlDef._
@@ -17,4 +18,7 @@ class ProjectSaver {
 		val pageSaver = new PageSaver
 		project.pages.foreach(pageSaver.save(connection, _))
 	}
+	def delete(connection: Connection, project: UUID): Unit = {
+		SqlHelper.delete(connection, PROJECT, project)
+	}
 }
diff --git a/src/main/scala/de/tobias/playpad/server/server/SqlHelper.scala b/src/main/scala/de/tobias/playpad/server/server/SqlHelper.scala
index 8f93ec9e49af5a69fd73e0f7324d2d69d1cfaef5..cd97aac85e5b18fa3f6eb645522cfa265a96088c 100644
--- a/src/main/scala/de/tobias/playpad/server/server/SqlHelper.scala
+++ b/src/main/scala/de/tobias/playpad/server/server/SqlHelper.scala
@@ -23,7 +23,7 @@ object SqlHelper {
 	}
 
 	private def createQuery[T](connection: Connection, table: String, field: String, value: T): PreparedStatement = {
-		val sql = "INSERT INTO %s (id, %s) VALUES(?, ?) ON DUPLICATE KEY UPDATE %s=?".format(table, field, field)
+		val sql = s"INSERT INTO $table (id, $field) VALUES(?, ?) ON DUPLICATE KEY UPDATE $field=?"
 		val preparedStatement = connection.prepareStatement(sql)
 
 		value match {
@@ -48,6 +48,22 @@ object SqlHelper {
 		preparedStatement
 	}
 
+	def delete(connection: Connection, table: String, id: Int): Unit = {
+		val sql = s"DELETE FROM $table WHERE id = ?"
+		val preparedStatement = connection.prepareStatement(sql)
+		preparedStatement.setInt(1, id)
+		preparedStatement.execute()
+		preparedStatement.close()
+	}
+
+	def delete(connection: Connection, table: String, uuid: UUID): Unit = {
+		val sql = s"DELETE FROM $table WHERE id = ?"
+		val preparedStatement = connection.prepareStatement(sql)
+		preparedStatement.setString(1, uuid.toString)
+		preparedStatement.execute()
+		preparedStatement.close()
+	}
+
 	def createTables(connection: Connection): Unit = {
 		def createTable(sql: String) = {
 			val preparedStatement = connection.prepareStatement(sql)
diff --git a/src/main/scala/de/tobias/playpad/server/server/project/ProjectDelete.scala b/src/main/scala/de/tobias/playpad/server/server/project/ProjectDelete.scala
new file mode 100644
index 0000000000000000000000000000000000000000..b5a48aa89a6fb84cb1ebf11c199da209e78e7481
--- /dev/null
+++ b/src/main/scala/de/tobias/playpad/server/server/project/ProjectDelete.scala
@@ -0,0 +1,37 @@
+package de.tobias.playpad.server.server.project
+
+import java.sql.Connection
+import java.util.UUID
+
+import com.j256.ormlite.dao.Dao
+import de.tobias.playpad.server.account.Session
+import de.tobias.playpad.server.project.loader.sql.ProjectLoader
+import de.tobias.playpad.server.project.saver.sql.ProjectSaver
+import de.tobias.playpad.server.server.{Result, Status}
+import spark.{Request, Response, Route}
+
+/**
+  * Created by tobias on 17.02.17.
+  */
+class ProjectDelete(connection: Connection, sessionDao: Dao[Session, Int]) extends Route {
+	override def handle(request: Request, response: Response): AnyRef = {
+		val sessionKey = request.queryParams("session")
+		val session = Session.getSession(sessionKey, sessionDao)
+		session match {
+			case Some(s) =>
+				val projectId = UUID.fromString(request.queryParams("project"))
+
+				val projectLoader = new ProjectLoader
+				val account_id = projectLoader.getAccountId(connection, projectId)
+				if (account_id == s.getAccount.id) {
+					val projectSaver = new ProjectSaver
+					projectSaver.delete(connection, projectId)
+
+					return new Result(Status.OK, "added project")
+				}
+				new Result(Status.ERROR, "session mismatch")
+			case None =>
+				new Result(Status.ERROR, "session invalid")
+		}
+	}
+}