kreta
# Üzenőfüzet
Az Üzenőfüzet csak olvasható KRÉTA-integráció Claude-hoz. Két formában létezik,
közös maggal — a különbség az, hol futnak a dolgok és ki kezeli az adatot:
| | [Hosztolt szolgáltatás](server/) | [Asztali bővítmény](desktop/) |
| --- | --- | --- |
| Hol fut | Cloud Run + Firestore | a szülő gépén |
| Claude | web, mobil, asztali (Custom Connector) | Claude asztali alkalmazás |
| Adatforrás | KRÉTA + Google Classroom | KRÉTA |
| Adatkezelő | a szolgáltatás üzemeltetője | a szülő maga |
| Beállítás | webes kapcsolati pult, max. 3 gyerek | helyi beállító oldal, tetszőleges számú gyerek |
A **hosztolt** vonal: Firebase Hosting (landing, tájékoztatók, szülői
dashboard), Cloud Run (belépés, OAuth, MCP, KRÉTA- és Classroom-kapcsolatok),
Firestore (privát gyerekprofilok, időkorlátos titkosított kapcsolatok).
Az **asztali** vonal egyetlen `.mcpb` fájl: nincs mögötte szerver, fiók vagy
kiadott token, és a KRÉTA-jelszó nem hagyja el a gépet. Részletek a
[`desktop/README.md`](desktop/README.md)-ben.
## Adatkezelési alapelvek
Mindkét vonalra igaz:
- Kizárólag rögzített olvasási műveletek; nincs írás, törlés, sem tetszőleges
KRÉTA-útvonalat lekérő tool.
A hosztolt szolgáltatásra:
- A KRÉTA-jelszó csak a belépés idejére kerül a Cloud Run folyamat memóriájába,
majd azonnal eldobásra kerül.
- A lejáró KRÉTA-tokenek és Classroom refresh tokenek AES-256-GCM-mel lezárva
kerülnek a privát Firestore-profilba.
- A szülő Google-belépése és a gyerekek Classroom-fiókjai külön
Google-munkamenetek.
- A kapcsolat bármikor kikapcsolható és törölhető a dashboardon.
Az asztali bővítményre:
- A KRÉTA-jelszó a szülő gépén marad, AES-256-GCM-mel titkosítva; a kulcs a
rendszer kulcstárolójában.
- A hozzáférési token csak a folyamat memóriájában él, a Claude bezárásáig.
- Nincs köztes szerver és nincs visszavonandó token: a törlés a gépen egy
fájl törlése.
Az Üzenőfüzet független projekt, nem áll kapcsolatban az eKRÉTA Zrt.-vel, és
nem hivatalos KRÉTA-termék. A részletes adatkezelési tájékoztató és
felhasználási feltételek a publikus weboldalon érhetők el.
## Fejlesztés
A repó egy npm workspace három csomaggal:
- [`core/`](core/) — KRÉTA-kliens, iskolakereső és a csak olvasható MCP
tool-tábla; mindkét vonal ezt használja;
- [`server/`](server/) — a hosztolt szolgáltatás (backend + web);
- [`desktop/`](desktop/) — az asztali bővítmény és a `.mcpb` csomagolás.
Helyi belépési adatok a [`secrets/`](secrets/) mappában; a Git egyedül az ottani
README-t követi.
```bash
npm install
npm test
npm run typecheck
npm run build
npm run pack:desktop # dist/uzenofuzet-<verzió>.mcpb
```
A backend helyi indítása:
```bash
cd server
TOKEN_SEALING_KEY="$(npm run --silent keygen)" \
OAUTH_ALLOWED_REDIRECT_URIS="http://localhost:6274/oauth/callback" \
npm run dev
```
A szükséges környezeti változókat és az infrastruktúra részleteit a
[`server/README.md`](server/README.md) dokumentálja.
## Deploy
Firebase Hosting és Firestore-szabályok:
```bash
npm run build:web -w uzenofuzet-server
cd server && firebase deploy --project uzenofuzet --only firestore:rules,hosting
```
A backend Cloud Runra kerül, a **repó gyökeréből** — a build kontextusnak
tartalmaznia kell a `core/` csomagot is:
```bash
gcloud run deploy uzenofuzet --source . --region europe-west1 --project uzenofuzet
``` A production parancsot, a Secret Manager
hivatkozásokat, a Classroom OAuth-beállításokat és a scheduler konfigurációját
lásd a [`server/README.md`](server/README.md) Deploy szakaszában.
## Licenc
[Apache License 2.0](LICENSE). A szoftver „AS IS” állapotban használható; a
KRÉTA rendszeréhez, nevéhez és védjegyéhez nem biztosít jogot.
TDQS
Scored across 20 tools
Most tools target a distinct KRÉTA entity such as grades, absences, timetable, homework, or profiles. The only mild overlaps are timetable vs. week_schedule and notes vs. announcements, but the descriptions clarify student-specific vs. institution-wide data.
All tools share the kreta_ prefix and snake_case naming, which creates a predictable pattern. However, detail variants mix suffixes: timetable_item vs. homework_detail vs. consulting_hour_detail, and kreta_login is a status check rather than a noun-style resource.
With 20 tools, the set sits in the heavy range and feels borderline for coherence. Each tool does cover a distinct module, but a few could likely be consolidated without losing functionality.
The read-only surface is broad and covers the main student information needs: profiles, grades, absences, timetable, homework, tests, consultations, and school calendar. Minor gaps such as a message/inbox tool or absence justification actions exist, but they are not critical for core usage.