Okos élelmiszer-nyilvántartás AI-alapú recept ajánlásokkal és tápanyag-követéssel
NutriChef egy modern, full-stack webalkalmazás, amely segít nyomon követni az élelmiszereket, generálni személyre szabott recept ajánlásokat, és kezelni a táplálkozási szükségleteket. Fejlett AI integráció, valós idejű szinkronizálás és intuitív felhasználói felület jellemzi.
- AI-alapú képfelismerés: Töltsd fel a hűtő/kamra képét, az AI automatikusan felismeri az élelmiszereket
- Manuális hozzáadás: Gyorsan adj hozzá tételeket részletes információkkal (mennyiség, egység, lejárat, hely)
- Hely alapú szervezés: Rendszerezés hűtő, kamra, fagyasztó szerint
- Lejárati értesítések: Emlékeztetők a közelgő lejárati dátumokról
- Készletkezelés: Valós idejű készlet nyomon követés fogyasztási arányokkal
- Intelligens megfeleltetés: Receptek generálása a meglévő hozzávalók alapján
- Kétféle mód:
- 📦 Hűtő mód: Automatikus ajánlások a nyilvántartásból
- ✏️ Egyéni mód: Adj meg saját hozzávalókat
- Testreszabható szűrők:
- Adagok száma (1-12 fő)
- Minimum egyezési százalék (50-100%)
- Allergiák és kerülendő ételek
- Részletes recept információk:
- Lépésről-lépésre utasítások
- Tápanyag-lebontás (kalória, fehérje, szénhidrát, zsír)
- Előkészítési és főzési idő
- Nehézségi szint
- Konyha típusa
- Recept mentés: Mentsd el kedvenc receptjeidet
- Bevásárlólista export: Hiányzó hozzávalók hozzáadása egyetlen kattintással
- Recept integráció: Automatikus akkordeon nézet recept hozzávalókkal
- Kategorizálás: Automatikus csoportosítás (zöldség, hús, tejtermékek, stb.)
- Készlet jelzés: Kiemeli a már meglevő tételeket
- Adag módosítás: Dinamikus mennyiség-skálázás személyek számához
- Adag optimalizálás: Kerekítés szabványos csomagméretekhez
- Export funkció: Lista exportálás szövegfájlba
- Gyorsbillentyűk:
Ctrl+A: Fókusz a tétel hozzáadásraCtrl+E: Lista exportálásDelete: Befejezett tételek törlése
- Többféle beviteli mód:
- 📝 Manuális bevitel kalória auto-számítással
- 📦 Választás nyilvántartásból
- 📖 Választás mentett receptekből
- Naponta nyomon követett makrók:
- Kalória, fehérje, szénhidrát, zsír, rost
- Vizuális folyamatjelzők
- Cél vs. tényleges összehasonlítás
- Étkezés típusok: Reggeli, ebéd, vacsora, snack
- Vizuális elemzések: Grafikonok napi és heti tendenciákhoz
- Célbeállítások: Egyedi kalória és makró célok
- BMR számítás: Automatikus alapanyagcsere számítás
- Testméretek követés: Súly, magasság, életkor
- Aktivitási szint: Testreszabható alapján
- Diétás preferenciák: Allergiák, étkezési korlátozások
- Két nyelv: Magyar és angol
- Sötét/világos mód: Szem-kímélő témák
- Fiók kezelés: Biztonságos bejelentkezés és munkamenet kezelés
- Napi áttekintés: Összefoglaló kártyák napi célokhoz
- Készlet statisztikák: Teljes tételek, lejáró termékek
- Gyors műveletek: Gyakori feladatok elérése
- Heti összefoglaló: Táplálkozási tendenciák idővel
- React 18 + TypeScript: Type-safe UI fejlesztés
- Vite: Villámgyors build eszköz
- Tailwind CSS: Utility-first styling
- Lucide Icons: Modern ikon könyvtár
- Redux Toolkit: Állapotkezelés
- React Router: Navigáció
- i18next: Nemzetköziesítés (hu/en)
- GSAP: Sima animációk
- Sonner: Elegáns értesítések
- Axios: HTTP kliens
- Node.js + Express: REST API
- TypeScript: Type-safe backend kód
- Prisma ORM: Adatbázis kezelés
- PostgreSQL: Relációs adatbázis
- JWT: Biztonságos authentikáció
- Bcrypt: Jelszó hashelés
- Express Validator: Input validálás
- Rate Limiting: API védelem
- Google Gemini API: Recept generálás és képfelismerés
- OpenAI GPT-4 (opcionális): Alternatív AI szolgáltató
- Intelligens prompt engineering: Kontextus-tudatos AI válaszok
- Eredmény gyorsítótárazás: Token optimalizálás
NutriChef/
├── frontend/ # React alkalmazás
│ ├── src/
│ │ ├── components/ # Újrafelhasználható komponensek
│ │ │ ├── ui/ # Alap UI komponensek
│ │ │ └── inventory/ # Nyilvántartás-specifikus
│ │ ├── pages/ # Oldal komponensek
│ │ ├── services/ # API szolgáltatások
│ │ ├── store/ # Redux store
│ │ ├── hooks/ # Custom React hooks
│ │ ├── context/ # React context providers
│ │ ├── i18n/ # Fordítási fájlok
│ │ ├── types/ # TypeScript típusok
│ │ └── utils/ # Segédfüggvények
│ └── public/ # Statikus eszközök
│
├── backend/ # Express API
│ ├── src/
│ │ ├── controllers/ # Request kezelők
│ │ ├── routes/ # API útvonalak
│ │ ├── services/ # Üzleti logika
│ │ ├── middlewares/ # Custom middleware-ek
│ │ ├── config/ # Konfiguráció
│ │ └── utils/ # Backend segédfüggvények
│ ├── prisma/
│ │ ├── schema.prisma # Adatbázis séma
│ │ ├── seed.ts # Adatbázis seed
│ │ └── migrations/ # DB migrációk
│ └── uploads/ # Feltöltött fájlok
│
└── docs/ # Dokumentáció
- Node.js 18+
- PostgreSQL 14+
- npm vagy yarn
- Google Gemini API kulcs (vagy OpenAI API kulcs)
git clone https://github.com/AFekexd/NutriChef.git
cd NutriChefcd backend
npm install
# Környezeti változók beállítása
cp .env.example .env
# Szerkeszd a .env fájlt az alábbi adatokkal:
# DATABASE_URL="postgresql://user:password@localhost:5432/nutrichef"
# JWT_SECRET="your-secret-key"
# GEMINI_API_KEY="your-gemini-api-key"
# PORT=5000
# Adatbázis létrehozása és migrálás
npx prisma migrate dev
# (Opcionális) Adatbázis seed adatokkal
npx prisma db seed
# Szerver indítása
npm run devcd frontend
npm install
# Környezeti változók beállítása
cp .env.example .env
# Szerkeszd a .env fájlt:
# VITE_API_URL=http://localhost:5000/api
# Fejlesztői szerver indítása
npm run dev- Frontend: http://localhost:5173
- Backend API: http://localhost:5000/api
- Swagger Docs: http://localhost:5000/api-docs
A backend Swagger UI-t biztosít az API felfedezéséhez:
http://localhost:5000/api-docs
POST /api/auth/register- Új felhasználó regisztrációPOST /api/auth/login- Felhasználó bejelentkezésPOST /api/auth/logout- Felhasználó kijelentkezésGET /api/auth/me- Aktuális felhasználó lekérése
GET /api/inventory- Összes nyilvántartási tételPOST /api/inventory- Új tétel hozzáadásaPUT /api/inventory/:id- Tétel frissítéseDELETE /api/inventory/:id- Tétel törlése
POST /api/inventory/ai/detect- Kép feltöltés AI felismeréshezPOST /api/recipes/recommendations- AI recept ajánlások
GET /api/recipes- Felhasználó receptjeiPOST /api/recipes- Új recept létrehozásaDELETE /api/recipes/:id- Recept törlése
GET /api/nutrition/daily- Napi tápanyag összefoglalóPOST /api/nutrition/meals- Étkezés naplózásGET /api/nutrition/weekly- Heti összesítések
- Irányítópult: Napi áttekintés és gyors műveletek
- Okos Nyilvántartás: AI képfelismerés és készletkezelés
- AI Recept Ajánlások: Kétféle mód (Hűtő/Egyéni)
- Bevásárlólista: Recept accordionok és adag módosítás
- Tápanyag Követés: Napi naplózás és makró követés
- Profil & Beállítások: Testreszabás és preferenciák
- JWT Authentikáció: Biztonságos munkamenet kezelés
- Bcrypt Hashelés: Jelszavak biztonságos tárolása
- Rate Limiting: API visszaélés védelem
- Input Validálás: Minden felhasználói input validálva
- CORS Konfiguráció: Engedélyezett originek
- Dual-Layer Encryption:
- Client-Side: AES-256-GCM titkosítás átvitel közben (CLIENT_ENCRYPTION_KEY)
- Server-Side: AES-256-GCM titkosítás adatbázisban (ENCRYPTION_MASTER_KEY)
- Environment Variables: Érzékeny adatok védve
📖 Részletes titkosítási útmutató: Lásd ENCRYPTION_SETUP.md
Az alkalmazás két nyelvet támogat:
- 🇭🇺 Magyar (alapértelmezett)
- 🇬🇧 Angol
A nyelvek között a felhasználói beállításokban lehet váltani.
Közreműködéseket szívesen fogadunk! Kérlek:
- Forkold a repositoryt
- Hozz létre egy feature branch-et (
git checkout -b feature/AmazingFeature) - Commitold a változtatásokat (
git commit -m 'Add some AmazingFeature') - Pushold a branch-re (
git push origin feature/AmazingFeature) - Nyiss egy Pull Request-et
Ez a projekt MIT licensz alatt van - lásd a LICENSE fájlt részletekért.
AFekexd
- GitHub: @AFekexd
- Google Gemini AI a recept generálásért és képfelismerésért
- Shadcn/ui a gyönyörű UI komponensekért
- A nyílt forráskódú közösségnek az eszközökért és könyvtárakért
NutriChef - Okos főzés AI-val 🍳✨
