Read-only mirror of https://github.com/swissgeo/web-control — SWISSGEO. Issues & pull requests at the source.
  • Vue 49.7%
  • TypeScript 42.8%
  • CSS 5.4%
  • Makefile 1.2%
  • JavaScript 0.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-26 11:43:24 +02:00
.github Added/Modified github auto generate release note configuration #skip-tagging-and-release 2026-08-06 10:43:31 +02:00
.vscode Added some folders to the vscode exclude files from explorer 2026-02-18 07:38:15 +01:00
app GPS-869: Fix eIAM logout 2026-08-26 10:41:50 +02:00
i18n/locales GPS-525: Admin access requests 2026-04-14 16:11:39 +02:00
public GPS-329 Fix formatting of files with prettier 2025-11-03 17:36:34 +01:00
tests GPS-686: Added first unit test 2026-06-02 07:19:55 +02:00
.env.default Superuser and role check 2026-03-31 14:39:01 +02:00
.gitignore GPS-686: Added coverage for unit and nuxt tests 2026-06-02 11:40:22 +02:00
.prettierignore GPS-329 Add prettier ignore 2025-11-03 17:36:34 +01:00
codecov.yml GPS-686: Added codecov config 2026-06-02 16:13:06 +02:00
eslint.config.mjs GPS-491: Translations 2026-03-02 15:00:40 +01:00
index.d.ts Superuser and role check 2026-03-31 14:39:01 +02:00
LICENSE.md Initial commit 2025-10-30 11:35:36 +01:00
Makefile GPS-686: Added first unit test 2026-06-02 07:19:55 +02:00
nuxt.config.ts Login without eIAM if not prod 2026-04-10 09:57:34 +02:00
package.json GPS-686: Added coverage for unit and nuxt tests 2026-06-02 11:40:22 +02:00
playwright.config.ts GPS-329 Install tests with playwright 2025-11-03 15:55:08 +01:00
pnpm-lock.yaml GPS-686: Added coverage for unit and nuxt tests 2026-06-02 11:40:22 +02:00
pnpm-workspace.yaml Update pnpm to latest 11.X version 2026-06-02 11:42:50 +02:00
prettier.config.js Install prettier-plugin-tailwindcss 2026-02-12 11:00:44 +01:00
README.md GPS-686: Added codecov badge 2026-06-03 06:57:20 +02:00
tsconfig.json GPS-329 Bootstrap nuxt setup 2025-10-30 13:32:58 +01:00
vitest.config.ts GPS-686: Added coverage for unit and nuxt tests 2026-06-02 11:40:22 +02:00

SWISSGEO control

This is the frontend ("business portal") for the SWISSGEO control infrastructure.

Branch Status
develop Build Status codecov-develop
main Build Status codecov-main

Quickstart

Install dependencies, create environment and run service in debug mode:

make setup
make env
make serve

Open a browser at http://localhost:3000.

Some environment variables are read from aws ssm parameters. To run make env make sure to login with aws sso first. By default the environment will connect to the dev environment backend.

Deployment

This project is run without nuxt server-side-rendering as most data is not static and retrieved at run-time. There is currently also no need to SEO.

Render mode

The project is set to be prerendered as a static page. The crucial piece for this is setting the preset to static in the nitro config

Tech

Following is a quick overview of the used technology:

Base Framework: nuxt

We use nuxt as the base framework. Nuxt wraps around vue.js and provides a lot more functionality out of the box. The rendering mode is set to client-side-rendering. We don't need the nitro server functionality and instead build the application in a common SPA style.

UI Framework: nuxt ui

For the UI we use nuxt ui because of it's seamless integration with the framework. Check the components list for the available components.

Nuxt UI components are built on CSS Framework Tailwind.

Translations

To translate a string, define in the all the locale JSON's and use it with the $t in the code and/or template. For example:

{
  "messages": {
    "hello": "hello"
  }
}
<script>
const message = $t("message.hello");
</script>

<template>
  <h1 :data-message="$t('message.hello')">{{ $t("message.hello") }}</h1>
</template>

Have a look at Nuxt I18n and Vue I18n to see how to interpolate strings, formatting dates etc.

Forms and validation

We use the Nuxt UI Form component. It supports any validation library supporting Standard Schema. In this project we use valibot. Examples and usage can be found on the NUXT UI Form documentation.

Format & Linting

make format
make lint

Testing

Testing approach follows the Nuxt guide, with e2e tests using playwright and component & unit tests using vitest.

Run all tests:

make test

Unit tests

Unit tests run in a node environment. This is defined in the vitest configuration.

Run the unit tests in watch mode:

make test-unit

Testing Nuxt components

Nuxt tests run in a nuxt environment. This is defined in the vitest configuration.

Run the nuxt tests in watch mode:

make test-nuxt

End-to-end tests

To run the e2e tests, invoke

make test-e2e