From 34c187c4ad7a047205cd2cc4666d49731da8585e Mon Sep 17 00:00:00 2001 From: Zelytra <72125876+zelytra@users.noreply.github.com> Date: Tue, 28 May 2024 14:58:21 +0200 Subject: [PATCH] Leaderboard & Friends #13 --- .github/workflows/ci.yml | 8 +- backend/.dockerignore | 1 - backend/Dockerfile | 19 ++ webapp/index.html | 2 +- webapp/package-lock.json | 66 ++++++- webapp/package.json | 6 +- webapp/public/logo-back.svg | 13 ++ webapp/src/App.vue | 14 +- webapp/src/assets/font.scss | 49 +---- .../fonts/Manrope-VariableFont_wght.ttf | Bin 164936 -> 0 bytes .../src/assets/fonts/ManuskriptAntiquaD.ttf | Bin 464148 -> 0 bytes webapp/src/assets/fonts/MatterGX.woff2 | Bin 0 -> 82260 bytes .../PlusJakartaSans-VariableFont_wght.ttf | Bin 176408 -> 0 bytes .../fonts/RobotoMono-VariableFont_wght.ttf | Bin 182172 -> 0 bytes .../assets/fonts/Rubik-VariableFont_wght.ttf | Bin 356080 -> 0 bytes webapp/src/assets/fonts/WindlassExtended.ttf | Bin 208764 -> 0 bytes webapp/src/assets/fonts/brushTipTexe.ttf | Bin 253404 -> 0 bytes webapp/src/assets/fonts/jost/Jost-Light.ttf | Bin 61040 -> 0 bytes webapp/src/assets/fonts/jost/Jost-Medium.ttf | Bin 61064 -> 0 bytes .../assets/fonts/jost/Jost-MediumItalic.ttf | Bin 65256 -> 0 bytes webapp/src/assets/fonts/jost/Jost-Regular.ttf | Bin 60924 -> 0 bytes .../src/assets/fonts/jost/Jost-SemiBold.ttf | Bin 61064 -> 0 bytes webapp/src/assets/icons/add-friend.svg | 8 + webapp/src/assets/icons/friends.svg | 3 + webapp/src/assets/icons/grid.svg | 181 ++++++++++++++++++ webapp/src/assets/icons/leaderboard.svg | 3 + webapp/src/assets/icons/logo-back.svg | 13 ++ webapp/src/assets/icons/pool.svg | 3 + webapp/src/assets/icons/profile.svg | 3 + webapp/src/assets/locales/fr.json | 49 +++++ webapp/src/assets/style.scss | 45 +++-- webapp/src/assets/text.scss | 20 ++ webapp/src/components/FriendsList.vue | 75 ++++++++ webapp/src/components/Home.vue | 54 +++++- webapp/src/components/LeaderBoard.vue | 121 ++++++++++++ webapp/src/components/PoolGame.vue | 11 ++ webapp/src/components/UserProfile.vue | 11 ++ webapp/src/main.ts | 3 + webapp/src/objects/User.ts | 17 ++ webapp/src/objects/i18n/index.ts | 12 ++ webapp/src/objects/pool/Leaderboard.ts | 16 ++ webapp/src/objects/pool/Pool.ts | 35 ++++ webapp/src/router/index.ts | 60 +++++- webapp/src/vue/alerts/AlertBox.vue | 34 ++++ webapp/src/vue/alerts/AlertFactory.vue | 70 +++++++ webapp/src/vue/alerts/AlertStore.ts | 44 +++++ webapp/src/vue/friends/FriendStatus.vue | 77 ++++++++ webapp/src/vue/templates/AlertCard.vue | 75 ++++++++ webapp/src/vue/templates/ButtonCard.vue | 64 +++++++ 49 files changed, 1201 insertions(+), 84 deletions(-) create mode 100644 backend/Dockerfile create mode 100644 webapp/public/logo-back.svg delete mode 100644 webapp/src/assets/fonts/Manrope-VariableFont_wght.ttf delete mode 100644 webapp/src/assets/fonts/ManuskriptAntiquaD.ttf create mode 100644 webapp/src/assets/fonts/MatterGX.woff2 delete mode 100644 webapp/src/assets/fonts/PlusJakartaSans-VariableFont_wght.ttf delete mode 100644 webapp/src/assets/fonts/RobotoMono-VariableFont_wght.ttf delete mode 100644 webapp/src/assets/fonts/Rubik-VariableFont_wght.ttf delete mode 100644 webapp/src/assets/fonts/WindlassExtended.ttf delete mode 100644 webapp/src/assets/fonts/brushTipTexe.ttf delete mode 100644 webapp/src/assets/fonts/jost/Jost-Light.ttf delete mode 100644 webapp/src/assets/fonts/jost/Jost-Medium.ttf delete mode 100644 webapp/src/assets/fonts/jost/Jost-MediumItalic.ttf delete mode 100644 webapp/src/assets/fonts/jost/Jost-Regular.ttf delete mode 100644 webapp/src/assets/fonts/jost/Jost-SemiBold.ttf create mode 100644 webapp/src/assets/icons/add-friend.svg create mode 100644 webapp/src/assets/icons/friends.svg create mode 100644 webapp/src/assets/icons/grid.svg create mode 100644 webapp/src/assets/icons/leaderboard.svg create mode 100644 webapp/src/assets/icons/logo-back.svg create mode 100644 webapp/src/assets/icons/pool.svg create mode 100644 webapp/src/assets/icons/profile.svg create mode 100644 webapp/src/assets/text.scss create mode 100644 webapp/src/components/FriendsList.vue create mode 100644 webapp/src/components/LeaderBoard.vue create mode 100644 webapp/src/components/PoolGame.vue create mode 100644 webapp/src/components/UserProfile.vue create mode 100644 webapp/src/objects/User.ts create mode 100644 webapp/src/objects/i18n/index.ts create mode 100644 webapp/src/objects/pool/Leaderboard.ts create mode 100644 webapp/src/objects/pool/Pool.ts create mode 100644 webapp/src/vue/alerts/AlertBox.vue create mode 100644 webapp/src/vue/alerts/AlertFactory.vue create mode 100644 webapp/src/vue/alerts/AlertStore.ts create mode 100644 webapp/src/vue/friends/FriendStatus.vue create mode 100644 webapp/src/vue/templates/AlertCard.vue create mode 100644 webapp/src/vue/templates/ButtonCard.vue diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f1dafd4..2afdc90 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,10 +15,10 @@ jobs: working-directory: 'backend' steps: - uses: actions/checkout@v3 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v3 with: - java-version: '17' + java-version: '21' distribution: 'temurin' - name: Build with Maven run: mvn quarkus:build package @@ -36,10 +36,10 @@ jobs: steps: - name: Checkout Code uses: actions/checkout@v3 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v3 with: - java-version: '17' + java-version: '21' distribution: 'temurin' - name: Build and Run Tests run: mvn test --batch-mode --fail-at-end diff --git a/backend/.dockerignore b/backend/.dockerignore index 94810d0..23347a3 100644 --- a/backend/.dockerignore +++ b/backend/.dockerignore @@ -1,4 +1,3 @@ -* !target/*-runner !target/*-runner.jar !target/lib/* diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..943f82b --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,19 @@ +# Build stage +FROM maven:3.8.3-openjdk-17 AS build +WORKDIR /app +COPY . . +RUN mvn quarkus:build package -Dmaven.test.skip=true -Dquarkus.profile=prod + +# Package stage +FROM registry.access.redhat.com/ubi8/openjdk-17:latest +ENV LANGUAGE='en_US:en' +# We make four distinct layers so if there are application changes the library layers can be re-used +COPY --from=build --chown=185 /app/target/quarkus-app/lib/ /deployments/lib/ +COPY --from=build --chown=185 /app/target/quarkus-app/*.jar /deployments/ +COPY --from=build --chown=185 /app/target/quarkus-app/app/ /deployments/app/ +COPY --from=build --chown=185 /app/target/quarkus-app/quarkus/ /deployments/quarkus/ + +EXPOSE 8080 +USER 185 +ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" +ENV JAVA_APP_JAR="/deployments/quarkus-run.jar" \ No newline at end of file diff --git a/webapp/index.html b/webapp/index.html index aa7c4f0..283aed8 100644 --- a/webapp/index.html +++ b/webapp/index.html @@ -2,7 +2,7 @@ - + OnePool diff --git a/webapp/package-lock.json b/webapp/package-lock.json index 0f77a1c..879731b 100644 --- a/webapp/package-lock.json +++ b/webapp/package-lock.json @@ -1,17 +1,19 @@ { "name": "onepool", - "version": "0.1.0", + "version": "0.1.0-alpha", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "onepool", - "version": "0.1.0", + "version": "0.1.0-alpha", "dependencies": { "keycloak-js": "^24.0.3", + "pinia": "^2.1.7", "sass": "^1.76.0", "vue": "^3.4.21", - "vue-i18n": "^9.13.1" + "vue-i18n": "^9.13.1", + "vue-smooth-reflow": "^0.1.12" }, "devDependencies": { "@vitejs/plugin-vue": "^5.0.4", @@ -1147,6 +1149,56 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pinia": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz", + "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.0", + "vue-demi": ">=0.14.5" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.3.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/vue-demi": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz", + "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/postcss": { "version": "8.4.38", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", @@ -1389,6 +1441,14 @@ "vue": "^3.2.0" } }, + "node_modules/vue-smooth-reflow": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/vue-smooth-reflow/-/vue-smooth-reflow-0.1.12.tgz", + "integrity": "sha512-cic+dmqsBzu/lRMXf/mhUPMM0g0vancJGUyNMMGHjis0ilSFd1RjIrZYcU5B7ef+n5oshH33/zbMA8OYyRTu7Q==", + "peerDependencies": { + "vue": ">=2.x.x" + } + }, "node_modules/vue-template-compiler": { "version": "2.7.16", "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz", diff --git a/webapp/package.json b/webapp/package.json index f271ca5..4c8057a 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -1,7 +1,7 @@ { "name": "onepool", "private": false, - "version": "0.1.0", + "version": "0.1.0-alpha", "type": "module", "scripts": { "dev": "vite --host", @@ -9,10 +9,12 @@ "preview": "vite preview" }, "dependencies": { + "keycloak-js": "^24.0.3", + "pinia": "^2.1.7", "sass": "^1.76.0", "vue": "^3.4.21", "vue-i18n": "^9.13.1", - "keycloak-js": "^24.0.3" + "vue-smooth-reflow": "^0.1.12" }, "devDependencies": { "@vitejs/plugin-vue": "^5.0.4", diff --git a/webapp/public/logo-back.svg b/webapp/public/logo-back.svg new file mode 100644 index 0000000..0fea0f4 --- /dev/null +++ b/webapp/public/logo-back.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/webapp/src/App.vue b/webapp/src/App.vue index 20aeb37..b1a523f 100644 --- a/webapp/src/App.vue +++ b/webapp/src/App.vue @@ -1,4 +1,5 @@