ELLE - Estonian Language Learning and Analysis Environment is a development of the user interface of the Estonian Interlanguage Corpus (Eesti vahekeele korpus - EVKK).
- All commands should be executed from the project's root directory if not stated otherwise.
- JDK 11: https://openjdk.java.net/projects/jdk/11
- Docker Engine 24.x: https://docs.docker.com/get-docker
- Docker Compose (version 1, preferably the latest, which is 1.29.2): https://docs.docker.com/compose/install
- NodeJS 24.x: https://nodejs.org/en/download
- It is recommended to use NVM instead of installing NodeJS directly: https://www.nvmnode.com
- Using NVM, you can install and use the correct version of NodeJS for the project simply by running
nvm installandnvm usecommands - Keep in mind that
nvm useonly affects the current shell session, meaning:- If you want to persist the project's NodeJS version globally, use
nvm alias default <version>(see.nvmrcfor the version) - If you don't want to override the version globally, either run
nvm usein every shell session or consider Volta, direnv or similar tools
- If you want to persist the project's NodeJS version globally, use
- Yarn 4.x (does not need to be installed separately): https://yarnpkg.com
- Make sure docker-compose is installed correctly:
docker-compose --version - Start docker containers (this can take several minutes the first time around). The simplest way in IntelliJ is to use
a suitable
run-localrun config under.run, however, you can also do it manually:- UNIX-like (Linux, macOS):
./run-local.sh - Windows:
.\run-local.ps1
By default, this command will start all containers.
If you only want to start specific containers, you can do so using docker profiles.
See all available profiles indocker-compose.ymlfile.
Examples for choosing profiles:- UNIX-like (Linux, macOS):
COMPOSE_PROFILES=backend,stanza ./run-local.sh - Windows:
.\run-local.ps1 -Profiles 'backend,stanza'
- UNIX-like (Linux, macOS):
- UNIX-like (Linux, macOS):
- Run database migrations and insert seed data. The simplest way in IntelliJ is to use a suitable
clean dbrun config under.run, however, you can also do it manually:- UNIX-like (Linux, macOS):
./gradlew :db:bootRun --args 'clean migrate seed' - Windows:
.\gradlew.bat :db:bootRun --args "clean migrate seed"
- UNIX-like (Linux, macOS):
- Make sure you have enabled annotation processing for IntelliJ IDEA:
Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors -> Enable annotation processing - Run API module. The simplest way in IntelliJ is to use the
ApiRunnerrun config under.run. However, you can also do it manually (other modules liketask-schedulerwork in similar fashion in terms of run configs and running manually):- UNIX-like (Linux, macOS):
./gradlew :api:bootRun - Windows:
.\gradlew.bat :api:bootRun
- UNIX-like (Linux, macOS):
- Before running the UI module for the first time, enable Corepack:
corepack enable- Corepack is included with NodeJS 18.x and newer. It handles installing the correct version of Yarn for the project
- Run UI module. The simplest way in IntelliJ is to use a suitable
uirun config under.run, however, you can also do it manually:- UNIX-like (Linux, macOS):
yarn --cwd=./ui install && yarn --cwd=./ui start - Windows:
cd ui; yarn install; yarn start
On Windows, running Yarn commands from outside theuidirectory (even with--cwd=./ui) can cause Corepack to not respect the Yarn version defined inpackage.json, so changing into the directory first is necessary
- UNIX-like (Linux, macOS):
- If IntelliJ IDEA does not recognize Yarn packages installed using PnP (i.e. package.json shows all packages as not
installed), change the package manager in settings:
Settings -> Languages & Frameworks -> JavaScript Runtime -> Package manager -> Choose Yarn
Only Stanza server currently has built-in support for local debugging. The simplest way in IntelliJ is to use the
stanza DEBUG run config by running it before running the container. However, you can also do it manually:
- Create a new Python Debug Server run configuration
- Make sure it listens to localhost:5310 and that the paths are correctly mapped:
- Local path should point to the stanza-server project path, for example
/home/user/IdeaProjects/evkk/stanza-server - Remote path should be
/app
- Local path should point to the stanza-server project path, for example
- Start the Python Debug Server before running the container!
Database migrations are implemented with Flyway migration tool: https://www.red-gate.com/products/flyway/community
For running migrations, execute Gradle task db:bootRun.
All standard Flyway commands are supported (see https://documentation.red-gate.com/fd for more information).
Also, extra command seed has been implemented to provide sample data for development environment.
Please note that seeds are not applied in a production environment and are only used for demo data.
For example, run clean, migrate and seed commands: ./gradlew :db:bootRun --args 'clean migrate seed'
The preferred IDE is IntelliJ IDEA, but other widely adopted IDE-s should work as well.
Download here: https://www.jetbrains.com/idea/download
The Estonian Interlanguage Corpus is licensed under a Creative Commons Attribution 4.0 International (CC-BY-4.0) License. Copyright 2024 Tallinn University School of Digital Technologies and the corpus contributors.