Skip to content

commoncodebase/safeCodeProvider

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coding Exam Platform

Project Logo


Table of Contents


Overview

The Coding Exam Platform is a specialized local network-based system designed for university-level software and computer engineering students. It provides a structured and secure coding examination environment, similar to online coding challenge platforms like HackerRank, ensuring fairness and efficiency in programming assessments.

Key Features

Instructor Capabilities

  • Exam Setup:
    • Uploads essential files before the exam:
      • Assignment File: Contains problem statements and exam instructions.
      • Student List File: Specifies the students participating in the exam.
      • Pre-prepared Code File: Includes starter code in the designated programming language (.py, .java, .c, etc.).
    • Configures key exam parameters:
      • Exam Duration
      • Exam Name
      • Output Directory: Defines the location where students' final submissions are stored with their student numbers.
  • Live Monitoring:
    • Tracks students' progress in real-time.
    • Views the most recent code submissions and execution results of individual students.

Student Capabilities

  • Secure Login:
    • Authenticates using:
      • Student Number
      • Full Name
      • Exam Password (predefined by the instructor)
  • Coding Environment:
    • Left Panel: Displays the assignment instructions.
    • Right Panel: Provides an integrated code editor for real-time programming.
  • Execution Environment:
    • Runs code within a Docker container, dynamically selecting the appropriate compiler/interpreter based on the assigned programming language.
  • Submission System:
    • Allows students to execute and test their code.
    • Final submissions are securely stored in the instructor-specified directory.

Technical Architecture

  • Backend: Handles user authentication, exam configuration, and file management.
  • Frontend: Provides an interactive and intuitive coding interface.
  • Docker Integration: Ensures an isolated and standardized execution environment for different programming languages.
  • Local Network Deployment: Operates entirely within the university’s lab infrastructure, ensuring a controlled and secure examination setting without internet dependency.

Workflow

  1. The instructor sets up the exam, defining the necessary configurations and uploading required files.
  2. Students log in securely using their credentials.
  3. The exam interface loads, allowing students to write, execute, and test their code.
  4. The instructor monitors students' progress and reviews real-time code execution results.
  5. Students submit their final solutions, which are automatically stored in the designated output directory.
  6. The exam concludes either upon time expiration or manual termination by the instructor.

User Interface Screenshots

Below are the main interface screens of the project:

1. Instructor Start Page

Instructor Start Page

2. Instructor Exam Interface

Instructor Exam Page

3. Student Login Page

Student Login Page

4. Student Exam page

Student Exam page

Prerequisites

  • Docker
  • Python
  • Django

Installation

  1. Clone the repository:

    git clone https://github.com/commoncodebase-ccb/safeCodeProvider.git
  2. Install dependencies:

    Python Installation: Download Python

    Django Installation: Download Django

    Docker Installation: Download Docker

  3. Run the application:

cd .\safeCodeProvider\

For Windows:

 py manage.py runserver 8000 --settings=safeCodeProvider.settings.teacher_settings

For macOS:

 python3 manage.py runserver 8000 --settings=safeCodeProvider.settings.teacher_settings

Potential Enhancements

  • Automated Grading System: Enables automatic evaluation based on predefined test cases.
  • Plagiarism Detection Mechanism: Ensures academic integrity by identifying similar code submissions.
  • Expanded Language Support: Adds compatibility for additional programming languages.

Main Contributers

AliGithub
Hasan Ali Özkan
Researcher Assistant
AliGithub
Yaren Öztekin
Full Stack Developer
AliGithub
Mazlum Emre Girgin
Full Stack Developer
AliGithub
Melis Kırık
Full Stack Developer
MehmetGithub
Serdar Dedebaş
Full Stack Developer
AyseGithub
Koray Ürün
Full Stack Developer

License

GNU General Public License v3.0

For full terms and conditions, see the LICENSE file or visit the official license page:
🔗 [GNU General Public License v3.0

For further inquiries or contributions, please submit a pull request or reach out via the project's repository.

About

A project that provides an environment for solving exams and assignments without using LLMs.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6