Dokumentáció 2. beadandó - abnagy/alkfejl GitHub Wiki

Alkalmazások fejlesztése 2. beadandó

0. Leírás

Az alkalmazás egy család pénzügyeit tudja kezelni. A bevételek és kiadások összességét lehet kezelni az alkalmazásban kategóriák szerint minden családtag számára.

1. Követelményanalízis

1.1 Követelmények

  • funkcionális:
    • lehet regisztrálni és bejelentkezni, különböző szerepkörönként
    • lehet tagokat hozzáadni/törölni/szerkeszteni a családhoz
    • lehet termékenként/családtagonként listázni
    • lehet a kiadásokat/keresetet hozzáadni/törölni/szerkeszteni
    • bevételeket es kiadásokat lehet kategorizalni pl. Bevétel: fizetés, zsebpénz. Kiadás: rezsi, élelmiszer
  • nem funkcionális:
    • legyen felhasználóbarát, egyszerűen kezelhető
    • jelszóval védett felhasználói felület

1.2 Szerepkörök

  • családfő/admin:
    • látja az összes felhasználó bevételeit és kiadásait
    • tudja módosítani az összes felhasználó bevételeit és kiadásait
    • adhat hozzá új tpusokat, üzeneteket
  • családtag/felhasználó:
    • látja a saját bevételeit és kiadásait
    • módosíthatja a saját bevételeit és kiadásait
    • a többi felhasználó bevételeit és kiadásait nem láthatja és nem módosíthatja
    • adhat hozzá új típusokat, üzeneteket

1.3 Szakfogalmak

  • fizetés: rendszeres munkahelyen megkeresett pénzösszeg
  • zsebpénz: rendszeres családon belül cserélt pénzösszeg
  • ajándék: családon belülről vagy családon kívülről származó nem rendszeres bevétel vagy kiadás
  • kiadás/kereset: negatív vagy pozitív pénzmozgás egy adott felhasználónál
  • családfő: a család azon tagja, aki a pénzügyeket kezeli és hozzáférése van minden felhasználó tanzakcióihoz
  • családtagok: a család azon tagjai, akik nem családfő szerepkörben vannak, tehát nem férnek hozzá más felhasználók tanzakcióihoz

2. Fejlesztői környezet és használt technológiák

  • NetBeans használata
  • h2 adat-báziskezelő rendszer
  • Java Spring Boot technológia használata
  • MVC modell
  • REST API
  • authorizált végpontokkal

3. Adatbázis-terv

3.1 Adatbázis-táblák

  • Transaction
  • User
  • Type
  • Message

3.2 UML-diagram

UML Diagram

4. Tervezés

4.1 Oldaltérkép

  1. Bejelentkezés
  2. Bejelentkezett adminisztrátor funkciói
  • Összes tranzakció megtekintése
  • Tranzakciók módosítása
  • Tranzakciók törlése
  • Tranzakció felvétele
  1. Bejelentkezett felhasználó funkciói
  • Saját tranzakciók megtekintése
  • Saját tranzakciók módosítása
  • Saját tranzakciók törlése
  • Saját tranzakciók felvétele (Minden felhasználó és adminisztrátor az új tranzakciók felvételekor fel tud venni új típusokat, üzeneteket.)

4.2 Végpontok

  • GET/ Főoldal
  • POST/register Regisztráció
  • POST/login Bejelentkezés
  • TRANZAKCIÓK
  • GET/transactions Tranzakciók listája
  • GET/transactions/id Tranzakciók ID alapján történő listázása
  • POST/transactions Új tranzakció felvétele
  • PUT/transactions/id Meglévő tranzakció ID alapján történő szerkesztése
    • Megkeresi az adott ID-t a tranzakciók listájában és ha megtalálta akkor elmenti a rá vonatkozó változtatásokat, ha pedig nem talál olyan ID-t, akkor visszatér NotFound-dal.
  • DELETE/transactions/id Meglévő tranzakció ID alapján történő törlése
  • GET/transactions/id/messages Tranzakciókhoz tartozó üzenetek listája ID alapján
  • POST/transactions/id/messages Tranzakciókhoz tartozó üzenet hozzáadása ID alapján
  • GET/transactions/id/types Tranzakciókhoz tartozó típusok listája ID alapján
  • POST/transactions/id/types Tranzakciókhoz tartozó típus hozzáadása ID alapján
  • PUT/transactions/id/types Tranzakciókhoz tartozó típusszerkesztése ID alapján
  • TÍPUSOK
  • GET/types Típusok listája
  • GET/types/id Típusok listája ID alapján
  • POST/types Típusok hozzáadása
  • PUT/types/id Típusok szerkesztése ID alapján
  • DELETE/types/id Típusok törlése ID alapján
  • ÜZENETEK
  • GET/messages Üzenetek listája
  • GET/messages/id Üzenetek listája ID alapján
  • POST/messages Üzenetek hozzáadása
  • PUT/messages/id Üzenetek szerkesztése ID alapján
  • DELETE/messages/id Üzenetek törlése ID alapján

4.3 Felhasználói modell

  • Adminisztrátor admin
  • Felhasználó user