Egy optimalizáltabb E-kreta felület (csak adatolvasásra alkalmas)
Find a file
2026-09-10 13:47:22 +02:00
public init 2026-09-10 13:47:22 +02:00
server init 2026-09-10 13:47:22 +02:00
package.json init 2026-09-10 13:47:22 +02:00
README.md init 2026-09-10 13:47:22 +02:00

Kréta+

Emberi felület az e-Kréta adataihoz. Csak olvasás — adatbevitel nincs benne.

Indítás

node server/index.js      # vagy: npm start

Ezután nyisd meg: http://127.0.0.1:4173

Nincs npm install, nincs build lépés, nincs függőség. Node 20+ kell (a natív fetch és a Headers.getSetCookie() miatt).

Port/host felülírása: PORT=8080 HOST=0.0.0.0 node server/index.js

Belépés

Mező Honnan
Intézményazonosító https://intezmenykereso.e-kreta.hu/ — a hosszabbik, klik… kezdetű kód
Felhasználónév oktatási azonosító (ugyanaz, mint a Krétában)
Jelszó ugyanaz, mint a Krétában

Mit lát

  • Áttekintés súlyozott átlag, igazolatlan órák, közelgő számonkérések és határidők, legutóbbi jegyek, tantárgyi átlagok sávdiagramon
  • Jegyek tantárgyanként csoportosítva, saját súlyozott átlagszámítással, jegyeloszlással, tantárgy/értékelési mód szűrővel, kinyitható részletekkel; a félévi és év végi jegyek külön blokkban
  • Órarend heti nézet óraszám-oszloppal (a 0. óra is külön sorként), hetek közti lépkedéssel, elmaradt óra / helyettesítés / házi / számonkérés jelöléssel; bármelyik órára kattintva előjön az összes mezője
  • Mulasztások igazolt / igazolandó / igazolatlan bontás, késések, tantárgyankénti összesítés
  • Házi feladatok, Számonkérések, Feljegyzések, Faliújság, Adatlap
  • Átnevezések saját nevet adhatsz tantárgyaknak, tanároknak, termeknek és csoportoknak. Csak a megjelenítést írja át: a csoportosítás és az átlagszámítás továbbra is az eredeti néven megy, így két azonosra átnevezett tantárgy sem olvad össze. A böngésző localStorage-ában tárolódik, a Krétához semmi nem megy vissza; a nézet alján ki-be másolható JSON-ként mentheted.
  • Diagnosztika megmutatja, mely adatcsomagokat adta vissza a Kréta, hány elemmel, és milyen mezőnevekkel. Értékeket nem tartalmaz, csak szerkezetet, így nyugodtan megosztható, ha valahol hiányos adat jelenik meg.

Az átlagot a kliens maga számolja az értékelések SulySzazalekErteke súlyaival, csak az évközi, számjegyes értékelésekből.

Tanév

Az oldalsáv alján választható a tanév (az utolsó négy). Ha nincs megadva, a szerver az aktuálisat kéri le — és ha az még teljesen üres (tipikusan augusztusszeptember elején, amikor az új tanévbe még nem került adat), automatikusan visszaesik az előzőre, hogy ne egy üres felület fogadjon.

A Kréta lekérdezési korlátai

A v3 API végpontonként máshogy viselkedik, ezt a server/kreta.js kezeli le:

Végpont Korlát Kezelés
Ertekelesek nincs intervallum-korlát egy kéréssel, a teljes tanévre
Mulasztasok max 3 hét 21 napos ablakokra bontva
HaziFeladatok max 3 hét 21 napos ablakokra bontva
Feljegyzesek max 1 hónap 28 napos ablakokra bontva
BejelentettSzamonkeresek max 1 hónap 28 napos ablakokra bontva
OrarendElemek hetente, ahogy a nézet igényli
TanevRendjeElemek sok fióknál 403 nem hiba; a felület halkan jelzi, hogy nem elérhető

A dátumot mindig YYYY-MM-DD formában kell küldeni: időrésszel (T23:59:59) a Kréta The field DatumIg is invalid hibával elszáll.

Az ablakokra bontott lekéréseket a ranged() végzi: párhuzamosan futnak, Uid szerint deduplikálva fűződnek össze, és egy-egy elhaló ablak nem viszi el az egész csomagot — csak akkor dob hibát, ha minden ablak elhasal.

Hogyan működik

bongeszo ──> server/index.js ──> idp.e-kreta.hu        (OAuth2 + PKCE belépés)
             (proxy + session)   {intezmeny}.e-kreta.hu/ellenorzo/v3/  (adatok)

A böngésző soha nem lát tokent: a szerver egy HttpOnly munkamenet-sütit ad, az access/refresh token a szerver memóriájában marad, és onnan is eltűnik kijelentkezéskor vagy 12 óra tétlenség után. Semmi nem íródik lemezre.

A proxy azért kell, mert a Kréta nem küld CORS fejléceket — böngészőből közvetlenül nem hívható.

Fájlok

Fájl Szerep
server/kreta.js Kréta API kliens: PKCE belépés, token frissítés, végpontok
server/index.js HTTP szerver: statikus fájlok, munkamenetek, /api/*
public/app.js SPA: nézetek, átlagszámítás, szűrők
public/style.css téma (világos/sötét/rendszer), komponensek

API végpontok

Végpont Leírás
POST /api/login {institute, username, password} → munkamenet-süti
POST /api/logout süti törlése + refresh token visszavonása a Krétánál
GET /api/session be van-e lépve
GET /api/overview?year= egy körben: adatlap, csoportok, jegyek, mulasztások, házik, számonkérések, feljegyzések, faliújság, tanév rendje
GET /api/lessons?from&to órarendi elemek egy időszakra
GET /api/schema?year= diagnosztika: mezőnevek és darabszámok, értékek nélkül
GET /api/class-averages?taskUid&subjectUid osztályátlagok

Az /api/overview Promise.allSettled-del dolgozik: ha egy végpont elhasal, a többi adat attól még megjelenik, a hiányzók az errors mezőben jönnek vissza és a felületen figyelmeztetés lesz belőlük.

Megjegyzések

  • Nem hivatalos, nincs köze a Kréta fejlesztőihez. A belépés a hivatalos mobilkliens OAuth-folyamatát játssza le; ha a Kréta ezen változtat, a belépés eltörhet.
  • Csak helyi használatra van kitalálva (alapból 127.0.0.1-re köt). Ha kiteszed hálózatra, tegyél elé HTTPS-t — a jelszó egyébként tisztán utazna.
  • A munkamenetek memóriában élnek, tehát a szerver újraindítása kiléptet.