Evolve Candidate Frontend Overview
Candidate-facing exam platform for the AI Talent Summit / campus recruitment evaluations, built by Thanush Babu. Handles candidate auth, multi-round tests (MCQ, coding, personality, prompt), and anti-cheating exam-integrity enforcement.
What is Evolve Candidate Frontend?
A Next.js app candidates use to register, log in, and take timed, multi-round assessments (MCQ, coding, personality, prompt-writing) with exam-integrity security built in, plus an n8n webhook integration that auto-assigns candidates to the next round on submission.
| Field | Value |
|---|---|
| Category | Evolve / AI Talent Summit / Campus Recruitment |
| GitHub | evolve-candidate-fe |
| Org | TeamFleetStudio |
| Deployed URL | https://evolve2.fsgarage.in/ |
Runtime setup, env vars, and deploy steps live in the repository. Use this Fleet Docs page for knowledge-transfer context.
Key Features
- Auth flows: Login (with email pre-fill/lock when an
emailquery param is present), Register, Reset Password, and refresh-token integration for session continuity. - Multi-round test engine (
src/app/test/): MCQ, coding (Monaco editor), personality, and prompt rounds, with a shared applications/rounds shell (src/app/applications/rounds). - Prompt round validation: Enforces a 200-character / 20-word minimum on prompt submissions before allowing submit.
- Auto-assign webhook proxy (
src/app/api/webhook/auto-assign/route.js): Server-side proxy that forwards MCQ submission events to an n8n webhook (basic-auth secured), so the browser never holds the webhook credentials directly. - Exam security suite (
src/lib/examSecurity.js, documented inSECURITY_FEATURES.md): Blocks copy/paste, dev tools, right-click, tab/window switching, and print/save shortcuts; enforces fullscreen; shows critical violations as blocking modals and minor ones as auto-dismissing toasts with a 10-second per-message cooldown to avoid spamming logs. - Structured security logging: Violations are logged as structured JSON (test name, round name, malpractice type) for later review.
- Persistent test state (
src/store/useTestStore.js): Zustand + localStorage store for test/round/current-round tracking, used by the security logger to attach context to each violation. - Countdown timer and full-screen test flow using
react-countdown. - Static reference data: State-wise colleges JSON for registration forms.
Tech Snapshot
| Layer | Choice |
|---|---|
| Framework | Next.js App Router |
| UI | Tailwind, Radix Slot, lucide-react, react-select, react-phone-number-input |
| Code editor | @monaco-editor/react (coding round) |
| State | Zustand (useTestStore) |
| Notifications | react-toastify |
| HTTP | axios |
| Default branch | main |
Related Repo
Admin counterpart: evolve-admin-fe - manages candidates, question banks, and results that this app's rounds feed into.
Quick Start
git clone https://github.com/TeamFleetStudio/evolve-candidate-fe.git
cd evolve-candidate-fe
Then follow Getting Started.
Next Steps
- Getting Started - Install and run locally
- Architecture - System shape and data flow
- API Reference - Endpoints and integrations