diff --git a/.eslintignore b/.eslintignore index d20efc1f..4c5eee36 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1,3 @@ jest.config.js test/* +static/sw.js diff --git a/.github/workflows/deployment-dev.yml b/.github/workflows/deployment-dev.yml index f5d10570..5fe08766 100644 --- a/.github/workflows/deployment-dev.yml +++ b/.github/workflows/deployment-dev.yml @@ -16,7 +16,10 @@ jobs: - uses: actions/setup-node@v3 with: node-version: 16 - - run: yarn install && yarn ci-dev-build + - uses: pnpm/action-setup@v2 + with: + version: 8 + - run: pnpm install && pnpm ci-dev-build env: SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - uses: actions/setup-node@v3 diff --git a/.github/workflows/deployment-live.yml b/.github/workflows/deployment-live.yml index 3258ed0f..16c50a74 100644 --- a/.github/workflows/deployment-live.yml +++ b/.github/workflows/deployment-live.yml @@ -14,10 +14,13 @@ jobs: - uses: actions/setup-node@v3 with: node-version: 16 + - uses: pnpm/action-setup@v2 + with: + version: 8 - name: Install and Build 🔧 run: | - yarn install - yarn nuxt generate + pnpm install + pnpm nuxt generate env: SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - name: Deploy 🚀 diff --git a/.github/workflows/deployment-pr.yml b/.github/workflows/deployment-pr.yml index c1f458e7..92d4f8ff 100644 --- a/.github/workflows/deployment-pr.yml +++ b/.github/workflows/deployment-pr.yml @@ -16,7 +16,10 @@ jobs: - uses: actions/setup-node@v3 with: node-version: 16 - - run: yarn install && yarn ci-dev-build + - uses: pnpm/action-setup@v2 + with: + version: 8 + - run: pnpm install && pnpm ci-dev-build env: SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - uses: actions/setup-node@v3 diff --git a/.github/workflows/husky.yml b/.github/workflows/husky.yml index 80edb7b7..d291a53f 100644 --- a/.github/workflows/husky.yml +++ b/.github/workflows/husky.yml @@ -20,12 +20,13 @@ jobs: steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 + - uses: pnpm/action-setup@v2 + with: + version: 8 - uses: actions/setup-node@v3 with: node-version: 16 - - name: install yarn - run: npm install -g yarn - name: install dependencies - run: yarn install - - run: yarn run prettier --write . - - run: yarn run eslint . + run: pnpm install + - run: pnpm exec prettier --write . + - run: pnpm exec eslint . diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..b6a7d89c --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +16 diff --git a/.prettierignore b/.prettierignore index 381b1b84..5e32d445 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,3 +2,4 @@ *.md node_modules coverage +pnpm-lock.yaml diff --git a/.python-version b/.python-version new file mode 100644 index 00000000..2c073331 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.11 diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 00000000..074c8849 --- /dev/null +++ b/.tool-versions @@ -0,0 +1,3 @@ +nodejs 16.20.2 +python 3.11.9 +pnpm 8.15.8 diff --git a/README.md b/README.md index ef8dd618..8990b856 100644 --- a/README.md +++ b/README.md @@ -19,20 +19,21 @@ Please report bugs in the github issues. # Running whatsanalyze locally ## Build Setup +We use node 16, with 18 we had issues with our linter. The project also needs python to be installed, but the version needs to be `3.11` or lower. ```bash # install dependencies -$ yarn install +$ pnpm install # serve with hot reload at localhost:3000 -$ yarn dev +$ pnpm dev # build for production and launch server -$ yarn build -$ yarn start +$ pnpm build +$ pnpm start # generate static project -$ yarn generate +$ pnpm generate ``` Search for prettier and eslint in pycharm to set it up on saving a file. diff --git a/components/About.vue b/components/About.vue index 073fff49..7c08b785 100644 --- a/components/About.vue +++ b/components/About.vue @@ -23,8 +23,11 @@ sm="6" > - + {{ person.name }} @@ -40,13 +43,13 @@ - + - + @@ -66,20 +69,20 @@ export default { // eslint-disable-next-line no-undef require("~/assets/img/uni/Otago_Logo.png"), // eslint-disable-next-line no-undef - require("~/assets/img/uni/Stockholm_Logo.png") + require("~/assets/img/uni/Stockholm_Logo.png"), ], persons: [ { // eslint-disable-next-line no-undef image: require("~/assets/img/us/Sebastian_WA.jpg"), name: "Sebastian Fellner", - description: ["Computer Science MSc", "AI Enthusiast"] + description: ["Computer Science MSc", "AI Enthusiast"], }, { // eslint-disable-next-line no-undef image: require("~/assets/img/us/Paul_WA.jpg"), name: "Paul Kehnel", - description: ["Computer Science MSc", "Bicycle Dude"] + description: ["Computer Science MSc", "Bicycle Dude"], }, { // eslint-disable-next-line no-undef @@ -91,11 +94,11 @@ export default { // eslint-disable-next-line no-undef image: require("~/assets/img/us/Moritz_WA.jpeg"), name: "Moritz Wolf", - description: ["Robotics MSc", "Outdoor Specialist"] - } - ] + description: ["Robotics MSc", "Outdoor Specialist"], + }, + ], }; - } + }, }; diff --git a/components/ArrowDown.vue b/components/ArrowDown.vue index 39d65ef3..05c39ef0 100644 --- a/components/ArrowDown.vue +++ b/components/ArrowDown.vue @@ -1,7 +1,12 @@ - +
{{ $t("didWeMake") }}
{{ $t("buyUsCoffee") }} @@ -65,12 +65,8 @@ - +
+ diff --git a/components/ExportExplainer.vue b/components/ExportExplainer.vue index aa07fc1f..98c574bd 100644 --- a/components/ExportExplainer.vue +++ b/components/ExportExplainer.vue @@ -9,9 +9,8 @@ :key="data.title" class="text-body-1 text-md-h4" grow - >{{ data.title }} - + >{{ data.title }} + @@ -37,9 +36,8 @@ :disabled="!installButtonStatus" class="mt-5 pa-2 white--text btn-color" @click="downloadPWA" - >{{ $t("addToHomescreen") }} - + >{{ $t("addToHomescreen") }} + - + @@ -132,7 +129,11 @@ import img5 from "@/assets/img/Android/5.png"; import img5_lazy from "@/assets/img/Android/5copy.png"; import img6 from "@/assets/img/Android/6.png"; import img6_lazy from "@/assets/img/Android/6copy.png"; -import { GTAG_INSTALL, GTAG_INTERACTION, gtagEvent } from "~/functions/gtagValues"; +import { + GTAG_INSTALL, + GTAG_INTERACTION, + gtagEvent, +} from "~/functions/gtagValues"; let apple = () => false; // eslint-disable-next-line no-undef @@ -150,12 +151,12 @@ if (process.browser) { export default { props: { cta: { - default: function() { + default: function () { return "selectFile"; }, - type: String + type: String, }, - to: { default: null, type: String } + to: { default: null, type: String }, }, data() { return { @@ -174,74 +175,74 @@ export default { imgLazy: iOS_img1_lazy, text: "", x: "50%", - y: "10%" + y: "10%", }, { img: iOS_img2, imgLazy: iOS_img2_lazy, text: "", x: "50%", - y: "88%" + y: "88%", }, { img: iOS_img3, imgLazy: iOS_img3_lazy, text: "", x: "20%", - y: "61%" + y: "61%", }, { img: iOS_img4, imgLazy: iOS_img4_lazy, text: "", x: "50%", - y: "76%" + y: "76%", }, { img: iOS_img5, imgLazy: iOS_img5_lazy, text: "", x: "50%", - y: "63%" + y: "63%", }, { img: iOS_img6, imgLazy: iOS_img6_lazy, text: "", x: "50%", - y: "32%" + y: "32%", }, { img: iOS_img7, imgLazy: iOS_img7_lazy, text: "", x: "50%", - y: "81.5%" - } + y: "81.5%", + }, ], tabItems: [ { - text: "tabItemiOS1" + text: "tabItemiOS1", }, { - text: "tabItemiOS2" + text: "tabItemiOS2", }, { - text: "tabItemiOS3" + text: "tabItemiOS3", }, { - text: "tabItemiOS4" + text: "tabItemiOS4", }, { - text: "tabItemiOS5" + text: "tabItemiOS5", }, { - text: "tabItemiOS6" + text: "tabItemiOS6", }, { - text: "tabItemiOS7" - } - ] + text: "tabItemiOS7", + }, + ], }, { title: "Android", @@ -252,66 +253,66 @@ export default { imgLazy: img1_lazy, text: "", x: "78%", - y: "51%" + y: "51%", }, { img: img2, imgLazy: img2_lazy, text: "", x: "89%", - y: "13%" + y: "13%", }, { img: img3, imgLazy: img3_lazy, text: "", x: "60%", - y: "37%" + y: "37%", }, { img: img4, imgLazy: img4_lazy, text: "", x: "60%", - y: "27%" + y: "27%", }, { img: img5, imgLazy: img5_lazy, text: "", x: "67%", - y: "48%" + y: "48%", }, { img: img6, imgLazy: img6_lazy, text: "", x: "14%", - y: "73%" - } + y: "73%", + }, ], tabItems: [ { - text: "tabItemAndroid1" + text: "tabItemAndroid1", }, { - text: "tabItemAndroid2" + text: "tabItemAndroid2", }, { - text: "tabItemAndroid3" + text: "tabItemAndroid3", }, { - text: "tabItemAndroid4" + text: "tabItemAndroid4", }, { - text: "tabItemAndroid5" + text: "tabItemAndroid5", }, { - text: "tabItemAndroid6" - } - ] - } - ] + text: "tabItemAndroid6", + }, + ], + }, + ], }; }, created() { @@ -323,7 +324,7 @@ export default { gtagEvent("jump_to_filehandler_" + this.tab, GTAG_INTERACTION, 0); this.$vuetify.goTo(".filehandler", { duration: 300, - offset: 100 + offset: 100, }); } }, @@ -368,8 +369,8 @@ export default { }); } }, - gtagEvent - } + gtagEvent, + }, }; diff --git a/components/FeedbackBtn.vue b/components/FeedbackBtn.vue index 7d0487f8..f6431bc5 100644 --- a/components/FeedbackBtn.vue +++ b/components/FeedbackBtn.vue @@ -116,14 +116,14 @@ export default { email: "", emailRules: [ (v) => !!v || this.$t("email"), - (v) => /.+@.+\..+/.test(v) || this.$t("email") + (v) => /.+@.+\..+/.test(v) || this.$t("email"), ], text: "", starValue: 0, starRules: [(v) => !!v || this.$t("rating")], select: null, dialog: false, - message: null + message: null, }; }, @@ -141,14 +141,14 @@ export default { text: this.text, rating: this.starValue, locale: this.$i18n.locale, - created: this.$fireModule.firestore.FieldValue.serverTimestamp() + created: this.$fireModule.firestore.FieldValue.serverTimestamp(), }) .then(() => { this.message = this.$t("messageReceived"); }); } - } - } + }, + }, };