Skip to main content

Prerequisites

Install these tools before running NextGenPoll locally or setting up a new deployment environment.


Required Tools

ToolVersionWindowsMac / Linux
Java (OpenJDK Temurin)25winget install EclipseAdoptium.Temurin.25.JDKbrew install --cask temurin@25
Node.js24 LTSnodejs.orgbrew install node
Docker DesktopLatestdocker.combrew install --cask docker
Maven3.9+maven.apache.orgbrew install maven
Git2.x+git-scm.combrew install git
Maven wrapper

Maven is only required once to generate the Maven wrapper (mvn wrapper:wrapper). After that, use ./mvnw (Mac/Linux) or mvnw.cmd (Windows) from the backend/ directory — the wrapper downloads and caches the correct Maven version automatically.


Optional Tools

ToolPurposeInstall
k6Load testingwinget install grafana.k6 / brew install k6
Azure CLIAzure resource managementaka.ms/installazurecliwindows / brew install azure-cli
PostgreSQL clientDirect DB accesswinget install PostgreSQL.psql / brew install libpq

Verify Installations

java -version
# Expected: openjdk version "25.x.x" ... Temurin

node -v
# Expected: v24.x.x

npm -v
# Expected: 10.x.x+

docker --version
# Expected: Docker version 26.x.x+

git --version
# Expected: git version 2.x.x

If using VS Code, install these extensions for the best development experience:

ExtensionIDPurpose
Red Hat Javaredhat.javaJava language server
Maven for Javavscjava.vscode-mavenMaven integration
Lombok Supportgabrielbb.vscode-lombokLombok annotation processing
ESLintdbaeumer.vscode-eslintFrontend linting
Prettieresbenp.prettier-vscodeAuto-formatting
Java extension conflict

If both Oracle Java and Red Hat Java extensions are installed, disable Oracle Java. Having both active causes duplicate language server errors.


Java Version Troubleshooting

If java -version returns the wrong version after installing Temurin 25:

Windows:

# Set JAVA_HOME for the current session
$env:JAVA_HOME = "C:\Program Files\Eclipse Adoptium\jdk-25.x.x.x-hotspot"
$env:PATH = "$env:JAVA_HOME\bin;$env:PATH"
java -version

Mac:

export JAVA_HOME=$(/usr/libexec/java_home -v 25)
java -version

Add the export line to your ~/.zshrc or ~/.bashrc to make it permanent.