This project is a web-based proctoring system built using Flask for the backend and React for the frontend. It allows users to create and take tests with automated proctoring capabilities, such as monitoring user behavior during the test.
- Features
- Technologies Used
- Getting Started
- Backend Setup (Flask)
- Frontend Setup (React)
- Running the Application
- Test Creation: Instructors can create tests with multiple-choice questions.
- Proctoring: Automated proctoring features include monitoring camera feeds, tracking tab switches, and detecting unusual behavior.
- User Authentication: Secure login and registration for students and instructors.
- Timer Functionality: Each test can have a time limit.
- Results Management: Submissions are recorded, and results can be reviewed.
- Frontend: React, JavaScript, HTML, CSS
- Backend: Python, Flask
- Database: SQLite (default), can be replaced with PostgreSQL/MySQL
- Other Libraries: Axios (for API calls), OpenCV (for camera monitoring), WebSockets (for real-time updates)
Make sure you have the following installed:
- Python (>=3.8)
- Node.js (>=14.x)
- npm (Node Package Manager)
-
Clone the Repository
git clone https://github.com/your-username/proctoring-system.git cd proctoring-system/backend
Create a Virtual Environment
-
Create a Virtual Environment
python -m venv venv
Activate the Virtual Environment
On Windows:
venv\Scripts\activate
On macOS/Linux:
source venv/bin/activate
- Install Backend Dependencies
pip install -r requirements.txt
- Run the Flask Server
python app.py
The Flask server will be running at http://127.0.0.1:5000.
Install Frontend Dependencies
npm install
Start the React Development Server
npm start
The React app will be running at http://localhost:3000.
Start the Flask Backend
Start the React Frontend
Access the Application
Open a web browser and navigate to http://localhost:3000 to interact with the frontend. The frontend will communicate with the Flask backend running at http://127.0.0.1:5000. Project Structure The project is divided into two main folders:
backend/ - Contains the Flask backend code.