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'.