AI-powered online exam proctoring system built with MERN stack for Construction Design Skills Assessment.
- Frontend: https://levelz.uz
- Backend API: https://api.levelz.uz
- Node.js 18+
- MongoDB
- Vercel account (for deployment)
# Install all dependencies
npm run install-all
# Start both servers (backend + frontend)
npm run dev
# Or start individually
cd backend && npm run server # Backend on :5005
cd frontend && npm start # Frontend on :3000Backend (.env):
NODE_ENV=development
PORT=5005
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_min_32_charsFrontend (.env):
VITE_API_BASE_URL=http://localhost:5005
VITE_APP_ENV=developmentqurilish-exam/
├── backend/ # Express.js API
│ ├── config/ # Database config
│ ├── controllers/ # Business logic
│ ├── models/ # Mongoose schemas
│ ├── routes/ # API routes
│ ├── middleware/ # Auth & error handling
│ └── server.js # Entry point
├── frontend/ # React + TypeScript
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── views/ # Page components
│ │ ├── slices/ # Redux slices
│ │ ├── layouts/ # Layout components
│ │ └── utils/ # Helper functions
│ └── vite.config.ts # Vite configuration
└── package.json # Root scripts
- Runtime: Node.js + Express.js
- Database: MongoDB + Mongoose
- Auth: JWT + bcrypt
- Deployment: Vercel Serverless Functions
- Framework: React 18 + TypeScript
- Build Tool: Vite
- UI: Material-UI (MUI) v5
- State: Redux Toolkit + RTK Query
- AI/ML: TensorFlow.js
- Camera: react-webcam
- Create and manage exams
- Add multiple choice questions
- Set time limits and scheduling
- View student results and analytics
- Monitor AI-detected cheating logs
- Real-time exam monitoring
- Browse available exams
- Take timed exams
- Real-time webcam monitoring
- Face verification
- Submit answers and view results
- Face Detection: Ensures student face is visible
- Multiple Face Detection: Alerts if multiple people detected
- Object Detection: Detects phones, books, prohibited objects
- Tab Switch Detection: Monitors for tab switching
- Real-time Logging: All incidents logged for teacher review
- JWT-based authentication
- Bcrypt password hashing
- CORS protection
- Rate limiting ready
- Environment variable protection
- HTTPS enforced in production
Backend: Linked to levelz-api project
cd backend
vercel --prodFrontend: Linked to levelz-web project
cd frontend
vercel --prodA @ 76.76.21.21
CNAME www cname.vercel-dns.com
CNAME api cname.vercel-dns.com
Backend (Vercel):
NODE_ENV=production
JWT_SECRET=your_secure_secret
MONGO_URI=your_mongodb_uri
Frontend (Vercel):
VITE_API_BASE_URL=https://api.levelz.uz
VITE_APP_ENV=production
POST /api/users/auth- LoginPOST /api/users- RegisterPOST /api/users/logout- LogoutGET /api/users/profile- Get profilePUT /api/users/profile- Update profile
GET /api/exams- Get all examsPOST /api/exams- Create exam (teacher only)GET /api/exams/:id- Get exam detailsPUT /api/exams/:id- Update exam (teacher only)DELETE /api/exams/:id- Delete exam (teacher only)
GET /api/results- Get all resultsPOST /api/results- Submit exam resultGET /api/results/:id- Get specific resultGET /api/results/exam/:examId- Get results by exam
# Run tests (when implemented)
npm test
# Type check
cd frontend && npm run type-check
# Lint
cd frontend && npm run lint- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
This project is private and proprietary.
For issues or questions, contact the development team.
Developed by: SoftWhere UZ Team
Last Updated: October 2025