„BPROF:2dm” változatai közötti eltérés

A Miau Wiki wikiből
(Program specifikáció)
(Program specifikáció)
64. sor: 64. sor:
 
fizikai
 
fizikai
 
=Program specifikáció=
 
=Program specifikáció=
Program célja<br>
+
==Program célja==
UI tervek
+
==UI tervek==
 
+
==Adattárolás==
Adattárolás
 
 
A keretrendszer az adatokat .json fájlokban tárolja.<br>
 
A keretrendszer az adatokat .json fájlokban tárolja.<br>
 
ezek: a beállítási adatok (téma,nyelv alapbeállítások), teszt adatok (kérdés,válasz lehetőségek)
 
ezek: a beállítási adatok (téma,nyelv alapbeállítások), teszt adatok (kérdés,válasz lehetőségek)

A lap 2022. november 10., 09:40-kori változata

Ez a szócikk a "Rendszertervezés" tantárgy keretében keletkező dokumentum, mely része a szakdolgozat mellékleteinek.

fogalmak

puzzle: X-szer Y-os háló, melyben a sorfejléc és oszlopfejléc attribútomok alapján kell elhelyezni az odaillő képet

keretrendszer: puzzle megjelenítő szoftver

log: minden tevékenység (egérmozgás,billentyűzet leütés, bill. kombináció) feljegyzése egy fájlban, dátummal felcímkézve

Megrendelői kezdeményezés

Létezik egy 2DM-játék (https://miau.my-x.hu/miau/254/2dm_kemia_demo/), amelyben a feladat egy 3x3-as hálóban különféle képeket elhelyezni az oszlop- és sor-fejlécek alapján. A létező 2DM-játék log-ja a vágólapra keletkezik a JavaScript lehetőségei mentén. Az új rendszerben a sebezhetőségek minimalizálása, csalás minden mennyiségű kizárása a cél.

Feladat:

  • Új játék tervezését és
  • futtatását támogató keretrendszer kialakítása úgy, hogy
  • a keretrendszer által olyan output kialakítása, mely a jelenlegi 2DM-megoldás által azonnal futtatható

Nem feladat:

  • online kollaboratív munka támogatása
  • adatbázis-alapú megoldás kialakítása

Rendszer megrendelővel egyeztetett követelményei

optimális (tesztelt):

  • windows 11
  • Intel Core i5 11th gen
  • 16GB ram

választott technológiák:

  • Programnyelv: C#
  • Adattárolás: JSON

Egyéb funkciók

  • UI személyre szabása előre elkészített, akár a felhasználók által személyre szabott téma segítségével

(színvilág/színharmónia nem ellenőrzött, a téma tervezőjének kell figyelnie arra, hogy a felhasznált színek nem olvadnak egybe egymással)

  • nyelvek támogatása, akár a felhasználók által definiált szótár segítségével

(szótár helyessége nem ellenőrzött, nincs kizárva akár a halandzsa nyelv használata sem)

folyamat

Ötletek

  • Github-on puzzle katalógus repo, amibe bárki bele tud committolni. (A dolgozatíró jóváhagyásával)
  • Ezt fetchelne az alkalmazás és így ott is meg tudna esetlegesen jelenni egy külön marketplace nézet, és innen lehetne aktiválni egy egy témát.
  • puzzle inditasakor a puzzlet letrehozo szemely által elvárt azonosító input (neptun kod,nev,becenév stb (nem kell ezzel foglalkoznom h valid-e,mert nekem elég ha egy string az output))- Ez is belekerülne a logfajlba, mely segítené a teszt írójának beazonosítását.
  • előző ellentéte: puzzle anonim leadásának lehetősége
  • puzzle kiértékelése a tanár részéről:
    • output fajlokat osszeszedi (nem erdekel, hogy hogyan, emaillel beküldik a diákok stb….), és beolvastatja a programmal, ami csinal egy egyszeru excel táblát, akár kimutatásokkal
  • puzzlek között lépkedni lehet előre hátra, ha van több puzzle (ezt a puzzle szerkesztője engedélyhezheti/tilthatja le)
  • teszt folytatasanak engedelyezese is tanartol fuggjon, logolva lesz a szüneteltetés
  • tesztben a kép pathje nem képre mutat,hanem egy más fajta fájlra, akkor ezt le kell kezelni (ilyen hiba case-eket ki kell listázni, és ki kell küszöbölni)


logger teszt irása közben:

logolni fogja a szoftver a user általi: alkalmazás váltást, alkalmazás minimalizálást, és az ezekhez tartozó időpontot is log az egyenlore egy txt fajl “log {timeOfStart}.txt”

Rendszer specifikáció

logikai fizikai

Program specifikáció

Program célja

UI tervek

Adattárolás

A keretrendszer az adatokat .json fájlokban tárolja.
ezek: a beállítási adatok (téma,nyelv alapbeállítások), teszt adatok (kérdés,válasz lehetőségek)

"puzzles": [
   {
     "question": "value",
     "correctGridOrder": {
       "1": "C:/Users/x/Y/kep1.png",
       "2": "C:/Users/x/Y/kep2.png",
       "3": "C:/Users/x/Y/kep3.png",
       "4": "C:/Users/x/Y/kep4.png",
       "5": "C:/Users/x/Y/kep5.png",
       "6": "C:/Users/x/Y/kep6.png",
       "7": "C:/Users/x/Y/kep7.png",
       "8": "C:/Users/x/Y/kep8.png",
       "9": "C:/Users/x/Y/kep9.png"
     }
   },…
]