Judge0 package

Judge0 est un compilateur de code en ligne et un environnement d'exécution qui vous permet d'écrire, d'exécuter et de tester des extraits de code dans une variété de langages de programmation. Ce package est conçu pour que l'application Laravel s'intègre facilement à l'API Judge0, soit à partir de RapidAPI, soit un déploiement personnalisé de leur image docker.

Client

Projet personnel

Technologies

Laravel, API, Judge0

À propos

Ce package a été conçu pour construire de futurs projets tels que "Plateforme compétitive en ligne", et une plate-forme en ligne pour apprendre à coder différents algorithmes et structures de données.

Ce package propose un ensemble de modèles, de traits et de façades pour soumettre facilement un morceau de code à l'API Judge0, pour qu'il soit exécuté et jugé sur la base d'un ensemble de critères définis par l'utilisateur, et obtenir la réponse de la sortie du code , la consommation de temps et de mémoire, et si elle a réussi le test ou échoué.

use Mouadbnl\Judge0\Models\Submission; $submission = Submission::create([ 'language_id' => 54, // C++ (GCC 9.2.0) 'source_code' =>' #include<iostream> #include<string> using namespace std; int main(){ string s; cin >> s; cout << "the value you entered is : " << s; return 0; } ' ]) ->setInput('judge0') ->setExpectedOutput('the value you entered is : judge0') ->setTimeLimit(1) // seconds ->setMemoryLimitInMegabytes(256) ->submit();

Configuration et utilisation

Installation

Les utilisateurs peuvent installer ce package à l'aide de l'ensemble de commandes suivant

composer require mouadbnl/laravel-judge0

# Publish the migrations php artisan vendor:publish --provider="Mouadbnl\Judge0\Judge0ServiceProvider" --tag="judge0-migrations" php artisan migrate

# Publish the config file php artisan vendor:publish --provider="Mouadbnl\Judge0\Judge0ServiceProvider" --tag="judge0-config"

Utilisation

Ce package nécessite que l'utilisateur ait sa propre image docker de la configuration de Judge0 et s'exécute localement ou hébergée, et fournir les variables d'environnement suivantes : 'JUDGE0_BASE_URI' et 'JUDGE0_KEY'.

Ou utilisez leur RapidAPI en fournissant les variables d'environnement suivantes : 'JUDGE0_RAPIDAPI_BASE_URI', 'JUDGE0_RAPIDAPI_HOST' et 'JUDGE0_RAPIDAPI_KEY'.