Kihagyás

Kötelező program

Feladatleírás

A kötelezően megvalósítandó program egy blog alkalmazás. A blognak a következő elemekkel, funkciókkal kell rendelkeznie:

  • Blog bejegyzés írása/szerkesztése/törlése
  • Blog bejegyzések listázása (kronológiai sorrendben)
  • Keresés a blogbejegyzések között:
    • Alap keresés: blogpost címe alapján
    • Részletes keresés: bejegyzés szövegében, szerző neve, dátum (tól-ig)
  • Minden blogbejegyzésnek rendelkeznie kell a következőkkel:
    • Cím
    • Létrehozás dátuma
    • Blogbejegyzés szerzője
    • Kategória vagy kategóriák (külön entitásként kezeljük)
  • A rendszerben minden felhasználó rendelkezik a következő tulajdonságokkal
    • Név (kötelező)
    • Email cím (kötelező)
    • Jelszó (kötelező)
    • Profilkép (opcionális)
    • Születési dátum (opcionális)
    • Aktív-e
  • A kategóriák csak egy névvel rendelkeznek
  • A blogbejegyzésekhez lehet kommenteket írni
  • A blogbejegyzéseket és a kommenteket lehet kedvelni/nem kedvelni

A blog alkalmazásban 3 szerepkör van jelen:

  • Vendég
    • Csak olvasni tudja a blogot, illetve tud keresni a bejegyzések között, továbbá látja a felhasználók profiljait
  • Regisztrált felhasználó
    • Írhat saját bejegyzést, melyet szerkeszthet/törölhet is
    • Like-olhat bejegyzést, kommentet
    • Szerkesztheti a saját profil oldalát
  • Adminisztrátor
    • Bármit szabadon létrehozhat/módosíthat/törölhet/listázhat a felületen
    • REST API használat
      • Alapműveletek támogatása (létrehozás, listázás, törlés, módosítás) -- elegendő egy entitáshoz pl. a blog bejegyzésekhez megvalósítani REST támogatást, de ezen túl természetesen az alkalmazás tetszőleges részén lehet REST-es megvalósítást használni.

A megvalósítás során követendő további követelmények:

  • Regisztráció támogatása
  • Bejelentkezés támogatása
  • A jelszavak kódolva történő tárolása
  • Az authentikáció ne egyszerű HTTP Basic auth legyen
  • A fejlesztés során legyen legalább két profil alkalmazva:
    • dev (H2 DB-t használjon)
    • prod (MySQL, PostgreSQL használat)
  • Ahol van értelme ott tranzakcionális műveletek támogatása
  • Az adat réteget Spring Data technológiával oldjuk meg (Spring JPA, Spring JDBC)
  • Az összes entitáshoz tároljuk a létrehozás, utolsó módosítás dátumát és személyét (Auditing)
  • Az alkalmazás egy része legyen tesztelve (JUnit használatával)

Az alkalmazás további bővítési lehetőségeit mindenki saját maga választhatja meg. A fenti követelményektől való eltérést előre az oktatóval kell egyeztetni!

Technológiai megkötések

Az alkalmazást Spring Framework segítségével kell megvalósítani. Third-party library használatában nincs megkötés. A front-end legyen valamilyen Java-s template engine-el megvalósítva, legyen az:

  • Thymeleaf
  • FreeMarker
  • Mustache
  • ...

Határidők

  • 2021.10.28: 1. mérföldkő: Az előadás kezdetéig fel kell tölteni egy kezdeti megoldást, amely már tartalmazza a projekt vázát és a megoldás kezdeményét/terveket (kezdetleges adat osztályok, controller-ek, template-ek, stb.).
  • 2021.11.18: 2. mérföldkő: Az előadás kezdetéig fel kell tölteni a megoldás egy olyan verzióját, amely funkcionálisan még nem teljes, de már vannak jól működő részei.
  • 2021.12.06 23:59: 3. mérföldkő: A kötelező program leadásának végső határideje. Az utolsó előadást/gyakorlatot megelőző hétfő éjfélig fel kell tölteni a végső megoldást.

Beadás formája

  • A megoldásokat mindenki a nevére létrehozott GitLab projekthez kell feltöltse.
  • A megoldásnak kizárólag a forrás fájlokat kell tartalmaznia, bináris fájlok felöltése TILOS.

Utolsó frissítés: 2021-10-23 14:42:37
Back to top