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 17, 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:
Node.js: We use Node LTS (>=18.14.0 < 19) 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.
Npm: We use Npm (>=9.4.0) to manage client side dependencies. Npm is typically bundled with Node.js, but can also be installed separately.
( 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. )
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:
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.
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.
- Database Setup
- Server Setup
- Client Setup
- Bamboo, Bitbucket and Jira Setup
- Jenkins and GitLab Setup
- GitLab CI and GitLab Setup
- Local CI and local VC setup
- Common Setup Problems
- Alternative: Docker Compose Setup