diff --git a/addRecipe.js b/addRecipe.js deleted file mode 100644 index 012702c..0000000 --- a/addRecipe.js +++ /dev/null @@ -1,36 +0,0 @@ -function saveRecipe() { - const title = document.getElementById("title").value; - const recipe = document.getElementById("recipe").value; - - if (title && recipe) { - const data = { - title: title, - recipe: recipe, - }; - - const jsonString = JSON.stringify(data, null, 2); - const blob = new Blob([jsonString], { type: "application/json" }); - const url = URL.createObjectURL(blob); - - const errorMsg = document.getElementById("errMsg"); - if (errorMsg) errorMsg.remove(); - - const a = document.createElement("a"); - a.href = url; - a.download = title; - a.click(); - - URL.revokeObjectURL(url); - } else if (title === "" || recipe === "") { - throwError("You have to fill in the title and recipe!"); - } -} - -function throwError(message) { - const element = document.createElement("p"); - element.innerText = message; - element.id = "errMsg"; - document.body.appendChild(element); - - console.error(message); -} diff --git a/backend/database/recipes/Pizza.json b/backend/database/recipes/Pizza.json deleted file mode 100644 index 13528f4..0000000 --- a/backend/database/recipes/Pizza.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "title": "Pizza", - "recipe": "## Zutaten\n\n### Teig für 3 Pizzen\n\n- **500g** Mehl (Type 405)\n- **250ml** Wasser\n- **21g** Frischhefe (halber Würfel)\n- **10g** Salz\n- **25ml** Olivenöl\n\n### Belag\n\n- Was schmeckt\n\n## Zubereitung\n\n### Teig\n\nAlle Zutaten bis auf das Mehl in eine Schüssel füllen und leicht umrühren.\nDann das Mehl dazuschütten und ca. 5 Minuten mit einem Handrührgerät (Knethaken)\nverkneten. Anschließend noch einmal ca. 10 Minuten per Hand kneten.\n\nDen Teig in einer mit einem feuchten Tuch abgedeckten Schüssel für mindestens 30\nMinuten gehen lassen. Anschließend in 3 gleich große Stücke teilen, noch einmal\nkurz kneten und zu einer Kugel formen. Diese dann in drei kleine Schüssel füllen\nund noch einmal mindestens 60 Minuten gehen lassen.\n\nAbschließend aus den Kugeln mit der Hand runde Pizzaböden formen (nicht mit\nNudelholz!) und nach Belieben belegen.\n\n### Belag\n\nDie Pizza kann belegt werden wie man will. Es lohnt sich, hochwertige Zutaten\nzu verwenden. Außerdem gilt: Weniger ist mehr. Nicht zu dick belegen!\n\n### Backen\n\nHier gilt: Je heißer, desto besser. Im vorgeheizten Ofen bei 300°C Umluft und\nauf einem Pizzastein braucht die Pizza ca. 6-8 Minuten.\nWeder der Pizzastein, noch die 300°C sind unbedingt nötig, aber für das optimale\nErgebnis sollte der Ofen so heiß wie nur irgendwie möglich sein.\n\n### Tipps\n\n- Für einen besonders guten Teig, kann der Teig bereits am Vortag zubereitet\n werden und über Nacht im Kühlschrank gehen. In diesem Fall sollte die\n Hefe-Menge halbiert werden\n- Es ist enorm wichtig, den Teig lange genug zu kneten. Hier darf man auf keinen\n Fall faul sein\n- Den Teig per Hand zu formen erfordert etwas Übung, ist aber relativ schnell\n gelernt. Es lohnt sich, da man mit dem Nudelholz sonst die ganze Luft aus dem\n Teig drückt.\n- Der Pizzateig lässt sich leicht einfrieren. Einfach bereits in runde Form\n bringen, mit Tomatensauce bestreichen und dann einfrieren. Sobald die Pizza\n gefroren ist, in einen Gefrierbeutel packen damit kein Gefrierbrand entsteht." -} \ No newline at end of file diff --git a/backend/database/recipes/Pizza.txt b/backend/database/recipes/Pizza.txt new file mode 100644 index 0000000..c4941b3 --- /dev/null +++ b/backend/database/recipes/Pizza.txt @@ -0,0 +1,57 @@ +# Pizza + +## Zutaten + +### Teig für 3 Pizzen + +- **500g** Mehl (Type 405) +- **250ml** Wasser +- **21g** Frischhefe (halber Würfel) +- **10g** Salz +- **25ml** Olivenöl + +### Belag + +- Was schmeckt + +## Zubereitung + +### Teig + +Alle Zutaten bis auf das Mehl in eine Schüssel füllen und leicht umrühren. +Dann das Mehl dazuschütten und ca. 5 Minuten mit einem Handrührgerät (Knethaken) +verkneten. Anschließend noch einmal ca. 10 Minuten per Hand kneten. + +Den Teig in einer mit einem feuchten Tuch abgedeckten Schüssel für mindestens 30 +Minuten gehen lassen. Anschließend in 3 gleich große Stücke teilen, noch einmal +kurz kneten und zu einer Kugel formen. Diese dann in drei kleine Schüssel füllen +und noch einmal mindestens 60 Minuten gehen lassen. + +Abschließend aus den Kugeln mit der Hand runde Pizzaböden formen (nicht mit +Nudelholz!) und nach Belieben belegen. + +### Belag + +Die Pizza kann belegt werden wie man will. Es lohnt sich, hochwertige Zutaten +zu verwenden. Außerdem gilt: Weniger ist mehr. Nicht zu dick belegen! + +### Backen + +Hier gilt: Je heißer, desto besser. Im vorgeheizten Ofen bei 300°C Umluft und +auf einem Pizzastein braucht die Pizza ca. 6-8 Minuten. +Weder der Pizzastein, noch die 300°C sind unbedingt nötig, aber für das optimale +Ergebnis sollte der Ofen so heiß wie nur irgendwie möglich sein. + +### Tipps + +- Für einen besonders guten Teig, kann der Teig bereits am Vortag zubereitet + werden und über Nacht im Kühlschrank gehen. In diesem Fall sollte die + Hefe-Menge halbiert werden +- Es ist enorm wichtig, den Teig lange genug zu kneten. Hier darf man auf keinen + Fall faul sein +- Den Teig per Hand zu formen erfordert etwas Übung, ist aber relativ schnell + gelernt. Es lohnt sich, da man mit dem Nudelholz sonst die ganze Luft aus dem + Teig drückt. +- Der Pizzateig lässt sich leicht einfrieren. Einfach bereits in runde Form + bringen, mit Tomatensauce bestreichen und dann einfrieren. Sobald die Pizza + gefroren ist, in einen Gefrierbeutel packen damit kein Gefrierbrand entsteht. \ No newline at end of file diff --git a/backend/server.js b/backend/server.js index 1af50c0..ade9169 100644 --- a/backend/server.js +++ b/backend/server.js @@ -1,16 +1,68 @@ const express = require("express"); const app = express(); +const fs = require("fs"); +const path = require("path"); app.set("view engine", "ejs"); app.get("/", (req, res) => { - res.render("index"); + const recipesFolder = path.join(__dirname, "database/recipes"); + fs.readdir(recipesFolder, (err, files) => { + if (err) { + return res.status(500).send("Error by reading recipe files!"); + } + + const txtFiles = files.filter((file) => file.endsWith(".txt")); + + const recipes = txtFiles.map((file) => { + const content = fs.readFileSync(path.join(recipesFolder, file), "utf8"); + return { + title: path.basename(file, ".txt"), + content: content, + }; + }); + + res.render("index", { recipes }); + }); }); app.get("/add", (req, res) => { res.render("addRecipe/index"); }); +// middleware for add recipe +app.use(express.urlencoded({ extended: true })); +app.use(express.json()); + +// add recipe script +app.post("/add/create-recipe", (req, res) => { + const { filename, content } = req.body; + + const directory = path.join(__dirname, "database/recipes"); + // left out if statement for directory check + /* + if (!fs.existsSync(directory)) { + fs.mkdirSync(directory); + } + */ + + const filePath = path.join(directory, `${filename}.txt`); + + fs.writeFile(filePath, content, (err) => { + if (err) { + console.error(err); + return res + .status(500) + .console.error("Error by creating file") + .send("Error by creating file. Please check browser console!"); + } + res.render("success", { + filename: filename, + path: filePath, + }); + }); +}); + const recipeRouter = require("./routes/recipes"); app.use("/recipe", recipeRouter); diff --git a/backend/views/addRecipe/index.ejs b/backend/views/addRecipe/index.ejs index e0cb3e9..e9e9815 100644 --- a/backend/views/addRecipe/index.ejs +++ b/backend/views/addRecipe/index.ejs @@ -3,140 +3,154 @@
-