diff --git a/php/psql.php b/php/psql.php
index 11d7a0c1837aac37a3d4f8e16d387bcee77458b8..5b8d4f44fc19b68e595ce9a63b61e3d04af84deb 100644
--- a/php/psql.php
+++ b/php/psql.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @noinspection SqlNoDataSourceInspection */
 
 class DB
 {
@@ -10,7 +10,7 @@ class DB
         {
             require_once('admin/helper/settings.php');
             self::$db = new PDO(
-                "mysql:host=localhost;dbname=" . $database_name,
+                "pgsql:host=localhost;dbname=" . $database_name,
                 $database_user,
                 $database_password,
                 array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
@@ -25,40 +25,36 @@ class DB
 
     function createTables()
     {
-        $statement = self::$db->prepare("CREATE TABLE IF NOT EXISTS `roadmaps` ( `ID` int(10) unsigned NOT NULL AUTO_INCREMENT, `Projectname` text COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (`ID`))ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=1;");
+        $statement = self::$db->prepare('CREATE TABLE IF NOT EXISTS "roadmaps" ('.
+            '"ID" serial NOT NULL PRIMARY KEY,'.
+            '"Projectname" text NOT NULL);');
         $statement->execute();
 
-        $statement = self::$db->prepare("CREATE TABLE IF NOT EXISTS `milestones` (".
-            "`ID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,".
-            "`RoadmapID` int(10) UNSIGNED NOT NULL,".
-            "`VersionCode` int(10) UNSIGNED NOT NULL,".
-            "`VersionName` text COLLATE utf8_general_ci NOT NULL,".
-            "`Title` text COLLATE utf8_general_ci NOT NULL,".
-            "`DueDate` date NOT NULL,".
-            "`CompletionDate` date NOT NULL,".
-            "`Status` int(11) NOT NULL,".
-            "PRIMARY KEY (`ID`)".
-            ") ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=1;");
+        $statement = self::$db->prepare('CREATE TABLE IF NOT EXISTS "milestones" ('.
+            '"ID" serial NOT NULL PRIMARY KEY,'.
+            '"RoadmapID" integer NOT NULL,'.
+            '"VersionCode"integer NOT NULL,'.
+            '"VersionName" text NOT NULL,'.
+            '"Title" text NOT NULL,'.
+            '"DueDate" date NOT NULL,'.
+            '"CompletionDate" date NOT NULL,'.
+            '"Status" integer NOT NULL);');
         $statement->execute();
 
-        $statement = self::$db->prepare("CREATE TABLE IF NOT EXISTS `tasks` (".
-            "`ID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,".
-            "`MilestoneID` int(10) UNSIGNED NOT NULL,".
-            "`Title` text CHARACTER SET utf8 NOT NULL,".
-            "`Description` text CHARACTER SET utf8 NOT NULL,".
-            "`Status` int(11) NOT NULL,".
-            "PRIMARY KEY (`ID`)".
-            ") ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=1;");
+        $statement = self::$db->prepare('CREATE TABLE IF NOT EXISTS "tasks" ('.
+            '"ID" serial NOT NULL PRIMARY KEY,'.
+            '"MilestoneID" integer NOT NULL,'.
+            '"Title" text NOT NULL,'.
+            '"Description" text NOT NULL,'.
+            '"Status" integer NOT NULL);');
         $statement->execute();
 
-        $statement = self::$db->prepare("CREATE TABLE IF NOT EXISTS `subtasks` (".
-            "`ID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,".
-            "`TaskID` int(10) UNSIGNED NOT NULL,".
-            "`Title` text CHARACTER SET utf8 NOT NULL,".
-            "`Description` text CHARACTER SET utf8 NOT NULL,".
-            "`Status` int(11) NOT NULL,".
-            "PRIMARY KEY (`ID`)".
-            ") ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=1;");
+        $statement = self::$db->prepare('CREATE TABLE IF NOT EXISTS "subtasks" ('.
+            '"ID" serial NOT NULL PRIMARY KEY,'.
+            '"TaskID" integer NOT NULL,'.
+            '"Title" text NOT NULL,'.
+            '"Description" text NOT NULL,'.
+            '"Status" integer NOT NULL);');
         $statement->execute();
     }
 
@@ -68,7 +64,7 @@ class DB
 
     function insertRoadmap($projectName)
     {
-        $statement = self::$db->prepare("INSERT INTO roadmaps VALUES('', :projectName);");
+        $statement = self::$db->prepare('INSERT INTO roadmaps ("Projectname") VALUES(:projectName);');
         $statement->bindParam("projectName", $projectName);
 
         return $statement->execute();
@@ -76,7 +72,7 @@ class DB
 
     function insertMilestone($roadmapID, $versionCode, $versionName, $title, $dueDate, $completionDate, $status)
     {
-        $statement = self::$db->prepare("INSERT INTO milestones VALUES('', :roadmapID, :versionCode, :versionName, :title, STR_TO_DATE(:dueDate, '%d.%m.%Y'), STR_TO_DATE(:completionDate, '%d.%m.%Y'), :status);");
+        $statement = self::$db->prepare('INSERT INTO milestones ("RoadmapID", "VersionCode", "VersionName", "Title", "DueDate", "CompletionDate", "Status") VALUES(:roadmapID, :versionCode, :versionName, :title, to_date(:dueDate, \'DD.MM.YY\'), to_date(:completionDate, \'DD.MM.YY\'), :status);');
         $statement->bindParam("roadmapID", $roadmapID);
         $statement->bindParam("versionCode", $versionCode);
         $statement->bindParam("versionName", $versionName);
@@ -90,7 +86,7 @@ class DB
 
     function insertTask($milestoneID, $title, $description, $status)
     {
-        $statement = self::$db->prepare("INSERT INTO tasks VALUES('', :milestoneID, :title, :description, :status);");
+        $statement = self::$db->prepare('INSERT INTO tasks ("MilestoneID", "Title", "Description", "Status") VALUES(:milestoneID, :title, :description, :status);');
         $statement->bindParam("milestoneID", $milestoneID);
         $statement->bindParam("title", $title);
         $statement->bindParam("description", $description);
@@ -101,7 +97,7 @@ class DB
 
     function insertSubtask($taskID, $title, $description, $status)
     {
-        $statement = self::$db->prepare("INSERT INTO subtasks VALUES('', :taskID, :title, :description, :status);");
+        $statement = self::$db->prepare('INSERT INTO subtasks ("TaskID", "Title", "Description", "Status") VALUES(:taskID, :title, :description, :status);');
         $statement->bindParam("taskID", $taskID);
         $statement->bindParam("title", $title);
         $statement->bindParam("description", $description);
@@ -119,7 +115,7 @@ class DB
 
     function finishMilestone($milestoneID)
     {
-        $statement = self::$db->prepare("UPDATE milestones SET status='1' WHERE ID = :milestoneID;");
+        $statement = self::$db->prepare('UPDATE milestones SET "Status"=1 WHERE "ID" = :milestoneID;');
         $statement->bindParam("milestoneID", $milestoneID);
 
         return $statement->execute();
@@ -127,7 +123,7 @@ class DB
 
     function finishTask($taskID)
     {
-        $statement = self::$db->prepare("UPDATE tasks SET status='1' WHERE ID = :taskID;");
+        $statement = self::$db->prepare('UPDATE tasks SET "Status"=1 WHERE "ID" = :taskID;');
         $statement->bindParam("taskID", $taskID);
 
         return $statement->execute();
@@ -135,7 +131,7 @@ class DB
 
     function reopenTask($taskID)
     {
-        $statement = self::$db->prepare("UPDATE tasks SET status='0' WHERE ID = :taskID;");
+        $statement = self::$db->prepare('UPDATE tasks SET "Status"=0 WHERE "ID" = :taskID;');
         $statement->bindParam("taskID", $taskID);
 
         return $statement->execute();
@@ -143,7 +139,7 @@ class DB
 
     function finishSubTask($subtaskID)
     {
-        $statement = self::$db->prepare("UPDATE subtasks SET status='1' WHERE ID = :subtaskID;");
+        $statement = self::$db->prepare('UPDATE subtasks SET "Status"=1 WHERE "ID" = :subtaskID;');
         $statement->bindParam("subtaskID", $subtaskID);
 
         return $statement->execute();
@@ -155,7 +151,7 @@ class DB
 
     function updateRoadmap($roadmapID, $projectName)
     {
-        $statement = self::$db->prepare("UPDATE roadmaps SET Projectname = :projectName WHERE ID = :roadmapID;");
+        $statement = self::$db->prepare('UPDATE roadmaps SET "Projectname" = :projectName WHERE "ID"= :roadmapID;');
         $statement->bindParam("roadmapID", $roadmapID);
         $statement->bindParam("projectName", $projectName);
 
@@ -164,7 +160,7 @@ class DB
 
     function updateMilestone($milestoneID, $versionCode, $versionName, $title, $dueDate, $completionDate, $status)
     {
-        $statement = self::$db->prepare("UPDATE milestones SET VersionCode = :versionCode, VersionName = :versionName, Title = :title, DueDate = STR_TO_DATE(:dueDate, '%d.%m.%Y'), CompletionDate = STR_TO_DATE(:completionDate, '%d.%m.%Y'), Status = :status WHERE ID = :milestoneID;");
+        $statement = self::$db->prepare('UPDATE milestones SET "VersionCode" = :versionCode, "VersionName" = :versionName, "Title" = :title, "DueDate"=to_date(:dueDate, \'DD.MM.YY\'), "CompletionDate"=to_date(:completionDate, \'DD.MM.YY\'), "Status" = :status WHERE "ID" = :milestoneID;');
         $statement->bindParam("milestoneID", $milestoneID);
         $statement->bindParam("versionCode", $versionCode);
         $statement->bindParam("versionName", $versionName);
@@ -178,7 +174,7 @@ class DB
 
     function updateTask($taskID, $milestoneID, $title, $description, $status)
     {
-        $statement = self::$db->prepare("UPDATE tasks SET MilestoneID = :milestoneID, Title = :title, Description = :description, Status = :status WHERE ID = :taskID;");
+        $statement = self::$db->prepare('UPDATE tasks SET "MilestoneID" = :milestoneID, "Title" = :title, "Description" = :description, "Status" = :status WHERE "ID" = :taskID;');
         $statement->bindParam("taskID", $taskID);
         $statement->bindParam("milestoneID", $milestoneID);
         $statement->bindParam("title", $title);
@@ -190,7 +186,7 @@ class DB
 
     function updateSubtask($subtaskID, $taskID, $title, $description, $status)
     {
-        $statement = self::$db->prepare("UPDATE subtasks SET TaskID = :taskID, Title = :title, Description = :description, Status = :status WHERE ID = :subtaskID;");
+        $statement = self::$db->prepare('UPDATE subtasks SET "TaskID" = :taskID, "Title" = :title, "Description" = :description, "Status" = :status WHERE "ID" = :subtaskID;');
         $statement->bindParam("subtaskID", $subtaskID);
         $statement->bindParam("taskID", $taskID);
         $statement->bindParam("title", $title);
@@ -255,7 +251,7 @@ class DB
 
     function getRoadmap($roadmapID)
     {
-        $statement = self::$db->prepare("SELECT Projectname FROM roadmaps WHERE roadmaps.ID=:roadmapID;");
+        $statement = self::$db->prepare('SELECT "Projectname" FROM roadmaps WHERE "ID"=:roadmapID;');
         $statement->bindParam("roadmapID", $roadmapID);
         $statement->execute();
 
@@ -264,7 +260,7 @@ class DB
 
     function getRoadmaps()
     {
-        $statement = self::$db->prepare("SELECT * FROM roadmaps ORDER BY ID;");
+        $statement = self::$db->prepare('SELECT * FROM roadmaps ORDER BY "ID";');
         $statement->bindParam("roadmapID", $roadmapID);
         $statement->execute();
 
@@ -273,7 +269,7 @@ class DB
 
     function getMilestones($roadmapID)
     {
-        $statement = self::$db->prepare("SELECT * FROM milestones WHERE milestones.roadmapID=:roadmapID ORDER BY VersionCode DESC;");
+        $statement = self::$db->prepare('SELECT * FROM milestones WHERE "RoadmapID"=:roadmapID ORDER BY "VersionCode" DESC;');
         $statement->bindParam("roadmapID", $roadmapID);
         $statement->execute();
 
@@ -282,7 +278,7 @@ class DB
 
     function getMilestone($milestoneID)
     {
-        $statement = self::$db->prepare("SELECT * FROM milestones WHERE milestones.ID=:milestoneID;");
+        $statement = self::$db->prepare('SELECT * FROM milestones WHERE "ID"=:milestoneID;');
         $statement->bindParam("milestoneID", $milestoneID);
         $statement->execute();
 
@@ -291,7 +287,7 @@ class DB
 
     function getNumberOfOpenMilestones($roadmapID)
     {
-        $statement = self::$db->prepare("SELECT COUNT(*) AS 'count' FROM milestones WHERE milestones.roadmapID=:roadmapID AND status = '0';");
+        $statement = self::$db->prepare('SELECT COUNT(*) AS "count" FROM milestones WHERE "RoadmapID"=:roadmapID AND "Status" = 0;');
         $statement->bindParam("roadmapID", $roadmapID);
         $statement->execute();
 
@@ -300,7 +296,7 @@ class DB
 
     function getTasks($milestoneID)
     {
-        $statement = self::$db->prepare("SELECT * FROM tasks WHERE tasks.milestoneID=:milestoneID;");
+        $statement = self::$db->prepare('SELECT * FROM tasks WHERE "MilestoneID"=:milestoneID;');
         $statement->bindParam("milestoneID", $milestoneID);
         $statement->execute();
 
@@ -309,7 +305,7 @@ class DB
 
     function getTask($taskID)
     {
-        $statement = self::$db->prepare("SELECT * FROM tasks WHERE tasks.ID=:taskID;");
+        $statement = self::$db->prepare('SELECT * FROM tasks WHERE "ID"=:taskID;');
         $statement->bindParam("taskID", $taskID);
         $statement->execute();
 
@@ -318,7 +314,7 @@ class DB
 
     function getNumberOfOpenTasks($milestoneID)
     {
-        $statement = self::$db->prepare("SELECT COUNT(*) AS 'count' FROM tasks WHERE tasks.MilestoneID=:milestoneID AND status = '0';");
+        $statement = self::$db->prepare('SELECT COUNT(*) AS "count" FROM tasks WHERE "MilestoneID"=:milestoneID AND "Status" = 0;');
         $statement->bindParam("milestoneID", $milestoneID);
         $statement->execute();
 
@@ -327,7 +323,7 @@ class DB
 
     function getSubtasks($taskID)
     {
-        $statement = self::$db->prepare("SELECT * FROM subtasks WHERE subtasks.taskID=:taskID;");
+        $statement = self::$db->prepare('SELECT * FROM subtasks WHERE "TaskID"=:taskID;');
         $statement->bindParam("taskID", $taskID);
         $statement->execute();
 
@@ -336,7 +332,7 @@ class DB
 
     function getSubtask($taskID)
     {
-        $statement = self::$db->prepare("SELECT * FROM subtasks WHERE subtasks.ID=:taskID;");
+        $statement = self::$db->prepare('SELECT * FROM subtasks WHERE "ID"=:taskID;');
         $statement->bindParam("taskID", $taskID);
         $statement->execute();
 
@@ -345,7 +341,7 @@ class DB
 
     function getNumberOfOpenSubtasks($taskID)
     {
-        $statement = self::$db->prepare("SELECT COUNT(*) AS 'count' FROM subtasks WHERE subtasks.TaskID=:taskID AND status = '0';");
+        $statement = self::$db->prepare('SELECT COUNT(*) AS "count" FROM subtasks WHERE "TaskID"=:taskID AND "Status" = 0;');
         $statement->bindParam("taskID", $taskID);
         $statement->execute();
 
@@ -354,7 +350,7 @@ class DB
 
     function getLatestFinishedMilestone($roadmapID)
     {
-        $statement = self::$db->prepare("SELECT * FROM milestones WHERE RoadmapID=:roadmapID AND status = '1' ORDER BY VersionCode DESC");
+        $statement = self::$db->prepare('SELECT * FROM milestones WHERE "RoadmapID"=:roadmapID AND "Status" = 1 ORDER BY "VersionCode" DESC;');
         $statement->bindParam("roadmapID", $roadmapID);
         $statement->execute();
 
@@ -367,7 +363,7 @@ class DB
 
     function deleteRoadmap($roadmapID)
     {
-        $statement = self::$db->prepare("DELETE FROM roadmaps WHERE roadmaps.ID=:roadmapID;");
+        $statement = self::$db->prepare('DELETE FROM roadmaps WHERE "ID"=:roadmapID;');
         $statement->bindParam("roadmapID", $roadmapID);
         $statement->execute();
 
@@ -376,7 +372,7 @@ class DB
 
     function deleteMilestone($milestoneID)
     {
-        $statement = self::$db->prepare("DELETE FROM milestones WHERE milestones.ID=:milestoneID;");
+        $statement = self::$db->prepare('DELETE FROM milestones WHERE "ID"=:milestoneID;');
         $statement->bindParam("milestoneID", $milestoneID);
         $statement->execute();
 
@@ -385,7 +381,7 @@ class DB
 
     function deleteTask($taskID)
     {
-        $statement = self::$db->prepare("DELETE FROM tasks WHERE tasks.ID=:taskID;");
+        $statement = self::$db->prepare('DELETE FROM tasks WHERE "ID"=:taskID;');
         $statement->bindParam("taskID", $taskID);
         $statement->execute();
 
@@ -394,7 +390,7 @@ class DB
 
     function deleteSubtask($subtaskID, $taskID)
     {
-        $statement = self::$db->prepare("DELETE FROM subtasks WHERE subtasks.ID=:subtaskID;");
+        $statement = self::$db->prepare('DELETE FROM subtasks WHERE "ID"=:subtaskID;');
         $statement->bindParam("subtaskID", $subtaskID);
         $success = $statement->execute();