A coding assessment platform for live test-taking, results tracking, and admin management.
CODE ER is a full-stack assessment platform with a React + Vite frontend and an Express backend (PostgreSQL data store). It supports user login, timed coding tests, submissions, result tracking, and an admin dashboard for managing users and leaderboards.
- Anti-Cheat & Proctoring Engine: Ensures assessment integrity by automatically detecting tab-switching and fullscreen exits, logging all monitoring events with precise timestamps.
- Rich Coding Environment: Integrated with the Monaco code editor (the engine behind VS Code), providing a professional test-taking interface with support for multiple programming languages.
- Automated Evaluation & Leaderboards: Automatically calculates scores based on expected outputs and generates dynamic, rank-sorted leaderboards to track performance history.
- Bulk Admin Operations: Simplifies user management by allowing administrators to seamlessly onboard test-takers in bulk via Excel/CSV uploads and download comprehensive performance reports.
- Dynamic Assessment Control: Gives admins granular control to assign specific question sets, set test duration constraints per user, and enforce strict start/end access windows.
- Secure Role-Based Access: Features a hardened JWT-based authentication system (with 12-hour expiry) ensuring strict separation between standard test-takers and administrative dashboards.
- Frontend: React, Vite, Axios, Zustand
- Styling: Tailwind CSS / plain CSS (project contains App.css / index.css)
- Backend: Node.js, Express
- Database: PostgreSQL (uses
pg) - Dev tooling: npm, dotenv
client/— React application (Vite)src/— app sourceapi/— API helper(s)components/— shared componentsscreens/— pages (login, test, admin, etc.)store/— client state
server/— Express backendcontrollers/— route handlersroutes/— route definitionsmiddleware/— auth and helpersconfig/— DB config (config/db.js)sample_data.txt,table.txt— helper data files
Requirements:
- Node.js (>=16) and npm
- PostgreSQL (local or remote)
- Install dependencies (client and server):
cd client
npm install
cd ../server
npm install-
Configure environment variables (see next section).
-
Start the backend (from
server/):
cd server
npm start- Start the frontend (from
client/):
cd client
npm run devOpen the frontend at the Vite dev URL (normally http://localhost:5173) and the API at the backend PORT (default 5000).
Create a .env file in server/ with values similar to:
PORT=5000
DATABASE_URL=postgresql://USER:PASSWORD@localhost:5432/DATABASE_NAME
JWT_SECRET=your_jwt_secret_here
Originally created by Bhadri Prabhu K - https://github.com/BhadriPrabhu