# 💻 Automatické hodnocení úkolů v předmětu Programování síťových aplikací

[![UTB FAI Task](https://img.shields.io/badge/UTB_FAI-Task-yellow)](https://www.fai.utb.cz/)
[![Java](https://img.shields.io/badge/Java-007396.svg?logo=java&logoColor=white)](https://www.java.com/)
[![Gradle](https://img.shields.io/badge/Gradle-02303A.svg?logo=gradle&logoColor=white)](https://gradle.org/)

Diplomová práce pro automatické hodnocení úkolů v předmětu Programování síťových aplikací na UTB FAI. Obsahem tohoto repozitáře je samotný univerzalní black box testovací nástroj, který byl vyvinut v rámci této diplomové práce za účelem automatizovaného hodnoceí. Rovněž je zde i sada úkolů a jejich řešení pro předmět Programování síťových aplikací.

> Při automatizovaném hodnocení jsou využívaný tyto porty: __9999, 8080, 1883__. Před samotným zahájením automatizovaného hodnocení je nutné se ujistit, že jsou tyto porty na zařízení volné!

### ⚠️ Důležité!

Aby bylo umožněno automatizované vyhodnocování úloh, je nutné distribuovat black box nástroj pro automatické vyhodnocování do všech repozitářů úloh. To lze provést pomocí skriptu, který se nachází v adresáři s tímto nástrojem '__NetworkAppTestingTool__'.

#### Linux
```bash
cd ./NetworkAppTestingTool

./gradlew build

chmod +x distribute_tool_to_tasks.sh

./distribute_tool_to_tasks.sh
```

#### Windows
```bat
cd NetworkAppTestingTool

start gradlew.bat build

start distribute_tool_to_tasks.bat

```

> Příkaz pro sestavení je možné vynechat v případě, že už se v projektu nachazí nejnovejší sestavená verze.

## 🛠️ Pro spuštění je nutné mít nainstalované následující:

* __Java 17__: Všechny úkoly a testovací nástroj vyžaduje běhové prostředí Java ve verzi 17.
* __Gradle__: Pro automatizované sestavení je využívan nástroj Gradle.
* __Python__: Editor konfigurací testovacích sad vyžaduje pro svůj běh python.

## 🔍 Obsah repozitáře:

* [Nástroj pro automatizované hodnocení úkolů](./NetworkAppTestingTool)

* [Sada úloh - zadání](./Tasks)

* [Sada úloh - řešení (z důvodu zabezpěčení bude tento adresář šifrovaný)](./Solution)

* [Podpůrné nástroje](./Utils)

## 👤 Autor prace:

Bc. Martin Krčma

__Email:__ m1_krcma@utb.cz
