From 6663539011f7432e83fb893fa6adec3e45d74c24 Mon Sep 17 00:00:00 2001 From: etc404 Date: Thu, 16 Apr 2026 17:49:41 -0600 Subject: [PATCH] The Unpopular Decision --- .gitattributes | 2 + .gitignore | 33 ++ .mvn/wrapper/maven-wrapper.properties | 3 + Dockerfile | 5 + mvnw | 295 ++++++++++++ mvnw.cmd | 189 ++++++++ pom.xml | 129 +++++ .../example/demo/RecipeDemoApplication.java | 13 + .../com/example/demo/config/CorsConfig.java | 37 ++ .../example/demo/config/SecurityConfig.java | 38 ++ .../demo/controller/AdminController.java | 39 ++ .../demo/controller/AuthController.java | 5 + .../controller/GlobalValidationHandler.java | 34 ++ .../demo/controller/HealthController.java | 23 + .../demo/controller/RecipeController.java | 90 ++++ .../demo/controller/SiteController.java | 60 +++ .../demo/controller/UserController.java | 105 ++++ .../com/example/demo/dto/AuthResponse.java | 5 + .../java/com/example/demo/dto/ImageDto.java | 23 + .../com/example/demo/dto/IngredientDto.java | 26 + .../com/example/demo/dto/LoginRequest.java | 5 + .../example/demo/dto/RecipeCreateRequest.java | 59 +++ .../java/com/example/demo/dto/RecipeDto.java | 139 ++++++ .../example/demo/dto/RecipeIngredientDto.java | 56 +++ .../com/example/demo/dto/RecipeResponse.java | 53 +++ .../example/demo/dto/RecipeUpdateRequest.java | 59 +++ .../com/example/demo/dto/RegisterRequest.java | 5 + .../java/com/example/demo/dto/StepDto.java | 30 ++ .../java/com/example/demo/dto/TagDto.java | 22 + .../java/com/example/demo/dto/UserDto.java | 41 ++ .../com/example/demo/entity/Favorite.java | 29 ++ .../com/example/demo/entity/FavoriteId.java | 42 ++ .../java/com/example/demo/entity/Image.java | 68 +++ .../com/example/demo/entity/Ingredient.java | 67 +++ .../java/com/example/demo/entity/Recipe.java | 211 +++++++++ .../example/demo/entity/RecipeIngredient.java | 102 ++++ .../com/example/demo/entity/RecipeTag.java | 53 +++ .../com/example/demo/entity/RecipeTagId.java | 57 +++ .../java/com/example/demo/entity/Step.java | 68 +++ .../java/com/example/demo/entity/Tag.java | 55 +++ .../java/com/example/demo/entity/User.java | 176 +++++++ .../demo/exception/BadRequestException.java | 5 + .../example/demo/exception/ErrorResponse.java | 5 + .../exception/GlobalExceptionHandler.java | 5 + .../demo/exception/NotFoundException.java | 32 ++ .../example/demo/repository/FavoriteRepo.java | 11 + .../example/demo/repository/ImageRepo.java | 10 + .../demo/repository/IngredientRepo.java | 10 + .../demo/repository/RecipeIngredientRepo.java | 14 + .../example/demo/repository/RecipeRepo.java | 18 + .../demo/repository/RecipeTagRepo.java | 11 + .../com/example/demo/repository/StepRepo.java | 11 + .../com/example/demo/repository/TagRepo.java | 12 + .../com/example/demo/repository/UserRepo.java | 16 + .../com/example/demo/service/AuthService.java | 5 + .../service/CustomUserDetailsService.java | 24 + .../demo/service/Impl/RecipeServiceImpl.java | 399 ++++++++++++++++ .../demo/service/Impl/UserServiceImpl.java | 167 +++++++ .../example/demo/service/MapperService.java | 5 + .../example/demo/service/RecipeService.java | 27 ++ .../com/example/demo/service/UserService.java | 34 ++ src/main/resources/application.properties | 20 + .../resources/static/css/create-account.css | 141 ++++++ .../resources/static/css/create-recipe.css | 447 ++++++++++++++++++ src/main/resources/static/css/explore.css | 348 ++++++++++++++ src/main/resources/static/css/home.css | 288 +++++++++++ src/main/resources/static/css/login.css | 178 +++++++ src/main/resources/static/css/view-recipe.css | 275 +++++++++++ .../resources/static/images/create_icon.png | Bin 0 -> 127529 bytes .../static/images/create_icon_lineless.png | Bin 0 -> 32559 bytes .../resources/static/images/decor_left.png | Bin 0 -> 55890 bytes .../resources/static/images/decor_right.png | Bin 0 -> 54316 bytes .../resources/static/images/header_left.png | Bin 0 -> 143444 bytes .../resources/static/images/header_right.png | Bin 0 -> 143445 bytes .../resources/static/images/logout_icon.png | Bin 0 -> 28277 bytes .../resources/templates/create-account.html | 101 ++++ .../resources/templates/create-recipe.html | 344 ++++++++++++++ src/main/resources/templates/explore.html | 75 +++ src/main/resources/templates/home.html | 65 +++ src/main/resources/templates/login.html | 41 ++ src/main/resources/templates/view-recipe.html | 64 +++ .../demo/RecipeDemoApplicationTests.java | 13 + 82 files changed, 5772 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .mvn/wrapper/maven-wrapper.properties create mode 100644 Dockerfile create mode 100644 mvnw create mode 100755 mvnw.cmd create mode 100644 pom.xml create mode 100644 src/main/java/com/example/demo/RecipeDemoApplication.java create mode 100644 src/main/java/com/example/demo/config/CorsConfig.java create mode 100644 src/main/java/com/example/demo/config/SecurityConfig.java create mode 100644 src/main/java/com/example/demo/controller/AdminController.java create mode 100644 src/main/java/com/example/demo/controller/AuthController.java create mode 100644 src/main/java/com/example/demo/controller/GlobalValidationHandler.java create mode 100644 src/main/java/com/example/demo/controller/HealthController.java create mode 100644 src/main/java/com/example/demo/controller/RecipeController.java create mode 100644 src/main/java/com/example/demo/controller/SiteController.java create mode 100644 src/main/java/com/example/demo/controller/UserController.java create mode 100644 src/main/java/com/example/demo/dto/AuthResponse.java create mode 100644 src/main/java/com/example/demo/dto/ImageDto.java create mode 100644 src/main/java/com/example/demo/dto/IngredientDto.java create mode 100644 src/main/java/com/example/demo/dto/LoginRequest.java create mode 100644 src/main/java/com/example/demo/dto/RecipeCreateRequest.java create mode 100644 src/main/java/com/example/demo/dto/RecipeDto.java create mode 100644 src/main/java/com/example/demo/dto/RecipeIngredientDto.java create mode 100644 src/main/java/com/example/demo/dto/RecipeResponse.java create mode 100644 src/main/java/com/example/demo/dto/RecipeUpdateRequest.java create mode 100644 src/main/java/com/example/demo/dto/RegisterRequest.java create mode 100644 src/main/java/com/example/demo/dto/StepDto.java create mode 100644 src/main/java/com/example/demo/dto/TagDto.java create mode 100644 src/main/java/com/example/demo/dto/UserDto.java create mode 100644 src/main/java/com/example/demo/entity/Favorite.java create mode 100644 src/main/java/com/example/demo/entity/FavoriteId.java create mode 100644 src/main/java/com/example/demo/entity/Image.java create mode 100644 src/main/java/com/example/demo/entity/Ingredient.java create mode 100644 src/main/java/com/example/demo/entity/Recipe.java create mode 100644 src/main/java/com/example/demo/entity/RecipeIngredient.java create mode 100644 src/main/java/com/example/demo/entity/RecipeTag.java create mode 100644 src/main/java/com/example/demo/entity/RecipeTagId.java create mode 100644 src/main/java/com/example/demo/entity/Step.java create mode 100644 src/main/java/com/example/demo/entity/Tag.java create mode 100644 src/main/java/com/example/demo/entity/User.java create mode 100644 src/main/java/com/example/demo/exception/BadRequestException.java create mode 100644 src/main/java/com/example/demo/exception/ErrorResponse.java create mode 100644 src/main/java/com/example/demo/exception/GlobalExceptionHandler.java create mode 100644 src/main/java/com/example/demo/exception/NotFoundException.java create mode 100644 src/main/java/com/example/demo/repository/FavoriteRepo.java create mode 100644 src/main/java/com/example/demo/repository/ImageRepo.java create mode 100644 src/main/java/com/example/demo/repository/IngredientRepo.java create mode 100644 src/main/java/com/example/demo/repository/RecipeIngredientRepo.java create mode 100644 src/main/java/com/example/demo/repository/RecipeRepo.java create mode 100644 src/main/java/com/example/demo/repository/RecipeTagRepo.java create mode 100644 src/main/java/com/example/demo/repository/StepRepo.java create mode 100644 src/main/java/com/example/demo/repository/TagRepo.java create mode 100644 src/main/java/com/example/demo/repository/UserRepo.java create mode 100644 src/main/java/com/example/demo/service/AuthService.java create mode 100644 src/main/java/com/example/demo/service/CustomUserDetailsService.java create mode 100644 src/main/java/com/example/demo/service/Impl/RecipeServiceImpl.java create mode 100644 src/main/java/com/example/demo/service/Impl/UserServiceImpl.java create mode 100644 src/main/java/com/example/demo/service/MapperService.java create mode 100644 src/main/java/com/example/demo/service/RecipeService.java create mode 100644 src/main/java/com/example/demo/service/UserService.java create mode 100644 src/main/resources/application.properties create mode 100644 src/main/resources/static/css/create-account.css create mode 100644 src/main/resources/static/css/create-recipe.css create mode 100644 src/main/resources/static/css/explore.css create mode 100644 src/main/resources/static/css/home.css create mode 100644 src/main/resources/static/css/login.css create mode 100644 src/main/resources/static/css/view-recipe.css create mode 100644 src/main/resources/static/images/create_icon.png create mode 100644 src/main/resources/static/images/create_icon_lineless.png create mode 100644 src/main/resources/static/images/decor_left.png create mode 100644 src/main/resources/static/images/decor_right.png create mode 100644 src/main/resources/static/images/header_left.png create mode 100644 src/main/resources/static/images/header_right.png create mode 100644 src/main/resources/static/images/logout_icon.png create mode 100644 src/main/resources/templates/create-account.html create mode 100644 src/main/resources/templates/create-recipe.html create mode 100644 src/main/resources/templates/explore.html create mode 100644 src/main/resources/templates/home.html create mode 100644 src/main/resources/templates/login.html create mode 100644 src/main/resources/templates/view-recipe.html create mode 100644 src/test/java/com/example/demo/RecipeDemoApplicationTests.java diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..3b41682 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +/mvnw text eol=lf +*.cmd text eol=crlf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..667aaef --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +HELP.md +target/ +.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..8dea6c2 --- /dev/null +++ b/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,3 @@ +wrapperVersion=3.3.4 +distributionType=only-script +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.12/apache-maven-3.9.12-bin.zip diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f5f438d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM eclipse-temurin:25 +WORKDIR /app +COPY target/demo-0.0.1-SNAPSHOT.jar app.jar +EXPOSE 8080 +ENTRYPOINT ["java","-jar","app.jar"] diff --git a/mvnw b/mvnw new file mode 100644 index 0000000..bd8896b --- /dev/null +++ b/mvnw @@ -0,0 +1,295 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Apache Maven Wrapper startup batch script, version 3.3.4 +# +# Optional ENV vars +# ----------------- +# JAVA_HOME - location of a JDK home dir, required when download maven via java source +# MVNW_REPOURL - repo url base for downloading maven distribution +# MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +# MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output +# ---------------------------------------------------------------------------- + +set -euf +[ "${MVNW_VERBOSE-}" != debug ] || set -x + +# OS specific support. +native_path() { printf %s\\n "$1"; } +case "$(uname)" in +CYGWIN* | MINGW*) + [ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")" + native_path() { cygpath --path --windows "$1"; } + ;; +esac + +# set JAVACMD and JAVACCMD +set_java_home() { + # For Cygwin and MinGW, ensure paths are in Unix format before anything is touched + if [ -n "${JAVA_HOME-}" ]; then + if [ -x "$JAVA_HOME/jre/sh/java" ]; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACCMD="$JAVA_HOME/jre/sh/javac" + else + JAVACMD="$JAVA_HOME/bin/java" + JAVACCMD="$JAVA_HOME/bin/javac" + + if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then + echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2 + echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2 + return 1 + fi + fi + else + JAVACMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v java + )" || : + JAVACCMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v javac + )" || : + + if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then + echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2 + return 1 + fi + fi +} + +# hash string like Java String::hashCode +hash_string() { + str="${1:-}" h=0 + while [ -n "$str" ]; do + char="${str%"${str#?}"}" + h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296)) + str="${str#?}" + done + printf %x\\n $h +} + +verbose() { :; } +[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; } + +die() { + printf %s\\n "$1" >&2 + exit 1 +} + +trim() { + # MWRAPPER-139: + # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds. + # Needed for removing poorly interpreted newline sequences when running in more + # exotic environments such as mingw bash on Windows. + printf "%s" "${1}" | tr -d '[:space:]' +} + +scriptDir="$(dirname "$0")" +scriptName="$(basename "$0")" + +# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties +while IFS="=" read -r key value; do + case "${key-}" in + distributionUrl) distributionUrl=$(trim "${value-}") ;; + distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;; + esac +done <"$scriptDir/.mvn/wrapper/maven-wrapper.properties" +[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" + +case "${distributionUrl##*/}" in +maven-mvnd-*bin.*) + MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ + case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in + *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;; + :Darwin*x86_64) distributionPlatform=darwin-amd64 ;; + :Darwin*arm64) distributionPlatform=darwin-aarch64 ;; + :Linux*x86_64*) distributionPlatform=linux-amd64 ;; + *) + echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2 + distributionPlatform=linux-amd64 + ;; + esac + distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip" + ;; +maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;; +*) MVN_CMD="mvn${scriptName#mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; +esac + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}" +distributionUrlName="${distributionUrl##*/}" +distributionUrlNameMain="${distributionUrlName%.*}" +distributionUrlNameMain="${distributionUrlNameMain%-bin}" +MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}" +MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")" + +exec_maven() { + unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || : + exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD" +} + +if [ -d "$MAVEN_HOME" ]; then + verbose "found existing MAVEN_HOME at $MAVEN_HOME" + exec_maven "$@" +fi + +case "${distributionUrl-}" in +*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;; +*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;; +esac + +# prepare tmp dir +if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then + clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; } + trap clean HUP INT TERM EXIT +else + die "cannot create temp dir" +fi + +mkdir -p -- "${MAVEN_HOME%/*}" + +# Download and Install Apache Maven +verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +verbose "Downloading from: $distributionUrl" +verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +# select .zip or .tar.gz +if ! command -v unzip >/dev/null; then + distributionUrl="${distributionUrl%.zip}.tar.gz" + distributionUrlName="${distributionUrl##*/}" +fi + +# verbose opt +__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR='' +[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v + +# normalize http auth +case "${MVNW_PASSWORD:+has-password}" in +'') MVNW_USERNAME='' MVNW_PASSWORD='' ;; +has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;; +esac + +if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then + verbose "Found wget ... using wget" + wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl" +elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then + verbose "Found curl ... using curl" + curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl" +elif set_java_home; then + verbose "Falling back to use Java to download" + javaSource="$TMP_DOWNLOAD_DIR/Downloader.java" + targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName" + cat >"$javaSource" <<-END + public class Downloader extends java.net.Authenticator + { + protected java.net.PasswordAuthentication getPasswordAuthentication() + { + return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() ); + } + public static void main( String[] args ) throws Exception + { + setDefault( new Downloader() ); + java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() ); + } + } + END + # For Cygwin/MinGW, switch paths to Windows format before running javac and java + verbose " - Compiling Downloader.java ..." + "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java" + verbose " - Running Downloader.java ..." + "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")" +fi + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +if [ -n "${distributionSha256Sum-}" ]; then + distributionSha256Result=false + if [ "$MVN_CMD" = mvnd.sh ]; then + echo "Checksum validation is not supported for maven-mvnd." >&2 + echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + elif command -v sha256sum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c - >/dev/null 2>&1; then + distributionSha256Result=true + fi + elif command -v shasum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then + distributionSha256Result=true + fi + else + echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2 + echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + fi + if [ $distributionSha256Result = false ]; then + echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2 + echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2 + exit 1 + fi +fi + +# unzip and move +if command -v unzip >/dev/null; then + unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip" +else + tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar" +fi + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +actualDistributionDir="" + +# First try the expected directory name (for regular distributions) +if [ -d "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" ]; then + if [ -f "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/bin/$MVN_CMD" ]; then + actualDistributionDir="$distributionUrlNameMain" + fi +fi + +# If not found, search for any directory with the Maven executable (for snapshots) +if [ -z "$actualDistributionDir" ]; then + # enable globbing to iterate over items + set +f + for dir in "$TMP_DOWNLOAD_DIR"/*; do + if [ -d "$dir" ]; then + if [ -f "$dir/bin/$MVN_CMD" ]; then + actualDistributionDir="$(basename "$dir")" + break + fi + fi + done + set -f +fi + +if [ -z "$actualDistributionDir" ]; then + verbose "Contents of $TMP_DOWNLOAD_DIR:" + verbose "$(ls -la "$TMP_DOWNLOAD_DIR")" + die "Could not find Maven distribution directory in extracted archive" +fi + +verbose "Found extracted Maven distribution directory: $actualDistributionDir" +printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$actualDistributionDir/mvnw.url" +mv -- "$TMP_DOWNLOAD_DIR/$actualDistributionDir" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" + +clean || : +exec_maven "$@" diff --git a/mvnw.cmd b/mvnw.cmd new file mode 100755 index 0000000..92450f9 --- /dev/null +++ b/mvnw.cmd @@ -0,0 +1,189 @@ +<# : batch portion +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.3.4 +@REM +@REM Optional ENV vars +@REM MVNW_REPOURL - repo url base for downloading maven distribution +@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output +@REM ---------------------------------------------------------------------------- + +@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0) +@SET __MVNW_CMD__= +@SET __MVNW_ERROR__= +@SET __MVNW_PSMODULEP_SAVE=%PSModulePath% +@SET PSModulePath= +@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @( + IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B) +) +@SET PSModulePath=%__MVNW_PSMODULEP_SAVE% +@SET __MVNW_PSMODULEP_SAVE= +@SET __MVNW_ARG0_NAME__= +@SET MVNW_USERNAME= +@SET MVNW_PASSWORD= +@IF NOT "%__MVNW_CMD__%"=="" ("%__MVNW_CMD__%" %*) +@echo Cannot start maven from wrapper >&2 && exit /b 1 +@GOTO :EOF +: end batch / begin powershell #> + +$ErrorActionPreference = "Stop" +if ($env:MVNW_VERBOSE -eq "true") { + $VerbosePreference = "Continue" +} + +# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties +$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl +if (!$distributionUrl) { + Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" +} + +switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) { + "maven-mvnd-*" { + $USE_MVND = $true + $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip" + $MVN_CMD = "mvnd.cmd" + break + } + default { + $USE_MVND = $false + $MVN_CMD = $script -replace '^mvnw','mvn' + break + } +} + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +if ($env:MVNW_REPOURL) { + $MVNW_REPO_PATTERN = if ($USE_MVND -eq $False) { "/org/apache/maven/" } else { "/maven/mvnd/" } + $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",'')" +} +$distributionUrlName = $distributionUrl -replace '^.*/','' +$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' + +$MAVEN_M2_PATH = "$HOME/.m2" +if ($env:MAVEN_USER_HOME) { + $MAVEN_M2_PATH = "$env:MAVEN_USER_HOME" +} + +if (-not (Test-Path -Path $MAVEN_M2_PATH)) { + New-Item -Path $MAVEN_M2_PATH -ItemType Directory | Out-Null +} + +$MAVEN_WRAPPER_DISTS = $null +if ((Get-Item $MAVEN_M2_PATH).Target[0] -eq $null) { + $MAVEN_WRAPPER_DISTS = "$MAVEN_M2_PATH/wrapper/dists" +} else { + $MAVEN_WRAPPER_DISTS = (Get-Item $MAVEN_M2_PATH).Target[0] + "/wrapper/dists" +} + +$MAVEN_HOME_PARENT = "$MAVEN_WRAPPER_DISTS/$distributionUrlNameMain" +$MAVEN_HOME_NAME = ([System.Security.Cryptography.SHA256]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' +$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" + +if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { + Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME" + Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" + exit $? +} + +if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) { + Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl" +} + +# prepare tmp dir +$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile +$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir" +$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null +trap { + if ($TMP_DOWNLOAD_DIR.Exists) { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } + } +} + +New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null + +# Download and Install Apache Maven +Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +Write-Verbose "Downloading from: $distributionUrl" +Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +$webclient = New-Object System.Net.WebClient +if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) { + $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD) +} +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 +$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum +if ($distributionSha256Sum) { + if ($USE_MVND) { + Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." + } + Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash + if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) { + Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property." + } +} + +# unzip and move +Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +$actualDistributionDir = "" + +# First try the expected directory name (for regular distributions) +$expectedPath = Join-Path "$TMP_DOWNLOAD_DIR" "$distributionUrlNameMain" +$expectedMvnPath = Join-Path "$expectedPath" "bin/$MVN_CMD" +if ((Test-Path -Path $expectedPath -PathType Container) -and (Test-Path -Path $expectedMvnPath -PathType Leaf)) { + $actualDistributionDir = $distributionUrlNameMain +} + +# If not found, search for any directory with the Maven executable (for snapshots) +if (!$actualDistributionDir) { + Get-ChildItem -Path "$TMP_DOWNLOAD_DIR" -Directory | ForEach-Object { + $testPath = Join-Path $_.FullName "bin/$MVN_CMD" + if (Test-Path -Path $testPath -PathType Leaf) { + $actualDistributionDir = $_.Name + } + } +} + +if (!$actualDistributionDir) { + Write-Error "Could not find Maven distribution directory in extracted archive" +} + +Write-Verbose "Found extracted Maven distribution directory: $actualDistributionDir" +Rename-Item -Path "$TMP_DOWNLOAD_DIR/$actualDistributionDir" -NewName $MAVEN_HOME_NAME | Out-Null +try { + Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null +} catch { + if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) { + Write-Error "fail to move MAVEN_HOME" + } +} finally { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } +} + +Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..a677ca3 --- /dev/null +++ b/pom.xml @@ -0,0 +1,129 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 4.0.3 + + + com.example + demo + 0.0.1-SNAPSHOT + recipeDemo + Software engineering recipe project + + + + + + + + + + + + + + + 25 + + + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + + org.springframework.boot + spring-boot-starter-security + + + + + org.springframework.boot + spring-boot-starter-validation + + + + + com.mysql + mysql-connector-j + runtime + + + + + org.projectlombok + lombok + true + + + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + + + org.springframework.boot + spring-boot-starter-test + test + + + + org.springframework.security + spring-security-test + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.projectlombok + lombok + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + + + + + + diff --git a/src/main/java/com/example/demo/RecipeDemoApplication.java b/src/main/java/com/example/demo/RecipeDemoApplication.java new file mode 100644 index 0000000..de1e812 --- /dev/null +++ b/src/main/java/com/example/demo/RecipeDemoApplication.java @@ -0,0 +1,13 @@ +package com.example.demo; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class RecipeDemoApplication { + + public static void main(String[] args) { + SpringApplication.run(RecipeDemoApplication.class, args); + } + +} diff --git a/src/main/java/com/example/demo/config/CorsConfig.java b/src/main/java/com/example/demo/config/CorsConfig.java new file mode 100644 index 0000000..2b81c0f --- /dev/null +++ b/src/main/java/com/example/demo/config/CorsConfig.java @@ -0,0 +1,37 @@ +package com.example.demo.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.cors.CorsConfigurationSource; + +import java.util.List; + +@Configuration +public class CorsConfig { + + @Bean + public CorsConfigurationSource corsConfigurationSource() { + + CorsConfiguration config = new CorsConfiguration(); + + // Allow your frontend origin (adjust if different) + config.setAllowedOrigins(List.of("http://localhost:8080/", + "http://localhost:5173")); + + // Allow common HTTP methods + config.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE", "OPTIONS")); + + // Allow headers like Authorization (for JWT later) + config.setAllowedHeaders(List.of("*")); + + // Allow cookies if using sessions + config.setAllowCredentials(true); + + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + source.registerCorsConfiguration("/**", config); + + return source; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/config/SecurityConfig.java b/src/main/java/com/example/demo/config/SecurityConfig.java new file mode 100644 index 0000000..1f40ad5 --- /dev/null +++ b/src/main/java/com/example/demo/config/SecurityConfig.java @@ -0,0 +1,38 @@ +package com.example.demo.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.SecurityFilterChain; +import org.springframework.security.web.csrf.CsrfAuthenticationStrategy; + +@Configuration +public class SecurityConfig { + + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } + + @Bean + public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { + http + .csrf(csrf -> csrf.disable()) + .authorizeHttpRequests(auth -> auth + .requestMatchers("/login", "/register", "/css/**", "/images/**").permitAll() + .requestMatchers("/api/users").permitAll() + .requestMatchers("/api/admin/**").hasRole("ADMIN") + .anyRequest().authenticated() + ) + .formLogin(form -> form + .loginPage("/login") + .defaultSuccessUrl("/", true) + .permitAll() + ) + .logout(logout -> logout.permitAll()); + + return http.build(); + } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/controller/AdminController.java b/src/main/java/com/example/demo/controller/AdminController.java new file mode 100644 index 0000000..e3fabcf --- /dev/null +++ b/src/main/java/com/example/demo/controller/AdminController.java @@ -0,0 +1,39 @@ +package com.example.demo.controller; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import com.example.demo.dto.UserDto; +import com.example.demo.service.UserService; + +@RestController +@RequestMapping("/api/admin") +public class AdminController { + + private final UserService userService; + + public AdminController(UserService userService) { + this.userService = userService; + } + + @PostMapping("/users/{id}/ban") + public ResponseEntity banUser(@PathVariable Integer id) { + return new ResponseEntity<>(userService.banUser(id), HttpStatus.OK); + } + + @PostMapping("/users/{id}/unban") + public ResponseEntity unbanUser(@PathVariable Integer id) { + return new ResponseEntity<>(userService.unbanUser(id), HttpStatus.OK); + } + + @PostMapping("/users/{id}/make-admin") + public ResponseEntity makeAdmin(@PathVariable Integer id) { + return new ResponseEntity<>(userService.makeAdmin(id), HttpStatus.OK); + } + + @PostMapping("/users/{id}/make-user") + public ResponseEntity makeUser(@PathVariable Integer id) { + return new ResponseEntity<>(userService.makeUser(id), HttpStatus.OK); + } +} diff --git a/src/main/java/com/example/demo/controller/AuthController.java b/src/main/java/com/example/demo/controller/AuthController.java new file mode 100644 index 0000000..1fdce90 --- /dev/null +++ b/src/main/java/com/example/demo/controller/AuthController.java @@ -0,0 +1,5 @@ +package com.example.demo.controller; + +public class AuthController { + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/controller/GlobalValidationHandler.java b/src/main/java/com/example/demo/controller/GlobalValidationHandler.java new file mode 100644 index 0000000..91a1abd --- /dev/null +++ b/src/main/java/com/example/demo/controller/GlobalValidationHandler.java @@ -0,0 +1,34 @@ +package com.example.demo.controller; + +import jakarta.validation.ConstraintViolationException; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +import java.util.HashMap; +import java.util.Map; + +@RestControllerAdvice +public class GlobalValidationHandler { + + @ExceptionHandler(ConstraintViolationException.class) + public ResponseEntity> handleConstraintViolation(ConstraintViolationException ex) { + Map errors = new HashMap<>(); + ex.getConstraintViolations().forEach(violation -> { + String fieldPath = violation.getPropertyPath().toString(); + errors.put(fieldPath, violation.getMessage()); + }); + return new ResponseEntity<>(errors, HttpStatus.BAD_REQUEST); + } + + @ExceptionHandler(MethodArgumentNotValidException.class) + public ResponseEntity> handleValidationExceptions(MethodArgumentNotValidException ex) { + Map errors = new HashMap<>(); + ex.getBindingResult().getFieldErrors().forEach(error -> { + errors.put(error.getField(), error.getDefaultMessage()); + }); + return new ResponseEntity<>(errors, HttpStatus.BAD_REQUEST); + } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/controller/HealthController.java b/src/main/java/com/example/demo/controller/HealthController.java new file mode 100644 index 0000000..8d227bd --- /dev/null +++ b/src/main/java/com/example/demo/controller/HealthController.java @@ -0,0 +1,23 @@ +package com.example.demo.controller; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.Map; + +@RestController +public class HealthController { + + @GetMapping("/api/health") + public Map healthCheck() { + Map response = new HashMap<>(); + + response.put("status", "UP"); + response.put("timestamp", LocalDateTime.now()); + response.put("service", "Recipe Backend"); + + return response; + } +} diff --git a/src/main/java/com/example/demo/controller/RecipeController.java b/src/main/java/com/example/demo/controller/RecipeController.java new file mode 100644 index 0000000..360314c --- /dev/null +++ b/src/main/java/com/example/demo/controller/RecipeController.java @@ -0,0 +1,90 @@ +package com.example.demo.controller; + +import java.util.List; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.security.core.Authentication; + +import com.example.demo.dto.RecipeDto; +import com.example.demo.dto.UserDto; +import com.example.demo.entity.Recipe; +import com.example.demo.entity.User; +import com.example.demo.service.RecipeService; + +import jakarta.validation.Valid; + +@RestController +@RequestMapping("/api/recipes") +public class RecipeController { + + private RecipeService recipeService; + + public RecipeController(RecipeService recipeService) { + super(); + this.recipeService = recipeService; + } + + // build create recipe REST API + @PostMapping + public ResponseEntity saveRecipe(@RequestBody RecipeDto recipeDto, Authentication authentication) { + String currentUsername = authentication.getName(); + return new ResponseEntity<>(recipeService.saveRecipe(recipeDto, currentUsername), HttpStatus.CREATED); + } + + // build get all recipes REST API + @GetMapping + public List getAllRecipes() { + return recipeService.getAllRecipes(); + } + + // build get recipe by id REST API + // http://localhost:8080/api/recipes/(id number goes here) + @GetMapping("{id}") + public ResponseEntity getRecipeById(@PathVariable("id") Integer recipeId) { + return new ResponseEntity(recipeService.getRecipeById(recipeId), HttpStatus.OK); + } + + // build get recipe by name REST API + @GetMapping("/search") + public ResponseEntity> searchRecipes( + @RequestParam(required = false) String name, // by not adding a name all recipes will appear basically + @RequestParam(required = false) List tags // since users can choose no tags this isnt required + ) { + + + + List recipes = recipeService.getRecipes(name, tags); + return new ResponseEntity<>(recipes, HttpStatus.OK); + } + + // build update recipe REST API + // http://localhost:8080/api/recipes/(id number goes here) + @PutMapping("{id}") + public ResponseEntity updateRecipe( + @PathVariable("id") Integer recipeId, + @RequestBody RecipeDto recipeDto, + Authentication authentication) { + String currentUsername = authentication.getName(); + return new ResponseEntity<>(recipeService.updateRecipe(recipeDto, recipeId, currentUsername), HttpStatus.OK); + } + + // build delete recipe REST API + // http://localhost:8080/api/recipes/(id number goes here) + @DeleteMapping("{id}") + public ResponseEntity deleteRecipe(@PathVariable("id") Integer recipeId, Authentication authentication) { + String currentUsername = authentication.getName(); + recipeService.deleteRecipe(recipeId, currentUsername); + return new ResponseEntity<>("Recipe deleted successfully!", HttpStatus.OK); + } + +} diff --git a/src/main/java/com/example/demo/controller/SiteController.java b/src/main/java/com/example/demo/controller/SiteController.java new file mode 100644 index 0000000..8c4d0f8 --- /dev/null +++ b/src/main/java/com/example/demo/controller/SiteController.java @@ -0,0 +1,60 @@ +package com.example.demo.controller; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import com.example.demo.service.RecipeService; +import com.example.demo.dto.RecipeDto; +import com.example.demo.entity.Recipe; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +@Controller +public class SiteController { + + private final RecipeService recipeService; + + public SiteController(RecipeService recipeService) { + this.recipeService = recipeService; + } + @GetMapping("/") + public String viewHomePage(Model model) { + //model.addAttribute("allemplist", employeeServiceImpl.getAllEmployee()); + List recipes = recipeService.getAllRecipes(); + model.addAttribute("recipes", recipes); + return "home"; + } + + @GetMapping("/login") + public String viewLoginPage(Model model) { + return "login"; + } + + @GetMapping("/register") + public String viewRegisterPage(Model model) { + return "create-account"; + } + + @GetMapping("/create") + public String viewCreatePage(Model model) { + return "create-recipe"; + } + + @GetMapping("/recipes/{id}") + public String viewRecipe(@PathVariable Integer id, Model model) { + RecipeDto recipe = recipeService.getRecipeById(id); + model.addAttribute("recipe", recipe); + return "view-recipe"; + } + + @GetMapping("/explore") + public String viewExplorePage(Model model) { + //model.addAttribute("allemplist", employeeServiceImpl.getAllEmployee()); + List recipes = recipeService.getAllRecipes(); + model.addAttribute("recipes", recipes); + return "explore"; + } + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/controller/UserController.java b/src/main/java/com/example/demo/controller/UserController.java new file mode 100644 index 0000000..059a688 --- /dev/null +++ b/src/main/java/com/example/demo/controller/UserController.java @@ -0,0 +1,105 @@ +package com.example.demo.controller; + +import java.security.Principal; +import java.util.List; +import java.util.Optional; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import com.example.demo.dto.UserDto; +import com.example.demo.entity.User; +import com.example.demo.repository.UserRepo; +import com.example.demo.service.UserService; + +@RestController +@RequestMapping("/api/users") +public class UserController { + + private UserService userService; + private UserRepo userRepo; + + public UserController(UserService userService, UserRepo userRepo) { + super(); + this.userService = userService; + this.userRepo = userRepo; + } + + // build create user REST API + @PostMapping + public ResponseEntity saveUser(@RequestBody User user) { + + return new ResponseEntity(userService.saveUser(user), HttpStatus.CREATED); + } + + // build get all users REST API + @GetMapping + public List getAllUsers() { + return userService.getAllUsers(); + } + + // build get user by name REST API + @GetMapping("/search") + public ResponseEntity> getUsersByName(@RequestParam String name) { + List users = userService.getUsersByName(name); + return new ResponseEntity<>(users, HttpStatus.OK); + } + + // build get current user REST API + @GetMapping("/me") + public UserDto getLoggedInUser(Principal principal) { + if (principal == null) return null; + String username = principal.getName(); + User user = (userRepo.findByUsername(username)) + .orElse(null); + return userService.convertToDto(user); + } + + // build get user by id REST API + // http://localhost:8080/api/users/(id number goes here) + @GetMapping("{id}") + public ResponseEntity getUserById(@PathVariable("id") Integer userId) { + return new ResponseEntity(userService.getUserById(userId), HttpStatus.OK); + } + + // build create favorite REST API + @PostMapping("/{userId}/favorites/{recipeId}") + public ResponseEntity saveFavorite(@PathVariable Integer userId, @PathVariable Integer recipeId) { + + UserDto updatedUser = userService.saveFavorite(userId, recipeId); + + return new ResponseEntity<>(updatedUser, HttpStatus.OK); + } + + // build update user REST API + // http://localhost:8080/api/users/(id number goes here) + @PutMapping("{id}") + public ResponseEntity updateUser(@PathVariable("id") Integer userId, @RequestBody User user) { + return new ResponseEntity(userService.updateUser(user, userId), HttpStatus.OK); + } + + // build delete user REST API + @DeleteMapping("{id}") + public ResponseEntity deleteUser(@PathVariable("id") Integer userId) { + userService.deleteUser(userId); + return new ResponseEntity("User deleted succesfully!", HttpStatus.OK); + } + + // build delete favorite REST API + @DeleteMapping("/{userId}/favorites/{recipeId}") + public ResponseEntity deleteFavorite(@PathVariable Integer userId, @PathVariable Integer recipeId) { + + userService.deleteFavorite(userId, recipeId); + return new ResponseEntity("Favorite deleted succesfully!", HttpStatus.OK); + } + +} diff --git a/src/main/java/com/example/demo/dto/AuthResponse.java b/src/main/java/com/example/demo/dto/AuthResponse.java new file mode 100644 index 0000000..42f2539 --- /dev/null +++ b/src/main/java/com/example/demo/dto/AuthResponse.java @@ -0,0 +1,5 @@ +package com.example.demo.dto; + +public class AuthResponse { + +} diff --git a/src/main/java/com/example/demo/dto/ImageDto.java b/src/main/java/com/example/demo/dto/ImageDto.java new file mode 100644 index 0000000..42902d8 --- /dev/null +++ b/src/main/java/com/example/demo/dto/ImageDto.java @@ -0,0 +1,23 @@ +package com.example.demo.dto; + +public class ImageDto { + String imageUrl; + + public ImageDto() { + super(); + } + + public ImageDto(String imageUrl) { + super(); + this.imageUrl = imageUrl; + } + + public String getImageUrl() { + return imageUrl; + } + + public void setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + } + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/dto/IngredientDto.java b/src/main/java/com/example/demo/dto/IngredientDto.java new file mode 100644 index 0000000..624e18d --- /dev/null +++ b/src/main/java/com/example/demo/dto/IngredientDto.java @@ -0,0 +1,26 @@ +package com.example.demo.dto; + +import java.math.BigDecimal; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.PositiveOrZero; + +public class IngredientDto { + + @NotBlank(message = "ingredientName is required") + private String ingredientName; + + @PositiveOrZero(message = "quantity must be 0 or greater") + private BigDecimal quantity; + + private String unit; + + public String getIngredientName() { return ingredientName; } + public void setIngredientName(String ingredientName) { this.ingredientName = ingredientName; } + + public @PositiveOrZero(message = "quantity must be 0 or greater") BigDecimal getQuantity() { return quantity; } + public void setQuantity(BigDecimal bigDecimal) { this.quantity = bigDecimal; } + + public String getUnit() { return unit; } + public void setUnit(String unit) { this.unit = unit; } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/dto/LoginRequest.java b/src/main/java/com/example/demo/dto/LoginRequest.java new file mode 100644 index 0000000..89d74f9 --- /dev/null +++ b/src/main/java/com/example/demo/dto/LoginRequest.java @@ -0,0 +1,5 @@ +package com.example.demo.dto; + +public class LoginRequest { + +} diff --git a/src/main/java/com/example/demo/dto/RecipeCreateRequest.java b/src/main/java/com/example/demo/dto/RecipeCreateRequest.java new file mode 100644 index 0000000..f45b179 --- /dev/null +++ b/src/main/java/com/example/demo/dto/RecipeCreateRequest.java @@ -0,0 +1,59 @@ +package com.example.demo.dto; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.PositiveOrZero; +import jakarta.validation.constraints.Size; + +import java.util.List; + +import com.example.demo.dto.StepDto; + +public class RecipeCreateRequest { + + @NotBlank(message = "title is required") + @Size(max = 100, message = "title must be 100 characters or less") + private String title; + + @Size(max = 1000, message = "description must be 1000 characters or less") + private String description; + + @PositiveOrZero(message = "prepTimeMinutes must be 0 or greater") + private int prepTimeMinutes; + + @PositiveOrZero(message = "cookTimeMinutes must be 0 or greater") + private int cookTimeMinutes; + + @PositiveOrZero(message = "servings must be 0 or greater") + private int servings; + + @NotNull(message = "ingredients list is required") + @Valid + private java.util.List ingredients; + + @NotNull(message = "steps list is required") + @Valid + private java.util.List steps; + + public String getTitle() { return title; } + public void setTitle(String title) { this.title = title; } + + public String getDescription() { return description; } + public void setDescription(String description) { this.description = description; } + + public int getPrepTimeMinutes() { return prepTimeMinutes; } + public void setPrepTimeMinutes(int prepTimeMinutes) { this.prepTimeMinutes = prepTimeMinutes; } + + public int getCookTimeMinutes() { return cookTimeMinutes; } + public void setCookTimeMinutes(int cookTimeMinutes) { this.cookTimeMinutes = cookTimeMinutes; } + + public int getServings() { return servings; } + public void setServings(int servings) { this.servings = servings; } + + public java.util.List getIngredients() { return ingredients; } + public void setIngredients(java.util.List ingredients) { this.ingredients = ingredients; } + + public java.util.List getSteps() { return steps; } + public void setSteps(java.util.List steps) { this.steps = steps; } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/dto/RecipeDto.java b/src/main/java/com/example/demo/dto/RecipeDto.java new file mode 100644 index 0000000..ff5cb80 --- /dev/null +++ b/src/main/java/com/example/demo/dto/RecipeDto.java @@ -0,0 +1,139 @@ +package com.example.demo.dto; + +import java.util.List; + +import com.example.demo.entity.Recipe; + +public class RecipeDto { + private String title; + private String description; + private Integer prepTimeMinutes; + private Integer cookTimeMinutes; + private Integer servings; + private UserDto userDto; + private String status; + private Integer id; + private List ingredients; + private List steps; + private List images; + private List tags; + + public RecipeDto() { + super(); + } + + public RecipeDto(String title, String description, Integer prepTimeMinutes, Integer cookTimeMinutes, + Integer servings, UserDto userDto, String status, List ingredients, + List steps, List images, List tags) { + super(); + this.title = title; + this.description = description; + this.prepTimeMinutes = prepTimeMinutes; + this.cookTimeMinutes = cookTimeMinutes; + this.servings = servings; + this.userDto = userDto; + this.status = status; + this.ingredients = ingredients; + this.steps = steps; + this.images = images; + this.tags = tags; + } + + // getters and setters + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getPrepTimeMinutes() { + return prepTimeMinutes; + } + + public void setPrepTimeMinutes(Integer prepTimeMinutes) { + this.prepTimeMinutes = prepTimeMinutes; + } + + public Integer getCookTimeMinutes() { + return cookTimeMinutes; + } + + public void setCookTimeMinutes(Integer cookTimeMinutes) { + this.cookTimeMinutes = cookTimeMinutes; + } + + public Integer getServings() { + return servings; + } + + public void setServings(Integer servings) { + this.servings = servings; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public List getIngredients() { + return ingredients; + } + + public Integer getId() { + return id; + } + + public void setIngredients(List ingredients) { + this.ingredients = ingredients; + } + + public List getSteps() { + return steps; + } + + public void setSteps(List steps) { + this.steps = steps; + } + + public List getImages() { + return images; + } + + public void setImages(List images) { + this.images = images; + } + + public List getTags() { + return tags; + } + + public void setTags(List tags) { + this.tags = tags; + } + + public UserDto getUserDto() { + return userDto; + } + + public void setUserDto(UserDto userDto) { + this.userDto = userDto; + } + + public void setId(Integer id) { + this.id = id; + } +} diff --git a/src/main/java/com/example/demo/dto/RecipeIngredientDto.java b/src/main/java/com/example/demo/dto/RecipeIngredientDto.java new file mode 100644 index 0000000..f20e670 --- /dev/null +++ b/src/main/java/com/example/demo/dto/RecipeIngredientDto.java @@ -0,0 +1,56 @@ +package com.example.demo.dto; + +import java.math.BigDecimal; + +public class RecipeIngredientDto { + private String ingredientName; + private BigDecimal quantity; + private String unit; + private String notes; + + public RecipeIngredientDto() { + super(); + } + + public RecipeIngredientDto(String ingredientName, BigDecimal quantity, String unit, String notes) { + super(); + this.ingredientName = ingredientName; + this.quantity = quantity; + this.unit = unit; + this.notes = notes; + } + + // getters and setters + public String getIngredientName() { + return ingredientName; + } + + public void setIngredientName(String ingredientName) { + this.ingredientName = ingredientName; + } + + public BigDecimal getQuantity() { + return quantity; + } + + public void setQuantity(BigDecimal quantity) { + this.quantity = quantity; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } + +} diff --git a/src/main/java/com/example/demo/dto/RecipeResponse.java b/src/main/java/com/example/demo/dto/RecipeResponse.java new file mode 100644 index 0000000..659b213 --- /dev/null +++ b/src/main/java/com/example/demo/dto/RecipeResponse.java @@ -0,0 +1,53 @@ +package com.example.demo.dto; + +import java.time.LocalDateTime; +import java.util.List; + +import com.example.demo.dto.StepDto; + +public class RecipeResponse { + + private Long id; + private String title; + private String description; + + private int prepTimeMinutes; + private int cookTimeMinutes; + private int servings; + + private List ingredients; + private List steps; + + private LocalDateTime createdAt; + private LocalDateTime updatedAt; + + public Long getId() { return id; } + public void setId(Long id) { this.id = id; } + + public String getTitle() { return title; } + public void setTitle(String title) { this.title = title; } + + public String getDescription() { return description; } + public void setDescription(String description) { this.description = description; } + + public int getPrepTimeMinutes() { return prepTimeMinutes; } + public void setPrepTimeMinutes(int prepTimeMinutes) { this.prepTimeMinutes = prepTimeMinutes; } + + public int getCookTimeMinutes() { return cookTimeMinutes; } + public void setCookTimeMinutes(int cookTimeMinutes) { this.cookTimeMinutes = cookTimeMinutes; } + + public int getServings() { return servings; } + public void setServings(int servings) { this.servings = servings; } + + public List getIngredients() { return ingredients; } + public void setIngredients(List ingredients) { this.ingredients = ingredients; } + + public List getSteps() { return steps; } + public void setSteps(List steps) { this.steps = steps; } + + public LocalDateTime getCreatedAt() { return createdAt; } + public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; } + + public LocalDateTime getUpdatedAt() { return updatedAt; } + public void setUpdatedAt(LocalDateTime updatedAt) { this.updatedAt = updatedAt; } +} diff --git a/src/main/java/com/example/demo/dto/RecipeUpdateRequest.java b/src/main/java/com/example/demo/dto/RecipeUpdateRequest.java new file mode 100644 index 0000000..3482f03 --- /dev/null +++ b/src/main/java/com/example/demo/dto/RecipeUpdateRequest.java @@ -0,0 +1,59 @@ +package com.example.demo.dto; + +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.PositiveOrZero; +import jakarta.validation.constraints.Size; + +import java.util.List; + +import com.example.demo.dto.StepDto; + +public class RecipeUpdateRequest { + + @NotBlank(message = "title is required") + @Size(max = 100, message = "title must be 100 characters or less") + private String title; + + @Size(max = 1000, message = "description must be 1000 characters or less") + private String description; + + @PositiveOrZero(message = "prepTimeMinutes must be 0 or greater") + private int prepTimeMinutes; + + @PositiveOrZero(message = "cookTimeMinutes must be 0 or greater") + private int cookTimeMinutes; + + @PositiveOrZero(message = "servings must be 0 or greater") + private int servings; + + @NotNull(message = "ingredients list is required") + @Valid + private List ingredients; + + @NotNull(message = "steps list is required") + @Valid + private List steps; + + public String getTitle() { return title; } + public void setTitle(String title) { this.title = title; } + + public String getDescription() { return description; } + public void setDescription(String description) { this.description = description; } + + public int getPrepTimeMinutes() { return prepTimeMinutes; } + public void setPrepTimeMinutes(int prepTimeMinutes) { this.prepTimeMinutes = prepTimeMinutes; } + + public int getCookTimeMinutes() { return cookTimeMinutes; } + public void setCookTimeMinutes(int cookTimeMinutes) { this.cookTimeMinutes = cookTimeMinutes; } + + public int getServings() { return servings; } + public void setServings(int servings) { this.servings = servings; } + + public List getIngredients() { return ingredients; } + public void setIngredients(List ingredients) { this.ingredients = ingredients; } + + public List getSteps() { return steps; } + public void setSteps(List steps) { this.steps = steps; } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/dto/RegisterRequest.java b/src/main/java/com/example/demo/dto/RegisterRequest.java new file mode 100644 index 0000000..3984882 --- /dev/null +++ b/src/main/java/com/example/demo/dto/RegisterRequest.java @@ -0,0 +1,5 @@ +package com.example.demo.dto; + +public class RegisterRequest { + +} diff --git a/src/main/java/com/example/demo/dto/StepDto.java b/src/main/java/com/example/demo/dto/StepDto.java new file mode 100644 index 0000000..47357bb --- /dev/null +++ b/src/main/java/com/example/demo/dto/StepDto.java @@ -0,0 +1,30 @@ +package com.example.demo.dto; + +public class StepDto { + private Integer stepNumber; + private String instruction; + + public StepDto() { + } + + public StepDto(Integer stepNumber, String instruction) { + this.stepNumber = stepNumber; + this.instruction = instruction; + } + + public Integer getStepNumber() { + return stepNumber; + } + + public void setStepNumber(Integer stepNumber) { + this.stepNumber = stepNumber; + } + + public String getInstruction() { + return instruction; + } + + public void setInstruction(String instruction) { + this.instruction = instruction; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/dto/TagDto.java b/src/main/java/com/example/demo/dto/TagDto.java new file mode 100644 index 0000000..9c90469 --- /dev/null +++ b/src/main/java/com/example/demo/dto/TagDto.java @@ -0,0 +1,22 @@ +package com.example.demo.dto; + +public class TagDto { + private String name; + + public TagDto() { + super(); + } + + public TagDto(String name) { + super(); + this.name = name; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/src/main/java/com/example/demo/dto/UserDto.java b/src/main/java/com/example/demo/dto/UserDto.java new file mode 100644 index 0000000..7b8a011 --- /dev/null +++ b/src/main/java/com/example/demo/dto/UserDto.java @@ -0,0 +1,41 @@ +package com.example.demo.dto; + +public class UserDto { + private Integer id; + private String username; + private String email; + + public UserDto() { + } + + public UserDto(Integer id, String username, String email) { + this.id = id; + this.username = username; + this.email = email; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + +} diff --git a/src/main/java/com/example/demo/entity/Favorite.java b/src/main/java/com/example/demo/entity/Favorite.java new file mode 100644 index 0000000..20e1e43 --- /dev/null +++ b/src/main/java/com/example/demo/entity/Favorite.java @@ -0,0 +1,29 @@ +package com.example.demo.entity; + +import jakarta.persistence.*; +import java.time.LocalDateTime; + +@Entity +@Table(name = "favorites") +public class Favorite { + + @EmbeddedId + private FavoriteId id; + + @Column(name = "created_at") + private LocalDateTime createdAt; + + public Favorite() {} + + public Favorite(Integer userId, Integer recipeId) { + this.id = new FavoriteId(userId, recipeId); + this.createdAt = LocalDateTime.now(); + } + + // Getters and setters + public FavoriteId getId() { return id; } + public void setId(FavoriteId id) { this.id = id; } + + public LocalDateTime getCreatedAt() { return createdAt; } + public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/entity/FavoriteId.java b/src/main/java/com/example/demo/entity/FavoriteId.java new file mode 100644 index 0000000..8b43d9d --- /dev/null +++ b/src/main/java/com/example/demo/entity/FavoriteId.java @@ -0,0 +1,42 @@ +package com.example.demo.entity; + +import jakarta.persistence.*; +import java.io.Serializable; +import java.util.Objects; + +@Embeddable +public class FavoriteId implements Serializable { + + private static final long serialVersionUID = 7241804509064720087L; + private Integer userId; + private Integer recipeId; + + public FavoriteId() {} + + public FavoriteId(Integer userId, Integer recipeId) { + this.userId = userId; + this.recipeId = recipeId; + } + + // Getters and setters + public Integer getUserId() { return userId; } + public void setUserId(Integer userId) { this.userId = userId; } + + public Integer getRecipeId() { return recipeId; } + public void setRecipeId(Integer recipeId) { this.recipeId = recipeId; } + + // equals and hashCode required for composite keys + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof FavoriteId)) return false; + FavoriteId that = (FavoriteId) o; + return Objects.equals(userId, that.userId) && + Objects.equals(recipeId, that.recipeId); + } + + @Override + public int hashCode() { + return Objects.hash(userId, recipeId); + } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/entity/Image.java b/src/main/java/com/example/demo/entity/Image.java new file mode 100644 index 0000000..e899a27 --- /dev/null +++ b/src/main/java/com/example/demo/entity/Image.java @@ -0,0 +1,68 @@ +package com.example.demo.entity; + +import jakarta.persistence.*; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +@Entity +@Table(name = "recipe_images") +public class Image { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "recipe_id", nullable = false) + @EqualsAndHashCode.Include + private Recipe recipe; + + @Column(name = "image_url", nullable = false) + private String imageUrl; + + @Column(name = "created_at") + private LocalDateTime createdAt; + + public Image() { + } + + public Image(Recipe recipe, String imageUrl) { + this.recipe = recipe; + this.imageUrl = imageUrl; + this.createdAt = LocalDateTime.now(); + } + + // Getters and setters + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Recipe getRecipe() { + return recipe; + } + + public void setRecipe(Recipe recipe) { + this.recipe = recipe; + } + + public String getImageUrl() { + return imageUrl; + } + + public void setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + } + + public LocalDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(LocalDateTime createdAt) { + this.createdAt = createdAt; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/entity/Ingredient.java b/src/main/java/com/example/demo/entity/Ingredient.java new file mode 100644 index 0000000..8666ba6 --- /dev/null +++ b/src/main/java/com/example/demo/entity/Ingredient.java @@ -0,0 +1,67 @@ +package com.example.demo.entity; + +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Table; +import jakarta.persistence.UniqueConstraint; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; + +import java.util.HashSet; +import java.util.Set; + +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; + +@Entity +@Table(name = "ingredients", uniqueConstraints = { @UniqueConstraint(columnNames = "name") }) +public class Ingredient { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + @Column(nullable = false, unique = true,columnDefinition = "TEXT") + @NotBlank(message = "Please provide an ingredient name") + @Size(max = 128, message = "Name cannot be longer than 128 characters") + private String name; + + @OneToMany(mappedBy = "ingredient") + private Set recipeIngredients = new HashSet<>(); + + public Ingredient() { + } + + public Ingredient(String name) { + this.name = name; + } + + // Getters and setters + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Set getRecipeIngredients() { + return recipeIngredients; + } + + public void setRecipeIngredients(Set recipeIngredients) { + this.recipeIngredients = recipeIngredients; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/entity/Recipe.java b/src/main/java/com/example/demo/entity/Recipe.java new file mode 100644 index 0000000..616ed38 --- /dev/null +++ b/src/main/java/com/example/demo/entity/Recipe.java @@ -0,0 +1,211 @@ +package com.example.demo.entity; + +import jakarta.persistence.*; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Positive; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.HashSet; +import java.util.Set; + +@Entity +@Table(name = "recipes") +public class Recipe { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + @NotBlank(message = "Please provide a recipe title") + private String title; + + @Column(columnDefinition = "TEXT") + private String description; + + @NotNull(message = "Please Provide a prep time amount in mintutes") + @Positive(message = "This value cannot be negative") + private Integer prepTimeMinutes; + + @NotNull(message = "Please Provide a cook time amount in mintutes") + @Positive(message = "This value cannot be negative") + private Integer cookTimeMinutes; + + @NotNull(message = "Please Provide a serving amount") + @Positive(message = "This value cannot be negative") + private Integer servings; + + private String status; + + private LocalDateTime createdAt; + private LocalDateTime updatedAt; + + @NotNull(message = "Recipe must be associated with a user") + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "user_id", nullable = false) + @EqualsAndHashCode.Include + private User user; + + // Recipe ingredients relationship + @OneToMany(mappedBy = "recipe", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) + @NotEmpty(message = "At least one ingredient is required") + private Set recipeIngredients = new HashSet<>(); + + // Recipe Steps relationship + @OneToMany(mappedBy = "recipe", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) + private Set steps = new HashSet<>(); + + // Recipe Images relationship + @OneToMany(mappedBy = "recipe", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) + private Set images = new HashSet<>(); + + // Recipe Tag relationship and also junction table + @ManyToMany(fetch = FetchType.LAZY) + @JoinTable(name = "recipe_tags", joinColumns = { @JoinColumn(name = "recipe_id") }, inverseJoinColumns = { + @JoinColumn(name = "tag_id") }) + private Set tags = new HashSet<>(); + + // User is the manager for this relationship + @ManyToMany(fetch = FetchType.LAZY, mappedBy = "FavRecipes") + private Set users = new HashSet<>(); + + public Recipe() { + } + + public Recipe(String title, String description, Integer prepTimeMinutes, Integer cookTimeMinutes, Integer servings, + User user, String status) { + this.title = title; + this.description = description; + this.prepTimeMinutes = prepTimeMinutes; + this.cookTimeMinutes = cookTimeMinutes; + this.servings = servings; + this.user = user; + this.status = status; + this.createdAt = LocalDateTime.now(); + this.updatedAt = LocalDateTime.now(); + } + + // Getters and setters + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getPrepTimeMinutes() { + return prepTimeMinutes; + } + + public void setPrepTimeMinutes(Integer prepTimeMinutes) { + this.prepTimeMinutes = prepTimeMinutes; + } + + public Integer getCookTimeMinutes() { + return cookTimeMinutes; + } + + public void setCookTimeMinutes(Integer cookTimeMinutes) { + this.cookTimeMinutes = cookTimeMinutes; + } + + public Integer getServings() { + return servings; + } + + public void setServings(Integer servings) { + this.servings = servings; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public LocalDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(LocalDateTime createdAt) { + this.createdAt = createdAt; + } + + public LocalDateTime getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(LocalDateTime updatedAt) { + this.updatedAt = updatedAt; + } + + public Set getRecipeIngredients() { + return recipeIngredients; + } + + public void setRecipeIngredients(Set recipeIngredients) { + this.recipeIngredients = recipeIngredients; + } + + public Set getSteps() { + return steps; + } + + public void setSteps(Set steps) { + this.steps = steps; + } + + public Set getImages() { + return images; + } + + public void setImages(Set images) { + this.images = images; + } + + public Set getTags() { + return tags; + } + + public void setTags(Set tags) { + this.tags = tags; + } + + public Set getUsers() { + return users; + } + + public void setUsers(Set users) { + this.users = users; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/entity/RecipeIngredient.java b/src/main/java/com/example/demo/entity/RecipeIngredient.java new file mode 100644 index 0000000..6f6f98d --- /dev/null +++ b/src/main/java/com/example/demo/entity/RecipeIngredient.java @@ -0,0 +1,102 @@ +package com.example.demo.entity; + +import jakarta.persistence.*; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Positive; +import jakarta.validation.constraints.Size; + +import java.math.BigDecimal; +import lombok.EqualsAndHashCode; + +@Entity +@Table(name = "recipe_ingredient_junction", uniqueConstraints = { + @UniqueConstraint(columnNames = { "recipe_id", "ingredient_id" }) }) +@EqualsAndHashCode(onlyExplicitlyIncluded = true) +public class RecipeIngredient { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "recipe_id", nullable = false) + @EqualsAndHashCode.Include + private Recipe recipe; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "ingredient_id", nullable = false) + @EqualsAndHashCode.Include + private Ingredient ingredient; + + @NotNull(message = "Please Provide a Quantity") + @Positive(message = "Quantity cannot be negative") + private BigDecimal quantity; + + @Column(columnDefinition = "TEXT") + @Size(max = 32, message = "Unit cannot be longer than 32 characters") + private String unit; + + @Column(columnDefinition = "TEXT") + @Size(max = 128, message = "Note cannot be longer than 128 characters") + private String notes; + + public RecipeIngredient() { + } + + public RecipeIngredient(Recipe recipe, Ingredient ingredient, BigDecimal quantity, String unit, String notes) { + this.recipe = recipe; + this.ingredient = ingredient; + this.quantity = quantity; + this.unit = unit; + this.notes = notes; + } + + // Getters and setters + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Recipe getRecipe() { + return recipe; + } + + public void setRecipe(Recipe recipe) { + this.recipe = recipe; + } + + public Ingredient getIngredient() { + return ingredient; + } + + public void setIngredient(Ingredient ingredient) { + this.ingredient = ingredient; + } + + public BigDecimal getQuantity() { + return quantity; + } + + public void setQuantity(BigDecimal quantity) { + this.quantity = quantity; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getNotes() { + return notes; + } + + public void setNotes(String notes) { + this.notes = notes; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/entity/RecipeTag.java b/src/main/java/com/example/demo/entity/RecipeTag.java new file mode 100644 index 0000000..02573a0 --- /dev/null +++ b/src/main/java/com/example/demo/entity/RecipeTag.java @@ -0,0 +1,53 @@ +package com.example.demo.entity; + +import jakarta.persistence.*; + +@Entity +@Table(name = "recipe_tags") +public class RecipeTag { + + @EmbeddedId + private RecipeTagId id; + + @ManyToOne + @MapsId("recipeId") + @JoinColumn(name = "recipe_id", nullable = false) + private Recipe recipe; + + @ManyToOne + @MapsId("tagId") + @JoinColumn(name = "tag_id", nullable = false) + private Tag tag; + + public RecipeTag() {} + + public RecipeTag(Recipe recipe, Tag tag) { + this.recipe = recipe; + this.tag = tag; + this.id = new RecipeTagId(recipe.getId(), tag.getId()); + } + + public RecipeTagId getId() { + return id; + } + + public void setId(RecipeTagId id) { + this.id = id; + } + + public Recipe getRecipe() { + return recipe; + } + + public Tag getTag() { + return tag; + } + + public void setRecipe(Recipe recipe) { + this.recipe = recipe; + } + + public void setTag(Tag tag) { + this.tag = tag; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/entity/RecipeTagId.java b/src/main/java/com/example/demo/entity/RecipeTagId.java new file mode 100644 index 0000000..d0890bf --- /dev/null +++ b/src/main/java/com/example/demo/entity/RecipeTagId.java @@ -0,0 +1,57 @@ +package com.example.demo.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.Embeddable; +import java.io.Serializable; +import java.util.Objects; + +@Embeddable +public class RecipeTagId implements Serializable { + + private static final long serialVersionUID = 5272431101708393749L; + + @Column(name = "recipe_id") + private Integer recipeId; + + @Column(name = "tag_id") + private Integer tagId; + + public RecipeTagId() { + } + + public RecipeTagId(Integer recipeId, Integer tagId) { + this.recipeId = recipeId; + this.tagId = tagId; + } + + public Integer getRecipeId() { + return recipeId; + } + + public void setRecipeId(Integer recipeId) { + this.recipeId = recipeId; + } + + public Integer getTagId() { + return tagId; + } + + public void setTagId(Integer tagId) { + this.tagId = tagId; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof RecipeTagId)) + return false; + RecipeTagId that = (RecipeTagId) o; + return Objects.equals(recipeId, that.recipeId) && Objects.equals(tagId, that.tagId); + } + + @Override + public int hashCode() { + return Objects.hash(recipeId, tagId); + } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/entity/Step.java b/src/main/java/com/example/demo/entity/Step.java new file mode 100644 index 0000000..14b4cd1 --- /dev/null +++ b/src/main/java/com/example/demo/entity/Step.java @@ -0,0 +1,68 @@ +package com.example.demo.entity; + +import jakarta.persistence.*; +import jakarta.validation.constraints.Size; +import lombok.EqualsAndHashCode; + +@Entity +@Table(name = "steps") +public class Step { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + @Column(name = "step_number", nullable = false) + private Integer stepNumber; + + @Column(name = "instruction", nullable = false, columnDefinition = "TEXT") + @Size(max = 500, message = "Instruction cannot be longer than 500 characters") + private String instruction; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "recipe_id", nullable = false) + @EqualsAndHashCode.Include + private Recipe recipe; + + public Step() { + } + + public Step(Recipe recipe, Integer stepNumber, String instruction) { + this.recipe = recipe; + this.stepNumber = stepNumber; + this.instruction = instruction; + } + + // Getters and setters + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Recipe getRecipe() { + return recipe; + } + + public void setRecipe(Recipe recipe) { + this.recipe = recipe; + } + + public Integer getStepNumber() { + return stepNumber; + } + + public void setStepNumber(Integer stepNumber) { + this.stepNumber = stepNumber; + } + + public String getInstruction() { + return instruction; + } + + public void setInstruction(String instruction) { + this.instruction = instruction; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/entity/Tag.java b/src/main/java/com/example/demo/entity/Tag.java new file mode 100644 index 0000000..987771c --- /dev/null +++ b/src/main/java/com/example/demo/entity/Tag.java @@ -0,0 +1,55 @@ +package com.example.demo.entity; + +import java.util.HashSet; +import java.util.Set; + +import jakarta.persistence.*; + +@Entity +@Table(name = "tags") +public class Tag { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + @Column(nullable = false, unique = true) + private String name; + + // Recipe is the manager for this relationship + @ManyToMany(fetch = FetchType.LAZY, mappedBy = "tags") + private Set recipes = new HashSet<>(); + + public Tag() { + } + + public Tag(String name) { + this.name = name; + } + + // Getters and setters + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Set getRecipes() { + return recipes; + } + + public void setRecipes(Set recipes) { + this.recipes = recipes; + } + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/entity/User.java b/src/main/java/com/example/demo/entity/User.java new file mode 100644 index 0000000..f7b0a1d --- /dev/null +++ b/src/main/java/com/example/demo/entity/User.java @@ -0,0 +1,176 @@ +package com.example.demo.entity; + +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.JoinTable; +import jakarta.persistence.ManyToMany; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; + +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +import java.time.LocalDateTime; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +@Entity +@Table(name = "users") +public class User implements UserDetails { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + + @Column(nullable = false, unique = true) + private String username; + + @Column(nullable = false) + private String role; + + @Column(unique = true) + private String email; + + private String hashedpassword; + + @Column(name = "created_at") + private LocalDateTime createdAt; + + @Column(nullable = false) + private boolean banned = false; + + @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) + private Set recipes = new HashSet<>(); + + @ManyToMany(fetch = FetchType.LAZY) + @JoinTable( + name = "favorites", + joinColumns = { @JoinColumn(name = "userId") }, + inverseJoinColumns = { @JoinColumn(name = "recipeId") } + ) + private Set FavRecipes = new HashSet<>(); + + @Override + public Collection getAuthorities() { + return List.of(new SimpleGrantedAuthority(role)); + } + + @Override + public String getPassword() { + return hashedpassword; + } + + @Override + public String getUsername() { + return username; + } + + @Override + public boolean isAccountNonExpired() { + return true; + } + + @Override + public boolean isAccountNonLocked() { + return !banned; + } + + @Override + public boolean isCredentialsNonExpired() { + return true; + } + + @Override + public boolean isEnabled() { + return !banned; + } + + public User() { + } + + public User(String username, String role, String email, String hashedpassword, LocalDateTime createdAt) { + this.username = username; + this.role = role; + this.email = email; + this.hashedpassword = hashedpassword; + this.createdAt = createdAt; + this.banned = false; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getHashedpassword() { + return hashedpassword; + } + + public void setHashedpassword(String hashedpassword) { + this.hashedpassword = hashedpassword; + } + + public LocalDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(LocalDateTime createdAt) { + this.createdAt = createdAt; + } + + public boolean isBanned() { + return banned; + } + + public void setBanned(boolean banned) { + this.banned = banned; + } + + public Set getRecipes() { + return recipes; + } + + public void setRecipes(Set recipes) { + this.recipes = recipes; + } + + public Set getFavRecipes() { + return FavRecipes; + } + + public void setFavRecipes(Set favRecipes) { + this.FavRecipes = favRecipes; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/exception/BadRequestException.java b/src/main/java/com/example/demo/exception/BadRequestException.java new file mode 100644 index 0000000..f96064c --- /dev/null +++ b/src/main/java/com/example/demo/exception/BadRequestException.java @@ -0,0 +1,5 @@ +package com.example.demo.exception; + +public class BadRequestException { + +} diff --git a/src/main/java/com/example/demo/exception/ErrorResponse.java b/src/main/java/com/example/demo/exception/ErrorResponse.java new file mode 100644 index 0000000..de0fe3a --- /dev/null +++ b/src/main/java/com/example/demo/exception/ErrorResponse.java @@ -0,0 +1,5 @@ +package com.example.demo.exception; + +public class ErrorResponse { + +} diff --git a/src/main/java/com/example/demo/exception/GlobalExceptionHandler.java b/src/main/java/com/example/demo/exception/GlobalExceptionHandler.java new file mode 100644 index 0000000..444e0cd --- /dev/null +++ b/src/main/java/com/example/demo/exception/GlobalExceptionHandler.java @@ -0,0 +1,5 @@ +package com.example.demo.exception; + +public class GlobalExceptionHandler { + +} diff --git a/src/main/java/com/example/demo/exception/NotFoundException.java b/src/main/java/com/example/demo/exception/NotFoundException.java new file mode 100644 index 0000000..66b3240 --- /dev/null +++ b/src/main/java/com/example/demo/exception/NotFoundException.java @@ -0,0 +1,32 @@ +package com.example.demo.exception; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +@ResponseStatus(value = HttpStatus.NOT_FOUND) +public class NotFoundException extends RuntimeException { + + private static final long serialVersionUID = 1l; + private String resourceName; + private String fieldName; + private Object fieldValue; + + public NotFoundException(String resourceName, String fieldName, Object fieldValue) { + super(String.format("%s not found with %s : %s", resourceName, fieldName, fieldValue)); + this.resourceName = resourceName; + this.fieldName = fieldName; + this.fieldValue = fieldValue; + } + + public String getResourceName() { + return resourceName; + } + + public String getFieldName() { + return fieldName; + } + + public Object getFieldValue() { + return fieldValue; + } +} diff --git a/src/main/java/com/example/demo/repository/FavoriteRepo.java b/src/main/java/com/example/demo/repository/FavoriteRepo.java new file mode 100644 index 0000000..678c97b --- /dev/null +++ b/src/main/java/com/example/demo/repository/FavoriteRepo.java @@ -0,0 +1,11 @@ +package com.example.demo.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import com.example.demo.entity.Favorite; +import com.example.demo.entity.FavoriteId; + +import java.util.List; + +public interface FavoriteRepo extends JpaRepository { + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/repository/ImageRepo.java b/src/main/java/com/example/demo/repository/ImageRepo.java new file mode 100644 index 0000000..0e36e6e --- /dev/null +++ b/src/main/java/com/example/demo/repository/ImageRepo.java @@ -0,0 +1,10 @@ +package com.example.demo.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import com.example.demo.entity.Image; + +import java.util.List; + +public interface ImageRepo extends JpaRepository { + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/repository/IngredientRepo.java b/src/main/java/com/example/demo/repository/IngredientRepo.java new file mode 100644 index 0000000..0420f12 --- /dev/null +++ b/src/main/java/com/example/demo/repository/IngredientRepo.java @@ -0,0 +1,10 @@ +package com.example.demo.repository; + +import java.util.Optional; + +import org.springframework.data.jpa.repository.JpaRepository; +import com.example.demo.entity.Ingredient; + +public interface IngredientRepo extends JpaRepository { + Optional findByNameIgnoreCase(String name); +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/repository/RecipeIngredientRepo.java b/src/main/java/com/example/demo/repository/RecipeIngredientRepo.java new file mode 100644 index 0000000..db21dd6 --- /dev/null +++ b/src/main/java/com/example/demo/repository/RecipeIngredientRepo.java @@ -0,0 +1,14 @@ +package com.example.demo.repository; + +import java.util.List; + +import org.springframework.data.jpa.repository.JpaRepository; + +import com.example.demo.entity.Recipe; +import com.example.demo.entity.RecipeIngredient; + +public interface RecipeIngredientRepo extends JpaRepository { + // Custom query: find all ingredients for a recipe + List findByRecipeId(Integer recipeId); + void deleteByRecipe(Recipe recipe); +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/repository/RecipeRepo.java b/src/main/java/com/example/demo/repository/RecipeRepo.java new file mode 100644 index 0000000..979fe65 --- /dev/null +++ b/src/main/java/com/example/demo/repository/RecipeRepo.java @@ -0,0 +1,18 @@ +package com.example.demo.repository; + +import java.time.LocalDateTime; +import java.util.List; + +import org.springframework.data.jpa.repository.JpaRepository; +import com.example.demo.entity.Recipe; + +public interface RecipeRepo extends JpaRepository { + + List findByTitleContainingIgnoreCase(String name); + List findByTitleContainingIgnoreCaseAndTags_NameIn(String title, List tags); + + long countByUserIdAndCreatedAtAfter(Integer userId, LocalDateTime after); + + List findByUserId(Integer userId); + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/repository/RecipeTagRepo.java b/src/main/java/com/example/demo/repository/RecipeTagRepo.java new file mode 100644 index 0000000..841230f --- /dev/null +++ b/src/main/java/com/example/demo/repository/RecipeTagRepo.java @@ -0,0 +1,11 @@ +package com.example.demo.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import com.example.demo.entity.RecipeTag; +import com.example.demo.entity.RecipeTagId; + +import java.util.List; + +public interface RecipeTagRepo extends JpaRepository { + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/repository/StepRepo.java b/src/main/java/com/example/demo/repository/StepRepo.java new file mode 100644 index 0000000..7bc8ee4 --- /dev/null +++ b/src/main/java/com/example/demo/repository/StepRepo.java @@ -0,0 +1,11 @@ +package com.example.demo.repository; + +import org.springframework.data.jpa.repository.JpaRepository; + +import com.example.demo.entity.Step; + +import java.util.List; + +public interface StepRepo extends JpaRepository { + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/repository/TagRepo.java b/src/main/java/com/example/demo/repository/TagRepo.java new file mode 100644 index 0000000..647482b --- /dev/null +++ b/src/main/java/com/example/demo/repository/TagRepo.java @@ -0,0 +1,12 @@ +package com.example.demo.repository; + +import org.springframework.data.jpa.repository.JpaRepository; + +import com.example.demo.entity.Ingredient; +import com.example.demo.entity.Tag; + +import java.util.Optional; + +public interface TagRepo extends JpaRepository { + Optional findByName(String name); +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/repository/UserRepo.java b/src/main/java/com/example/demo/repository/UserRepo.java new file mode 100644 index 0000000..669a759 --- /dev/null +++ b/src/main/java/com/example/demo/repository/UserRepo.java @@ -0,0 +1,16 @@ +package com.example.demo.repository; + +import org.springframework.data.jpa.repository.JpaRepository; + +import com.example.demo.entity.User; + +import java.util.List; +import java.util.Optional; + +public interface UserRepo extends JpaRepository { + + Optional findByUsername(String username); + + List findByUsernameContainingIgnoreCase(String name); + +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/service/AuthService.java b/src/main/java/com/example/demo/service/AuthService.java new file mode 100644 index 0000000..894c90e --- /dev/null +++ b/src/main/java/com/example/demo/service/AuthService.java @@ -0,0 +1,5 @@ +package com.example.demo.service; + +public class AuthService { + +} diff --git a/src/main/java/com/example/demo/service/CustomUserDetailsService.java b/src/main/java/com/example/demo/service/CustomUserDetailsService.java new file mode 100644 index 0000000..6ad9739 --- /dev/null +++ b/src/main/java/com/example/demo/service/CustomUserDetailsService.java @@ -0,0 +1,24 @@ +package com.example.demo.service; + +import com.example.demo.repository.UserRepo; +import org.jspecify.annotations.NonNull; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.stereotype.Service; + +@Service +public class CustomUserDetailsService implements UserDetailsService { + + private final UserRepo userRepo; + + public CustomUserDetailsService(UserRepo userRepo) { + this.userRepo = userRepo; + } + + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + return userRepo.findByUsername(username) + .orElseThrow(() -> new UsernameNotFoundException("User not found: " + username)); + } +} diff --git a/src/main/java/com/example/demo/service/Impl/RecipeServiceImpl.java b/src/main/java/com/example/demo/service/Impl/RecipeServiceImpl.java new file mode 100644 index 0000000..da898cb --- /dev/null +++ b/src/main/java/com/example/demo/service/Impl/RecipeServiceImpl.java @@ -0,0 +1,399 @@ +package com.example.demo.service.Impl; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import org.springframework.security.access.AccessDeniedException; +import org.springframework.stereotype.Service; + +import com.example.demo.dto.RecipeDto; +import com.example.demo.dto.UserDto; +import com.example.demo.dto.StepDto; +import com.example.demo.dto.TagDto; +import com.example.demo.dto.ImageDto; +import com.example.demo.dto.RecipeIngredientDto; +import com.example.demo.entity.Image; +import com.example.demo.entity.Ingredient; +import com.example.demo.entity.Recipe; +import com.example.demo.entity.RecipeIngredient; +import com.example.demo.entity.Step; +import com.example.demo.entity.Tag; +import com.example.demo.entity.User; +import com.example.demo.exception.NotFoundException; +import com.example.demo.repository.ImageRepo; +import com.example.demo.repository.IngredientRepo; +import com.example.demo.repository.RecipeIngredientRepo; +import com.example.demo.repository.RecipeRepo; +import com.example.demo.repository.StepRepo; +import com.example.demo.repository.TagRepo; +import com.example.demo.repository.UserRepo; +import com.example.demo.service.RecipeService; + +import jakarta.transaction.Transactional; + +@Service +public class RecipeServiceImpl implements RecipeService { + + private RecipeRepo recipeRepository; + private IngredientRepo ingredientRepository; + private RecipeIngredientRepo recipeIngredientRepository; + private UserRepo userRepository; + private StepRepo stepRepository; + private ImageRepo imageRepository; + private TagRepo tagRepository; + + public RecipeServiceImpl(RecipeRepo recipeRepository, IngredientRepo ingredientRepository, + RecipeIngredientRepo recipeIngredientRepository, UserRepo userRepository, StepRepo stepRepository, + ImageRepo imageRepository, TagRepo tagRepository) { + super(); + this.recipeRepository = recipeRepository; + this.ingredientRepository = ingredientRepository; + this.recipeIngredientRepository = recipeIngredientRepository; + this.userRepository = userRepository; + this.stepRepository = stepRepository; + this.imageRepository = imageRepository; + this.tagRepository = tagRepository; + } + + @Override + public RecipeDto convertToDto(Recipe recipe) { + List ingredientDtos = recipe.getRecipeIngredients().stream() + .map(ri -> new RecipeIngredientDto(ri.getIngredient().getName(), ri.getQuantity(), ri.getUnit(), + ri.getNotes())) + .toList(); + + List stepDtos = recipe.getSteps().stream() + .map(ri -> new StepDto(ri.getStepNumber(), ri.getInstruction())).toList(); + + List imageDtos = recipe.getImages().stream().map(ri -> new ImageDto(ri.getImageUrl())).toList(); + + List tagDtos = recipe.getTags().stream().map(ri -> new TagDto(ri.getName())).toList(); + + UserDto userDto = new UserDto(recipe.getUser().getId(), recipe.getUser().getUsername(), + recipe.getUser().getEmail()); + + RecipeDto dto = new RecipeDto(recipe.getTitle(), recipe.getDescription(), recipe.getPrepTimeMinutes(), + recipe.getCookTimeMinutes(), recipe.getServings(), userDto, recipe.getStatus(), ingredientDtos, + stepDtos, imageDtos, tagDtos); + + dto.setId(recipe.getId()); + + return dto; + } + + private User getCurrentUser(String currentUsername) { + return userRepository.findByUsername(currentUsername) + .orElseThrow(() -> new NotFoundException("User", "username", currentUsername)); + } + + private boolean isAdmin(User user) { + return "ROLE_ADMIN".equals(user.getRole()); + } + + private void ensureUserNotBanned(User user) { + if (user.isBanned()) { + throw new AccessDeniedException("Banned users cannot perform this action."); + } + } + + private void enforceUploadLimit(User user) { + if (isAdmin(user)) { + return; + } + + LocalDateTime cutoff = LocalDateTime.now().minusHours(24); + long uploadsInLast24Hours = recipeRepository.countByUserIdAndCreatedAtAfter(user.getId(), cutoff); + + if (uploadsInLast24Hours >= 10) { + throw new AccessDeniedException("Upload limit reached. Maximum is 10 recipes per 24 hours."); + } + } + + private void enforceOwnerOrAdmin(User currentUser, Recipe recipe) { + if (isAdmin(currentUser)) { + return; + } + + if (!recipe.getUser().getId().equals(currentUser.getId())) { + throw new AccessDeniedException("You do not have permission to modify this recipe."); + } + } + + @Override + @Transactional + public RecipeDto saveRecipe(RecipeDto dto, String currentUsername) { + + User currentUser = getCurrentUser(currentUsername); + ensureUserNotBanned(currentUser); + enforceUploadLimit(currentUser); + + Recipe recipe = new Recipe(dto.getTitle(), dto.getDescription(), dto.getPrepTimeMinutes(), + dto.getCookTimeMinutes(), dto.getServings(), currentUser, dto.getStatus()); + + if (dto.getIngredients() != null) { + for (RecipeIngredientDto riDto : dto.getIngredients()) { + + Ingredient ingredient = ingredientRepository.findByNameIgnoreCase(riDto.getIngredientName()) + .orElseGet(() -> new Ingredient(riDto.getIngredientName())); + + if (ingredient.getId() == null) { + ingredientRepository.save(ingredient); + } + + RecipeIngredient ri = new RecipeIngredient(recipe, ingredient, riDto.getQuantity(), riDto.getUnit(), + riDto.getNotes()); + + recipe.getRecipeIngredients().add(ri); + } + } + + if (dto.getSteps() != null) { + for (StepDto stepDto : dto.getSteps()) { + Step step = new Step(recipe, stepDto.getStepNumber(), stepDto.getInstruction()); + recipe.getSteps().add(step); + } + } + + if (dto.getImages() != null) { + for (ImageDto imageDto : dto.getImages()) { + Image image = new Image(recipe, imageDto.getImageUrl()); + recipe.getImages().add(image); + } + } + + if (dto.getTags() != null) { + for (TagDto tDto : dto.getTags()) { + + Tag tag = tagRepository.findByName(tDto.getName()).orElseGet(() -> new Tag(tDto.getName())); + + if (tag.getId() == null) { + tagRepository.save(tag); + } + recipe.getTags().add(tag); + } + } + + Recipe saved = recipeRepository.save(recipe); + + return getRecipeById(saved.getId()); + } + + @Override + @Transactional + public List getAllRecipes() { + + List list = new ArrayList<>(); + for (Recipe recipe : recipeRepository.findAll()) { + RecipeDto recipeDto = convertToDto(recipe); + list.add(recipeDto); + } + + return list; + } + + @Override + @Transactional + public RecipeDto getRecipeById(Integer Id) { + return convertToDto(recipeRepository.findById(Id).orElseThrow(() -> new NotFoundException("Recipe", "id", Id))); + } + + @Override + @Transactional + public RecipeDto updateRecipe(RecipeDto recipeDto, Integer id, String currentUsername) { + User currentUser = getCurrentUser(currentUsername); + ensureUserNotBanned(currentUser); + + Recipe existingRecipe = recipeRepository.findById(id) + .orElseThrow(() -> new NotFoundException("Recipe", "id", id)); + + enforceOwnerOrAdmin(currentUser, existingRecipe); + + existingRecipe.setTitle(recipeDto.getTitle()); + existingRecipe.setDescription(recipeDto.getDescription()); + existingRecipe.setPrepTimeMinutes(recipeDto.getPrepTimeMinutes()); + existingRecipe.setCookTimeMinutes(recipeDto.getCookTimeMinutes()); + existingRecipe.setServings(recipeDto.getServings()); + existingRecipe.setStatus(recipeDto.getStatus()); + + List updatedIngredients = recipeDto.getIngredients(); + List ingredientsToRemove = new ArrayList<>(); + + List updatedSteps = recipeDto.getSteps(); + List stepsToRemove = new ArrayList<>(); + + List updatedImages = recipeDto.getImages(); + List imagesToRemove = new ArrayList<>(); + + List updatedTags = recipeDto.getTags(); + List tagsToRemove = new ArrayList<>(); + + for (RecipeIngredient ri : existingRecipe.getRecipeIngredients()) { + + boolean existsInUpdatedList = false; + for (RecipeIngredientDto dto : updatedIngredients) { + String updatedName = dto.getIngredientName(); + String existingName = ri.getIngredient().getName(); + + if (updatedName.equals(existingName)) { + existsInUpdatedList = true; + break; + } + } + + if (!existsInUpdatedList) { + ingredientsToRemove.add(ri); + } + } + + existingRecipe.getRecipeIngredients().removeAll(ingredientsToRemove); + + for (RecipeIngredientDto riDto : updatedIngredients) { + + RecipeIngredient existingRI = existingRecipe.getRecipeIngredients().stream() + .filter(ri -> ri.getIngredient().getName().equals(riDto.getIngredientName())).findFirst() + .orElse(null); + + if (existingRI != null) { + + existingRI.setQuantity(riDto.getQuantity()); + existingRI.setUnit(riDto.getUnit()); + existingRI.setNotes(riDto.getNotes()); + } + + else { + + Ingredient ingredient = ingredientRepository.findByNameIgnoreCase(riDto.getIngredientName()) + .orElseGet(() -> new Ingredient(riDto.getIngredientName())); + + if (ingredient.getId() == null) { + ingredientRepository.save(ingredient); + } + + RecipeIngredient newRI = new RecipeIngredient(existingRecipe, ingredient, riDto.getQuantity(), + riDto.getUnit(), riDto.getNotes()); + + existingRecipe.getRecipeIngredients().add(newRI); + } + } + + if (updatedSteps != null) { + for (Step step : existingRecipe.getSteps()) { + boolean existsInUpdatedList = updatedSteps.stream() + .anyMatch(dto -> dto.getStepNumber().equals(step.getStepNumber())); + + if (!existsInUpdatedList) + stepsToRemove.add(step); + } + existingRecipe.getSteps().removeAll(stepsToRemove); + + for (StepDto stepDto : updatedSteps) { + + Step existingStep = existingRecipe.getSteps().stream() + .filter(s -> s.getStepNumber().equals(stepDto.getStepNumber())).findFirst().orElse(null); + + if (existingStep != null) { + existingStep.setInstruction(stepDto.getInstruction()); + } + + else { + Step newStep = new Step(existingRecipe, stepDto.getStepNumber(), stepDto.getInstruction()); + existingRecipe.getSteps().add(newStep); + } + } + } + + if (updatedImages != null) { + for (Image image : existingRecipe.getImages()) { + boolean existsInUpdatedList = updatedImages.stream() + .anyMatch(dto -> dto.getImageUrl().equals(image.getImageUrl())); + if (!existsInUpdatedList) + imagesToRemove.add(image); + } + + existingRecipe.getImages().removeAll(imagesToRemove); + + for (ImageDto imageDto : updatedImages) { + Image existingImage = existingRecipe.getImages().stream() + .filter(img -> img.getImageUrl().equals(imageDto.getImageUrl())).findFirst().orElse(null); + + if (existingImage != null) { + existingImage.setImageUrl(imageDto.getImageUrl()); + } else { + Image newImage = new Image(existingRecipe, imageDto.getImageUrl()); + existingRecipe.getImages().add(newImage); + } + } + } + + if (updatedTags != null) { + for (Tag tag : existingRecipe.getTags()) { + boolean existsInUpdatedList = updatedTags.stream().anyMatch(dto -> dto.getName().equals(tag.getName())); + if (!existsInUpdatedList) + tagsToRemove.add(tag); + } + + existingRecipe.getTags().removeAll(tagsToRemove); + + for (TagDto tagDto : updatedTags) { + Tag existingTag = existingRecipe.getTags().stream() + .filter(tag -> tag.getName().equals(tagDto.getName())).findFirst().orElse(null); + + if (existingTag != null) { + existingTag.setName(tagDto.getName()); + } else { + Tag newTag = tagRepository.findByName(tagDto.getName()) + .orElseGet(() -> tagRepository.save(new Tag(tagDto.getName()))); + + existingRecipe.getTags().add(newTag); + } + } + } + recipeRepository.save(existingRecipe); + return convertToDto(existingRecipe); + } + + @Override + @Transactional + public void deleteRecipe(Integer id, String currentUsername) { + User currentUser = getCurrentUser(currentUsername); + ensureUserNotBanned(currentUser); + + Recipe recipe = recipeRepository.findById(id) + .orElseThrow(() -> new NotFoundException("Recipe", "id", id)); + + enforceOwnerOrAdmin(currentUser, recipe); + recipeRepository.delete(recipe); + } + + @Override + @Transactional + public List getRecipes(String name, List tags) { + + List recipes; + + if (!name.isBlank()) { + recipes = recipeRepository.findByTitleContainingIgnoreCase(name); + } + + else { + recipes = recipeRepository.findAll(); + } + + if (!tags.isEmpty() && !recipes.isEmpty()) { + recipes = recipes.stream() + .filter(recipe -> recipe.getTags().stream().anyMatch(tag -> tags.contains(tag.getName()))) + .collect(Collectors.toList()); + } + + List recipeList = new ArrayList<>(); + + for (Recipe recipe : recipes) { + RecipeDto dto = convertToDto(recipe); + recipeList.add(dto); + } + + return recipeList; + } +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/service/Impl/UserServiceImpl.java b/src/main/java/com/example/demo/service/Impl/UserServiceImpl.java new file mode 100644 index 0000000..dd29369 --- /dev/null +++ b/src/main/java/com/example/demo/service/Impl/UserServiceImpl.java @@ -0,0 +1,167 @@ +package com.example.demo.service.Impl; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import org.springframework.stereotype.Service; + +import com.example.demo.dto.ImageDto; +import com.example.demo.dto.RecipeDto; +import com.example.demo.dto.RecipeIngredientDto; +import com.example.demo.dto.StepDto; +import com.example.demo.dto.TagDto; +import com.example.demo.dto.UserDto; +import com.example.demo.entity.Recipe; +import com.example.demo.entity.User; +import com.example.demo.exception.NotFoundException; +import com.example.demo.repository.RecipeRepo; +import com.example.demo.repository.UserRepo; +import com.example.demo.service.UserService; + +import jakarta.transaction.Transactional; + +@Service +public class UserServiceImpl implements UserService { + + private UserRepo userRepository; + private RecipeRepo recipeRepository; + + public UserServiceImpl(UserRepo userRepository, RecipeRepo recipeRepository) { + super(); + this.userRepository = userRepository; + this.recipeRepository = recipeRepository; + } + + public UserDto convertToDto(User user) { + return new UserDto(user.getId(), user.getUsername(), user.getEmail()); + } + + @Override + public User saveUser(User user) { + if (user.getRole() == null || user.getRole().isBlank()) { + user.setRole("ROLE_USER"); + } + user.setBanned(false); + return userRepository.save(user); + } + + @Override + public List getAllUsers() { + + List list = new ArrayList<>(); + for (User user : userRepository.findAll()) { + UserDto userDto = convertToDto(user); + list.add(userDto); + } + + return list; + } + + @Override + public UserDto getUserById(Integer Id) { + + return convertToDto(userRepository.findById(Id).orElseThrow(() -> new NotFoundException("User", "id", Id))); + } + + @Override + @Transactional + public UserDto saveFavorite(Integer userId, Integer recipeId) { + User existingUser = userRepository.findById(userId) + .orElseThrow(() -> new NotFoundException("User", "id", userId)); + + Recipe existingRecipe = recipeRepository.findById(recipeId) + .orElseThrow(() -> new NotFoundException("Recipe", "id", recipeId)); + + existingUser.getFavRecipes().add(existingRecipe); + userRepository.save(existingUser); + + return convertToDto(existingUser); + } + + @Override + public UserDto updateUser(User user, Integer Id) { + + User existingUser = userRepository.findById(Id).orElseThrow(() -> new NotFoundException("User", "id", Id)); + + existingUser.setUsername(user.getUsername()); + existingUser.setEmail(user.getEmail()); + + userRepository.save(existingUser); + + return convertToDto(existingUser); + } + + @Override + public void deleteUser(Integer Id) { + userRepository.findById(Id).orElseThrow(() -> new NotFoundException("User", "id", Id)); + userRepository.deleteById(Id); + } + + @Override + @Transactional + public void deleteFavorite(Integer userId, Integer recipeId) { + User existingUser = userRepository.findById(userId) + .orElseThrow(() -> new NotFoundException("User", "id", userId)); + + Recipe existingRecipe = recipeRepository.findById(recipeId) + .orElseThrow(() -> new NotFoundException("Recipe", "id", recipeId)); + userRepository.save(existingUser); + + existingUser.getFavRecipes().remove(existingRecipe); + + } + + @Override + public List getUsersByName(String name) { + List users = userRepository.findByUsernameContainingIgnoreCase(name); + + if (users.isEmpty()) { + throw new NotFoundException("User", "username containing", name); + } + + List userList = new ArrayList<>(); + + for (User user : users) { + UserDto dto = convertToDto(user); + userList.add(dto); + } + return userList; + } + + @Override + public UserDto banUser(Integer id) { + User user = userRepository.findById(id) + .orElseThrow(() -> new NotFoundException("User", "id", id)); + user.setBanned(true); + userRepository.save(user); + return convertToDto(user); + } + + @Override + public UserDto unbanUser(Integer id) { + User user = userRepository.findById(id) + .orElseThrow(() -> new NotFoundException("User", "id", id)); + user.setBanned(false); + userRepository.save(user); + return convertToDto(user); + } + + @Override + public UserDto makeAdmin(Integer id) { + User user = userRepository.findById(id) + .orElseThrow(() -> new NotFoundException("User", "id", id)); + user.setRole("ROLE_ADMIN"); + userRepository.save(user); + return convertToDto(user); + } + + @Override + public UserDto makeUser(Integer id) { + User user = userRepository.findById(id) + .orElseThrow(() -> new NotFoundException("User", "id", id)); + user.setRole("ROLE_USER"); + userRepository.save(user); + return convertToDto(user); + } +} diff --git a/src/main/java/com/example/demo/service/MapperService.java b/src/main/java/com/example/demo/service/MapperService.java new file mode 100644 index 0000000..d4405a5 --- /dev/null +++ b/src/main/java/com/example/demo/service/MapperService.java @@ -0,0 +1,5 @@ +package com.example.demo.service; + +public class MapperService { + +} diff --git a/src/main/java/com/example/demo/service/RecipeService.java b/src/main/java/com/example/demo/service/RecipeService.java new file mode 100644 index 0000000..623a07c --- /dev/null +++ b/src/main/java/com/example/demo/service/RecipeService.java @@ -0,0 +1,27 @@ +package com.example.demo.service; + +import java.util.List; + +import org.jspecify.annotations.Nullable; + +import com.example.demo.dto.RecipeDto; +import com.example.demo.entity.Recipe; +import com.example.demo.entity.User; + +public interface RecipeService { + RecipeDto convertToDto(Recipe recipe); + + RecipeDto saveRecipe(RecipeDto recipe, String currentUsername); + + List getAllRecipes(); + + RecipeDto getRecipeById(Integer recipeId); + + List getRecipes(String name, List tags); + + RecipeDto updateRecipe(RecipeDto recipedto, Integer Id, String currentUsername); + + void deleteRecipe(Integer Id, String currentUsername); + +} + diff --git a/src/main/java/com/example/demo/service/UserService.java b/src/main/java/com/example/demo/service/UserService.java new file mode 100644 index 0000000..cf315f5 --- /dev/null +++ b/src/main/java/com/example/demo/service/UserService.java @@ -0,0 +1,34 @@ +package com.example.demo.service; + +import java.util.List; + +import com.example.demo.dto.UserDto; +import com.example.demo.entity.User; + +public interface UserService { + UserDto convertToDto(User user); + + User saveUser(User user); + + List getAllUsers(); + + UserDto getUserById(Integer id); + + List getUsersByName(String name); + + UserDto saveFavorite(Integer userId, Integer recipeId); + + UserDto updateUser(User user, Integer id); + + void deleteUser(Integer id); + + void deleteFavorite(Integer userId, Integer recipeId); + + UserDto banUser(Integer id); + + UserDto unbanUser(Integer id); + + UserDto makeAdmin(Integer id); + + UserDto makeUser(Integer id); +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 0000000..8b61b06 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1,20 @@ +spring.application.name=demo + + + +spring.datasource.url=jdbc:mysql://localhost:3306/demo +spring.datasource.username=springuser +spring.datasource.password=E~zDmEYHd"5?]U%h_-~Y0uEm + +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver + +spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect +spring.jpa.hibernate.ddl-auto=update + +spring.jpa.show-sql=true +spring.jpa.properties.hibernate.format_sql=true + +spring.jpa.open-in-view=false +#spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect + +server.port=8080 diff --git a/src/main/resources/static/css/create-account.css b/src/main/resources/static/css/create-account.css new file mode 100644 index 0000000..df988e0 --- /dev/null +++ b/src/main/resources/static/css/create-account.css @@ -0,0 +1,141 @@ +:root { + --dusty-red: #D43F3F; + --dusty-red-hover: #C73636; + --dark-yellow: #FFD27F; + --pale-yellow: #FFECB3; + --peach: #F5A96E; + --dark: #850000; +} + +.delius { + font-family: 'Delius Swash Caps', cursive; + font-weight: 400; + font-style: normal; +} + +.mali-regular { + font-family: 'Mali', cursive; + font-weight: 400; + font-style: normal; +} + +/* login.css */ +body, html { + height: 100%; + margin: 0; + font-family: 'Mali', cursive; + background-color: var(--pale-yellow); +} + +.container { + display: flex; + height: 100vh; +} + +/* Header Styles */ +.top-header { + position: sticky; + top: 0; + display: flex; + align-items: center; + justify-content: center; + background-color: var(--dusty-red); + color: var(--dark-yellow); + padding: 10px 20px; + height: 60px; + gap: 40px; +} + +.top-header .swirl { + height: 40px; + width: auto; + margin: 0 20px; +} + +.site-name { + font-size: 2.5em; + font-weight: bold; + letter-spacing: 4px; + font-family: 'Delius Swash Caps', cursive; + } + + +/* Main Content */ +.main-content { + flex-grow: 0; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + margin-top: 40px;} + +/* Login Box */ +.login-box { + background-color: var(--peach); + padding: 45px; + border-radius: 20px; + width: 600px; + color: var(--dark); +} + +.login-box h2 { + font-size: 50px; + text-align: center; + font-weight: bold; + margin-bottom: 30px; + margin-top: 8px; + +} + +.login-box .rows { + display: flex; + gap: 10px; + align-items: center; + +} + +.login-box label { + font-size: 20px; + width: 30%; + margin: 0px; + font-weight: bold; + text-align: right; +} + +.login-box input { + flex: 1; + padding: 10px; + margin: auto; + margin-top: 5px; + margin-left: 20px; + border-radius: 10px; + border: 2.5px solid var(--dusty-red); + background-color: var(--pale-yellow); + font-size: 20px; + box-sizing: border-box; +} + +.login-box input.invalid { + border: 4px solid var(--dusty-red); +} + +.login-box button { + display: block; + margin: 0 auto; + width: 40%; + padding: 10px; + margin-top: 20px; + background-color: var(--dusty-red); + color: var(--dark-yellow); + font-weight: bold; + border: none; + border-radius: 10px; + cursor: pointer; + transition: background-color 0.1s ease; + transition: transform 0.2s ease; + } + +.login-box button:hover { + background-color: var(--dusty-red-hover); + transform: scale(1.05); +} diff --git a/src/main/resources/static/css/create-recipe.css b/src/main/resources/static/css/create-recipe.css new file mode 100644 index 0000000..35f384f --- /dev/null +++ b/src/main/resources/static/css/create-recipe.css @@ -0,0 +1,447 @@ +:root { + --dusty-red: #D43F3F; + --dusty-red-hover: #C73636; + --dark-yellow: #FFD27F; + --pale-yellow: #FFECB3; + --peach: #F5A96E; + --dark: #850000; +} + +.delius { + font-family: 'Delius Swash Caps', cursive; + font-weight: 400; + font-style: normal; +} + +.mali-regular { + font-family: 'Mali', cursive; + font-weight: 400; + font-style: normal; +} + +body, html { + height: 100%; + margin: 0; + font-family: 'Mali', cursive; + background-color: var(--pale-yellow); +} + +.container { + display: flex; + height: 100vh; +} + +/* Header Styles */ +.top-header { + position: sticky; + top: 0; + display: flex; + align-items: center; + justify-content: center; + background-color: var(--dusty-red); + color: var(--dark-yellow); + padding: 10px 20px; + height: 60px; + gap: 40px; +} + +.top-header .swirl { + height: 40px; + width: auto; + margin: 0 20px; +} + +.site-name { + font-size: 2.5em; + font-weight: bold; + letter-spacing: 4px; + font-family: 'Delius Swash Caps', cursive; +} + + +/* Main Content */ +.main-content { + flex-grow: 0; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + margin-top: 40px;} + +.form-wrap { + max-width: 800px; + margin: 0 auto; + padding: 1.5rem 1rem; +} + +/* commented out but i was trying to split it +.form-split { + width:100%; + display:flex; + flex: 1; +} +*/ + +.form-section { + background: var(--peach); + border-radius: 15px; + padding: 1.25rem 1.5rem; + margin-bottom: 1rem; +} + +.section-title { + font-size: 30px; + font-weight: 800; + color: var(--dark); + text-transform: uppercase; + letter-spacing: 0.06em; + margin-bottom: 1rem; +} + +.field { + color: var(--dusty-red); + margin-bottom: 1rem; +} + +.field:last-child { + margin-bottom: 0; +} + +label { + display: block; + font-size: 16px; + font-weight: 600; + color: var(--dark); + margin-bottom: 6px; +} + + +.required { + color: var(--dusty-red-hover); + margin-left: 3px; +} + +input[type="text"], +textarea, +select { + width: 100%; + box-sizing: border-box; + font-size: 16px; + padding: 0 10px; + height: 36px; + border: 1px; + border-radius: 6px; + outline: none; + font-family: inherit; + color: var(--dusty-red); + background: var(--pale-yellow); +} + +input[type="text"]:focus, +textarea:focus, +select:focus { + border-color: var(--dusty-red); +} + +textarea { + height: auto; + min-height: 80px; + padding: 8px 10px; + resize: vertical; +} + +::placeholder { + color: var(--dusty-red); + opacity: 1; +} + +.dynamic-row { + display: flex; + align-items: center; + gap: 8px; + margin-bottom: 8px; +} + +.dynamic-row input, +.dynamic-row textarea { + flex: 1; +} + +.dynamic-row textarea { + min-height: 30px; + resize: vertical; +} + +.step-bubble { + width: 26px; + height: 26px; + min-width: 26px; + background: transparent; + color: var(--dusty-red); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 15px; + font-weight: 700; + align-self: flex-start; + margin-top: 8px; +} + +.btn-remove { + background: var(--dusty-red); + border: 1px; + border-radius: 6px; + width: 30px; + height: 30px; + min-width: 30px; + cursor: pointer; + font-size: 14px; + color: var(--dark-yellow); + display: flex; + align-items: center; + justify-content: center; + align-self: flex-start; + margin-top: 4px; +} + +.btn-remove:hover { + background: var(--dusty-red-hover); +} + +.btn-add { + width: 100%; + margin-top: 4px; + padding: 8px; + background: var(--dusty-red); + border: 1px; + border-radius: 8px; + font-family: 'Mali', cursive; + font-size: 13px; + color: var(--dark-yellow); + cursor: pointer; +} + +.btn-add:hover { + background: var(--dusty-red-hover); +} + +/* Image upload */ +.image-drop { + border: 1.5px dashed var(--dusty-red); + border-radius: 8px; + padding: 2rem; + text-align: center; + cursor: pointer; + background: var(--dark-yellow); +} + +.image-drop:hover { + border-color: var(--dusty-red-hover); + filter: brightness(99%); +} + +.image-drop .upload-icon { + font-size: 30px; + margin-bottom: 8px; +} + +.image-drop .upload-title { + font-weight: 600; + font-size: 16px; + color: var(--dusty-red); + margin: 0 0 4px; +} + +.image-drop .upload-sub { + font-size: 16px; + color: var(--dark); + margin: 0; +} + +.image-preview { + display: none; + border-radius: 8px; + overflow: hidden; + position: relative; +} + +.image-preview img { + width: 100%; + display: block; + max-height: 200px; + object-fit: cover; +} + +.remove-img { + position: absolute; + top: 8px; + right: 8px; + background: rgba(0,0,0,0.5); + color: white; + border: none; + border-radius: 4px; + padding: 3px 8px; + font-size: 12px; + cursor: pointer; +} + +/* Tags */ + +.tag-input-row { + display: flex; + flex-direction: row; + gap: 6px; +} + +.tag-wrap { + display: flex; + flex-wrap: wrap; + gap: 6px; + margin-top: 8px; +} + +.tag { + font-size: 12px; + background: var(--pale-yellow); + color: var(--dusty-red); + padding: 3px 10px; + border-radius: 99px; + display: flex; + align-items: center; + gap: 4px; +} + +.tag .remove-tag { + cursor: pointer; + opacity: 0.6; +} + +.tag .remove-tag:hover { + opacity: 1; +} + +/* Actions */ +.actions { + display: flex; + justify-content: center; + align-items: center; + margin-top: 1rem; +} + +.btn, +.btn-create { + background: var(--dusty-red); + color: var(--dark-yellow); + border: none; + border-radius: 8px; + padding: 0 20px; + height: 36px; + font-family: 'Mali', cursive; + font-size: 14px; + font-weight: 500; + cursor: pointer; +} + +.btn:hover, +.btn-create:hover { + background: var(--dusty-red-hover); +} + +.btn-create:hover { + transform: scale(1.03); +} + +.btn-create { + width: 50%; + font-size: 20px; + font-weight: 700; + border-radius: 10px; + padding: 0 20px; + height: 46px; + + transition: background-color 0.1s ease, transform 0.2s ease; +} + +/* small screens */ +@media (max-width: 600px) { + body { + font-size: 20px; + } + + .form-wrap { + max-width: 400px; + margin: 0 auto; + padding: 1.5rem 1rem; + } + + label { + font-size: 26px; + margin-bottom: 12px; + } + + input[type="text"], + textarea, + select { + font-size: 20px; + padding: 10px 14px; + height: 50px; + } + + textarea { + height: auto; + padding: 12px 14px; +} + + .field { + margin-bottom: 1.5rem; + } + + .form-section { + padding: 1.75rem 2rem; + margin-bottom: 1.25rem; + } + + .section-title { + font-size: 16px; + margin-bottom: 1.25rem; + } + + .dynamic-row { + gap: 12px; + margin-bottom: 12px; + } + + .btn-add { + padding: 14px; + font-size: 18px; + margin-top: 8px; + } + + ::placeholder { + font-size: 50px; + } + + .actions { + gap: 12px; + margin-top: 1.5rem; + } + .row { + grid-template-columns: 1fr; + } + + .btn, + .btn-create { + height: 44px; + font-size: 15px; + } + + .actions { + flex-direction: column-reverse; + gap: 10px; + } + + .actions button { + width: 100%; + } +} \ No newline at end of file diff --git a/src/main/resources/static/css/explore.css b/src/main/resources/static/css/explore.css new file mode 100644 index 0000000..8503a41 --- /dev/null +++ b/src/main/resources/static/css/explore.css @@ -0,0 +1,348 @@ +/* ========================= + Root Variables +========================= */ +:root { + --dusty-red: #D43F3F; + --dusty-red-hover: #C73636; + --dark-yellow: #FFD27F; + --pale-yellow: #FFECB3; + --peach: #F5A96E; + --dark: #850000; +} + +/* ========================= + Global Styles +========================= */ +.delius { + font-family: 'Delius Swash Caps', cursive; + font-weight: 400; + font-style: normal; +} + +.mali-regular { + font-family: 'Mali', cursive; + font-weight: 400; + font-style: normal; +} + +body, html { + height: 100vh; + margin: 0; + font-family: 'Mali', cursive; + background-color: var(--pale-yellow); + overflow: clip; +} + +/* ========================= + Layout Structure +========================= */ +.body { + display: flex; + flex-direction: row; + height: 100%; +} + +.body-left, .body-right { + position: sticky; + flex-grow: 0; + width: 400px; +} + +/* ========================= + Header Styles +========================= */ +.top-header { + display: flex; + align-items: center; + justify-content: center; + gap: 40px; + height: 60px; + padding: 10px 20px; + background-color: var(--dusty-red); + color: var(--dark-yellow); +} + +.top-header .swirl { + height: 40px; + width: auto; + margin: 0 20px; +} + +.site-name { + font-family: 'Delius Swash Caps', serif; + font-size: 2.5em; + font-weight: bold; + letter-spacing: 4px; + color: var(--dark-yellow); +} + +/* ========================= + Left Sidebar +========================= */ +.sidebar-left { + overflow: hidden; + margin: 25px; + border-radius: 20px; + z-index: 10; + background-color: var(--peach); + color: var(--dark); + padding: 6px; + font-size: 1.75em; + font-weight: 900; + letter-spacing: 1.5px; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; +} + +.sidebar-left ul { + list-style: none; + padding: 0; +} + +.sidebar-left li { + margin-bottom: 7px; +} + +.sidebar-left a { + color: var(--dark); + text-decoration: none; + transition: 0.1s ease; +} + +.sidebar-left a:hover { + color: var(--dusty-red); +} + +.sidebar-left .nav_icon { + background: none; + border: none; + padding: 0; + cursor: pointer; + height: 100px; + width: auto; + border-radius: 8px; + transition: transform 0.2s ease; +} + +.sidebar-left .nav_icon:hover { + transform: scale(1.05); +} + +/* ========================= + Floating Create Icon +========================= */ +.create_icon { + position: fixed; + bottom: 30px; + left: 55px; + z-index: 1000; + transition: transform 0.2s ease; +} + +.create_icon:hover { + transform: scale(1.02); +} + +.create_icon img { + width: 150px; + height: auto; + border-radius: 10%; +} + +/* ========================= + Right Sidebar +========================= */ +.sidebar-right { + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + margin: 25px; + padding: 5px; + height: 75%; + border-radius: 20px; + z-index: 10; + background-color: var(--peach); + color: var(--dusty-red); + font-size: 1.3em; + font-weight: 900; + letter-spacing: 1.3px; +} + +.sidebar-right ul { + list-style: none; + padding: 0; +} + +.sidebar-right li { + margin-bottom: 5px; +} + +.sidebar-right a { + color: var(--dusty-red); + text-decoration: none; +} + +/* ========================= + Main Content Area +========================= */ +.main-content { + width: 100%; + flex-grow: 1; + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: flex-start; + overflow: scroll; + scrollbar-color: var(--dusty-red) var(--pale-yellow); + height: 100%; +} + +/* safari and old browsers*/ +::-webkit-scrollbar-track { + background: var(--pale-yellow); +} +::-webkit-scrollbar-thumb { + background: var(--dusty-red); +} + +/* ========================= + Search Bar +========================= */ +.search-bar, input[type="search"] { + width: 90%; + margin: 10px; + flex-grow: 1; + display: flex; + flex-direction: column; + align-items: stretch; + color: var(--dark-yellow); + border: none; + border-radius: 10px; + padding: 0 10px; + height: 50px; + font-size: 20px; + font-family: 'Mali', cursive; + font-weight: 600; + justify-content: flex-start; +} + +.search-btn { +display: flex; + flex-direction: row; + gap: 6px; + } + +input[type="search"] { + background: var(--dusty-red); +} + +input[type="search"]::placeholder { + color: var(--dark-yellow); +} + +.search-bar:focus { + outline: none; +} + +.search-bar button[type="submit"] { + background: var(--dusty-red); + color: var(--dark-yellow); + font-size: 1.3em; + border: none; + border-radius: 10px; + padding: 0 10px; + height: 50px; + width: 50px; + margin: 10px; +} + +.search-bar label { display: none; } + +input[type="search"]::-webkit-search-cancel-button { + filter: invert(1) sepia(1) saturate(2) hue-rotate(3deg); +} + + +/* ========================= + Recipe Cards Layout +========================= */ +.recipe-card { + margin-top: 35px; + width: 99.5%; + display: flex; + flex-wrap: wrap; + gap: 35px; + justify-content: flex-start; + flex-direction: row; + height: fit-content; + padding-right: 10px; +} + +a { + text-decoration: none; + color: var(--dark); +} + +/* ========================= + Individual Card (Folder Style) +========================= */ +.card { + position: relative; /* needed for tab */ + display: flex; + align-items: center; + gap: 10px; + flex: 1 1 260px; + max-width: 400px; + max-height: 200px; + padding: 25px 20px 20px; /* extra space for tab */ + border-radius: 12px; + background: var(--peach); +} + +/* Folder Tab */ +.card::before { + content: ""; + position: absolute; + top: -16px; + left: 0px; + width: 100px; + height: 28px; + background: var(--peach); + border-radius: 6px 6px 0 0; +} + +/* ========================= + Card Content +========================= */ +.card .card-text { + height: 100%; + overflow: hidden; /* the scroll bars were difficult to look at, the user can just view the recipe*/ + color: var(--dark); + transition: 0.1s ease; +} + +.card .card-text:hover{ + color: var(--dusty-red-hover); +} + +/* ========================= + Card Image +========================= */ +.card img { + width: 100%; + height: 100px; + object-fit: cover; + border-radius: 8px; +} + +/* ========================= + Card Columns +========================= */ +.card-left, +.card-right { + flex-shrink: 0; + width: 50%; +} diff --git a/src/main/resources/static/css/home.css b/src/main/resources/static/css/home.css new file mode 100644 index 0000000..bc41372 --- /dev/null +++ b/src/main/resources/static/css/home.css @@ -0,0 +1,288 @@ +/* ========================= + Root Variables +========================= */ +:root { + --dusty-red: #D43F3F; + --dusty-red-hover: #C73636; + --dark-yellow: #FFD27F; + --pale-yellow: #FFECB3; + --peach: #F5A96E; + --dark: #850000; +} + +/* ========================= + Global Styles +========================= */ +.delius { + font-family: 'Delius Swash Caps', cursive; + font-weight: 400; + font-style: normal; +} + +.mali-regular { + font-family: 'Mali', cursive; + font-weight: 400; + font-style: normal; +} + +body, html { + height: 100vh; + margin: 0; + font-family: 'Mali', cursive; + background-color: var(--pale-yellow); + overflow: clip; +} + +/* ========================= + Layout Structure +========================= */ +.body { + display: flex; + flex-direction: row; + height: 100%; +} + +.body-left, .body-right { + position: sticky; + flex-grow: 0; + width: 400px; +} + +/* ========================= + Header Styles +========================= */ +.top-header { + display: flex; + align-items: center; + justify-content: center; + gap: 40px; + height: 60px; + padding: 10px 20px; + background-color: var(--dusty-red); + color: var(--dark-yellow); +} + +.top-header .swirl { + height: 40px; + width: auto; + margin: 0 20px; +} + +.site-name { + font-family: 'Delius Swash Caps', serif; + font-size: clamp(1.1em, 5vw, 2.5em); + font-weight: bold; + letter-spacing: 4px; + color: var(--dark-yellow); +} + +/* ========================= + Left Sidebar +========================= */ +.sidebar-left { + overflow: hidden; + margin: 25px; + border-radius: 20px; + z-index: 10; + background-color: var(--peach); + color: var(--dark); + padding: 6px; + font-size: 1.75em; + font-weight: 900; + letter-spacing: 1.5px; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; +} + +.sidebar-left ul { + list-style: none; + padding: 0; +} + +.sidebar-left li { + margin-bottom: 7px; +} + +.sidebar-left a { + color: var(--dark); + text-decoration: none; + transition: 0.1s ease; +} + +.sidebar-left a:hover { + color: var(--dusty-red-hover); +} + +.sidebar-left .nav_icon { + background: none; + border: none; + padding: 0; + cursor: pointer; + height: 100px; + width: auto; + border-radius: 8px; + transition: transform 0.2s ease; +} + +.sidebar-left .nav_icon:hover { + transform: scale(1.05); +} + +/* ========================= + Floating Create Icon +========================= */ +.create_icon { + position: fixed; + bottom: 30px; + left: 55px; + z-index: 1000; + transition: transform 0.2s ease; +} + +.create_icon:hover { + transform: scale(1.02); +} + +.create_icon img { + width: 150px; + height: auto; + border-radius: 10%; +} + +/* ========================= + Right Sidebar +========================= */ +.sidebar-right { + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + margin: 25px; + padding: 5px; + height: 75%; + border-radius: 20px; + z-index: 10; + background-color: var(--peach); + color: var(--dusty-red); + font-size: 1.6em; + font-weight: 900; + letter-spacing: 1.5px; +} + +.sidebar-right ul { + list-style: none; + padding: 0; +} + +.sidebar-right li { + margin-bottom: 5px; +} + +.sidebar-right a { + color: var(--dusty-red); + text-decoration: none; +} + +/* ========================= + Main Content Area +========================= */ +.main-content { + width: 100%; + flex-grow: 1; + display: flex; + justify-content: center; + align-items: flex-start; + overflow: scroll; + scrollbar-color: var(--dusty-red) var(--pale-yellow); + height: 100%; +} + +/* safari and old browsers*/ +::-webkit-scrollbar-track { + background: var(--pale-yellow); +} +::-webkit-scrollbar-thumb { + background: var(--dusty-red); +} + +/* ========================= + Recipe Cards Layout +========================= */ +.recipe-card { + margin-top: 35px; + width: 99%; + display: flex; + flex-wrap: wrap; + gap: 35px; + justify-content: flex-start; + flex-direction: row; + height: fit-content; +} + +a { + text-decoration: none; + color: var(--dark); +} + +/* ========================= + Individual Card (Folder Style) +========================= */ +.card { + position: relative; /* needed for tab */ + display: flex; + align-items: center; + gap: 10px; + flex: 1 1 260px; + max-width: 400px; + max-height: 200px; + padding: 25px 20px 20px; /* extra space for tab */ + border-radius: 12px; + background: var(--peach); +} + +/* Folder Tab */ +.card::before { + content: ""; + position: absolute; + top: -16px; + left: 0px; + width: 100px; + height: 28px; + background: var(--peach); + border-radius: 6px 6px 0 0; +} + +/* ========================= + Card Content +========================= */ +.card .card-text { + height: 100%; + overflow: hidden; /* the scroll bars were difficult to look at, the user can just view the recipe*/ + color: var(--dark); + transition: 0.1s ease; +} + +.card .card-text:hover{ + color: var(--dusty-red-hover); +} + +/* ========================= + Card Image +========================= */ +.card img { + width: 100%; + height: 100px; + object-fit: cover; + border-radius: 8px; +} + +/* ========================= + Card Columns +========================= */ +.card-left, +.card-right { + flex-shrink: 0; + width: 50%; +} diff --git a/src/main/resources/static/css/login.css b/src/main/resources/static/css/login.css new file mode 100644 index 0000000..e5aaa30 --- /dev/null +++ b/src/main/resources/static/css/login.css @@ -0,0 +1,178 @@ +/* ========================= + Root Variables +========================= */ +:root { + --dusty-red: #D43F3F; + --dusty-red-hover: #C73636; + --dark-yellow: #FFD27F; + --pale-yellow: #FFECB3; + --peach: #F5A96E; + --dark: #850000; +} + +/* ========================= + Global Styles +========================= */ +.delius { + font-family: 'Delius Swash Caps', cursive; + font-weight: 400; + font-style: normal; +} + +.mali-regular { + font-family: 'Mali', cursive; + font-weight: 400; + font-style: normal; +} + +body, +html { + height: 100%; + margin: 0; + font-family: 'Mali', cursive; + background-color: var(--pale-yellow); +} + +/* ========================= + Layout Container +========================= */ +.container { + display: flex; + height: 100vh; +} + +/* ========================= + Header Styles +========================= */ +.top-header { + position: sticky; + top: 0; + display: flex; + align-items: center; + justify-content: center; + gap: 40px; + + height: 60px; + padding: 10px 20px; + + background-color: var(--dusty-red); + color: var(--dark-yellow); +} + +.top-header .swirl { + height: 40px; + width: auto; + margin: 0 20px; +} + +.site-name { + font-family: 'Delius Swash Caps', cursive; + font-size: 2.5em; + font-weight: bold; + letter-spacing: 4px; +} + +/* ========================= + Main Content Area +========================= */ +.main-content { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + + flex-grow: 0; + margin-top: 40px; +} + +/* ========================= + Login Box +========================= */ +.login-box { + width: 400px; + padding: 45px; + border-radius: 20px; + + background-color: var(--peach); + color: var(--dark); +} + +.login-box h2 { + margin: 8px 0 30px; + + font-size: 50px; + font-weight: bold; + text-align: center; +} + +/* Form Labels */ +.login-box label { + display: block; + width: 90%; + margin: 10px; + + font-size: 20px; + font-weight: bold; +} + +/* Form Inputs */ +.login-box input { + display: block; + width: 90%; + margin: 5px auto 0; + padding: 10px; + + font-size: 20px; + border-radius: 10px; + border: 2.5px solid var(--dusty-red); + background-color: var(--pale-yellow); + box-sizing: border-box; +} + +.alert { + color: var(--dusty-red); +} + +/* ========================= + Button Styles +========================= */ +.login-box button { + display: block; + width: 40%; + margin: 20px auto 0; + padding: 10px; + + font-family: 'Mali', cursive; + font-weight: bold; + color: var(--dark-yellow); + background-color: var(--dusty-red); + + border: none; + border-radius: 10px; + cursor: pointer; + + transition: background-color 0.1s ease, transform 0.2s ease; +} + +.login-box button:hover { + background-color: var(--dusty-red-hover); + transform: scale(1.05); +} + +/* ========================= + Sign Up Section +========================= */ +.sign_up { + color: var(--dusty-red); +} + +.sign_up a { + display: inline-block; + color: var(--dark); + text-decoration: none; + transition: transform 0.2s ease; +} + +.sign_up a:hover { + transform: scale(1.03); +} \ No newline at end of file diff --git a/src/main/resources/static/css/view-recipe.css b/src/main/resources/static/css/view-recipe.css new file mode 100644 index 0000000..a425b1c --- /dev/null +++ b/src/main/resources/static/css/view-recipe.css @@ -0,0 +1,275 @@ +/* ========================= + Root Variables +========================= */ +:root { + --dusty-red: #D43F3F; + --dusty-red-hover: #C73636; + --dark-yellow: #FFD27F; + --pale-yellow: #FFECB3; + --peach: #F5A96E; + --dark: #850000; +} + +/* ========================= + Global Styles +========================= */ +.delius { + font-family: 'Delius Swash Caps', cursive; + font-weight: 400; + font-style: normal; +} + +.mali-regular { + font-family: 'Mali', cursive; + font-weight: 400; + font-style: normal; +} + +body, html { + height: 100vh; + margin: 0; + font-family: 'Mali', cursive; + background-color: var(--pale-yellow); + overflow: clip; +} + +/* ========================= + Layout Structure +========================= */ +.body { + display: flex; + flex-direction: row; + height: 100%; +} + +.body-left, .body-right { + position: sticky; + flex-grow: 0; + width: 400px; +} + +/* ========================= + Header Styles +========================= */ +.top-header { + display: flex; + align-items: center; + justify-content: center; + gap: 40px; + height: 60px; + padding: 10px 20px; + background-color: var(--dusty-red); + color: var(--dark-yellow); +} + +.top-header .swirl { + height: 40px; + width: auto; + margin: 0 20px; +} + +.site-name { + font-family: 'Delius Swash Caps', serif; + font-size: 2.5em; + font-weight: bold; + letter-spacing: 4px; + color: var(--dark-yellow); +} + +/* ========================= + Left Sidebar +========================= */ +.sidebar-left { + overflow: hidden; + margin: 25px; + border-radius: 20px; + z-index: 10; + background-color: var(--peach); + color: var(--dark); + padding: 6px; + font-size: 1.75em; + font-weight: 900; + letter-spacing: 1.5px; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; +} + +.sidebar-left ul { + list-style: none; + padding: 0; +} + +.sidebar-left li { + margin-bottom: 7px; +} + +.sidebar-left a { + color: var(--dark); + text-decoration: none; + transition: 0.1s ease; +} + +.sidebar-left a:hover { + color: var(--dusty-red); +} + +.sidebar-left .nav_icon { + background: none; + border: none; + padding: 0; + cursor: pointer; + height: 100px; + width: auto; + border-radius: 8px; + transition: transform 0.2s ease; +} + +.sidebar-left .nav_icon:hover { + transform: scale(1.05); +} + +/* ========================= + Floating Create Icon +========================= */ +.create_icon { + position: fixed; + bottom: 30px; + left: 55px; + z-index: 1000; + transition: transform 0.2s ease; +} + +.create_icon:hover { + transform: scale(1.02); +} + +.create_icon img { + width: 150px; + height: auto; + border-radius: 10%; +} + +/* ========================= + Right Sidebar +========================= */ +.sidebar-right { + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + margin: 25px; + padding: 5px; + height: 75%; + border-radius: 20px; + z-index: 10; + background-color: var(--peach); + color: var(--dusty-red); + font-size: 1.6em; + font-weight: 900; + letter-spacing: 1.5px; +} + +.sidebar-right ul { + list-style: none; + padding: 0; +} + +.sidebar-right li { + margin-bottom: 5px; +} + +.sidebar-right a { + color: var(--dusty-red); + text-decoration: none; +} + +/* ========================= + Main Content Area +========================= */ +.main-content { + width: 100%; + flex-grow: 1; + display: flex; + justify-content: center; + align-items: flex-start; + overflow: scroll; + height: 100%; +} + +/* ========================= + Recipe Cards Layout +========================= */ +.recipe-card { + margin-top: 35px; + width: 100%; + display: flex; + flex-wrap: wrap; + gap: 35px; + justify-content: flex-start; + flex-direction: row; + height: fit-content; +} + +a { + text-decoration: none; + color: var(--dark); +} + +/* ========================= + Individual Card (Folder Style) +========================= */ +.card { + position: relative; /* needed for tab */ + display: flex; + align-items: center; + gap: 10px; + flex: 1 1 260px; + max-width: 400px; + max-height: 200px; + padding: 25px 20px 20px; /* extra space for tab */ + border-radius: 12px; + background: var(--peach); +} + +/* Folder Tab */ +.card::before { + content: ""; + position: absolute; + top: -16px; + left: 0px; + width: 100px; + height: 28px; + background: var(--peach); + border-radius: 6px 6px 0 0; +} + +/* ========================= + Card Content +========================= */ +.card .card-text { + height: 100%; + overflow: hidden; /* the scroll bars were difficult to look at, the user can just view the recipe*/ + font-family: 'Roboto', sans-serif; + color: var(--dark); +} + +/* ========================= + Card Image +========================= */ +.card img { + width: 100%; + height: 100px; + object-fit: cover; + border-radius: 8px; +} + +/* ========================= + Card Columns +========================= */ +.card-left, +.card-right { + flex-shrink: 0; + width: 50%; +} diff --git a/src/main/resources/static/images/create_icon.png b/src/main/resources/static/images/create_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..42a734cbbca902f04c5d4e288ac2e9200ac647cd GIT binary patch literal 127529 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

inO=bR~=4KUK9Nybs|=gw8z&{;3vE|AmnU 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 (NH>u#4`Sz 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 Nl2dzHBK!Q!{{z^oF~tA? literal 0 HcmV?d00001 diff --git a/src/main/resources/static/images/create_icon_lineless.png b/src/main/resources/static/images/create_icon_lineless.png new file mode 100644 index 0000000000000000000000000000000000000000..dedd549b7c106a20ac814466d914a187adf70a14 GIT binary patch literal 32559 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/static/images/decor_left.png b/src/main/resources/static/images/decor_left.png new file mode 100644 index 0000000000000000000000000000000000000000..a000b29499222b167d39ee5a95e11d48c36f6298 GIT binary patch literal 55890 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 uzaO6(=)czZuSMkSz literal 0 HcmV?d00001 diff --git a/src/main/resources/static/images/decor_right.png b/src/main/resources/static/images/decor_right.png new file mode 100644 index 0000000000000000000000000000000000000000..61cdff876e9081fb5b8e473e0b70625a18750964 GIT binary patch literal 54316 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 T>yg|VC-4c~xjXn;U~KvyzG9%u literal 0 HcmV?d00001 diff --git a/src/main/resources/static/images/header_left.png b/src/main/resources/static/images/header_left.png new file mode 100644 index 0000000000000000000000000000000000000000..ac2c4035b47241c487dc7bd5323985424b8eabc2 GIT binary patch literal 143444 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 |b4R4X}QTHZIBB+l(+AHc1`PZml0XN%)U>Qq}U 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

nMREdJo8KiFq1dD7&| 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 z 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/static/images/logout_icon.png b/src/main/resources/static/images/logout_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9ec95061e0476de1bc2e7d93fd4d799b650f18c7 GIT binary patch literal 28277 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 + + + + Create Thyme Crunch Account + + + + + +

+ Violin f-hole shape to the left of header. +

Thyme Crunch

+ Violin f-hole shape to the right of header. +
+ + +
+ +
+ + + + \ No newline at end of file diff --git a/src/main/resources/templates/create-recipe.html b/src/main/resources/templates/create-recipe.html new file mode 100644 index 0000000..583dc74 --- /dev/null +++ b/src/main/resources/templates/create-recipe.html @@ -0,0 +1,344 @@ + + + + + + + Create Thyme Crunch Recipe + + + + + +
+ Violin f-hole shape to the left of header. +

Thyme Crunch

+ Violin f-hole shape to the right of header. +
+ +
+
+ + +
+
New Recipe
+ +
+ + +
+ +
+ + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + +
+
+
+

Click to upload or drag and drop an image.

+
+
+ Cover preview + +
+ +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+
+ + +
+ +
+ +
+ + +
+
+
+
+ +
+ +
+ +
+ + + + \ No newline at end of file diff --git a/src/main/resources/templates/explore.html b/src/main/resources/templates/explore.html new file mode 100644 index 0000000..27cb15c --- /dev/null +++ b/src/main/resources/templates/explore.html @@ -0,0 +1,75 @@ + + + + + Thyme Crunch Home + + + + + + +
+ Violin f-hole shape to the left of header. +

Thyme Crunch

+ Violin f-hole shape to the right of header. +
+ +
+ +
+ + + Create New Recipe Icon (Red mixing bowl with a spoon and yellow addition symbol. + +
+ + + +
+ + +
+ + +
+ +
+
+ + diff --git a/src/main/resources/templates/home.html b/src/main/resources/templates/home.html new file mode 100644 index 0000000..619f36c --- /dev/null +++ b/src/main/resources/templates/home.html @@ -0,0 +1,65 @@ + + + + + Thyme Crunch Home + + + + + +
+ Violin f-hole shape to the left of header. +

Thyme Crunch

+ Violin f-hole shape to the right of header. +
+ +
+ +
+ + + Create New Recipe Icon (Red mixing bowl with a spoon and yellow addition symbol. + +
+ + + +
+ +
+ + +
+ +
+
+ + diff --git a/src/main/resources/templates/login.html b/src/main/resources/templates/login.html new file mode 100644 index 0000000..91c114c --- /dev/null +++ b/src/main/resources/templates/login.html @@ -0,0 +1,41 @@ + + + + + Thyme Crunch Login + + + + + +
+ Violin f-hole shape to the left of header. +

Thyme Crunch

+ Violin f-hole shape to the right of header. + +
+ + +
+ + +
+ + diff --git a/src/main/resources/templates/view-recipe.html b/src/main/resources/templates/view-recipe.html new file mode 100644 index 0000000..6c8e81f --- /dev/null +++ b/src/main/resources/templates/view-recipe.html @@ -0,0 +1,64 @@ + + + + + Thyme Crunch View Recipe + + + + + +
+ Violin f-hole shape to the left of header. +

Thyme Crunch

+ Violin f-hole shape to the right of header. +
+ +
+ +
+ + + Description of the icon + +
+ + + +
+
+

+

+ +
+
Ingredients
+
    +
  • +
+
+ +
+
Instructions
+
    +
  1. +
+
+
+ +
+ + diff --git a/src/test/java/com/example/demo/RecipeDemoApplicationTests.java b/src/test/java/com/example/demo/RecipeDemoApplicationTests.java new file mode 100644 index 0000000..a4a0e40 --- /dev/null +++ b/src/test/java/com/example/demo/RecipeDemoApplicationTests.java @@ -0,0 +1,13 @@ +package com.example.demo; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class RecipeDemoApplicationTests { + + @Test + void contextLoads() { + } + +}