This project is currently a Work In Progress (WIP). Features and documentation are actively being developed and improved.
Welcome to Omniproctor - a comprehensive online assessment and proctoring platform designed to conduct secure, monitored examinations in a controlled digital environment.
Omniproctor is a full-stack proctoring solution that combines a secure browser application with a web-based dashboard to provide end-to-end management of online assessments.
- Secure Browser: Custom PyQt6-based browser with built-in proctoring controls
- Network Isolation: Automated firewall configuration to restrict network access during exams
- Kiosk Mode: Prevents users from switching to other applications
- Dashboard Management: Web-based interface for creating and managing tests
- User Management: Role-based access control for administrators and test-takers
- Real-time Monitoring: Track active tests and user activities
A standalone desktop application built with PyQt6 that provides:
- Secure web browsing with restricted access
- Kiosk mode to prevent task switching
A full-stack web application consisting of:
- Backend: Node.js/Express REST API with Prisma ORM
- Frontend: React-based built with Vite and TailwindCSS
- Database: PostgreSQL for storing users, tests, and activity logs
-
For Browser Application:
- Windows OS
- Python 3.8 or higher
- Administrator privileges (for firewall control)
- SimpleWall must be installed before setting up the browser (for network restrictions) (This will be removed in future update and the browser will not depend on any external firewall)
-
For Dashboard:
- Node.js 16 or higher
- PostgreSQL database
- npm or yarn package manager
Backend Setup:
cd Dashboard/Backend
npm install
npx prisma migrate deploy
node src/index.jsFrontend Setup:
cd Dashboard/Frontend
npm install
npm run devcd Browser
pip install -r requirements.txt
python main.py- Access the dashboard at
http://localhost:5173(or configured port) - Login with your credentials
- Create or join a test
- Launch the secure browser for taking assessments
Omniproctor/
├── Browser/ # Secure browser application
│ ├── browser/ # Core browser implementation
│ │ ├── main.py # Browser engine with security features (entry point)
│ │ ├── keyblocks.py # Keyboard/hotkey blocking
│ │ └── network/ # Network control modules
│ └── pyproject.toml # Python dependencies
│
├── Dashboard/
│ ├── Backend/ # REST API server
│ │ ├── src/
│ │ │ ├── controllers/ # Request handlers
│ │ │ ├── routes/ # API endpoints
│ │ │ ├── middlewares/ # Auth & validation
│ │ │ └── config/ # Database config
│ │ └── prisma/ # Database schema & migrations
│ │
│ └── Frontend/ # React web application
│ └── src/
│ ├── pages/ # Dashboard, Login, Tests
│ ├── components/ # Reusable UI components
│ └── context/ # Auth state management
│
└── docs/ # Documentation (MkDocs)
- The browser must be launched with administrator privileges for full security features
- Ensure stable internet connection before starting a test
- Report any technical issues immediately to administrators
For technical support or bug reports, please contact the development team or create an issue in the project repository.