No description
Find a file
Brueckner, Max f4a3c4d502
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Merge branch 'develop' into 'main'
Develop

See merge request swe1_if/swe_ws2526/team03/backend!29
2025-12-04 16:24:31 +01:00
.woodpecker Update Woodpecker CI to Java 21 to match build.gradle 2025-11-15 19:54:45 +01:00
gradle/wrapper Init 2025-10-16 14:29:53 +02:00
src Backend: Seed-Daten für Demo erstellen 2025-12-04 16:23:15 +01:00
.gitattributes Init 2025-10-16 14:29:53 +02:00
.gitignore Füge htmlReport zum .gitignore hinzu 2025-11-27 00:43:40 +01:00
build.gradle fix: revert Java language version to 21 in build.gradle 2025-12-04 00:45:21 +01:00
docker-compose.yml Improve README 2025-11-16 01:14:38 +01:00
Dockerfile Downgrade to Java 21 again 2025-11-15 19:50:25 +01:00
gradlew Init 2025-10-16 14:29:53 +02:00
gradlew.bat Init 2025-10-16 14:29:53 +02:00
README.md Update hosted URL in README 2025-11-16 01:56:22 +01:00
settings.gradle Init 2025-10-16 14:29:53 +02:00

WaiterOrder Backend

Spring Boot REST API for the WaiterOrder application.

Hosted at: https://waiterorderbackend.olli.info

🚀 Quick Start

Local Development with Docker

docker compose up -d

Backend will be available at: http://localhost:16181

Local Testing (CI-style)

Run tests exactly as they run in CI:

# Unit tests
docker run --rm -v "$PWD":/app -w /app gradle:9.2.0-jdk21 gradle clean test --no-daemon

# Build JAR
docker run --rm -v "$PWD":/app -w /app gradle:9.2.0-jdk21 gradle bootJar --no-daemon

# Static analysis and all checks
docker run --rm -v "$PWD":/app -w /app gradle:9.2.0-jdk21 gradle check --no-daemon

📋 API Endpoints

  • GET /time - Server time
  • GET /menu - Get menu items
  • GET /items - Get all items
  • POST /items - Create new item
  • PUT /items/{id} - Update item
  • DELETE /items/{id} - Delete item
  • PUT /items/{id}/reactivate - Reactivate item
  • GET /orders - Get all orders
  • POST /orders - Create order
  • GET /tables - Get all tables
  • GET /waiters - Get all waiters

See API_DOCUMENTATION.md for detailed API documentation.

🐳 Docker Deployment

Standard Deployment

docker compose up -d

The backend runs on port 16181 with persistent H2 database storage in the ./data directory.

Frontend Integration:

  • Frontend on olli.info: Connects to https://waiterorderbackend.olli.info
  • Frontend locally: Configure with BACKEND_URL=http://localhost:16181

🔄 Update Deployment

# cd /mnt/Data/Apps/HM_SE/WaiterOrder/backend

git pull
docker compose down
docker compose build --no-cache
docker compose up -d

🛠️ Environment Variables

  • SERVER_PORT - Server port (default: 16181)
  • SPRING_DATASOURCE_URL - H2 database URL
  • SPRING_DATASOURCE_USERNAME - Database username
  • SPRING_DATASOURCE_PASSWORD - Database password

📦 Tech Stack

  • Framework: Spring Boot 3.x
  • Language: Java 21
  • Database: H2 (file-based)
  • Build Tool: Gradle 9.2.0
  • Server: Embedded Tomcat

🔬 CI/CD

Mirror: https://git.olli.info/Oliver/WaiterOrder_Backend
CI Pipeline: https://ci.olli.info/repos/3 Build Status

Pipeline steps:

  1. Unit tests (gradle clean test)
  2. Build JAR (gradle bootJar)
  3. Integration tests (run JAR and test endpoints)

📁 Project Structure

backend/
├── src/
│   ├── main/java/backend/
│   │   ├── controller/      # REST controllers
│   │   ├── model/           # JPA entities
│   │   ├── repository/      # Data access layer
│   │   └── BackendApplication.java
│   └── test/                # Unit tests
├── data/                    # H2 database files (persisted)
├── build.gradle             # Gradle build configuration
├── Dockerfile               # Multi-stage Docker build
└── docker-compose.yml       # Container orchestration

🧪 Development

Prerequisites

  • Java 21
  • Gradle 9.2.0+
  • Docker (optional)

Run locally (without Docker)

./gradlew bootRun

Run tests

./gradlew test

Build JAR

./gradlew bootJar
# Output: build/libs/backend-0.0.1-SNAPSHOT.jar