Skip to main content

Prerequisites

Before diving into ACCI EAF development, ensure your system meets these requirements and has the necessary tools installed.

๐Ÿ“‹ System Requirementsโ€‹

Operating Systemโ€‹

  • macOS 12.0 or later
  • Windows 10/11 with WSL2
  • Linux Ubuntu 20.04+ or equivalent

Hardwareโ€‹

  • RAM: 8GB minimum, 16GB recommended
  • Storage: 10GB free space for tools and projects
  • CPU: Any modern processor (Intel or Apple Silicon supported)

โ˜• Java Development Kit (JDK)โ€‹

ACCI EAF requires JDK 21 or higher for Kotlin/Spring development.

Installation Optionsโ€‹

# Install SDKMAN
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

# Install latest JDK 21
sdk install java 21.0.7-tem
sdk use java 21.0.7-tem

# Verify installation
java -version

Option 2: Direct Downloadโ€‹

Verificationโ€‹

# Check Java version
java -version
# Should show: openjdk version "21.0.x" or similar

# Check JAVA_HOME
echo $JAVA_HOME
# Should point to your JDK installation

๐ŸŽฏ Kotlinโ€‹

Kotlin is automatically managed by Gradle in EAF projects, but you may want the command-line compiler for experimentation.

Installationโ€‹

# Using SDKMAN
sdk install kotlin

# Using Homebrew (macOS)
brew install kotlin

# Verify installation
kotlin -version

๐ŸŸข Node.js & npmโ€‹

Required for frontend development and tooling.

Installationโ€‹

# Install nvm (macOS/Linux)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# Restart terminal or source profile
source ~/.bashrc

# Install and use Node.js 18+
nvm install 18
nvm use 18

# Set as default
nvm alias default 18

Option 2: Direct Downloadโ€‹

  • Download from nodejs.org (LTS version recommended)

Verificationโ€‹

# Check Node.js version
node --version
# Should show: v18.x.x or higher

# Check npm version
npm --version
# Should show: 9.x.x or higher

๐Ÿณ Docker & Docker Composeโ€‹

Essential for running local infrastructure (NATS, PostgreSQL).

Installationโ€‹

macOSโ€‹

# Download Docker Desktop
# https://www.docker.com/products/docker-desktop

# Or using Homebrew
brew install --cask docker

Windowsโ€‹

  • Download Docker Desktop from docker.com
  • Ensure WSL2 backend is enabled

Linux (Ubuntu)โ€‹

# Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# Add user to docker group
sudo usermod -aG docker $USER

# Install Docker Compose
sudo apt-get update
sudo apt-get install docker-compose-plugin

Verificationโ€‹

# Check Docker version
docker --version
# Should show: Docker version 24.x.x or higher

# Check Docker Compose version
docker compose version
# Should show: Docker Compose version v2.x.x or higher

# Test Docker installation
docker run hello-world

โšก Nx CLIโ€‹

Global installation for monorepo management.

Installationโ€‹

# Install globally
npm install -g nx

# Verify installation
nx --version
# Should show: 18.x.x or higher

Backend Development (Kotlin/Spring)โ€‹

  • Community Edition: Free, excellent Kotlin support
  • Ultimate Edition: Enhanced Spring Boot support, database tools

Download: jetbrains.com/idea

Essential Plugins:

  • Spring Boot (Ultimate only)
  • Kotlin (bundled)
  • Docker
  • Database Tools (Ultimate only)

Frontend Development (React/TypeScript)โ€‹

  • Lightweight, excellent TypeScript support
  • Rich extension ecosystem

Download: code.visualstudio.com

Essential Extensions:

  • ES7+ React/Redux/React-Native snippets
  • TypeScript Hero
  • Prettier - Code formatter
  • ESLint
  • Auto Rename Tag
  • Bracket Pair Colorizer
  • GitLens

๐Ÿ”ง Git Configurationโ€‹

Installationโ€‹

Git is typically pre-installed on macOS and Linux. For Windows, download from git-scm.com.

Configurationโ€‹

# Set your identity
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# Set default branch name
git config --global init.defaultBranch main

# Improve command line experience
git config --global color.ui auto
git config --global core.autocrlf input # macOS/Linux
git config --global core.autocrlf true # Windows
# Generate SSH key
ssh-keygen -t ed25519 -C "your.email@example.com"

# Start SSH agent
eval "$(ssh-agent -s)"

# Add key to agent
ssh-add ~/.ssh/id_ed25519

# Copy public key to clipboard
# macOS
pbcopy < ~/.ssh/id_ed25519.pub

# Linux
xclip -selection clipboard < ~/.ssh/id_ed25519.pub

# Windows
clip < ~/.ssh/id_ed25519.pub

Add the public key to your Git provider (GitHub, GitLab, etc.).

๐Ÿงช Verification Checklistโ€‹

Run these commands to verify your setup:

# Java
echo "Java version:"
java -version

# Node.js
echo "Node.js version:"
node --version

# npm
echo "npm version:"
npm --version

# Docker
echo "Docker version:"
docker --version

# Docker Compose
echo "Docker Compose version:"
docker compose version

# Nx
echo "Nx version:"
nx --version

# Git
echo "Git version:"
git --version

# Kotlin (optional)
echo "Kotlin version:"
kotlin -version 2>/dev/null || echo "Kotlin not installed (optional)"

๐ŸŽฏ IDE Setup Verificationโ€‹

IntelliJ IDEAโ€‹

  1. Create a new Kotlin project
  2. Verify syntax highlighting works
  3. Check that Spring Boot plugin is available (Ultimate edition)

VS Codeโ€‹

  1. Create a new TypeScript file
  2. Verify syntax highlighting and IntelliSense work
  3. Install recommended extensions from the list above

๐Ÿš€ Next Stepsโ€‹

Once all prerequisites are installed and verified:

  1. Restart your terminal to ensure all environment variables are loaded
  2. Test your setup with the verification checklist above
  3. Proceed to Local Setup to clone the repository and start development

๐Ÿ”ง Troubleshootingโ€‹

Common Issuesโ€‹

Java Issuesโ€‹

  • JAVA_HOME not set: Add export JAVA_HOME=$(/usr/libexec/java_home) to your shell profile
  • Wrong Java version: Use SDKMAN to switch versions: sdk use java 17.0.9-tem

Node.js Issuesโ€‹

  • Permission errors: Use nvm instead of system Node.js installation
  • Old npm version: Run npm install -g npm@latest

Docker Issuesโ€‹

  • Permission denied: Add user to docker group: sudo usermod -aG docker $USER
  • Docker Desktop not starting: Check system resources and restart Docker Desktop

Git Issuesโ€‹

  • SSH connection problems: Test with ssh -T git@github.com
  • Credential issues: Consider using SSH instead of HTTPS

Getting Helpโ€‹

If you encounter issues:

  1. Check the Troubleshooting guide
  2. Search existing documentation
  3. Reach out to the EAF team in our development channels

Ready? Continue to Local Setup to get your development environment running! ๐Ÿš€