Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/axelriv62/lens-judge

Juge pour les compétitions de programmation développé en Java dans le cadre d'un projet de troisième semestre de BUT Informatique.
https://github.com/axelriv62/lens-judge

java

Last synced: 7 days ago
JSON representation

Juge pour les compétitions de programmation développé en Java dans le cadre d'un projet de troisième semestre de BUT Informatique.

Awesome Lists containing this project

README

        







Lens Judge












*Realized by [Axel](https://github.com/axelriv62), [Quentin](https://github.com/quentinltg), [Bylel](https://github.com/SirSweazzyyy) et [Isaac](https://github.com/IsaacDuflos), second-year students (year 24-25) in BUT Computer Science.*


## Presentation

This project was realized as part of a SAE ('Learning and Assessment Situation' in French) during the third semester of the BUT in Computer Science.
The goal was to design an automatic judge for programming competitions in Java, which can compile, execute, and verify if the program submitted by a participant correctly solves the proposed problem.

The main objective was to identify and integrate as many design patterns as possible into our project.


## Objectives

The various objectives of this project were:

+ Support compilation and execution of programs in Java, C, C++, and Python.
+ Validate answers by comparing the output of the submitted program with the expected output.
+ Implement various verification strategies: strict comparison, tolerance for precision, case/whitespace insensitivity, and order tolerance.
+ Allow the integration of the judge as a library, configurable for different problems and test cases.


## Building the JAR
Open a terminal, navigate to the project root directory, and execute the following command to create the JAR:
```bash
./gradlew shadowJar
```
The JAR file will be located in the build/libs directory. You should see a file named lensjudge.jar.
```bash
ls app/build/libs
```
To run the JAR, use the java -jar command followed by the path to the JAR file:
```bash
java -jar app/build/libs/lensjudge.jar
```


## Areas for Improvement

At the end of the project, we would have liked to have more time to develop the following features:

+ Improve the interface with colors and more detail on the verifications performed.
+ Configure execution to handle time and memory limits for submitted programs.
+ Add the option for users to configure their own verification strategy.


## Languages, Tools and Software Used

![My Skills](https://go-skill-icons.vercel.app/api/icons?i=java,gradle,git,gitlab&theme=dark)