diff --git a/PROF-XXI FW Tool/server/controllers/unit.js b/PROF-XXI FW Tool/server/controllers/unit.js
new file mode 100644
index 0000000000000000000000000000000000000000..6cc8d31efb599137e2d895e5c73f542c9645fec5
--- /dev/null
+++ b/PROF-XXI FW Tool/server/controllers/unit.js	
@@ -0,0 +1,128 @@
+const db = require("../database/database");
+
+exports.createUnit = async (req, res) => {
+  const unit = req.body.unit;
+  console.log(req.userEmail);
+
+  db.query(
+    "INSERT INTO units (name,type,description, access) VALUES (?,?,?,?)",
+    [unit.unitName, unit.unitType, unit.unitDescription, unit.accessType],
+    (err, result) => {
+      if (result) {
+        console.log(result);
+        let unitid = result.insertId;
+        db.query(
+          "INSERT INTO unitgeneration (email,idunit) VALUES (?,?)",
+          [req.userEmail, unitid],
+          (err, result) => {
+            if (result) {
+              res.send({ created: true });
+            }
+          }
+        );
+      } else {
+        res.send({ created: false });
+      }
+    }
+  );
+};
+
+exports.updateUnit = async (req, res) => {
+  const idunit = req.params.id;
+  const unit = req.body.unit;
+  console.log(req.userEmail);
+  db.query(
+    "UPDATE units SET name=? , type =? , description =? , access =? WHERE idunit=?",
+    [
+      unit.unitName,
+      unit.unitType,
+      unit.unitDescription,
+      unit.accessType,
+      idunit,
+    ],
+    (err, result) => {
+      if (result) {
+        res.json({
+          updated: true,
+          message: "The Unit was successfuly updated",
+        });
+      } else {
+        res.json({
+          updated: false,
+          message:
+            "There has been an error while updating the unit, please try later",
+        });
+      }
+    }
+  );
+};
+
+exports.deleteUnit = async (req, res) => {
+  const idunit = req.params.id;
+  console.log(req.userEmail);
+  db.query("DELETE FROM units WHERE idunit=?", [idunit], (err, result) => {
+    if (result) {
+      res.json({ deleted: true, message: "The Unit was successfuly deleted" });
+    } else {
+      res.json({
+        deleted: false,
+        message:
+          "There has been an error while deleting the unit, please try later",
+      });
+    }
+  });
+};
+
+exports.getAllUnits = async (req, res) => {
+  //console.log(req);
+  console.log(req.userEmail);
+  db.query(
+    "SELECT * FROM units JOIN unitgeneration ON unitgeneration.idunit = units.idunit WHERE unitgeneration.email = ?",
+    [req.userEmail],
+    (err, result) => {
+      if (result) {
+        var i = 0;
+        let unitsResult = [];
+        while (result[i]) {
+          const { idunit, name, description, type, access } = result[i];
+          const unit = {
+            idunit: idunit,
+            name: name,
+            description: description,
+            type: type,
+            access: access,
+          };
+          unitsResult.push(unit);
+          i = i + 1;
+        }
+
+        res.json({ unitsResult: unitsResult });
+      } else {
+        res
+          .status(404)
+          .json({ message: "Error while finding your user units" });
+      }
+    }
+  );
+};
+
+exports.getUnitsNumber = async (req, res) => {
+  console.log(req.userEmail);
+  db.query(
+    "SELECT COUNT(*) as num from unitgeneration WHERE email = ?",
+    [req.userEmail],
+    (err, result) => {
+      if (result) {
+        res.json({ unitsNumber: result[0].num });
+      }
+    }
+  );
+};
+
+exports.getTotalUnitsNumber = async (req, res) => {
+  db.query("SELECT COUNT(*) as num FROM unitgeneration", (err, result) => {
+    if (result) {
+      res.json({ totalUnitsNumber: result[0].num });
+    }
+  });
+};