A full-stack web application designed to help college students practice and evaluate their logical and aptitude skills. This platform enables admins to create aptitude tests and students to attempt them online, view results, and track performance through a leaderboard.
- Sign Up & Login — Secure authentication system with JWT and refresh tokens
- Attempt Aptitude Tests — Take upcoming or available tests directly from the dashboard
- View Results — Instantly view score and performance summary after test submission
- Leaderboard — Check ranking among other students based on test performance
- Email Notifications — Get automatic reminders via email the night before a scheduled test
- Face Verification — AI-powered facial recognition to prevent impersonation during tests
- Create & Manage Tests — Add, edit, or delete aptitude tests with questions, options, and correct answers
- View Submissions — Track all student submissions and performance reports
- Automated Notifications — System automatically sends email alerts to all registered students before test day
- Contest History — View and manage past contests and their statistics
- User Management — Access and manage student data
| Category | Technology |
|---|---|
| Frontend | React.js 19, Tailwind CSS 4, ShadCN UI, Motion, Recharts |
| Backend | Node.js, Express.js 5 |
| Database | MongoDB with Mongoose |
| Authentication | JWT-based Auth with Refresh Tokens, bcryptjs |
| Email Service | Resend, Nodemailer, EmailJS |
| AI/ML | MediaPipe for face detection and verification |
| Security | Arcjet rate limiting, express-rate-limit |
| File Storage | Cloudinary |
| Task Scheduling | BullMQ, node-cron |
| Deployment | Vercel (Frontend) & Render/Railway (Backend) |
CDC/
├── Client/ # React Frontend
│ ├── src/
│ │ ├── Components/ # Reusable UI components
│ │ ├── Pages/ # Page components
│ │ │ ├── Admin/ # Admin dashboard pages
│ │ │ └── Service/ # Service-related pages
│ │ ├── Hooks/ # Custom React hooks
│ │ ├── Store/ # Redux store configuration
│ │ ├── Layout/ # Layout components
│ │ └── lib/ # Utilities and data
│ └── public/ # Static assets
│
├── Server/ # Express Backend
│ ├── Admin/ # Admin routes and controllers
│ ├── config/ # Database configuration
│ ├── Cron/ # Scheduled jobs
│ ├── DB/ # MongoDB models
│ ├── Middleware/ # Express middleware
│ ├── Service/ # Business logic services
│ └── Utils/ # Utility functions
│
└── Test/ # Test files
- Node.js (v18+)
- MongoDB (local or cloud instance)
- A
.envfile with environment variables
- Clone the repository
git clone https://github.com/your-username/college-aptitude-platform.git
cd college-aptitude-platform- Install dependencies
# Install backend dependencies
cd Server
npm install
# Install frontend dependencies
cd ../Client
npm install- Setup environment variables
Create a .env file in the Server directory:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
JWT_REFRESH_SECRET=your_refresh_secret
NODE_ENV=development
EMAIL_USER=your_email@example.com
EMAIL_PASS=your_app_password
RESEND_API_KEY=your_resend_api_key
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
ARCJET_KEY=your_arcjet_key- Run the development servers
# Run backend
cd Server
npm run dev
# Run frontend (in a new terminal)
cd Client
npm run devThe frontend will be available at http://localhost:5173 and the backend at http://localhost:5000.
| Feature | Description |
|---|---|
| Test Creation | Admins can add aptitude questions and assign test dates |
| Test Attempt | Students can answer MCQs and submit responses |
| Leaderboard | Shows rankings based on performance and accuracy |
| Email Reminder | Sends automated reminder emails to all students one night before the test |
| Secure Auth | JWT + Refresh Tokens for protected routes |
| Face Verification | AI-powered face verification to ensure test integrity |
POST /api/v1/user/register— User registrationPOST /api/v1/user/login— User loginPOST /api/v1/user/refresh— Refresh access tokenPOST /api/v1/user/forgot-password— Forgot passwordPOST /api/v1/user/verify-otp— Verify OTP
GET /api/v1/contest— Get all contestsPOST /api/v1/contest— Create new contest (Admin)GET /api/v1/contest/:id— Get contest detailsPOST /api/v1/contest/:id/submit— Submit test responses
GET /api/v1/leaderboard— Get leaderboard rankings
- Subhas Mondal — Project Lead & Full Stack Developer | Upcoming Intern at QuantumHash Corporation
- Sumit Prasad Gupta — Full Stack Developer
- Pritam Mohanto — Competitive Programmer | ICPC Regionalist
This project is developed as part of a college project and is open for educational and non-commercial use.
Built with ❤️ by the CDC Web Team