⚠️ Die Weiterentwicklung des Projekts ist zur Zeit pausiert. Bist du interessiert daran, die vorhandene Grundlage weiterzuentwickeln? Dann melde dich bei Tobija Fischer
Offizielles Repository von eatable.ch – eine Schweizer App für nachhaltige Ernährung. Der gesamte Code wurde zwischen Sommer 2021 und Frühling 2022 geschrieben.
Eatable ist eine App, die das Ziel hat, Ernährung in der Schweiz nachhaltiger zu machen. Du wirst von eatable auf verschiedenste Weisen unterstützt und inspiriert. Als digitales Kochbuch mit nachhaltigen Rezepten, die auf vorhandene Vorräte abgestimmt sind. Als interaktiver Einkaufsratgeber, der aufzeigt, welche Zutaten wie ökologisch sind und was gerade Saison hat. Als Inspirationsquelle, wo sich nachhaltige Läden und andere spannende Projekte zum Thema Ernährung und Nachhaltigkeit entdecken lassen.
Das technische Konstrukt der Applikation besteht aus 3 Teilen, die alle komplett voneinander entkoppelt sind. Backend-Oberfläche, API Schnittstelle und das Frontend. Die aktuelle Test-App lässt sich unter alpha.eatable.ch aufrufen. Dazu kommt die Wordpress-Seite eatable.ch, die das Projekt vorstellt und zu Marketing-Zwecken verwendet wird. Folgende Abbildung zeigt alle Domains des Projekts:
Das Backend (admin.eatable.ch) ist nicht Teil der Open Source Codebase. Genau wie die API Schnittstelle ist das Backend von Grund auf mit Objekt-orientiertem PHP-Code geschrieben. Es ermöglicht mittels übersichtlicher Benutzeroberfläche die Verwaltung jeglicher Datenbank- und App-Inhalte von eatable.
Die Schnittstelle (api.eatable.ch) war ursprünglich Teil des Backends, wurde dann aber entkoppelt. Sie stellt dem Frontend durch einen zentralen Entry-Point (index.php) alle nötigen Inhalte und Funktionen zur Verfügung, um mit der MySQL Datenbank zu kommunizieren.
Das Frontend (app.eatable.ch) basiert auf Vue.js mit Typescript und dem Ionic Framework.
- Die API-Schnittstelle (/02_API/) mit lokalem PHP-Server öffnen und mit einer lokalen MySQL Datenbank verbinden. Benenne dazu das File "/02_API/core/init-example.php" um in "init.php" und ändere die folgenden Zeilen zur lokalen Dankenbankverbindung:
$GLOBALS['config'] = array(
'mysql' => array(
'host' => 'localhost',
'dbuser' => 'root',
'password' => '12345678',
'db' => 'eatable_dev'
)
);
- Öffne den Frontend-Folder (/03_Frontend/) im Terminal und installiere alle Dependencies mit:
npm install
-
Ändere die Variable "baseApiUrl" unter "/03_Frontend/src/variables/environmentVariables.ts" zur URL der API-Schnittstelle, die auf dem lokalen PHP-Server läuft.
-
Starte die Vue App mit:
npm run serve
- Die App sollte nun lokal funktionieren. Für Fragen und Unterstützung gerne bei Tobija Fischer melden.