Skip to content

nile4000/mymenu

Repository files navigation

My Menü — AI Essensplaner

Deploy Last Commit License: MIT

Vue 3 Quasar Kotlin Quarkus PostgreSQL OpenAI

Live-App: https://nile4000.github.io/mymenu/#/

Showcase


Überblick

My Menü ist eine Web-App zum Erfassen, Strukturieren und Auswerten von Einkaufsbelegen. Die App liest PDF-Belege ein, extrahiert daraus Artikel, Preise, Mengen und Belegmetadaten und macht die Daten in einer übersichtlichen Oberfläche nutzbar.

Der Fokus liegt auf Schweizer Einkaufsbelegen von Coop/Supercard und Migros/Cumulus. Importierte Artikel können gefiltert, korrigiert, kategorisiert und für Rezeptvorschläge verwendet werden.


Funktionen

  • PDF-Belege hochladen und auslesen
  • Artikel, Mengen, Preise, Rabatte und Belegmetadaten strukturiert erfassen
  • Einkaufsartikel nach Kategorien auswerten
  • Einheiten wie g, kg, ml, l oder stk automatisch erkennen
  • Kategorien zentral über das Backend bereitstellen
  • Rezeptvorschläge aus vorhandenen Artikeln erzeugen
  • Ausgaben nach Beleg, Zeitraum und Kategorie analysieren
  • Supercard-Belege über eine manuelle Session synchronisieren

AI-Funktionen

Funktion Beschreibung
Beleganalyse PDF-Text wird im Backend vorbereitet und per OpenAI in strukturiertes JSON umgewandelt
Kategorisierung Artikel werden über einen Kategorisierungsservice Einkaufskategorien zugeordnet
Einheitenerkennung Aus Artikelnamen und Preisen werden sinnvolle Einheiten extrahiert
Rezeptgenerierung Aus vorhandenen Lebensmitteln erstellt die AI deutschsprachige Rezeptvorschläge

Technischer Aufbau

mymenu/
├── frontend/           # Quasar/Vue 3 SPA
├── middleware/         # Kotlin/Quarkus REST API
├── categorization-srv/ # Embedded Python Cotegorization Service
├── database/           # SQL-Schema, Migrations, Snapshots
└── docker-compose.yml
Schicht Technologie
Frontend Vue 3, Quasar, TypeScript, Pinia, Supabase Client
Backend Kotlin 2.1, Quarkus 3.22, Maven, JDBC/PostgreSQL
Datenhaltung Supabase (PostgreSQL)
AI OpenAI API, Embedded Categorization Service
Deployment GitHub Pages (Frontend), Docker (Backend)

Backend-Endpunkte

Methode Pfad Beschreibung
POST /api/extract-pdf PDF-Beleg auslesen
GET /api/categories Verfügbare Kategorien abrufen
POST /api/ai/categorize Artikel kategorisieren
POST /api/ai/extract-unit Einheiten aus Artikeln extrahieren
POST /api/ai/recipe Rezept aus Artikeln erstellen
GET /api/integrations/supercard/status Supercard-Session prüfen
GET /api/integrations/supercard/available Verfügbare Supercard-Belege anzeigen
POST /api/integrations/supercard/sync Supercard-Belege importieren

Lokale Entwicklung

Backend:

cd middleware
quarkus dev

Frontend:

cd frontend
npm install
npm run start

Docker (alle Services):

docker-compose up

Vor dem Start die Umgebungsvariable OPENAI_API_KEY setzen – entweder per .env-Datei im Projektroot oder als Shell-Variable. Docker Compose liest .env automatisch ein.

Categorization Service (FastAPI):

Läuft auf Port 8000. Die interaktive API-Dokumentation ist erreichbar unter:

  • Swagger UI: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc

Releases

No releases published

Packages

 
 
 

Contributors