ℹ️
This guide is for Windows 10 version 2004 or later, or Windows 11. We use Windows Subsystem for Linux (WSL) which gives you a Linux terminal on Windows β€” this is the recommended way to work with this project.

Step 1 β€” Install WSL (Windows Subsystem for Linux)

WSL lets you run Linux commands on Windows. This makes everything much easier for web development.

  1. Click the Start menu, search for PowerShell, right-click it and select "Run as administrator".
  2. In the PowerShell window, paste this command and press Enter:
    wsl --install
  3. This will install WSL with Ubuntu. When it finishes, restart your computer.
  4. After restarting, Ubuntu will open automatically and ask you to create a username and password for Linux. Choose any username (e.g. yourname) and a password you'll remember.
⚠️
When typing your Linux password, you won't see any characters β€” this is normal. Just type it and press Enter.

To open the WSL terminal in future: search for Ubuntu in the Start menu.

Step 2 β€” Update Ubuntu Packages

In the Ubuntu terminal, run:

sudo apt update && sudo apt upgrade -y

Enter your Linux password when prompted. This may take a few minutes.

Step 3 β€” Install Git

sudo apt install git -y
git --version

Step 4 β€” Install Node.js (via nvm)

Install nvm (Node Version Manager):

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash

Reload your shell so nvm is available:

source ~/.bashrc

Install Node.js 20:

nvm install 20
nvm use 20
nvm alias default 20

Verify:

node --version   # should print v20.x.x
npm --version

Step 5 β€” Install pnpm

npm install -g pnpm@10
pnpm --version

Step 6 β€” Set Up SSH Key for GitHub

6a. Generate an SSH key

ssh-keygen -t ed25519 -C "samson.sam@excelcaregroup.com.au" -f ~/.ssh/id_ed25519_excelcare -N ""

6b. Configure SSH

cat >> ~/.ssh/config << 'EOF'

Host github-excelcare
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_excelcare
  IdentitiesOnly yes
EOF
chmod 600 ~/.ssh/config

6c. Copy the public key

cat ~/.ssh/id_ed25519_excelcare.pub

Select and copy the entire output (starts with ssh-ed25519).

6d. Add to GitHub

  1. Open a regular browser window (not Ubuntu).
  2. Go to github.com/settings/ssh/new (logged in as samson.sam@excelcaregroup.com.au).
  3. Title: My Windows PC.
  4. Key type: Authentication Key.
  5. Paste the key and click Add SSH key.

6e. Test

ssh -T github-excelcare

You should see: Hi samson.sam! You've successfully authenticated...

Step 7 β€” Clone the Repository

cd ~
mkdir -p github
cd github
git clone git@github-excelcare:Excel-Care-Group/excelcare-webapp.git
cd excelcare-webapp

Step 8 β€” Configure Git Identity

git config --global user.name "Your Name"
git config --global user.email "samson.sam@excelcaregroup.com.au"

Set the remote to the SSH alias:

cd ~/github/excelcare-webapp
git remote set-url origin git@github-excelcare:Excel-Care-Group/excelcare-webapp.git

Step 9 β€” Install VS Code (with WSL extension)

We recommend using VS Code on Windows to edit files, as it integrates seamlessly with WSL.

  1. Download VS Code from code.visualstudio.com β€” click Download for Windows.
  2. Run the installer (accept all defaults, tick "Add to PATH" if asked).
  3. Open VS Code. Press Ctrl+Shift+X to open Extensions. Search for WSL (by Microsoft) and install it.
  4. In your Ubuntu terminal, navigate to the project and open it in VS Code:
    cd ~/github/excelcare-webapp
    code .
  5. VS Code will open with a green WSL: Ubuntu indicator in the bottom-left corner β€” this means you're editing files inside WSL.

Step 10 β€” Install Project Dependencies

In your Ubuntu terminal (or the VS Code integrated terminal):

cd ~/github/excelcare-webapp
pnpm install
npm --prefix functions install

Step 11 β€” Set Up Environment Variables

cp .env.example .env

Step 12 β€” Run the Website Locally

pnpm dev

You should see:

  ➜  Local:   http://localhost:5173/
  1. Open your Windows browser (Chrome, Edge, Firefox) and go to http://localhost:5173.
  2. The ExcelCare website should load.
  3. Changes you make to files in VS Code will automatically refresh the browser.
  4. To stop the server, click in the Ubuntu terminal and press Ctrl + C.
βœ…
Your Windows PC is now fully set up! Continue to the Making Changes guide.

Troubleshooting

ProblemSolution
WSL install says "Virtual Machine Platform not enabled"Open Turn Windows features on or off in Control Panel β†’ enable Virtual Machine Platform and Windows Subsystem for Linux β†’ restart.
pnpm: command not foundRun source ~/.bashrc then try again.
Browser shows blank pageCheck the Ubuntu terminal for error messages. Make sure you ran pnpm install first.
VS Code doesn't open the WSL folderMake sure you ran code . from inside the Ubuntu terminal, not from Windows Explorer.
SSH test fails: "Permission denied"Re-run step 6c, copy the key, and add it again to GitHub at github.com/settings/ssh.