Blog

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 rendelkezik 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 keresni, 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
    • Profil oldal
  • 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)

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 autentiká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
  • 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

  • 2020.11.18: 1. mérföldkő: az előadás kezdetéig el kell küldeni a kötelező programot az oktatónak, mely tartalmazza a megoldás kezdeményt. Ezen a gyakorlaton a kötelező programokról konzultációs órát tartunk.
  • 2020.12.06 23:59: Kötelező program leadásának végső határideje. A kötelező programot email-ben, zippelve kell elküldeni a stud-os email címről. A zip-be kérem senki ne tegye bele a binárisokat!

Utolsó frissítés: 2020-10-05 08:08:27