A program egy nagyon egyszerű kis többszemélyes játék. A játék arról szól hogy a különböző küldetésekben végül ki jut el a legvégéig. A klánok szükségesek ahhoz hogy a vége felirathoz eljussanak az egyes játékosok.
A jelenlegi beállításokkal lehet tesztelni az alapműveletek. Később majd jó szórakozást a játékhoz.
A 3. beadandóhoz való dokumentáció a 4. Fejezettől kezdődik.
- Regisztráció
- Bejelentkezés
- Klánok vizsgálata
- Bejelentkezett felhasználóknak
- Klán létrehozása
- Boltban való böngészés
- Klánhoz való csatlakozási kérelem
- Klánhoz csatlakozás ha érkezett meghívó
- Küldetésekben haladni (naponta egyszer)
- Klánon belüli bejelentkezett felhasználóknak
- Tagok
- Adományozás
- Admin/helyettes
- Kirúgás
- Új emberek meghívása
- Csatlakozási kérelmek elfogadása
- Készítő
- Adminisztrátorrá való fölfejlesztés
- Tagok
- Felhasználóbarát: Megfelelően elhatárolt funkciók. Világos látható színekkel írt betűk. Ésszerű elrendezés
- Biztonság: Jelszóval védett funkciók. A jelszavak titkosítottak. A különböző űrlapoknál egy hibalistában kijelzi a program a hibákat.
- Gyors működés: Adatbázisban operáló program, gyors kereséssekkel hamar előállítja a kívánt eredményeket.
- Változatos történetek: A küldetések folyamatosan bővülhetnek. Újabb történettel rendelkező küldetések jelenhetnek meg.
- Vendég
- Bejelentkezett Felhasználó
- Klán
- Tag
- Admin/helyettes
- Készítő
- Először bejelentkezünk a szolgáltatásba
- Kiválasztjuk a küldetés listát a profilnál legördülő menünél
- Kiválasztjuk a következő küldetést
- Ha csata van akkor lekell küzdeni az ellenfelet, különben egy egyszerű feladványt/feladatot kell megoldani
- Ha sikerül akkor megkapjuk a küldetésért járó díjat különben újra.
- Főoldal
- Klán részletek (tagjai, neve, fejlesztéseinek állapota)
- Játékos adatai
- Bolt
- Küldetések
- Játékos adatai
- Klán készítése
- Csatlakozási kérelem küldése
- Meghívó elfogadása (ha van)
- Bolt
- Küldetések
- Játékos adatai
- Klán készítése
- Csatlakozási kérelem küldése
- Meghívó elfogadása (ha van)
- Klán adatai
- Adományozás
- Klán adatai
- Kirúgás
- Meghívó küldése
- Kérelmek elfogadása
- Klán adatai
- Előfejlesztés
-
GET/
- /: Főoldal
- /login: bejelntkező oldal
- /register: regisztrációs oldal
- /logout: kijelentkezés
- /shop: bolt
- /quests: küldetések listája
- /quests/:quest_id:
quest_id
küldetés mutatása - /quests/:quest_id/battle : A
quest_id
-hoz tartozó csata oldal megnyitása (kliens oldali rész kell még) - /create_clan: Klán készítése
- /players/:user_name
- /invites: meghívók elfogadásának az oldala
- /ask: kérés küldő oldal
- /details:
user_name
játékosnak a játékos adatlapjának a mutatása
- /clans/:clan_name
- /donation: adományozó oldal
- /invite: meghívók küldésének az oldala
- /requests: kérések elfogadásának oldala
- /details:
clan_name
klánnak a részletes adatlapja - /kick: játékos eltávolításának oldala
- /promote: játékos előléptetésének oldala
-
POST/
- /clans/:clan_name
- /details: clán adatainak lekérése
- /donation : adományozás a céhnek
- /invite : játékos meghívása céhbe
- /requests : játékos csatlakozási kérelmének elfogadása
- /kick : játékos kirúgása a céhből
- /promote : játékos előléptetése vagy lefokozása a céhben
- /players/:user_name
- /details : tárgy eladása az eszköztárból
- /invites : a meghívó céhbe való csatlakozás
- /ask : csatlakozási kérelem elküldése
- /login : Bejelentkezés
- /create_clan : klán létrehozása
- /register : Regisztráció az oldalra
- /shop : tárgy vásárlása
- /quests/quest_id : küldetés teljesítése
- /clans/:clan_name
Felhasználó
Klán tag
Klán admin
Klán készítő
Készítőként klán oldal mockup
Bejelentkezés mockup
Főoldal mockup
Játékos adatlap mockup
Küldetés lista mockup
Példa quest mockup
Regisztráció mockup
Promote kick invite, shop mockup
Lokális IDE: Visual Studio Code
- Github account nem szükséges, de hasznos
- Hozzunk létre egy munkakönyvtárat
- node.js-el töltsük le az adonisJS-t
- adonissJS hozzuk létre a fejlesztő környezetet
- Ezen a munkaterületen elkezdhetünk kódolni
- Miután végeztünk a munkával elmenthetjük lokálisan vagy github-ra
- Githubra először a Visual Studio-n belül a Stage All-al kijelöljük a pusholni kívánt fájlokat majd commit-áljuk őket. Ezután a Push paranccsal föltölthetjük a github accountunkra
-
Controllers
- ClanController.js
- ItemController.js
- PlayerController.js
- QuestController.js
- UpgradeController.js
- UserController.js
-
Models
- BasicJournal.js
- Clan.js
- Hooks
- Inventory.js
- Item.js
- Member.js
- Player.js
- Quest.js
- Token.js
- Upgrade.js
- User.js
-
Migrations
- 1476890630864_create_users_table.js
- 1476890630865_create_tokens_table.js
- 1476890776416_clans.js
- 1479026035787_players.js
- 1479026049180_items.js
- 1479026057849_quests.js
- 1479036276167_basic_journals.js
- 1479037149688_inventories.js
- 1479058984745_upgrades.js
- 1479212234298_members.js
- 1480193661488_invites.js
- 1480240245051_requests.js
- 1480268487520_battles.js
-
Views
- askForInvite.njk
- clan.njk
- createClan.njk
- donation.njk
- invite.njk
- inviteRequests.njk
- kick.njk
- layout.njk
- listInvites.njk
- login.njk
- main.njk
- master.njk
- player.njk
- promote.njk
- questList.njk
- quests
- register.njk
- shop.njk
- welcome.njk
-
server.js
A szekvencia diagram egy felhasználó regisztrálását és azon belül is egy új klán létrehozását illuszrtrálja.
- donate.js
donateGold()
: A funkció kiírja, hogy az adományozott érték után mennyi pénz marad a játékosnak. A funkció akkor fut le mikor beírunk valamit a donate oldalon lévő mezőbe
- login.js
loginOrRegister(e, which)
: Aze
paraméter a kiváltott eventből jön. Awhich
egy string mely vagy login vagy register. Awhich
- től függően változik a modal működése. Aform
elküldésekor fut lesendData(e, where, $error, $modal)
: AJAX-al elküldi az adatokat vagy a register-hez vagy login-hoz awhere
-től függően. Aform
elküldésekor fut le
- shop.js
ajaxShop(e)
: AJAX segítségével elküldjük az adatokat a szervernek, hogy mely tárgyat szeretnénk kérni. Ezt a választ a<h1>
-be kapjuk vissza mintha az eladó mondaná a problémát, vagy sikeres tranzakciót
- clanMainPage.js
ajaxUpgrade(e)
: AJAX segítségével elküldjük az adatokat a szervernek, hogy melyik fejlesztést akarjuk megvásárolni.disablePurchase()
: Ellenőrzi, hogy mennyi pénze van a céhnek és atttól függően letiltja a vásárlást a különböző fejlesztésekre. A Buy gomb lenyomásakor fut le
- battleScript.js
battle(e)
: A harcért felelős fő funkció. Kiszámolja ki kezd egy érmeföldobással, és aszerint kezdi meg a játékot. Az oldalon lévő Battle gombbal fut le ez a funkció.attack(who)
: Awho
paraméterben megadjuk, hogy ki támad kit. Ez a funkció kiszámolja, a sebzést és visszaadja a végén. A funkció random generál egydodge
és egylucky
változót. Alucky
ha kisebb mint awho
szerencséje és adodge
nem a kétszerese alucky
-nak akkor kritikus csapás történik azaz a sebzés a kétszerese lesz. Ha adodge
legalább négyszerese alucky
-nak akkor a sebzés 0 lesz. Ha egyik sem sikerül akkor egy szimpla támadás történik.sendData(e, $modal)
: AJAX segítségével elküldjük a szervernek hogy milyen ajándékot választottunk.rewardModal(e)
: Megjeleníti a választható díjakat egy modal dialogús ablakbanequip(e)
: Frissíti az adatokat a játékos adatlapján aszerint melyik fegyvert választjuk. Ha elkezdődött a harc, akkor az életerőt már nem lehet módosítani
- Egy elvégzett küldetésbe nem lehet visszamenni ha beírjuk a keresősávba a szükséges adatokat (QuestController)
- Harc implementálva JavaScripttel (QuestController.battle, battle.njk)
- Ajaxos funkciók névszerint:
ajaxRegister
,ajaxLogin
,ajaxComplete
,ajaxBuy
,ajaxPurchase
(UserController, QuestController, UpgradeController, ItemController)
- Szükséges a Mozilla Firefox Telepítése
- Klikkeljünk az Add to Firefox gomb-ra
- Klikkeljünk a telepítésre.
- Klikkeljünk az újraindításra.
Ellenőrízzük hogy látható a telepített Selenium IDE ikon. Ha nem akkor:
- Klikkeljünk a menüre azonbelül a testreszabásra, ahol látható lesz a Selenium IDE
- Fogjuk meg és tobjuk bele az eszköztárba a Selenium IDE-t
Ha ez nem működik akkor:
- Klikkeljünk a menüre és kapcsoljuk be a fejlesztői módot
- E-mail: test@test.com, jelszó: test
- E-mail: test2@test.com, jelszó: test
- E-mail: test3@test.com, jelszó: test
- E-mail: test4@test.com, jelszó: test
A teszteket a test@test.com felhasználóval lehet alapból végrehajtani és szükséges a test4@test.com felhasználó a léptetésekhez. Ezeket az adatbázisban alapból beállítottam. Továbbá az adományozáshoz és a kard vásárláshoz szükséges hogy elegendő pénzmennyiség legyen. Ezeket az adatbázisban lehet módosítgatni, illetve küldetés gyors végrehajtásával szerezni. A fájlokat a tests mappában találjuk.
- Bejelentkezés
- Helyes adatokkal (TestSuite: login)
- Helytelenül (TestSuite: loginFail)
- Adományozás (TestSuite: donate) (alapból elég legalább 1 arany)
- Egy vas kard vásárlása (alapból 50 arany kell hozzá)
- Már van egy az eszköztárban (TestSuite: shop)
- Még nincs az eszköztárban (TestSuite: shopNew)
- Előléptetés/lefokozás (test4-et a TestClan2-ből)
- Elő (TestSuite: promote)
- Le (Testsuite: demote)
Végeredményben mindegyiknek a végén hiba nélkül kell lefutnia. És ilyet kell látnunk
A program bármilyen operációs rendszeren futtatható. Javascript szükséges a harc típusú küldetésekhez
- Kegy NodeJS és az npm amit itt lehet letölteni : www.npmjs.com/get-npm
- Internet elérés
- Látogasson el a github.com/Telmike91/alkfejlszerver oldalra
- Itt kattintson a "Clone and Download" gombra, és azon belül kattintson a "Download as Zip" gombra.
- A letöltött állományt csomagoljuk ki
- npm i parancsot adjuk ki parancssorban a kicsomagolt állomány mappájában.
- .env.example-t nevezzük át .env-re és állítsuk be tetszés szerint
- npm start-al elindíthatjuk a programot (Allapesetben localhost:3333-on fut a program)
- Böngészőben a keresősávba írjuk be az .env fájlban megadott elérést. (Alapeset: localhost:3333)
- Regisztrálás és bejelentkezés után használhatjuk a programot.