Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Development Environment

Prerequisites

ToolVersionPurpose
Java (JDK)25+Backend runtime
Maven3.9+Build and dependency management
Node.js20+Frontend runtime
npm/yarnlatestFrontend package management
Docker24+Containerization
kubectl1.28+Kubernetes CLI
minikubelatestLocal Kubernetes cluster
PostgreSQL16+Database
Redis7+Cache
mdbooklatestDocumentation

Installation

Java 25

# Arch Linux
sudo pacman -S jdk25-openjdk

# Verify
java --version

Maven

# Arch Linux
sudo pacman -S maven

# Verify
mvn --version

Node.js

# Arch Linux
sudo pacman -S nodejs npm

# Verify
node --version
npm --version

Docker

# Arch Linux
sudo pacman -S docker
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
# Log out and back in for group change to take effect

PostgreSQL & Redis (via Docker)

No local installation needed. Run them as containers:

# PostgreSQL
docker run -d --name postgres \
  -e POSTGRES_DB=intuit_crash_course \
  -e POSTGRES_USER=dev \
  -e POSTGRES_PASSWORD=dev \
  -p 5432:5432 \
  postgres:16

# Redis
docker run -d --name redis \
  -p 6379:6379 \
  redis:7

To stop/start later:

docker stop postgres redis
docker start postgres redis

Kubernetes (minikube)

# Arch Linux
sudo pacman -S minikube kubectl

# Start cluster
minikube start

Running the Project

Backend

cd backend
mvn spring-boot:run

The API will be available at http://localhost:8080.

Frontend

cd frontend
npm install
npm run dev

The app will be available at http://localhost:5173.

Documentation

cd doc
mdbook serve --open

IDE Setup

  • Import as Maven project
  • Set Project SDK to Java 25
  • Install Spring Boot plugin

VS Code (for React frontend)

  • Install extensions: ESLint, Prettier, ES7+ React snippets
  • Install extension: Extension Pack for Java (if working on backend too)