
1. HTML-FORM → Quarkus-Backend:
Die Parameter und Dateien werden vom Html-Form über MultipartFormDataInput zum Quarkus-Backend geschickt. Files werden dann in der Datenbank gespeichert. Abschließend wird das abgegebene Projekt und die für das Testen benötigten Files in dem "project-under-test" gespeichert.
2. LeoCode-Backend→Testing-API:
Über Kafka wird die Abgabe an die Testing API geschickt. Genauer wird die Abgabe über den "submission-input" channel weitergeschickt. In der Testing-API wird es dann für Jenkins vorbereitet und dann damit auch weitergegeben.
3. Testing-API → Jenkins:
Jenkins wird per REST API angesprochen und bekommt den Pfad der zu testenden Dateien übergeben. Jenkins führt im Anschluss die Tests aus.
4. Jenkins → Testing-API:
Das Ergebnis von den Tests wird in der Submission Klasse im Result-Feld gespeichert.
5. Testing-API → LeoCode-Backend:
Das Backend bekommt das gesamte, vollständig geprüfte Projekt über Kafka wieder zurück. Dies geschieht im "submission-result" channel.
6. Testing-API → Frontend:
In den Endpoints ist ebenso ein "submission-result", worüber Neuheiten an das Frontend übergeben werden.