# Module Occupation Matching

## ASSESSMENT frontend

Competency analysis tool (KYC)

## General info

#### Global dependencies:

* Docker and [docker-compose](https://docs.docker.com/compose/) Use docker images or run with node.js natively
* [Node.js](https://nodejs.org/en/) Recommended to install using [NVM](https://github.com/nvm-sh/nvm) and running `nvm install`
* [yarn](https://classic.yarnpkg.com/en/docs/install/#debian-stable) (package manager used instead of npm)
* **git** as version control system using [rebase](https://git-scm.com/book/en/v2/Git-Branching-Rebasing) instead of merge.
* The backend API will be available in the repository [MOM assessment backend](https://gitlab.com/eduplex-api/mom-assessment-frontend)

#### Frameworks:

* [VueJS](https://vuejs.org/) main javascript framework
* [Vuetify](https://vuetifyjs.com/en/introduction/why-vuetify/) UI framework with handy components
* [TypeScript](https://www.typescriptlang.org/) As programming language

#### Environment variables:

* `VUE_APP_API` Location for the API service
* `VUE_APP_SUBPATH` Subdomain where the app is going to be served
* `VUE_APP_PLATFORM` To be used as platform identifier (currently not used)
* `VUE_APP_TARGET_PROXY` Real domain to connect to the backend API after proxy forward
* `DATE_IMG_TAG` Version number

#### Platform customizations:

* **Configuration endpoint** `/api/v2/configs/mom_front` should return from database a list of entries to allow platform configuration
* Custom **themes** can be added in the config endpoint using the key `color_theme`, adding the files to `/pluings/themes/<lightTheme>.ts` and importing them into `const themesIndex` from `/pluings/themes/index.ts`
* Custom **translations** can be added in the config endpoint using the key `custom_locale` and adding the files to `/pluings/i18n/<lang>-<platform>.ts`

## Build Setup

Useful notes when running development built:

* API requests are been sent via a proxy forward defined with `VUE_APP_TARGET_PROXY` to avoid CORS issues.
* Login action in production is different that in development
* Logout action is not implemented in development (in order to logout, cookies have to be removed manually)
* Related links are going to work different (while in development they are going to look like localhost:8080, when deployed to production those relative links are going to change to the real production domain)

#### With Docker:

[Docker compose](https://docs.docker.com/compose/) file is ready to use, just run `docker-compose -f ./docker-compose.yml up -d`.

When working with `docker-compose.yml` it is important to change the environment variable `VUE_APP_TARGET_PROXY` to the correct domain where the API endpoints are available.

You can access the login page by default going to <http://localhost:8080/assess/en/login> where `assess` is defined with environment variable `VUE_APP_SUBPATH`.

#### Without Docker:

Alternatively you can work without docker with the following commands:

Install dependencies:

```bash
yarn install
```

Build and hot-reload for development:

```bash
yarn dev
```

Build and minify for production:

```bash
yarn build
```

Lint:

```bash
yarn lint
```

### Customize configuration

See [Configuration Reference](https://cli.vuejs.org/config/).

## License

The source code for the site is licensed under the **MIT license**, which you can find in the LICENSE file included in this repository.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.eduplex.eu/skill-assessment-tool/technical-documentation/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
