Vállalati Információs Rendszerek - gyakorlat

2023/2024 ősz

Kurzus információk

Anyag: e-feladat gyűjtemény (szükséges fájlok itt is elérhetők: /pub/VallinfoRSZ/gyakorlat)
Katalógus: max. 3 igazolatlan hiányzás
Teljesítés feltétele: Egy darab kötelezőprogram megírása és megvédése a gyakorlaton (részletek később...)
Plusz pontok: Órai aktivitással, házi feladatokkal plusz pontok szerezhetők, melyeknek felső korlátja nincs. Amennyiben a minimum feltétel a gyakorlaton megvan (legalább 50 pont), a plusz pontok hozzáadódnak, és az érdemjegy ez alapján számítódik.

Választható kötelező program (korábbi, a lista bővül majd)

Közös követelmény a feladatokhoz:
Minden projekt rendelkezzen egy tetszőleges build/packaging támogatással. A forráskódot az órai GitLab szerverre töltsük fel (lehetőleg rendszeresen, azaz a fejlesztés folyamatosan történjen oda). A projektekhez egy Jenkins Job-ot is be kell üzemelni, ami minden egyes push után lefut, lefordítja az alkalmazást és elvégzi a teszteket (ha vannak).

Az egyes választható feladatok:
VIR1: Egyszerű unit test futtató keretrendszer annotációk segítségével
Valósítsunk meg egy a JUnit-hoz hasonló funkcionalitást, azaz olyan annotációkat, amelyek segítségével unit testek hajthatók végre. A minimálisan támogatandó annotációk a következők: @TestCase, @BeforeClass, @AfterClass, @Before, @After, @Test, @Skip. Valósítsuk meg ezen annotációk saját változatait, és implementáljunk egy TestRunner meghajtó osztályt, amely kap egy Class objektumot (ami @TestCase-zel van annotálva), és végrehajtja a benne definiált teszteket a következőképpen: reflection segítségével végigmegy az összes @Test-tel annotált metódusán, és végrehajtja azt, ám ha van @Before és/vagy @After annotációval ellátott metódus, azt előtte/utána közvetlenül meghívja. Ha vannak @BeforeClass/@AfterClass annotációval ellátott metódusok, akkor azokat egyetlen egyszer a tesztek futtatása előtt/után végrehajtja. Ha egy metódus annotálva van a @Test annotációval, de egy @Skip is rá van téve, akkor azt a tesztet mégsem kell végrehajtani.
VIR2: Egy Postman-szerű REST API tesztelő eszköz
Implementáljunk egy nagyon egyszerű eszközt, ami képes különböző HTTP kéréseket küldeni, és a válaszokat feldolgozni/megjeleníteni. A felhasználói felülete lehet parancssori vagy grafikus is, és legyen lehetőség a következők megadására: REST végpont URL, REST metódus (GET, POST mindenképp támogatott legyen), HTTP fejlécek, HTTP kérés paraméterek. A megadott paraméterek alapján az eszköz küldje el a megfelelő kérést a REST végpontra és jelenítse meg a választ szövegesen. Az eszköz használatát publikus REST végpontok hívásával demonstráljuk.
VIR3: Egy kép böngésző asztali alkalmazás jogosultsági szintekkel
Készítsünk egy asztali Java alkalmazást, ami felhasználói bejelentkezést kér. Apache Shiro segítségével oldjuk meg a felhasználók és jogosultságok kezelését. A felhasználókat és jelszavaikat egy adatbázisban tároljuk, a jelszavak hash-elve legyenek elmentve. Alapvetően egy admin és egy sima user szerepkört hozzunk létre, de több fajta jogosultsággal. A bejelentkezett felhasználó egy előre beállított könyvtárban levő képeket tudja böngészni. Ám minden felhasználó csak azokat a kiterjesztésű képfájlokat láthatja, amelyre jogosultsága van (pl. jpg, gif, png). Az admin felhasználó minden képkiterjesztést láthat és ő meg is tudja változtatni az egyes felhasználók kép formátum jogosultságait.
VIR4: Egy kép böngésző web alkalmazás jogosultsági szintekkel
Készítsünk egy webes Java alkalmazást (pl. Spring Boot), ami felhasználói bejelentkezést kér. Spring Security segítségével oldjuk meg a felhasználók és jogosultságok kezelését. A felhasználókat és jelszavaikat egy adatbázisban tároljuk, a jelszavak hash-elve legyenek elmentve. Alapvetően egy admin és egy sima user szerepkört hozzunk létre, de több fajta jogosultsággal. A bejelentkezett felhasználó egy előre beállított könyvtárban levő képeket tudja böngészni. Ám minden felhasználó csak azokat a kiterjesztésű képfájlokat láthatja, amelyre jogosultsága van (pl. jpg, gif, png). Az admin felhasználó minden képkiterjesztést láthat és ő meg is tudja változtatni az egyes felhasználók kép formátum jogosultságait.
VIR5: Számítógép monitorozó kliens és szerver megvalósítása (SOA)
Írjunk egy SOA kommunikáción alapuló szerver és kliens modult. A kliens feladata, hogy egy számítógépen folyamatosan fusson, és percenként teljesítmény adatokat küldjön a szerverre: CPU terheltség, memória fogyasztás, stb. A szerver implementálja a megfelelő web szolgáltatásokat az adatok fogadásához, illetve lekérdezéséhez. A kliensnek legyen lehetősége az egyes paraméterek múltban elküldött értékeit visszakérni egy adott intervallumon belül. Az adatokat a szerver valamilyen NoSQL adatbázisban tárolja el (megfontolható valamilyen time series adatbázis használata is, de nem kötelező).
VIR6: Számítógép monitorozó kliens és szerver megvalósítása (REST)
Írjunk egy REST kommunikáción alapuló szerver és kliens modult. A kliens feladata, hogy egy számítógépen folyamatosan fusson, és percenként teljesítmény adatokat küldjön a szerverre: CPU terheltség, memória fogyasztás, stb. A szerver implementálja a megfelelő REST végpontokat az adatok fogadásához, illetve lekérdezéséhez. A kliensnek legyen lehetősége az egyes paraméterek múltban elküldött értékeit visszakérni egy adott intervallumon belül. Az adatokat a szerver valamilyen NoSQL adatbázisban tárolja el (megfontolható valamilyen time series adatbázis használata is, de nem kötelező).

Pontozás

  • 0 - 49: elégtelen (1)
  • 50 - 62: elégséges (2)
  • 63 - 75: közepes (3)
  • 76 - 88: jó (4)
  • 89 - 100: jeles (5)