diff --git a/README.md b/README.md index 2e1da5f..4a604a9 100755 --- a/README.md +++ b/README.md @@ -1,15 +1,68 @@ -# Question server +# Multifunkcionális Express.js szerver -Install: +## Rövid leírás: +Ez egy Express.js-re épülő node.js szerver, ami egyszerűen kezelhető modul-rendszerrel és különböző alap funkciókkal lett kiegészítve. -Requires node.js. +## Telepítés / Indítás +`npm install` majd `npm start` +Szükséges könyvtár struktúrát és egyéb fájlokat automatikusan létrehoz. -`npm install` +## Eddigi modulok +### qmining +Backend és weboldal a [Moodle/Kmooc teszt megoldó kliens](https://gitlab.com/MrFry/moodle-test-userscript)hez. A `./public` mappában található `data.json` fájlból tölti be az összes kérdést, és szolgálja ki a klienseket. Beállított időnként ebbe menti az új kérdéseket is, és a `./public/backs` mappába másol biztonsági mentéseket. Főoldalán `./public/qa` fájlból jeleníti meg a felhasználók kérdéseit, és az üzemeltető válaszait, amit manuálisan kell szerkeszteni. -then +Fontosabb oldalak: +| név | leírás +| --- | --- | +|/legacy| Összes kérdés/válasz egy oldalon | +|/isAdding| Erre a címre POST-olja a kliens az új kérdéseket | +|/ask | Ezt a címet kéri le paraméterezve a kliens ha kérdésre keres | -`node server.js` +### stuff +Egyszerű fájlböngésző, ami a `./public/files` mappa tartalmát listázza ki böngészőben -Should auto generate needed folder structure +### sio +Egyszerű oldal a szerverre való fájlfeltöltés megkönnyítésére -Client +### main +Főoldal / minta modul + +# Üzemelés + +## Új modul létrehozása +Javasol a 'main' modul másolás, és átnevezése a `./modules` mappában, abban szinte minden alapvető funkció benne van. Majd a `./modules.json` fájlba egy új bejegyzést kell létrehozni a többi alapján. Ezt a `./extraModules` fájlban is meg lehet tenni, ami csak azért létezik hogy privát modulokat ne kelljen git-re feltölteni. + +A szerver `vhost` csomagot használ, és több aldomainje van, amikre érdemes figyelni + +## ./stats mappa +Ebben található az összes statisztika és naplófájl +| név | leírás +| --- | --- | +|./stats/logs | részletes request napló | +|./stats/nlogs | fontosabb request napló | +|./stats/stats | összes lekért oldal JSON | +|./stats/vstats | napokba rendezett összes lekérd oldal JSON | +|./stats/idstats | Összes kérdés hozzáadó kliens egyedi azonosító statisztika JSON | +|./stats/idvstats | Összes kérdés hozzáadó kliens egyedi azonosító napokba rendezve JSON | + +## ./utils mappa +Különböző hasznos eszközök +| név | leírás +| --- | --- | +| logger.js | minden naplózást kezel | +| dbcheck.js | paraméterként kapott adatbázist ellenőrzi, hogy van-e a kérdéseknek `.Q` propertyje, ami a régi fajta módszernél volt használatos | +| actions.js | qmining modul beérkező kérdés feldolgozás | +| utils.js | alapvető eszközök, pl fájl beolvasás | +| motd.js | `data.json` és ./public/motd -be írja a paraméterként kapott szöveget | +| ids.js | egyedi felhasználó azonosítókat írja statisztika fájlba | +| dataUpdater.js | régifajta adatbázist, amiben még van `.Q` propertyjű kérdés alakít át | +| changedataversion.js | `data.json`-ban és a ./public/version ban írja át a teszt megoldó kliens aktuális verzióját +| merger.js | Paraméterként kapott adatbázisból törli az egyező bejegyzéseket, és egyesíti egy fájlba +| merge.sh | Biztonsági mentést készít, és egyszerűsíti az adatbázist, majd felülírja az újjal | +| question-classes/classes.js | Összehasonlításhoz és tároláshoz szükséges osztályok | + +# Egyéb +Jelenleg sok optimalizálatlan rész található benne, cél ezek kijavítása, szépítése + +# Licensz: +GPLv3