Gazelle User Management User interface

This project is using Next.js v.15, React, Typescript and TailwindCSS technologies.

This project needs to be used with the Gazelle User Management back-end service.

Configurations

Install dependencies

npm install

Environment variables

You need to create a .env file at the root of the project and fill it with the following variables:

Variable name
Description
Example

GZL_GUM_API_URL

The URL of the Gazelle User Management back-end service.

http://localhost:8080/gum/rest

GZL_TM_URL

The URL of TM.

https://dev1.ihe.kereval.cloud/gazelle/home.seam

HOSTNAME

It is possible to update the hostname of the server is running behind

localhost

PORT

It is possible to update the port of the server is running behind

3000

Start application in dev mode

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev

Open http://localhost:3000/gum-ui with your browser to see the result.

Build docker image

docker build -t rg.fr-par.scw.cloud/gazelle-snapshot/app/gazelle-user-management-ui:${APP_VERSION} .

Start application

docker-compose up -d

Execute tests

End to end tests

The end to end tests are using Cypress.

You can open the Cypress test runner with the following command at the root of the project:

npx cypress open

[WARNING] The application must be started before running the tests.

Unit tests

The unit tests utilize React Testing Library and Jest.

They are located in the __tests__ folder containing both the unit tests and their associated snapshots.

To execute the tests and view the test coverage report, run:

npm test

If changes occur and you need to update the snapshots, run:

npm test -- -u

Internationalization

We use Crowdin to manage our translations for internationalization.

To use crowdin CLI, you must install the package in local using the command :

sudo npm i @crowdin/cli -g

If you need to add some translations, Add them manually to the english translations file public/locales/en/translation.json.

Then, you can upload this translation file to Crowdin with the following command :

npm run upload-translations

Then, translate the elements directly from Crowdin editor interface.

When it's done, you can retrieve all the translations by executing the following command :

npm run download-translations

This command will build the Crowdin project and then download JSON translation files and place them in the folder locales/<locale>/translation.json.

Learn More

To learn more about Next.js, take a look at the following resources:

Last updated