From 00e018b0d8425ef4c6a1b62f4d00311a094fa666 Mon Sep 17 00:00:00 2001 From: Laurine <lenetlaurine@gmail.com> Date: Tue, 21 May 2024 15:49:16 +0200 Subject: [PATCH] init home --- .gitignore | 1 + resources/boilerplate/emptydocs/.gitignore | 1 - resources/boilerplate/emptydocs/README.md | 4 - resources/boilerplate/emptydocs/docs/about.md | 12 - resources/boilerplate/emptydocs/docs/index.md | 4 - resources/boilerplate/emptydocs/mkdocs.yml | 32 -- .../boilerplate/starter-project/.env.sample | 6 - .../boilerplate/starter-project/.gitignore | 6 - .../boilerplate/starter-project/README.md | 5 - resources/boilerplate/starter-project/mvnw | 308 ------------------ .../boilerplate/starter-project/mvnw.cmd | 205 ------------ resources/boilerplate/starter-project/pom.xml | 74 ----- .../iotproject/HomeAssistantExample.java | 66 ---- .../iotproject/IotProjectApplication.java | 22 -- .../iotproject/LedLightStripExample.java | 65 ---- .../hackathon/iotproject/ScaleExample.java | 39 --- .../src/main/resources/application.properties | 1 - .../IotProjectApplicationTests.java | 13 - resources/docs/docs/README.md | 20 +- resources/docs/docs/assets/party.gif | Bin 0 -> 47847 bytes resources/docs/docs/demarrage/home.md | 2 +- resources/docs/mkdocs.yml | 6 +- 22 files changed, 14 insertions(+), 878 deletions(-) delete mode 100644 resources/boilerplate/emptydocs/.gitignore delete mode 100644 resources/boilerplate/emptydocs/README.md delete mode 100644 resources/boilerplate/emptydocs/docs/about.md delete mode 100644 resources/boilerplate/emptydocs/docs/index.md delete mode 100644 resources/boilerplate/emptydocs/mkdocs.yml delete mode 100644 resources/boilerplate/starter-project/.env.sample delete mode 100644 resources/boilerplate/starter-project/.gitignore delete mode 100644 resources/boilerplate/starter-project/README.md delete mode 100755 resources/boilerplate/starter-project/mvnw delete mode 100644 resources/boilerplate/starter-project/mvnw.cmd delete mode 100644 resources/boilerplate/starter-project/pom.xml delete mode 100644 resources/boilerplate/starter-project/src/main/java/io/takima/hackathon/iotproject/HomeAssistantExample.java delete mode 100644 resources/boilerplate/starter-project/src/main/java/io/takima/hackathon/iotproject/IotProjectApplication.java delete mode 100644 resources/boilerplate/starter-project/src/main/java/io/takima/hackathon/iotproject/LedLightStripExample.java delete mode 100644 resources/boilerplate/starter-project/src/main/java/io/takima/hackathon/iotproject/ScaleExample.java delete mode 100644 resources/boilerplate/starter-project/src/main/resources/application.properties delete mode 100644 resources/boilerplate/starter-project/src/test/java/io/takima/hackathon/iotproject/IotProjectApplicationTests.java create mode 100644 resources/docs/docs/assets/party.gif diff --git a/.gitignore b/.gitignore index 282b685..1d487ee 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ terraform.tfstate terraform.tfstate.backup *.pem .env +.DS_Store diff --git a/resources/boilerplate/emptydocs/.gitignore b/resources/boilerplate/emptydocs/.gitignore deleted file mode 100644 index ccbfadb..0000000 --- a/resources/boilerplate/emptydocs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -site/ \ No newline at end of file diff --git a/resources/boilerplate/emptydocs/README.md b/resources/boilerplate/emptydocs/README.md deleted file mode 100644 index e536df8..0000000 --- a/resources/boilerplate/emptydocs/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Bienvenue à la formation Cloud Takima ------- - -Ne soyez pas impatient le TP arrive bientôt ! \ No newline at end of file diff --git a/resources/boilerplate/emptydocs/docs/about.md b/resources/boilerplate/emptydocs/docs/about.md deleted file mode 100644 index 2ec5199..0000000 --- a/resources/boilerplate/emptydocs/docs/about.md +++ /dev/null @@ -1,12 +0,0 @@ -# About Us - -## The Dev Team - -... - -## The Sponsors - -Takima has been supporting us and gave us company time to work on this project. -They also provided support and coaching for the content itself and speaker-preparation. - -It is an awesome company, you should [look it up](https://www.takima.fr) :) diff --git a/resources/boilerplate/emptydocs/docs/index.md b/resources/boilerplate/emptydocs/docs/index.md deleted file mode 100644 index e536df8..0000000 --- a/resources/boilerplate/emptydocs/docs/index.md +++ /dev/null @@ -1,4 +0,0 @@ -# Bienvenue à la formation Cloud Takima ------- - -Ne soyez pas impatient le TP arrive bientôt ! \ No newline at end of file diff --git a/resources/boilerplate/emptydocs/mkdocs.yml b/resources/boilerplate/emptydocs/mkdocs.yml deleted file mode 100644 index 7a2b26e..0000000 --- a/resources/boilerplate/emptydocs/mkdocs.yml +++ /dev/null @@ -1,32 +0,0 @@ -site_name: Formation Takima -nav: - - Briefing: index.md - - About: about.md -theme: - name: "material" - features: - - navigation.tabs - - navigation.instant - logo: https://www.takima.fr/assets/Logo/Takima/Takima-logo-white-text.svg - palette: - # Palette toggle for light mode - - scheme: default - accent: pink - toggle: - icon: material/brightness-7 - name: Switch to dark mode - # Palette toggle for dark mode - - scheme: slate - primary: black - accent: pink - toggle: - icon: material/brightness-5 - name: Switch to light mode - -markdown_extensions: - - markdown.extensions.admonition: - - pymdownx.highlight: - anchor_linenums: true - - pymdownx.inlinehilite - - pymdownx.snippets - - pymdownx.superfences diff --git a/resources/boilerplate/starter-project/.env.sample b/resources/boilerplate/starter-project/.env.sample deleted file mode 100644 index c4f936f..0000000 --- a/resources/boilerplate/starter-project/.env.sample +++ /dev/null @@ -1,6 +0,0 @@ -MQTT_CLIENT_ID=YOURHOSTID -MQTT_HOST=mqtt.takima.internal:1883 -MQTT_USERNAME=mqtt-broker -MQTT_PASSWORD=takima -HOME_ASSISTANT_BASE_URL=http://localhost:8123 -HOME_ASSISTANT_BEARER_TOKEN=YOURTOKEN diff --git a/resources/boilerplate/starter-project/.gitignore b/resources/boilerplate/starter-project/.gitignore deleted file mode 100644 index 5b74b41..0000000 --- a/resources/boilerplate/starter-project/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -.DS_Store -target -.idea -.mvn -.env -mosquitto diff --git a/resources/boilerplate/starter-project/README.md b/resources/boilerplate/starter-project/README.md deleted file mode 100644 index e01cd0c..0000000 --- a/resources/boilerplate/starter-project/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Read Me First - -# Getting Started -* Copy the `.env.sample` file to `.env` -* Change the values according to your guide diff --git a/resources/boilerplate/starter-project/mvnw b/resources/boilerplate/starter-project/mvnw deleted file mode 100755 index 66df285..0000000 --- a/resources/boilerplate/starter-project/mvnw +++ /dev/null @@ -1,308 +0,0 @@ -#!/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 -# -# https://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.2.0 -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /usr/local/etc/mavenrc ] ; then - . /usr/local/etc/mavenrc - fi - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "$(uname)" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - JAVA_HOME="$(/usr/libexec/java_home)"; export JAVA_HOME - else - JAVA_HOME="/Library/Java/Home"; export JAVA_HOME - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=$(java-config --jre-home) - fi -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$JAVA_HOME" ] && - JAVA_HOME=$(cygpath --unix "$JAVA_HOME") - [ -n "$CLASSPATH" ] && - CLASSPATH=$(cygpath --path --unix "$CLASSPATH") -fi - -# For Mingw, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] && - JAVA_HOME="$(cd "$JAVA_HOME" || (echo "cannot cd into $JAVA_HOME."; exit 1); pwd)" -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="$(which javac)" - if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ ]*\)')" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=$(which readlink) - if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then - if $darwin ; then - javaHome="$(dirname "\"$javaExecutable\"")" - javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac" - else - javaExecutable="$(readlink -f "\"$javaExecutable\"")" - fi - javaHome="$(dirname "\"$javaExecutable\"")" - javaHome=$(expr "$javaHome" : '\(.*\)/bin') - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - 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" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=$(cd "$wdir/.." || exit 1; pwd) - fi - # end of workaround - done - printf '%s' "$(cd "$basedir" || exit 1; pwd)" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - # Remove \r in case we run on Windows within Git Bash - # and check out the repository with auto CRLF management - # enabled. Otherwise, we may read lines that are delimited with - # \r\n and produce $'-Xarg\r' rather than -Xarg due to word - # splitting rules. - tr -s '\r\n' ' ' < "$1" - fi -} - -log() { - if [ "$MVNW_VERBOSE" = true ]; then - printf '%s\n' "$1" - fi -} - -BASE_DIR=$(find_maven_basedir "$(dirname "$0")") -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR -log "$MAVEN_PROJECTBASEDIR" - -########################################################################################## -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -# This allows using the maven wrapper in projects that prohibit checking in binary data. -########################################################################################## -wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" -if [ -r "$wrapperJarPath" ]; then - log "Found $wrapperJarPath" -else - log "Couldn't find $wrapperJarPath, downloading it ..." - - if [ -n "$MVNW_REPOURL" ]; then - wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - else - wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - fi - while IFS="=" read -r key value; do - # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' ) - safeValue=$(echo "$value" | tr -d '\r') - case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;; - esac - done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" - log "Downloading from: $wrapperUrl" - - if $cygwin; then - wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") - fi - - if command -v wget > /dev/null; then - log "Found wget ... using wget" - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - else - wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - log "Found curl ... using curl" - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" - else - curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" - fi - else - log "Falling back to using Java to download" - javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java" - javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaSource=$(cygpath --path --windows "$javaSource") - javaClass=$(cygpath --path --windows "$javaClass") - fi - if [ -e "$javaSource" ]; then - if [ ! -e "$javaClass" ]; then - log " - Compiling MavenWrapperDownloader.java ..." - ("$JAVA_HOME/bin/javac" "$javaSource") - fi - if [ -e "$javaClass" ]; then - log " - Running MavenWrapperDownloader.java ..." - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath" - fi - fi - fi -fi -########################################################################################## -# End of extension -########################################################################################## - -# If specified, validate the SHA-256 sum of the Maven wrapper jar file -wrapperSha256Sum="" -while IFS="=" read -r key value; do - case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;; - esac -done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" -if [ -n "$wrapperSha256Sum" ]; then - wrapperSha256Result=false - if command -v sha256sum > /dev/null; then - if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c > /dev/null 2>&1; then - wrapperSha256Result=true - fi - elif command -v shasum > /dev/null; then - if echo "$wrapperSha256Sum $wrapperJarPath" | shasum -a 256 -c > /dev/null 2>&1; then - wrapperSha256Result=true - fi - else - echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." - echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties." - exit 1 - fi - if [ $wrapperSha256Result = false ]; then - echo "Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised." >&2 - echo "Investigate or delete $wrapperJarPath to attempt a clean download." >&2 - echo "If you updated your Maven version, you need to update the specified wrapperSha256Sum property." >&2 - exit 1 - fi -fi - -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$JAVA_HOME" ] && - JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME") - [ -n "$CLASSPATH" ] && - CLASSPATH=$(cygpath --path --windows "$CLASSPATH") - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR") -fi - -# Provide a "standardized" way to retrieve the CLI args that will -# work with both Windows and non-Windows executions. -MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*" -export MAVEN_CMD_LINE_ARGS - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -# shellcheck disable=SC2086 # safe args -exec "$JAVACMD" \ - $MAVEN_OPTS \ - $MAVEN_DEBUG_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/resources/boilerplate/starter-project/mvnw.cmd b/resources/boilerplate/starter-project/mvnw.cmd deleted file mode 100644 index 95ba6f5..0000000 --- a/resources/boilerplate/starter-project/mvnw.cmd +++ /dev/null @@ -1,205 +0,0 @@ -@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 https://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.2.0 -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* -if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - -FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - if "%MVNW_VERBOSE%" == "true" ( - echo Found %WRAPPER_JAR% - ) -) else ( - if not "%MVNW_REPOURL%" == "" ( - SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - ) - if "%MVNW_VERBOSE%" == "true" ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %WRAPPER_URL% - ) - - powershell -Command "&{"^ - "$webclient = new-object System.Net.WebClient;"^ - "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ - "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ - "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ - "}" - if "%MVNW_VERBOSE%" == "true" ( - echo Finished downloading %WRAPPER_JAR% - ) -) -@REM End of extension - -@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file -SET WRAPPER_SHA_256_SUM="" -FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B -) -IF NOT %WRAPPER_SHA_256_SUM%=="" ( - powershell -Command "&{"^ - "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^ - "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^ - " Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^ - " Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^ - " Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^ - " exit 1;"^ - "}"^ - "}" - if ERRORLEVEL 1 goto error -) - -@REM Provide a "standardized" way to retrieve the CLI args that will -@REM work with both Windows and non-Windows executions. -set MAVEN_CMD_LINE_ARGS=%* - -%MAVEN_JAVA_EXE% ^ - %JVM_CONFIG_MAVEN_PROPS% ^ - %MAVEN_OPTS% ^ - %MAVEN_DEBUG_OPTS% ^ - -classpath %WRAPPER_JAR% ^ - "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ - %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" -if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%"=="on" pause - -if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% - -cmd /C exit /B %ERROR_CODE% diff --git a/resources/boilerplate/starter-project/pom.xml b/resources/boilerplate/starter-project/pom.xml deleted file mode 100644 index ccc50e9..0000000 --- a/resources/boilerplate/starter-project/pom.xml +++ /dev/null @@ -1,74 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-parent</artifactId> - <version>3.2.5</version> - <relativePath/> <!-- lookup parent from repository --> - </parent> - <groupId>io.takima.hackathon</groupId> - <artifactId>iot-project</artifactId> - <version>0.0.1-SNAPSHOT</version> - <name>iot-project</name> - <description>Project IoT</description> - <properties> - <java.version>17</java.version> - </properties> - <repositories> - <repository> - <id>gitlab-maven</id> - <url>https://gitlab.takima.io/api/v4/projects/562/packages/maven</url> - </repository> - </repositories> - - <distributionManagement> - <repository> - <id>gitlab-maven</id> - <url>https://gitlab.takima.io/api/v4/projects/562/packages/maven</url> - </repository> - - <snapshotRepository> - <id>gitlab-maven</id> - <url>https://gitlab.takima.io/api/v4/projects/562/packages/maven</url> - </snapshotRepository> - </distributionManagement> - <dependencies> - <dependency> - <groupId>io.takima</groupId> - <artifactId>takiot-client-core</artifactId> - <version>0.1.7</version> - </dependency> - <dependency> - <groupId>io.takima</groupId> - <artifactId>takiot-client-ledlighting</artifactId> - <version>0.1.7</version> - </dependency> - <dependency> - <groupId>io.takima</groupId> - <artifactId>takiot-client-weightwatcher</artifactId> - <version>0.1.7</version> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - <version>2.0.12</version> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-simple</artifactId> - <version>2.0.12</version> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - </plugin> - </plugins> - </build> - -</project> diff --git a/resources/boilerplate/starter-project/src/main/java/io/takima/hackathon/iotproject/HomeAssistantExample.java b/resources/boilerplate/starter-project/src/main/java/io/takima/hackathon/iotproject/HomeAssistantExample.java deleted file mode 100644 index 2a1037b..0000000 --- a/resources/boilerplate/starter-project/src/main/java/io/takima/hackathon/iotproject/HomeAssistantExample.java +++ /dev/null @@ -1,66 +0,0 @@ -package io.takima.hackathon.iotproject; - -import io.github.cdimascio.dotenv.Dotenv; -import io.takima.takiotclient.HomeAssistantClient; -import io.takima.takiotclient.StandardHomeAssistantClient; -import io.takima.takiotclient.utils.TimerUtils; - -import java.time.Duration; -import java.time.LocalDate; -import java.time.temporal.ChronoUnit; - -import static io.takima.takiotclient.utils.DataUtils.generateDecrementalValuesBetween; -import static io.takima.takiotclient.utils.DataUtils.generateRandomValuesBetween; -import static io.takima.takiotclient.utils.TimerUtils.generateBackfillDateTimes; - -public class HomeAssistantExample { - - private final HomeAssistantClient client; - - public HomeAssistantExample() { - Dotenv dotenv = Dotenv.configure().load(); - String homeAssistantBaseUrl = dotenv.get("HOME_ASSISTANT_BASE_URL"); - String homeAssistantBearerToken = dotenv.get("HOME_ASSISTANT_BEARER_TOKEN"); - - this.client = StandardHomeAssistantClient.create(homeAssistantBaseUrl, homeAssistantBearerToken); - } - - public void sendEntityValuesBackfill() { - var entityId = "input_number.test_weight_watchers"; - // Make sure entity exists - this.client.assertExists(entityId); - // Generate regular datetimes since reference date (one month ago) - var dateTimes = generateBackfillDateTimes(LocalDate.now().minusMonths(12), Duration.of(1, ChronoUnit.DAYS)); - // Generate random values for backfill - var values = generateRandomValuesBetween(4, 25, dateTimes.size()); - // Update entity values - for (int i = 0; i < dateTimes.size(); i++) { - this.client.updateEntityAt(entityId, values.get(i).toString(), dateTimes.get(i)); - } - } - - public void sendEntityValuesFor60Seconds() { - var entityId = "input_number.test_counter"; - // Make sure entity exists - this.client.assertExists(entityId); - // Send a counter value each second for one minute - for (Integer i = 0; i < 60; i++) { - System.out.println("Updating entity value to " + i); - this.client.updateEntityValue(entityId, i.toString()); - TimerUtils.sleepMillis(1000); - } - } - - public void watchEntityValueChangeFor60Seconds() { - var entityId = "input_text.test_text"; - // Make sure entity exists - this.client.assertExists(entityId); - // Watch entity changes and print when entity changes - // You should try modifying things in your Home Assistant - this.client.watchEntityChanges(entityId).subscribe((e) -> { - System.out.println("Entity " + entityId + " changed"); - System.out.println(e); - }); - TimerUtils.sleepMillis(60_000); - } -} diff --git a/resources/boilerplate/starter-project/src/main/java/io/takima/hackathon/iotproject/IotProjectApplication.java b/resources/boilerplate/starter-project/src/main/java/io/takima/hackathon/iotproject/IotProjectApplication.java deleted file mode 100644 index 9fb5d0d..0000000 --- a/resources/boilerplate/starter-project/src/main/java/io/takima/hackathon/iotproject/IotProjectApplication.java +++ /dev/null @@ -1,22 +0,0 @@ -package io.takima.hackathon.iotproject; - -public class IotProjectApplication { - - public static void main(String[] args) { - - // Led Light Strip Example - var ledLightStripExample = new LedLightStripExample(); - ledLightStripExample.setLightStripColorsFor60Seconds(); - - // Scale Example - // var scaleExample = new ScaleExample(); - // scaleExample.listenToWeightChanges(); - - // Home Assistant Example - // var homeAssistantExample = new HomeAssistantExample(); - // homeAssistantExample.sendEntityValuesBackfill(); - // homeAssistantExample.sendEntityValuesFor60Seconds(); - // homeAssistantExample.watchEntityValueChangeFor60Seconds(); - } - -} diff --git a/resources/boilerplate/starter-project/src/main/java/io/takima/hackathon/iotproject/LedLightStripExample.java b/resources/boilerplate/starter-project/src/main/java/io/takima/hackathon/iotproject/LedLightStripExample.java deleted file mode 100644 index ad62e9c..0000000 --- a/resources/boilerplate/starter-project/src/main/java/io/takima/hackathon/iotproject/LedLightStripExample.java +++ /dev/null @@ -1,65 +0,0 @@ -package io.takima.hackathon.iotproject; - -import io.github.cdimascio.dotenv.Dotenv; -import io.takima.takiotclient.LedLightingMiddleware; -import io.takima.takiotclient.StandardTakIOTClient; -import io.takima.takiotclient.TakIOTClient; -import io.takima.takiotclient.devices.SoundReader; -import io.takima.takiotclient.ledlighting.messages.outbound.SetLightsMessage; -import io.takima.takiotclient.ledlighting.models.Colors; -import io.takima.takiotclient.ledlighting.models.PixelColor; -import io.takima.takiotclient.utils.TimerUtils; - -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -import static io.takima.takiotclient.utils.ListUtils.ofRepeated; - -public class LedLightStripExample { - - private final TakIOTClient client; - private final LedLightingMiddleware middleware; - - public LedLightStripExample() { - // À garder : chargement des variables d'environnement - Dotenv dotenv = Dotenv.configure().load(); - String clientId = dotenv.get("MQTT_CLIENT_ID"); - String mqttHost = dotenv.get("MQTT_HOST"); - String mqttUsername = dotenv.get("MQTT_USERNAME"); - String mqttPassword = dotenv.get("MQTT_PASSWORD"); - - // TODO replace by your Device ID - String deviceId = "led-1"; - - // Client MQTT - this.client = StandardTakIOTClient.newInstance(mqttHost, clientId, mqttUsername, mqttPassword); - this.middleware = new LedLightingMiddleware(deviceId); - client.use(middleware); - client.connect(); - } - - public void setLightStripColorsFor60Seconds() { - var takimaColor = new PixelColor(223,2,104); - // 25 pixels of Takima Color - var pixelsOfTakimaColor = ofRepeated(takimaColor, 25); - - // Change colors of strip at each second for 60 seconds - System.out.println("Will start publishing set lights messages"); - for (int i = 0; i < 60; i++) { - // Copy pixels of Takima Color - var nextPixels = new ArrayList<>(pixelsOfTakimaColor); - // Change next pixel to white at each iteration - nextPixels.set(i % pixelsOfTakimaColor.size(), Colors.WHITE.value()); - // Prepare message - var message = new SetLightsMessage(nextPixels); - // Send message to device - middleware.publishSetLights(message); - System.out.println("Published set lights message " + i); - System.out.println(message.pixels()); - // Sleep for 100 millisecond - TimerUtils.sleepMillis(100); - } - System.out.println("Finished"); - } -} diff --git a/resources/boilerplate/starter-project/src/main/java/io/takima/hackathon/iotproject/ScaleExample.java b/resources/boilerplate/starter-project/src/main/java/io/takima/hackathon/iotproject/ScaleExample.java deleted file mode 100644 index ff48a39..0000000 --- a/resources/boilerplate/starter-project/src/main/java/io/takima/hackathon/iotproject/ScaleExample.java +++ /dev/null @@ -1,39 +0,0 @@ -package io.takima.hackathon.iotproject; - -import io.github.cdimascio.dotenv.Dotenv; -import io.takima.takiotclient.StandardTakIOTClient; -import io.takima.takiotclient.TakIOTClient; -import io.takima.takiotclient.WeightWatcherMiddleware; - -public class ScaleExample { - - private final TakIOTClient client; - private final WeightWatcherMiddleware middleware; - - public ScaleExample() { - Dotenv dotenv = Dotenv.configure().load(); - String clientId = dotenv.get("MQTT_CLIENT_ID"); - String mqttHost = dotenv.get("MQTT_HOST"); - String mqttUsername = dotenv.get("MQTT_USERNAME"); - String mqttPassword = dotenv.get("MQTT_PASSWORD"); - - // TODO replace by your Device ID - String deviceId = "weight-1"; - - this.client = StandardTakIOTClient.newInstance(mqttHost, clientId, mqttUsername, mqttPassword); - this.middleware = new WeightWatcherMiddleware(deviceId); - client.use(middleware); - client.connect(); - } - - public void listenToWeightChanges() { - // Register to scale events and wait for weight changes - System.out.println("Will register weight change events"); - middleware.onWeightChange(w -> { - System.out.println("Our scale measured a new weight of " + w + " grams"); - }); - middleware.onMaxWeightReached(() -> { - System.out.println("Maximum weight reached."); - }); - } -} diff --git a/resources/boilerplate/starter-project/src/main/resources/application.properties b/resources/boilerplate/starter-project/src/main/resources/application.properties deleted file mode 100644 index cb50c86..0000000 --- a/resources/boilerplate/starter-project/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=iot-project diff --git a/resources/boilerplate/starter-project/src/test/java/io/takima/hackathon/iotproject/IotProjectApplicationTests.java b/resources/boilerplate/starter-project/src/test/java/io/takima/hackathon/iotproject/IotProjectApplicationTests.java deleted file mode 100644 index dbce8ad..0000000 --- a/resources/boilerplate/starter-project/src/test/java/io/takima/hackathon/iotproject/IotProjectApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package io.takima.hackathon.iotproject; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class IotProjectApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/resources/docs/docs/README.md b/resources/docs/docs/README.md index d60516c..d51927f 100644 --- a/resources/docs/docs/README.md +++ b/resources/docs/docs/README.md @@ -1,19 +1,17 @@ -# Accueil -{: style="height:250px;width:250px"} +# Bienvenue jeune étudiant avide d'Angular -**Bonjour Licorne en herbe !** +**Nous sommes ravis de t'accueillir dans ce super cours !** +Ce site, c'est un peu ton graal, il te servira de référence pour: -Toute l'équipe Unicorn Corporation est ravie de t'accueillir pour ton aventure du jour : le Hackathon IoT ! +* Te guider dans l'installation des différents éléments dont tu auras besoin ! +* Te donner un TP guidé, étape par étape, pour faire un joli projet Angular :) +* Te proposer des idées pour que tu puisse lacher le guide et voler de tes propres ailes -Cette documentation servira de référence pour : +On te souhaite de passer un super moment ! </br></br></br> +<img src="assets/party.gif" alt="drawing" width="300"/> -* Te guider dans l'installation des différents éléments dont tu auras besoin pour mener à bien ton défi ! -* Te donner quelques guidelines pour utiliser les différents services qui sont mis à ta disposition -* Te proposer des idées ainsi que toutes les règles du jeu pour la soutenance de projet -On te souhaite de passer un super moment, -{: style="width:500px"} -**C'est parti !** +*Camille et Laurine* diff --git a/resources/docs/docs/assets/party.gif b/resources/docs/docs/assets/party.gif new file mode 100644 index 0000000000000000000000000000000000000000..66a93bfe70ce335e0543eb7a30d6444843dcd1b5 GIT binary patch literal 47847 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 FtO3s@qrw0H literal 0 HcmV?d00001 diff --git a/resources/docs/docs/demarrage/home.md b/resources/docs/docs/demarrage/home.md index b491f50..a9ef9cf 100644 --- a/resources/docs/docs/demarrage/home.md +++ b/resources/docs/docs/demarrage/home.md @@ -16,7 +16,7 @@ Vous êtes en manques d'idées ? En voici quelques unes : * Un afficheur commandé qui va lire un message que tu mets sur Home Assistant * Un Chrono LEDs pour le 100m aux JOs * Un simulateur de mood qui affiche un emoji sur un écran LED en fonction du mood de la journée -* Un LED Strip d'ambiance pour mettre derrière ta TV et qui reproduit les couleurs du film qui passe +* Un LED Strip d'ambiance pour mettre derrière ta TV et qui reproduit les couleurs du film qui passeFv * Un LED Strip piloté par Home Assistant pour ta Salle de Bain pour que tes bains relaxants soient accompagnés d'une expérience lumineuse immersive (Balade en forêt, UV, etc...) * Un LED Strip qui te réveille en douceur en reproduisant un lever de soleil à l'heure que tu choisis sur Home Assistant * Un LED Strip qui simule la lumière d'une TV pour éloigner les cambrioleurs lorsque tu n'es pas là diff --git a/resources/docs/mkdocs.yml b/resources/docs/mkdocs.yml index 75ea81d..3737346 100644 --- a/resources/docs/mkdocs.yml +++ b/resources/docs/mkdocs.yml @@ -1,11 +1,11 @@ -site_name: Hakathon IoT -site_url: http://school.pages.takima.io/hakathon +site_name: Angular Lab +site_url: http://school.pages.takima.io/formation-angular/tp-angular/ #Folder expected by Gitlab Pages #We put the docs to publish from docs/* to docs_to_publish/* in order to only publish what we want docs_dir: docs_to_publish nav: - - Home: 'README.md' + - Accueil: 'README.md' - Démarrage: - Introduction: 'demarrage/home.md' - Installation: -- GitLab