From 152e887b9486d3b28775a62d7a1edc7ce00f3ad7 Mon Sep 17 00:00:00 2001
From: abbasf <Famboupe.Abbas@Student.Reutlingen-University.DE>
Date: Fri, 25 Apr 2025 14:37:28 +0100
Subject: [PATCH] docker image and container creation and fixes to the
 connection to the mongodb database

---
 Dockerfile                | 14 ++++++++++++++
 docker-compose.yml        | 25 +++++++++++++++++++++++++
 src/Controller.js         |  2 --
 src/DatabaseController.js | 13 ++++++++++++-
 src/Stylesheet.css        |  2 +-
 5 files changed, 52 insertions(+), 4 deletions(-)
 create mode 100644 Dockerfile
 create mode 100644 docker-compose.yml

diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..6134672
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,14 @@
+FROM node:18
+
+LABEL authors="enzof"
+
+WORKDIR /app
+
+COPY package*.json ./
+RUN npm install
+
+COPY . .
+
+EXPOSE 5000
+
+CMD ["node", "src/DatabaseController.js"]
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..c9e07b5
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,25 @@
+version: '3.8'
+
+services:
+  mongo:
+    image: mongo
+    container_name: mongodb
+    ports:
+      - "27017:27017"
+    volumes:
+      - mongo-data:/data/db
+    restart: always
+
+  app:
+    build: .
+    container_name: todo-app
+    ports:
+      - "5000:5000"
+    depends_on:
+      - mongo
+    environment:
+      - MONGO_URI=mongodb://mongo:27017/CloudComputing
+    restart: always
+
+volumes:
+  mongo-data:
diff --git a/src/Controller.js b/src/Controller.js
index d546e4f..9ae9fd6 100644
--- a/src/Controller.js
+++ b/src/Controller.js
@@ -97,12 +97,10 @@ function createItem(todo, index) {
         </button>
     `;
 
-    // Event-Listener für das Löschen eines Todos
     todoListNode.querySelector(".btn-delete").addEventListener("click", function() {
         deleteElement(index);
     });
 
-    // Event-Listener für das Ändern des Status
     todoListNode.querySelector(`#${itemId}`).addEventListener("change", function(event) {
         updateStatus(index, event.target.checked);
     });
diff --git a/src/DatabaseController.js b/src/DatabaseController.js
index 3f83bd5..4b049e1 100644
--- a/src/DatabaseController.js
+++ b/src/DatabaseController.js
@@ -1,14 +1,25 @@
 const express = require("express");
 const mongoose = require("mongoose");
 const cors = require("cors");
+const path = require('path');
+const fs = require('fs'); //TODO Schauen ob ich das hier brauche
+
+
+
+
 
 const app = express();
 const PORT = process.env.PORT || 5000;
 
 app.use(cors());
 app.use(express.json());
+app.use(express.static(path.join(__dirname)));
+
+app.get('/', (req, res) => {
+    res.sendFile(path.join(__dirname, 'Layout.html'));
+});
 
-const uri = "mongodb://localhost:27017/CloudComputing";
+const uri = process.env.MONGO_URI || "mongodb://localhost:27017/CloudComputing";
 
 //Method to create database connection
 mongoose.connect(uri)
diff --git a/src/Stylesheet.css b/src/Stylesheet.css
index d8a36ba..6c40515 100644
--- a/src/Stylesheet.css
+++ b/src/Stylesheet.css
@@ -1,7 +1,7 @@
 :root{
     --background: #33302B;
     --primary-color: #332F29;
-    --secondary-color: #5C4E3A;
+    --secondary-color: #78684c;
     --accent-color: #DB8C1D;
     --text-color: #000000;
 }
-- 
GitLab