Online-Exam-System

πŸ“ Online Exam System

A desktop-based Online Exam System built with Python and CustomTkinter, designed for both students and administrators.

The system provides exam management, student accounts, timed examinations, result tracking, secure password handling, and optional webcam-based monitoring.


πŸš€ Features

πŸ‘¨β€πŸ’Ό Admin Features

πŸ‘¨β€πŸŽ“ Student Features

πŸ” Security

πŸ“· Optional Exam Monitoring

Note: The monitoring system is designed as a classroom-level deterrent and is not intended to provide tamper-proof security.


πŸ› οΈ Technologies Used


πŸ“‚ Project Structure

Online-Exam-System/
β”‚
β”œβ”€β”€ online_exam_system.py
β”œβ”€β”€ README.md
└── data/
    └── Application data generated by the system

βš™οΈ Installation

1. Clone the repository

git clone https://github.com/your-username/online-exam-system.git

2. Navigate to the project

cd online-exam-system

3. Install dependencies

pip install customtkinter opencv-python pillow

4. Run the application

python online_exam_system.py

πŸ”‘ First Run

When the application is launched for the first time, the system guides the administrator through the initial setup.

There is no hardcoded admin account. The administrator account is created through the application’s setup process.


πŸ“ How It Works

Administrator

  1. Launch the application.
  2. Complete the first-run administrator setup.
  3. Log in to the admin dashboard.
  4. Create student accounts or manage existing students.
  5. Create an exam.
  6. Configure the exam title, duration, and pass mark.
  7. Add questions and answer choices.
  8. Review submitted exam results.

Student

  1. Create a student account.
  2. Log in to the application.
  3. Select an available exam.
  4. Read the exam instructions.
  5. Start the timed examination.
  6. Answer the questions.
  7. Submit the exam.
  8. Review the result and previous exam history.

⏱️ Exam System

During an exam, students can:

When monitoring is enabled, the exam can run in fullscreen mode while the application displays a local webcam preview and tracks focus-loss events.


πŸ”’ Password Security

The application uses PBKDF2-SHA256 with a randomly generated per-user salt instead of storing passwords as plain text. Repeated failed login attempts are also throttled.


πŸ“· Privacy

The webcam feature provides a local live preview only.

The project does not record or save webcam video to disk.


🎯 Project Goals

This project was developed to demonstrate practical skills in:


πŸ‘¨β€πŸ’» Author

Ziad Sayed Ahmed (Zico)

πŸ“§ Email: z.hamzawyyy@gmail.com


πŸ“Œ Disclaimer

This project is intended for educational and demonstration purposes.

The optional proctoring functionality provides basic classroom-level monitoring and should not be considered a secure or tamper-proof examination proctoring solution.