Skip to content
This repository was archived by the owner on Mar 18, 2026. It is now read-only.
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
89741d4
Update deployment workflow
jeremystucki Feb 25, 2025
a803ceb
Merge pull request #101 from lost-university/pipeline-update
jeremystucki Feb 25, 2025
bb99b71
Update deployment workflow
jeremystucki Feb 25, 2025
9c0d971
Merge pull request #102 from lost-university/pipeline-update
jeremystucki Feb 25, 2025
f53f616
Bump the npm_and_yarn group with 2 updates
dependabot[bot] Feb 25, 2025
9d41840
Merge pull request #100 from lost-university/dependabot/npm_and_yarn/…
jeremystucki Feb 25, 2025
53ec4a9
Fix buttons not showing up on mobile devices
jeremystucki Feb 26, 2025
43b8fc7
Add comment to media query
jeremystucki Feb 26, 2025
be9bf3f
Merge pull request #103 from lost-university/fix-buttons-on-mobile
jeremystucki Feb 28, 2025
ac05df7
Update data
jeremystucki Mar 17, 2025
c8deabb
Merge pull request #104 from lost-university/data-update
TheJanzap Mar 17, 2025
ec88c87
Bump vite in the npm_and_yarn group across 1 directory
dependabot[bot] Mar 25, 2025
0202ec6
Merge pull request #105 from lost-university/dependabot/npm_and_yarn/…
jeremystucki Mar 25, 2025
e8b4a3b
Update data
jeremystucki Mar 31, 2025
b0867a7
Bump vite in the npm_and_yarn group across 1 directory
dependabot[bot] Mar 31, 2025
327aaf7
Merge pull request #107 from lost-university/dependabot/npm_and_yarn/…
jeremystucki Apr 1, 2025
9384350
Merge pull request #106 from lost-university/data-update
jeremystucki Apr 1, 2025
175662e
Bump vite in the npm_and_yarn group across 1 directory
dependabot[bot] Apr 4, 2025
1964291
Add myself to the footer
TheJanzap Apr 5, 2025
093d7b1
Merge pull request #109 from TheJanzap/update-footer
jeremystucki Apr 5, 2025
e16b27f
Merge pull request #108 from lost-university/dependabot/npm_and_yarn/…
jeremystucki Apr 5, 2025
b83849b
Bump vite in the npm_and_yarn group across 1 directory
dependabot[bot] Apr 11, 2025
a102b25
Merge pull request #110 from lost-university/dependabot/npm_and_yarn/…
jeremystucki Apr 20, 2025
eb16de2
Remove SA banner
jeremystucki Apr 20, 2025
3143924
Update data
jeremystucki Apr 25, 2025
b02f474
Merge pull request #112 from lost-university/data-update
jeremystucki Apr 25, 2025
cbcc995
Bump vite in the npm_and_yarn group across 1 directory
dependabot[bot] Apr 30, 2025
33a278a
Merge pull request #113 from lost-university/dependabot/npm_and_yarn/…
jeremystucki May 1, 2025
3680bd5
Merge pull request #111 from lost-university/remove-sa-banner
jeremystucki May 9, 2025
a1a3a70
Adjust touch-only media query
jeremystucki May 24, 2025
73d649f
Merge pull request #115 from lost-university/adjust-touch-only-media-…
jeremystucki May 26, 2025
dc58b9b
Update Home.vue
jeremystucki Jul 12, 2025
d6cc003
Merge pull request #118 from lost-university/jeremystucki-patch-1
jeremystucki Jul 12, 2025
2c48367
Merge remote-tracking branch 'upstream/main' into dev/merge
Matti3939 Aug 24, 2025
37b455d
cleanup
Matti3939 Aug 24, 2025
560f5b7
fetch clerk info from the backend and fix the module dialog on mobile
Matti3939 Sep 30, 2025
4dfbbff
pin firefox version in ci
Matti3939 Sep 30, 2025
c242edf
pin firefox version in ci
Matti3939 Sep 30, 2025
f163768
pin firefox version in ci
Matti3939 Sep 30, 2025
ffc6c7d
Move docker image build to toplevel
Untersander Oct 1, 2025
7a37d69
Test added permissions to workflow
Untersander Oct 1, 2025
ac8fb35
Move publish of image to own workflow
Untersander Oct 1, 2025
47b7c3a
Remove no longer needed build args
Untersander Oct 1, 2025
7fad514
Update data urls
Untersander Oct 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 7 additions & 32 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/${{ github.repository }}/web
ghcr.io/${{ github.repository }}
tags: |
type=ref,event=branch
type=ref,event=pr
Expand All @@ -49,8 +49,6 @@ jobs:
uses: docker/build-push-action@v6
with:
push: false
build-args: |
VITE_CLERK_PUBLISHABLE_KEY=${{ secrets.CLERK_PUBLISHABLE_KEY }}
tags: ${{ steps.meta.outputs.tags }}
cache-from: type=gha
cache-to: type=gha,mode=max
Expand All @@ -70,8 +68,6 @@ jobs:
uses: docker/build-push-action@v6
with:
push: false
build-args: |
VITE_CLERK_PUBLISHABLE_KEY=${{ secrets.CLERK_PUBLISHABLE_KEY }}
tags: ${{ needs.build.outputs.tags }}
load: true
cache-from: type=gha
Expand All @@ -80,7 +76,12 @@ jobs:
env:
REPOSITORY: '${{ github.repository }}'
run: |
docker run -d -p 5173:80 ghcr.io/${REPOSITORY,,}/web:sha-${{ github.sha }}
docker run -d -p 5173:80 ghcr.io/${REPOSITORY,,}:sha-${{ github.sha }}
- name: Setup Firefox
if: matrix.browser == 'firefox'
uses: browser-actions/setup-firefox@v1
with:
firefox-version: "140.0"
- name: Cypress run
uses: cypress-io/github-action@v6
with:
Expand All @@ -93,29 +94,3 @@ jobs:
name: cypress-screenshots-${{ matrix.browser }}
path: cypress/screenshots/
retention-days: 7

push:
name: Push
runs-on: ubuntu-latest
needs: [build, test]
if: success()
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup buildx
uses: docker/setup-buildx-action@v3
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push Docker image
uses: docker/build-push-action@v6
with:
push: true
build-args: |
VITE_CLERK_PUBLISHABLE_KEY=${{ secrets.CLERK_PROD_PUBLISHABLE_KEY }}
tags: ${{ needs.build.outputs.tags }}
cache-from: type=gha
cache-to: type=gha,mode=max
46 changes: 46 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: CI
on:
push:
branches:
- main
tags:
- '*'

jobs:
push:
name: Push
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
attestations: write
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Setup buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=sha,format=long
- name: Build and Push Docker image
uses: docker/build-push-action@v6
with:
push: true
tags: ${{ needs.build.outputs.tags }}
cache-from: type=gha
cache-to: type=gha,mode=max
2 changes: 0 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
FROM node:22.14.0-alpine AS build-stage
ARG VITE_CLERK_PUBLISHABLE_KEY
ENV VITE_CLERK_PUBLISHABLE_KEY=$VITE_CLERK_PUBLISHABLE_KEY

WORKDIR /app

Expand Down
11 changes: 0 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,6 @@ Check the [open issues](https://github.com/lost-university/web/issues) to see wh

## Project setup

A [Clerk](https://clerk.com/) publishable key is needed to run the project in combination with the backend. Copy the `example.env` file to `.env` and set the variable.
> You don't have to set it up if you only want to run the frontend without the backend.

```
npm install
```
Expand Down Expand Up @@ -67,11 +64,3 @@ npm run test:dev
```
npm run test
```

## Pipeline

The pipeline is configured to set the `CLERK_PUBLISHABLE_KEY` environment variable which is stored inside a github secret. The token will be compiled into the docker container. If the publishable key has changed, a new image must be built. This is because the application is compiled into static files so there is no node server when running in production which could set the token dynamically.
> As the name publishable key suggests, it is not a secret. It is only used to identify the application and to allow Clerk to serve the correct configuration. It is limited to the url configured for this application.



4 changes: 2 additions & 2 deletions cypress/e2e/graph/graphView.cy.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
/* eslint-disable max-len */
describe("Graph View E2E Tests", () => {
beforeEach(() => {
cy.intercept("GET", "https://raw.githubusercontent.com/Janooski/data/main/data/modules.json", {
cy.intercept("GET", "https://raw.githubusercontent.com/lost-university/data/main/data/modules.json", {
fixture: "modules.json",
}).as("modules");

cy.intercept(
"GET",
"https://raw.githubusercontent.com/Janooski/data/main/data2I/categories.json",
"https://raw.githubusercontent.com/lost-university/data/main/data2I/categories.json",
{ fixture: "categories.json" }
).as("categories");

Expand Down
1 change: 0 additions & 1 deletion example.env

This file was deleted.

113 changes: 0 additions & 113 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions src/api/config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
const fetchConfig = async (): Promise<string> => {
try {
const response = await fetch('/api/config');
const data = await response.json();

return data.clerkPublishableKey
} catch (error) {
return '';
}
}

export {
fetchConfig
}
2 changes: 1 addition & 1 deletion src/components/GraphModule.vue
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ export default defineComponent({
required: true
},
id: {
type: Number,
type: String,
required: true
}
},
Expand Down
2 changes: 1 addition & 1 deletion src/components/GraphModuleHightlight.vue
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
@mouseleave="handleMouseLeave"
>
<ModuleComponent
:id="Number(id)"
:id="id"
:module="moduleData"
/>
</div>
Expand Down
4 changes: 2 additions & 2 deletions src/components/GraphModuleList.vue
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
>
<ModuleCard
v-if="mod?.name"
:id="Number(mod.id)"
:id="mod.id"
:module="mod"
/>

Expand Down Expand Up @@ -114,4 +114,4 @@ export default defineComponent({
},
},
});
</script>
</script>
2 changes: 1 addition & 1 deletion src/components/Module.vue
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export default defineComponent({
components: { ModuleCard },
props: {
module: { type: Object as () => Module, required: true },
id: { type: Number, required: true }
id: { type: String, required: true }
},
emits: ['on-delete']
})
Expand Down
Loading
Loading