Prerequisites
Install these tools before running NextGenPoll locally or setting up a new deployment environment.
Required Tools
| Tool | Version | Windows | Mac / Linux |
|---|---|---|---|
| Java (OpenJDK Temurin) | 25 | winget install EclipseAdoptium.Temurin.25.JDK | brew install --cask temurin@25 |
| Node.js | 24 LTS | nodejs.org | brew install node |
| Docker Desktop | Latest | docker.com | brew install --cask docker |
| Maven | 3.9+ | maven.apache.org | brew install maven |
| Git | 2.x+ | git-scm.com | brew 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
| Tool | Purpose | Install |
|---|---|---|
| k6 | Load testing | winget install grafana.k6 / brew install k6 |
| Azure CLI | Azure resource management | aka.ms/installazurecliwindows / brew install azure-cli |
| PostgreSQL client | Direct DB access | winget 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
VS Code Extensions (Recommended)
If using VS Code, install these extensions for the best development experience:
| Extension | ID | Purpose |
|---|---|---|
| Red Hat Java | redhat.java | Java language server |
| Maven for Java | vscjava.vscode-maven | Maven integration |
| Lombok Support | gabrielbb.vscode-lombok | Lombok annotation processing |
| ESLint | dbaeumer.vscode-eslint | Frontend linting |
| Prettier | esbenp.prettier-vscode | Auto-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.