Module 1 · Before class
Setup
Get your environment ready — before class
Setup
What we'll install
  1. VSCode — your EDI (not strictly necessary but you will want to look at code)
  2. Node.js (LTS) — needed for the React frontend tooling
  3. Python 3.11 — needed for the Flask backend
  4. Claude Code CLI — the AI coding assistant we'll use to scaffold the app
  5. Anthropic API key — stored once in a shared ~/ksept-lab/.env that every example app in this course reads from

Every command below has macOS and Windows tabs — pick your OS on any block and the whole deck follows. (macOS uses Homebrew; Windows uses winget, which ships with Windows 11.)

After installs, we'll have Claude Code scaffold a hello-world frontend + backend in one prompt, then walk through what it built.

Setup · 1 of 7
Install VSCode

Download from code.visualstudio.com and run the installer, or use your package manager:

brew install --cask visual-studio-code
winget install Microsoft.VisualStudioCode
Verify
code --version

If the code command isn't found: on macOS, open VSCode → ⌘⇧P → "Shell Command: Install 'code' command in PATH". On Windows, re-run the installer and tick "Add to PATH", then open a new terminal.

Setup · 2 of 7
Install Git

We'll use git to track each fix you make as its own commit — that's how you'll "walk the diff" when you present your work to the class. macOS usually already has git (via the Xcode Command Line Tools); Windows needs an explicit install.

brew install git    # only if it isn't already present
winget install Git.Git
Verify
git --version    # git version 2.x.x

No GitHub account or remote needed — git works completely locally. A repo is just a hidden .git/ folder inside your project.

Setup · 3 of 7
Install Node.js (LTS)

Needed to build and run the React frontend.

brew install node
winget install OpenJS.NodeJS.LTS

Or download: nodejs.org → LTS installer (v20 or v22).

Verify
node --version    # v20.x.x or v22.x.x
npm --version
Setup · 4 of 7
Install Python 3.11

The Flask backend uses Python 3.11.

brew install python@3.11
winget install Python.Python.3.11
Verify
python3.11 --version    # Python 3.11.x
py -3.11 --version      # Python 3.11.x

On Windows, the py launcher picks a specific version with -3.11. Linux: install python3.11 from your distro's package manager or python.org.

Setup · 5 of 7
Create your project folder and venv

Pick a working directory and create a Python virtual environment for the backend dependencies. On Windows, use PowerShell.

mkdir ~/ksept-lab
cd ~/ksept-lab
python3.11 -m venv .venv
source .venv/bin/activate
mkdir ~/ksept-lab
cd ~/ksept-lab
py -3.11 -m venv .venv
.venv\Scripts\Activate.ps1

A venv is an isolated Python environment for this project. Anything you pip install while it's active goes here, not into your system Python. Windows: if PowerShell blocks the activate script, run Set-ExecutionPolicy -Scope CurrentUser RemoteSigned once and try again.

Verify
which python    # should end in /ksept-lab/.venv/bin/python
Get-Command python    # Source ends in \ksept-lab\.venv\Scripts\python.exe
Setup · 6 of 7
Install the Claude Code CLI

Claude Code is an AI coding assistant that runs in your terminal. We'll use it to scaffold the hello-world app.

npm install -g @anthropic-ai/claude-code
irm https://claude.ai/install.ps1 | iex

Windows installs Claude Code as a self-contained binary (no Node needed) that auto-updates; winget install Anthropic.ClaudeCode also works. Installing Git for Windows (step 2) lets it use a real Bash shell.

Verify
claude --version
Open the project in VSCode and start Claude Code
cd ~/ksept-lab
code .     # open this folder in VSCode
# In the VSCode integrated terminal:
claude     # first run walks you through login
Setup · 7 of 7
Get an Anthropic API key

This is what the chat app (and every example app in this course) uses to call Claude. Claude Code itself doesn't need it — it has its own login — so this step is for your apps.

1 · Create the key

Go to console.anthropic.com/settings/keysCreate Key. Copy it now; you won't see it again.

2 · Save it once, for the whole week

Put it in one shared .env at the project root. Every example app you unzip in this course will walk up the tree and find it automatically.

cd ~/ksept-lab
echo 'ANTHROPIC_API_KEY=sk-ant-...your-key-here...' > .env
cat .env       # verify: shows ANTHROPIC_API_KEY=sk-ant-...
cd ~/ksept-lab
'ANTHROPIC_API_KEY=sk-ant-...your-key-here...' | Out-File -Encoding ascii .env
type .env      # verify: shows ANTHROPIC_API_KEY=sk-ant-...

Keep this file out of git. The repos you'll unzip already .gitignore it, but since the .env lives at ~/ksept-lab/ (one level above each app), it's outside every project anyway.