Setup Guide

Setting up Artemis in your development environment or a demo production environment is really easy following the instructions on this page. When you want to support programming exercises, we recommend using the Integrated Code Lifecycle Setup.

In this guide, you learn how to set up the development environment of Artemis. Artemis is based on JHipster, i.e. Spring Boot development on the application server using Java 21, and TypeScript development on the application client in the browser using Angular. To get an overview of the used technology, have a look at the JHipster Technology stack and other tutorials on the JHipster homepage.

You can find tutorials how to set up JHipster in an IDE (IntelliJ IDEA Ultimate is recommended) on https://jhipster.github.io/configuring-ide. Note that the Community Edition of IntelliJ IDEA does not provide Spring Boot support (see the comparison matrix). Before you can build Artemis, you must install and configure the following dependencies/tools on your machine:

  1. Java JDK: We use Java (JDK 21) to develop and run the Artemis application server, which is based on Spring Boot.

  2. MySQL Database Server 8, or PostgreSQL: Artemis uses Hibernate to store entities in an SQL database and Liquibase to automatically apply schema transformations when updating Artemis.

  3. Node.js: We use Node LTS (>=20.10.0 < 21) to compile and run the client Angular application. Depending on your system, you can install Node either from source or as a pre-packaged bundle.

  4. Npm: We use Npm (>=10.2.3) to manage client side dependencies. Npm is typically bundled with Node.js, but can also be installed separately.

  5. ( Graphviz: We use Graphviz to generate graphs within exercise task descriptions. It’s not necessary for a successful build, but it’s necessary for production setups as otherwise errors will show up during runtime. )

  6. A version control and build system is necessary for the programming exercise feature of Artemis. There are multiple stacks available for the integration with Artemis:


Note

This setup guide describes the core setup for a development Artemis instance and its database. It also contains the setup steps for the version control and continuous integrations systems needed for programming exercises. A production setup of those core services might need to be adapted further to be secure. Check the administration setup for that.

Note

Artemis allows extension with several additional services, e.g., for mobile notifications (‘Hermes’), automatic feedback generation using large language models (‘Iris/Pyris’), … Their setup is described as part of the extension service setup.