# Developing Igor
# Requirements
If you not only want to extend igor but modify its core, you can do this by following these steps.
To ease development of igor's frontend, which is written in Vue.js 3, you should install Node.js 18.12.1 LTS (or a later version) in addition to Java 17.
To execute the end-to-end tests you have to install Docker (opens new window) as well.
# Backend
The first step is to check out igor's source code from GitHub:
$> git clone https://github.com/arassec/igor.git
Next build the whole project using java (including the end-to-end tests using the maven profile e2e
):
$> ./mvnw clean install -Pe2e
You can start igor now with the following main class from within your IDE:
com.arassec.igor.standalone.IgorStandaloneApplication
The backend's REST API will now be available under: http://localhost:8080/api
# Frontend
In order to start the frontend you have to change to the frontend
directory and run:
$> npm install
$> npm run serve
The frontend is now available under: http://localhost:8081/
# End-To-End Tests
During the build, the Cypress (opens new window) end-to-end tests are executed by maven if the profile e2e
is set.
To run the tests locally, execute the following in the project's e2e
directory:
$> npm install
$> npm run env:up
This will install necessary software and start required services using the docker-compose.yml
file provided in the directory.
You can then execute the end-to-end tests manually by starting the backend and frontend as described above, and finally starting the Cypress frontend:
$> npm run cypress:local
If you modify igor, you should make sure those tests still pass, by activating the e2e
profile during the build.