Skip to main content

Getting Started with Evolve Candidate Frontend

Prerequisites​

  • Node.js 20+
  • npm / yarn / pnpm / bun
  • Access to TeamFleetStudio/evolve-candidate-fe
  • Evolve backend API URL (see .env.example)

Installation​

Step 1: Clone​

git clone https://github.com/TeamFleetStudio/evolve-candidate-fe.git
cd evolve-candidate-fe

Step 2: Install dependencies​

npm install

Step 3: Configure environment​

NEXT_PUBLIC_API_BASE_URL=https://evolve-api2.fsgarage.in

# Required for the auto-assign webhook proxy (not in .env.example - get from teammate)
NEXT_PUBLIC_AUTO_ASSIGN_WEBHOOK_URL=
NEXT_PUBLIC_N8N_BASIC_AUTH_USER=
NEXT_PUBLIC_N8N_BASIC_AUTH_PASS=

Step 4: Run​

npm run dev

Open http://localhost:3000.

Useful scripts​

ScriptPurpose
npm run devLocal Next.js dev server
npm run build / npm startProduction build/serve
npm run lintESLint

Verification​

  • Login works against the configured Evolve backend
  • Starting an MCQ round enables exam security (right-click/copy/tab-switch blocking)
  • Submitting an MCQ round returns { ok: true } from /api/webhook/auto-assign when the webhook env vars are set
Exam security is aggressive by design

Right-click, dev tools, and tab switching are blocked during a test round on purpose (see SECURITY_FEATURES.md). If you're debugging locally, expect the security layer to interfere with normal browser dev tools while a round is active.

Troubleshooting​

Issue: /api/webhook/auto-assign returns 500

  • Solution: NEXT_PUBLIC_AUTO_ASSIGN_WEBHOOK_URL is unset - add it to .env

Issue: Prompt round submit button stays disabled

  • Solution: Check the 200-character / 20-word minimum enforced client-side before submit unlocks

Next Steps​