Skip to content

Europeana.eu website, made with Vue.js + Nuxt.js

License

Notifications You must be signed in to change notification settings

europeana/portal.js

Repository files navigation

Europeana Collections portal, made with Vue.js + Nuxt.js

Maintainability Rating Reliability Rating Security Rating Coverage

Prerequisites

  1. Node.js version 16, and npm
  2. Contentful CMS account
  3. Redis cache (included as Docker Compose service for development)

Configuration

Configuration options can be set in a .env file (see .env.example) or via ENV variables on your machine.

Some core features such as authentication and editorial content require the relevant configuration options to be specified. In particular, pay attention to the Europeana APIs, Contentful, Redis and oAuth sections in the example .env file.

Build

# start services
docker-compose up

# install package dependencies
npm ci

# serve with hot reload at localhost:3000
npm run dev

# build for production and launch server
npm run build
npm start

For detailed explanation on how things work, refer to Nuxt.js docs.

Docker image

To build the Docker image, run:

docker build -t europeana/portal.js -f packages/portal/Dockerfile .

Docker Compose

To run everything with Docker Compose, including the app:

docker compose -f docker-compose.app.yml up

The app will be exposed on the host on port 8080.

Testing

To run end-to-end tests, you will need Docker Engine and Compose installed and the docker service running.

Run the full test suite with: npm test

Unit tests

npm run test:unit runs all unit tests.

To run unit tests from a single file, append the full path, e.g. npm run test:unit packages/portal/tests/unit/components/PageHeader.spec.js

To run unit tests from just one of the packages registered as a Jest project, run e.g. npm run test:unit -- --selectProjects portal

End-to-end tests

First, create an env file for the app container, copying tests/e2e/docker/app/.env.example to tests/e2e/docker/app/.env and populating with actual API keys.

npm run test:e2e runs all end-to-end feature tests.

To run a single end-to-end test file, append the full path, e.g. npm run test:e2e tests/e2e/features/common/header.feature

If you have modified app files and want to re-run e2e tests, you will need to first rebuild the generated Docker images in the test stack, with npm run test:stack:rebuild

Visual tests

Ensure that you have set a Percy token as PERCY_TOKEN in tests/e2e/docker/nightwatch-visual/.env, then run npm run test:visual.

Versioning

Versioning of the monorepo packages is managed using Lerna.

npx lerna version

License

Licensed under the EUPL v1.2.

For full details, see LICENSE.md.