Kihagyás

Példa nagy házi feladat specifikáció

Követelmény specifikáció

Egy webáruház rendszert kell megvalósítani, amely lehetővé teszi a vásárlók számára, hogy termékeket rendeljenek, és az üzlet dolgozói számára, hogy kezeljék a rendelések feldolgozását és a termékek kezelését.

  • A vásárlók böngészhetnek a termékek között
  • A vásárlók termékeket adhatnak a kosarukhoz és leadhatják a rendeléseiket
  • Az üzlet dolgozói megtekinthetik a sorban lévő rendelések listáját
  • Az üzlet dolgozói megtekinthetik a megrendelések részleteit és kezelhetik azok állapotát (Pending, Completed)
  • Az üzlet dolgozói CRUD műveleteket végezhetnek a termékeken (létrehozás, megtekintés, módosítás, törlés)
  • A rendszer teszteléséhez virtuális vásárlók és dolgozók szimulálják a rendelés leadását és teljesítését

Architektúra és technológiák

A szolgáltatások konténerizált mikroszolgáltatásokként lesznek megvalósítva kubernetes környezetben.

A szolgáltatások vágása elsősorban felhasználói történeteken alapul: ügyfél oldali megrendelési funkciók, adminisztrátori megrendelési funkciók, általános termékekkel kapcsolatos funkciók. A megrendeléseket kezelő szolgáltatások üzenetsoron keresztül kommunikálnak a laza csatolás érdekében.

Az ügyfeleknek és az adminisztrátoroknak külön frontend alkalmazás készül, amelyek API Gateway-en keresztül kommunikálnak a backend szolgáltatásokkal.

A komponensek listája, rövid leírása és technológiái a következők:

Szolgáltatás Technológia Leírás
store-front Vue.js Webalkalmazás, amelyen keresztül a vásárlók rendeléseket adhatnak le
store-admin Vue.js Webalkalmazás, amelyet az üzlet dolgozói használnak a sorban lévő rendelések megtekintésére és a termékek kezelésére
product-service Rust Ez a szolgáltatás a termékek CRUD műveleteit végzi memóriában, perzisztens tár nélkül
order-service Javascript Ez a szolgáltatás a rendelések leadására szolgál, ami az üzenetsorba küld üzeneteket
makeline-service Golang Ez a szolgáltatás kezeli a rendelések feldolgozását, perzisztálását üzenetsorból és üzleti műveletekent nyújt a megrendeléshez
megrendelések db MongoDB NoSQL adatbázis a megrendelések adatainak tárolásához
aszinkron üzenetsor RabbitMQ Aszinkron üzenetsor a megrendelések kezelésére
API Gateway Traefik Az alkalmazás publikus belépési pontjai a frontendek felől
virtual-customer Rust Ütemezetten szimulálja a rendelés létrehozását
virtual-worker Rust Ütemezetten szimulálja a rendelés teljesítését

A komponensek közötti kapcsolatok az alábbi ábrán láthatók:

architektúra


2025-11-03 Szerzők