# Funkcionális Specifikáció
1. ***Rendszer céljai és nem céljai.***
**A rendszer céljai :**
* Minden felhasználó számára kellemes kikapcsolódás teremtése
* Egyszerű időtöltés bármilyen helyzetben
* Egy platformon belül, több lehetőség választása
* Gyors és egyszerű alkalmi játékok használata
* Felhasználóbarát és kellemes megjelenés
* A játékok között könnyű váltakozási lehetőség
**A rendszer nem céljai :**
* Bonyolult játékmechanikák
* Összezavaró menürendszer, kezelőfelület
* Kötelezni a felhasználót személyes adatok megadására ( Nagyprojekt esetén változik )
* Reklám megjelenítések
* Hosszas, unalmas elfoglaltságok
2. ***Jelenlegi helyzet leírása***
Egy közös, jól kinéző kezdőlap melyből könnyen és egyértelműen tudunk játékot választani. Egyszerű játékváltások és játékmechanizmusok. Három darab alapjáték beépítve amit a felhasználó kedvére játszhat amikor csak akar. Jelenleg egyszemélyes játékmódra van csak lehetősége a felhasználóknak, az adatokat pontrendszer formájában még nem menti az oldal.
3. ***Vágyálomrendszer leírása***
A vágyálomrendszer egy jól működő, sok érdekes egyszerű viszont szórakoztató játékot tartalmazó platform ahol bármelyik korosztály akár 1-2 percre vagy akár hosszasabb időre is letudja kötni magát. Egy teljesítés alapján bevezetett pontrendszerrel akarjuk növelni azt az élményt ha a felhasználók egymás ellen vagy akár csak magukkal akarnak versenyezni, így sarkalva mindenkit a jó és minél tökéletesebb játékra. A játék eltárolja a játékos által játszott meccsek eredményét, így képes nyomonkövetni azokat. Mindezek mellett kétszemélyes játékokat akarunk az oldalra és az eddigi egyszemélyes játékokat (amelyeknél lehetséges) átírni úgy ,hogy a felhasználóknak legyen opciójuk azokat ketten is játszani.
4. ***Jelenlegi üzletek folyamatok modellje***
* Fizetős, regisztrációhoz kötött oldalak
* Bonyolult kezelői felületek
* Minden játék mellé legalább 3 reklám megjelenítése
5. ***Igényelt üzleti folyamatok modellje***
* Ingyenes, nem regisztrációhoz kötött kikapcsolódás
* Letisztult, frappáns kezelőfelület
* Reklámmentes és gyors oldal
* Az egyszerű de nagyszerű gyors kikapcsolódás elérése
6. ***Követelménylista***
**(v1.0)**
| ID | Név | Kifejtés |
|---|---|---|
| 1 | Szerver| Legyen hostolva, és megfelelően működik a webalkalmazás |
|2|Kliens - Kezdőlap| A felületen eldöntendő játékok választási lehetőségeket kell megjeleníteni, amelyek opcióit a "Játék" gomb felirat megnyomásával lehet választani|
|3|Kliens - Akasztófa játék | Megfelelő szabályok alkalmazásával. Lehessen választani választható karaktereket, és jelenítsen meg megfelelő eredményt. Ha nyer, akkor jelenítsen meg győzelem feliratot, különben vesztes feliratot és megoldást ad eredményül. |
|4|Kliens - Kő-papír-olló játék | A játékos által választott opciók közül (kő,papír,olló) a megfelelő kézjel mutatása. A gépi ellenfélnél véletlenszerűen jöjjenek a kézjelek. A szabályoknak megfelelően történjen a pontozás (kő>olló,olló>papír,papír>kő). Amelyik játékos hamarabb éri el a három pontot azt kiáltsa ki nyertesnek. |
|5|Kliens - Memória játék | Megfelelő szabályok alkalmazásával. Lehessen választani választható kártyákat, és jelenítsen meg a kártyának képét. Ha mindkét kép/kártya páros, akkor maradjon meg, különben visszafordul hátlapjára. Ha adott időn belül eltalál az összeset, akkor nyer, különben veszít.|
|6|Kliens - Játék közben vagy után visszalépése| Biztosítsa, hogy visszalehessen lépni a kezdőlapra.|
8. *Használati esetek*
Azokban az esetekben, amikor az egyén egy könnyebb kikapcsolódásra vágyik.
11. *Megfeleltetés, hogyan fedik le a használati esetek a követelményeket*
**Kezdőlap**:
- Form (GET kérés) - Megfelelő játékhoz való irányítására
**Játékok**:
- Form (GET kérés) - "Vissza" gomb megnyomásával a kezdőlap átirányítása
- Javascript submit - Új játék kezdése
12. *Képernyőtervek*
Kezdőlap megjelenítése

Akasztófa játék

Akasztófa győzelem

Akasztófa veszít

Memória játék

Kő-papír-olló játék

11. *Forgatókönyvek*
- Két szereplő
- **Szerver** (Üzemeltetés)
- Szerver futtatása
- Webalkalmazás biztosítása
- GET kérés hallgatása
- Adatbázis futtatása, tárolása
- **Kliens** (Felhasználó)
- Kezdőlap
- Egyjátékos mód
- Játék kiválasztása
- Akasztófa
- Kő-papír-olló
- Memória
- Kétjátékos mód
- Játékosnév lekérése
- Szoba létrehozása
- Játék kiválasztása/csatlakozása
13. *Funckió - követelmény megfeleltetés*
A játék megjelenítéséhez egy közös HTML (+CSS,JS) lap készül, itt egy kattintással dönthet majd a felhasználó, hogy melyiket
kívánja játszani.
15. *Forgalomszótár*
- **HTML5**:
*A HTML5 a HTML (Hypertext Markup Language, a web fő jelölőnyelve) korábbi verzióinak az átdolgozott változata.*
- **JavaScript**:
*A JavaScript programozási nyelv egy objektumorientált, prototípus-alapú szkriptnyelv, amelyet weboldalakon elterjedten használnak.*
- **Node.js**:
*A Node.js egy szoftverrendszer, melyet skálázható internetes alkalmazások, mégpedig webszerverek készítésére hoztak létre. A programok JavaScript-ben írhatók, eseményalapú, aszinkron I/O-val a túlterhelés minimalizálására és a skálázhatóság maximalizálására.*
- **CSS**:
*A Cascading Style Sheets egy stílusleíró nyelv, mely a HTML vagy XHTML típusú strukturált dokumentumok megjelenését írja le.*
- **JSON**:
*Egy egyszerű, ember által is olvasható szöveg alapú szabvány számítógépek közötti adatcserére. A JavaScript szkriptnyelvből alakult ki egyszerű adatstruktúrák és asszociatív tömbök (a JSON-ban „objektum” a nevük) reprezentálására.*
- **Bitbucket**:
*A Bitbucket egy Git-alapú forráskód-adattár tárhelyszolgáltatás, amely az Atlassian tulajdonában van.*
- **MongoDB**:
*A MongoDB nyílt forráskódú dokumentumorientált adatbázis szoftver. A NoSQL adatbázisszerverek közé tartozik. A dokumentumokat JSON-szerű formátumban tárolja.*
- **HackMD**:
*Ez egy online interaktív MarkDown szerkesztő.*