Skip to content
Andrea Ambrose edited this page May 8, 2026 · 1 revision

Local, Test, and Deployment Setup

A guide for setting up for running and pushing changes to this project.


Local Setup & Installation

1. Prerequisites

  • Node.js installed.
  • Supabase project (for your Database URL, ANON KEY, and SERVICE ROLE KEY).
  • Ngrok (optional, for sharing local environment on a secure tunnel to a deployed link.)

Important

Seed your database using the file inside server/db/supabase-init.sql.

2. Environment Variables

Create the necessary .env files in both the client and server directories:

/client/.env

REACT_APP_SUPABASE_URL=your_supabase_url
REACT_APP_SUPABASE_ANON_KEY=your_anon_key

/server/.env

SUPABASE_URL=your_supabase_url
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
RESEND_API_KEY=your_resend_key
EMAIL_FROM=your_verified_email

3. Run the application locally

1. Install all dependencies

cd client && npm install
cd ../server && npm install

2. Start both servers

cd client && npm start
cd ../server && npm start

4. Or run your build on a deployed server.

1. Build the React application

cd ../client && npm run build

2. Start the Express server (which serves the client/build folder)

cd ../server && node server.js

3. Link your ngrok tunnel to the server.

ngrok http 5000

Test Setup

1. Additional prerequisites

  • A separate, test Supabase project (for your TEST ONLY Database URL, ANON KEY, and SERVICE ROLE KEY).

2. Environment variables

Create variables needed for your test environment.

(root)/.env.test

TEST_SUPABASE_URL=your_test_supabase_url
TEST_SUPABASE_SERVICE_ROLE_KEY=your_test_service_role_key

/client/.env.test

REACT_APP_SUPABASE_URL=your_supabase_url
REACT_APP_SUPABASE_ANON_KEY=your_anon_key

/server/.env.test

SUPABASE_URL=your_supabase_url
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key

Caution

The Azure-Github CI workflow will not work on a fork of this repo, you must create a new Storage Account for your CI if you decide to fork this repo. There are repository secrets attached that do not transfer.

3. Running the local test suite

1. Start the test environments

From /server
npm run start:dev-test
From /client
npm run start:dev-test

2. Run the tests

From root
npm run test