Menüm.hu
AI-alapú napi menü aggregátor és kereső platform. Az éttermek változatos formátumú étlapjait (PDF, kép, HTML) egy 8 lépéses Gemini-alapú AI pipeline dolgozza fel strukturált adatokká, így nincs szükség törékeny, éttermenkénti scraping szabályokra.
Az ebédidő digitalizálása 7 nap alatt
Minden irodai dolgozó ismeri a kérdést: „Hol együnk ma délben?" Bár az éttermek többsége kínál napi menüt, az információk kaotikusan szóródnak szét: PDF-ekben, Facebook-posztok képein vagy nehezen böngészhető weboldalakon. Nincs egyetlen központi hely, ahol szűrhetnénk allergénekre, távolságra vagy éppen az aktuális kíváncsiságunkra.
A Menüm.hu-val ezt a problémát oldottuk meg egy extrém, 7 napos fejlesztési sprint keretében. A projekt technológiai hátteréről és a „gépekkel való közös munkáról" egy részletes mérnöki blogbejegyzésben is beszámoltunk.
A kihívás: amikor a hagyományos kód kevés
A napi menük összegyűjtése klasszikus scraping módszerekkel (CSS-selectorok, regexek) rémálom. Az éttermek heterogén formátumokat használnak, gyakran változtatják az oldalaik szerkezetét, vagy éppen csak egy lefotózott táblát töltenek fel. Egy hagyományos rendszerben minden egyes étteremhez külön „tolmács" kód kellene, ami nem skálázható.
Olyan megoldásra volt szükségünk, amely nem a fix struktúrára, hanem a tartalom értelmezésére épít.
Amit alkottunk: AI-központú architektúra
1. Az intelligens scraping pipeline
A rendszer lelke egy 8 lépésből álló folyamat, amely a Google Gemini API-ra támaszkodik. Ez a pipeline nemcsak letölti az adatokat, hanem „látja" is azokat:
- Discovery & Parsing: az AI azonosítja a menü helyét, legyen az PDF, kép vagy dinamikus JavaScript.
- Kategorizálás & fordítás: automatikusan felismeri a konyha típusát, az allergéneket, és azonnal lefordítja az ételeket angolra, biztosítva a teljes kétnyelvűséget (HU/EN).
- Személyre szabás: a rendszer figyeli a változásokat (change detection), és a felhasználók étkezési szokásai alapján intelligens napi ajánlásokat tesz.
2. Robusztus technológiai háttér
Bár a sprint gyors volt, a technológiai alapokat nem áldoztuk fel:
- Backend: NestJS + Fastify alapokon, Prisma ORM-mel és PostgreSQL 16-tal. A térinformatikai logikát (távolságszámítás, helyszín-szűrés) a PostGIS kiterjesztés kezeli.
- Frontend: Vue 3 és Quasar Framework segítségével egy villámgyors, mobil-optimalizált felületet hoztunk létre, ahol a MapLibre GL JS biztosítja az interaktív térképes keresést.
- Biztonság: jelszó nélküli, biztonságos Magic Link autentikációt és teljes GDPR-kompatibilis adatkezelést implementáltunk.
Hogyan készült: 7 nap Claude Code-dal
Ez a projekt volt a tűzkeresztsége a Claude Code nevű fejlesztői eszközünknek. Március 24. és 31. között 4 fejlesztő dolgozott párhuzamosan a projekten.
- Volumen: 167 commit, 34 pull request és több mint 15 600 sor TypeScript, Vue és SCSS kód született.
- AI-asszisztált sebesség: az AI segítségével percek alatt végeztünk a vázlatok (feature scaffolding) elkészítésével és a komplex refaktorálásokkal. Ahogy a tanulságunk is szól: „A párhuzamos fejlesztés működik, ha a határok tiszták."
Mérnöki őszinteség: nem minden a gépeken múlik
Bár az AI rengeteget gyorsított, a sprint rávilágított a korlátokra is. A telepítési folyamat (CI/CD, ARM-architektúra finomhangolása) és a külső API-k (Google Places, e-mail szolgáltatók) konfigurálása továbbra is emberi precizitást és tapasztalatot igényelt. Egy teljes napunk ment el például a Sentry Profiler és a PostGIS verziók összehangolására a produkciós szerveren. Az AI látja a kódot, de nem látja a szerver pillanatnyi állapotát — itt még mindig a mérnöki rutin a döntő.
Eredmények
7 nap alatt egy elméleti problémából élő, skálázható platform lett. A Menüm.hu jelenleg Győr területén aggregálja a menüket, bizonyítva, hogy az LLM-alapú scraping nemcsak lehetséges, hanem sokkal stabilabb és rugalmasabb megoldást nyújt, mint a klasszikus megközelítések. A platform készen áll az országos bővítésre, hiszen minden új étterem integrálása már nem fejlesztői órákban, hanem csupán konfigurációban mérhető.