diff --git a/.gitea/actions/init-db/action.yaml b/.gitea/actions/init-db/action.yaml
new file mode 100644
index 0000000..95526f8
--- /dev/null
+++ b/.gitea/actions/init-db/action.yaml
@@ -0,0 +1,76 @@
+name: initialize database
+description: initialize database by using database of test environment
+author: BinKrassDuFass
+
+inputs:
+  MONGODB_SERVICE_NAME:
+    description: 'Name of the MongoDB service'
+    required: true
+    default: 'mongo'
+
+  TIBI_USERNAME:
+    description: 'Username of the Tibi account'
+    required: true
+    default: 'admin'
+
+  TIBI_PASSWORD:
+    description: 'Password of the Tibi account'
+    required: true
+    default: 'admin'
+
+  TIBI_API_URL:
+    description: 'URL of the Tibi API'
+    required: true
+    default: 'http://tibi-server:8080/api/v1'
+  
+  TIBI_API_CONFIG_PATH:
+    description: 'Path of the Tibi API config'
+    required: true
+    default: "${{github.workspace}}/api/config.yml}}"
+  
+  TIBI_API_NAMESPACE:
+    description: 'Namespace of the Tibi API'
+    required: true
+  
+  PROJECT_NAME:
+    description: 'Name of the project'
+    required: true
+
+runs:
+    using: composite
+    steps:
+      - name: Setup mongo tools
+        shell: bash
+        run: |
+              echo "::group::setup Mongo keys"
+              wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
+              sudo apt-get install -y gnupg
+              wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
+              echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
+              echo "::endgroup::"
+
+              echo "::group::mongodb tools"
+              sudo apt-get update
+              echo "aptitude install mongodb-database-tools"
+              sudo apt-get install -y mongodb-database-tools
+              echo "::endgroup::"
+
+              echo "mongodump --version"
+              mongodump --version
+
+      - name: Restore MongoDB Data
+        run: |
+          echo "::group::initialize mongo data"
+          mongorestore --uri "mongodb://${{inputs.MONGODB_SERVICE_NAME}}:27017" ./.github/actions/init-db/mongo-dump
+          echo "::endgroup::"
+        shell: bash
+
+      - name: set config in tibi
+        shell: bash
+        run: ./.github/actions/init-db/setConfigInTibiProject.sh  ${{inputs.TIBI_USERNAME}} ${{inputs.TIBI_PASSWORD}} ${{inputs.TIBI_API_URL}} ${{inputs.TIBI_API_CONFIG_PATH}} ${{inputs.TIBI_API_NAMESPACE}} ${{inputs.PROJECT_NAME}}
+              
+
+
+
+
+      
diff --git a/.gitea/actions/init-db/action.yml b/.gitea/actions/init-db/action.yml
deleted file mode 100644
index 6755d6b..0000000
--- a/.gitea/actions/init-db/action.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: initialize database
-description: initialize database by using database of test environment
-author: BinKrassDuFass
-
-inputs:
-  MONGODB_SERVICE_NAME:
-    description: 'Name of the MongoDB service'
-    required: true
-    default: 'mongo'
-
-runs:
-    using: composite
-    steps:
-    - name: Install MongoDB tools
-      run: sudo apt-get install -y mongodb-database-tools
-
-    - name: Restore MongoDB Data
-      run: mongorestore --uri "mongodb://${{inputs.MONGODB_SERVICE_NAME}}:27017" /.gitea/
-
diff --git a/.gitea/actions/init-db/index.js b/.gitea/actions/init-db/index.js
deleted file mode 100644
index e18dcbb..0000000
--- a/.gitea/actions/init-db/index.js
+++ /dev/null
@@ -1,116 +0,0 @@
-const axios = require("axios")
-const { MongoClient } = require("mongodb")
-const fs = require("fs")
-const util = require("util")
-
-// Function to log objects in a detailed manner
-function logObj(o) {
-    console.log(util.inspect(o, false, null, true))
-}
-
-// Function to preload the database with collections
-async function preloadDatabase(db, collections) {
-    for (const { name, file } of collections) {
-        const content = fs.readFileSync(file, "utf8")
-        const data = JSON.parse(content)
-
-        const collection = db.collection(name)
-        await collection.insertMany(data)
-
-        const insertedData = await collection.find({}).toArray()
-        if (insertedData.length !== data.length) {
-            console.error(
-                `Mismatch in collection ${name}: expected ${data.length} documents, found ${insertedData.length}`
-            )
-        } else {
-            console.log(`Successfully verified ${insertedData.length} documents in ${name}`)
-        }
-    }
-}
-
-async function initializeDatabase(config) {
-    try {
-        const dbClient = new MongoClient(config.mongodbUri)
-        await dbClient.connect()
-        let db = dbClient.db(config.tibiDbPrefix)
-        await db.collection("project").deleteMany({ namespace: config.projectApiNamespace })
-
-        const dbName = config.tibiDbPrefix + "_" + config.projectApiNamespace
-        db = dbClient.db(dbName)
-        await db.dropDatabase()
-
-        // Login to Tibi API
-        const loginResponse = await axios.post(config.tibiApiUrl + "/login", {
-            username: config.tibiUsername,
-            password: config.tibiPassword,
-        })
-        const tibiToken = loginResponse.data.token
-
-        // Create project
-        let project
-        try {
-            const projectResponse = await axios.post(
-                config.tibiApiUrl + "/project",
-                {
-                    configFile: config.projectApiConfig,
-                    name: config.projectApiNamespace,
-                    namespace: config.projectApiNamespace,
-                    description: config.projectApiNamespace,
-                },
-                {
-                    headers: {
-                        "X-Auth-Token": tibiToken,
-                    },
-                }
-            )
-            project = projectResponse.data
-        } catch (e) {
-            logObj(e)
-            throw e
-        }
-
-        // Check if project is online
-        const projectStatus = await axios.get(config.tibiApiUrl + "/project/" + project.id, {
-            headers: {
-                "X-Auth-Token": tibiToken,
-            },
-        })
-        if (!projectStatus.data.api.isOnline) {
-            throw new Error(`Project ${config.projectApiNamespace} is not online.`)
-        }
-
-
-        // Define collections to preload into the database
-        const collections = [
-            // Define your collections here as per your Cypress plugin logic
-            // { name: "collectionName", file: "path/to/file.json" },
-            // ... other collections
-        ]
-        await preloadDatabase(db, collections)
-
-        await dbClient.close()
-    } catch (error) {
-        console.error("Error initializing the database:", error)
-        throw error
-    }
-}
-
-// Run the script if it's executed directly
-if (require.main === module) {
-    const config = {
-        projectApiNamespace: process.env.PROJECT_API_NAMESPACE,
-        mongodbUri: process.env.MONGODB_URI,
-        tibiDbPrefix: process.env.TIBI_DB_PREFIX,
-        tibiApiUrl: process.env.TIBI_API_URL,
-        // Add other required environment variables here
-    }
-
-    initializeDatabase(config)
-        .then(() => console.log("Database initialized successfully"))
-        .catch((err) => {
-            console.error("Failed to initialize database:", err)
-            process.exit(1)
-        })
-}
-
-module.exports = initializeDatabase
diff --git a/.gitea/actions/init-db/mongo-dump/tibi_allkids_erfurt/ssr.bson b/.gitea/actions/init-db/mongo-dump/tibi_allkids_erfurt/ssr.bson
index f1cadf7..a026cfd 100644
Binary files a/.gitea/actions/init-db/mongo-dump/tibi_allkids_erfurt/ssr.bson and b/.gitea/actions/init-db/mongo-dump/tibi_allkids_erfurt/ssr.bson differ
diff --git a/.gitea/actions/init-db/setConfigInTibiProject.sh b/.gitea/actions/init-db/setConfigInTibiProject.sh
new file mode 100644
index 0000000..7c570af
--- /dev/null
+++ b/.gitea/actions/init-db/setConfigInTibiProject.sh
@@ -0,0 +1,108 @@
+#!/bin/bash
+
+# Start a GitHub Actions group for input validation
+echo "::group::Validating Inputs"
+
+# Check if the correct number of arguments is passed
+if [ "$#" -ne 6 ]; then
+    echo "Incorrect number of arguments provided."
+    echo "Usage: $0 <TIBI_USERNAME> <TIBI_PASSWORD> <TIBI_API_URL> <PROJECT_API_CONFIG> <PROJECT_NAMESPACE> <PROJECT_NAME>"
+    exit 1
+fi
+
+# Assigning passed arguments to variables for better readability
+TIBI_USERNAME=$1
+TIBI_PASSWORD=$2
+TIBI_API_URL=$3
+PROJECT_API_CONFIG=$4
+PROJECT_NAMESPACE=$5
+PROJECT_NAME=$6
+
+echo "Provided TIBI_USERNAME: $TIBI_USERNAME"
+echo "TIBI_API_URL: $TIBI_API_URL"
+# Be cautious with logging sensitive data like passwords and tokens
+# Echoing the password or sensitive information is generally not recommended
+
+# End the input validation group
+echo "::endgroup::"
+
+# Start a group for authentication
+echo "::group::Authenticating User"
+
+# Prepare authentication request payload
+auth_payload=$(jq -n --arg username "$TIBI_USERNAME" --arg password "$TIBI_PASSWORD" '{username: $username, password: $password}')
+echo "Authentication payload: $auth_payload"
+# Fetch the authentication token
+echo "Requesting authentication token..."
+auth_response=$(curl -s -X POST -H "Content-Type: application/json" -d "$auth_payload" "$TIBI_API_URL/login")
+# Logging the response for debugging (remove sensitive data as necessary)
+echo "Authentication response: $auth_response"
+
+# Extract token from the response
+TIBI_AUTH_TOKEN=$(echo $auth_response | jq -r '.token')
+
+# Check if the token was successfully retrieved
+if [ -z "$TIBI_AUTH_TOKEN" ]; then
+    echo "Failed to get authentication token. Exiting script."
+    exit 1
+fi
+
+echo "Authentication token received successfully."
+echo "::endgroup::"
+
+# Start a group for fetching project data
+echo "::group::Fetching Project Data"
+
+# Get the list of projects from the API
+echo "Retrieving projects..."
+response=$(curl -s -H "X-Auth-Token: $TIBI_AUTH_TOKEN" "$TIBI_API_URL/project")
+echo $response
+projects=$(echo $response) # Parse the JSON response to get project data
+
+echo "::endgroup::"
+
+# Start a group for processing project data
+echo "::group::Processing Project Data"
+
+# Initialize variables to track project existence
+projectFound=false
+projectId=""
+
+# Loop through each project to find if the required project exists
+for row in $(echo "${projects}" | jq -r '.[] | @base64'); do
+    _jq() {
+        echo ${row} | base64 --decode | jq -r ${1}
+    }
+
+    api_name=$(_jq '.name')
+    # Check if the current project's namespace matches the target
+    if [ "$api_name" == "$PROJECT_NAME" ]; then
+        projectId=$(_jq '.id')
+        projectData=$(echo ${row} | base64 --decode)
+        projectFound=true
+        break
+    fi
+done
+
+echo "::endgroup::"
+
+# Start a group for creating or updating the project
+echo "::group::Creating or Updating Project"
+
+# Conditionally create a new project or update the existing one
+if [ "$projectFound" = true ]; then
+    echo "Project found with ID: $projectId, updating..."
+    # Prepare updated project data
+    updatedProjectData=$(echo $projectData | jq --arg configFile "$PROJECT_API_CONFIG" '.configFile = $configFile | del(.id)')
+    # Send a PUT request to update the project
+    updateResponse=$(curl -s -X PUT -H "Content-Type: application/json" -H "X-Auth-Token: $TIBI_AUTH_TOKEN" -d "$updatedProjectData" "$TIBI_API_URL/project/$projectId")
+    # Logging the response for debugging (remove sensitive data as necessary)
+    echo "Update response: $updateResponse"
+
+else
+    echo "Project not found. Creating new project..."
+    # Send a POST request to create a new project
+    createResponse=$(curl -s -X POST -H "Content-Type: application/json" -H "X-Auth-Token: $TIBI_AUTH_TOKEN" -d "{\"configFile\":\"$PROJECT_API_CONFIG\", \"name\":\"$PROJECT_NAMESPACE\", \"namespace\":\"$PROJECT_NAMESPACE\", \"description\":\"$PROJECT_NAMESPACE\"}" "$TIBI_API_URL/project")
+fi
+
+echo "::endgroup::"