feat: initialize backend and frontend structure with Docker support

- Added backend package.json with dependencies for Express, MySQL, and EJS.
- Created server.js for backend server setup with basic routing and error handling.
- Added EJS view for the index page.
- Set up Docker Compose configuration for frontend, backend, and MySQL database services.
- Created Dockerfile for frontend build process using Node and Nginx.
- Configured Nginx for serving frontend application.
- Implemented i18n setup for internationalization with English and German language support.
- Added localization files for English and German languages.
This commit is contained in:
2026-01-13 18:16:10 +01:00
parent 6ed62f0f8d
commit 8a915ea5f5
16 changed files with 1447 additions and 9 deletions

12
backend/Dockerfile Normal file
View File

@@ -0,0 +1,12 @@
FROM node:20-alpine
ENV NODE_ENV=production
WORKDIR /backend
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
EXPOSE 8004
CMD ["npm", "start"]

1045
backend/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

19
backend/package.json Normal file
View File

@@ -0,0 +1,19 @@
{
"name": "backend",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"description": "",
"dependencies": {
"cors": "^2.8.5",
"dotenv": "^17.2.3",
"ejs": "^3.1.10",
"express": "^5.2.1",
"mysql2": "^3.16.0"
}
}

View File

View File

24
backend/server.js Normal file
View File

@@ -0,0 +1,24 @@
import express from "express";
import cors from "cors";
const app = express();
const PORT = process.env.PORT;
app.set("view engine", "ejs");
app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.get("/", (req, res) => {
res.render("index");
});
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});
// error handling code
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send("Something broke!");
});

11
backend/views/index.ejs Normal file
View File

@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>backend</title>
</head>
<body>
backend
</body>
</html>