Files

137 lines
5.1 KiB
Markdown

# Shoppinguin
Smart Shopping Companion
## App-Idee
Shoppinguin ist eine mobile Einkaufshilfe für den Supermarkt. Nutzerinnen und Nutzer scannen Produkte per Smartphone-Kamera oder Barcode, erhalten direkt eine persönliche Einschätzung und treffen dadurch bessere Kaufentscheidungen.
Die Bewertung berücksichtigt Zutaten, Preis, Nachhaltigkeitsmerkmale und individuelle Ziele wie Allergien, Ernährung, Budget und Nachhaltigkeit.
## Zielgruppe
Die App richtet sich an Privatpersonen, die im Supermarkt schnell bessere Kaufentscheidungen treffen möchten. Besonders relevant ist Shoppinguin für Menschen mit Allergien oder Unverträglichkeiten, ernährungsbewusste Käuferinnen und Käufer, Studierende und Familien mit Budgetfokus sowie Konsumentinnen und Konsumenten mit Nachhaltigkeitsanspruch.
## Wichtigste Funktionen
- Produkte per Barcode-Scan erfassen
- Produktdaten direkt im Laden auswerten
- Persönliche Empfehlung anzeigen: kaufen, prüfen oder meiden
- Nutzerprofil mit Allergien, Ernährungszielen, Budget und Nachhaltigkeitspräferenzen
- Kurze Begründung zur Bewertung und mögliche Alternativhinweise
- Manuelle Produktsuche, falls der Barcode nicht erkannt wird
- Lokale Einkaufsliste mit Menge, Preis, Abhaken und Löschen
- Manuelle Preiseingabe, wenn Open Food Facts keinen Artikelpreis liefert
- Lokaler Produktcache und Offline-Modus für gespeicherte Produkte
- Produktdaten per Barcode aus der Open-Food-Facts-API
- Später geplant: erweiterte Profile, Budgettracking, Nachhaltigkeitsfilter und Rezeptvorschläge
## One-Pager
Der One-Pager aus Aufgabe 6.1 beschreibt das Go-to-Market-Konzept:
- Projekt: Smart Shopping Companion - Mobile App mit React Native
- Kernidee: Produkte im Supermarkt per Smartphone scannen, direkt bewerten und bessere Kaufentscheidungen treffen
- Unique Value Proposition: Produktdaten werden direkt am Regal in eine klare persönliche Empfehlung übersetzt
- Preisstrategie: Freemium mit kostenlosen Basisfunktionen und optionalen Premium-Funktionen
- Distribution: Apple App Store, Google Play Store und zusätzliche Sichtbarkeit über QR-Codes, Hochschulen, Fitnessstudios, Nachhaltigkeits-Communities und lokale Supermärkte
## Geplanter Tech-Stack
- Expo
- React Native
- JavaScript
- Smartphone-Kamera und Barcode-Scanner
- Open Food Facts API für Barcode-Produktdaten
- Lokale Speicherung persönlicher Präferenzen
- GitHub oder GitLab für Versionsverwaltung und Abgabe
## Ordnerstruktur
```text
Shoppinguin/
|-- assets/
|-- src/
| |-- assets/
| |-- components/
| | `-- PrimaryButton.js
| `-- screens/
| `-- HomeScreen.js
|-- App.js
|-- app.json
|-- babel.config.js
|-- package.json
`-- README.md
```
## Beispiel-Screen
Die App enthält jetzt einen MVP-Flow mit Bottom-Tabs:
- Home: Startseite und letzte Scans
- Scan: Kamera-Scanner mit Open Food Facts, Beispiel-Barcodes und manuelle Suche
- Produktdetail: Ampelbewertung nach Allergien, Budget, Ernährung und Nachhaltigkeit
- Alternativen: bessere Produktvorschläge aus dem lokalen Beispieldatensatz
- Einkaufsliste: Produkte hinzufügen, abhaken, löschen und Gesamtsumme sehen
- Profil: Präferenzen, Allergien, Budget mit Zeitraum, Bio-Vorliebe und Offline-Modus verwalten
Beispiel-Barcodes für Tests über Open Food Facts:
```text
3017620422003 - Nutella
737628064502 - Open-Food-Facts-Beispielprodukt
```
Die App nutzt für Barcodes `https://world.openfoodfacts.org/api/v2/product/{barcode}.json`. Wenn ein Produkt bereits lokal gespeichert ist oder der Offline-Modus aktiv ist, wird zuerst der lokale Cache verwendet.
## Runbook
### Automatischer Android-Build mit Gitea Actions
Der Workflow in `.gitea/workflows/android-release.yml` startet bei jedem Push
in ein Gitea-Repository. Er installiert die Abhängigkeiten mit `npm ci`,
erzeugt das nicht versionierte Android-Projekt per Expo und kompiliert mit
Gradle eine Release-APK. Die APK ist im jeweiligen Gitea-Actions-Lauf als
Artefakt `shoppinguin-android-release-<Laufnummer>` herunterladbar.
Voraussetzungen: Gitea Actions ist für das Repository aktiviert und ein
Linux-Runner mit dem Label `ubuntu-latest` ist registriert. Der Runner benötigt
Netzwerkzugang für npm, Gradle und das Android SDK sowie ausreichend Speicher
für einen Android-Build. `origin` zeigt auf das Gitea-Repository; der Workflow
startet, sobald die Änderungen dorthin gepusht werden.
Die APK wird derzeit im Release-Modus mit dem von Expo erzeugten Debug-Schlüssel
signiert. Sie eignet sich zum Testen, aber nicht als Store-Release. Für eine
Veröffentlichung muss ein eigener Release-Schlüssel sicher in Gitea hinterlegt
und die Android-Signierung entsprechend konfiguriert werden.
Projekt installieren:
```bash
npm install
```
Projekt starten:
```bash
npm start
```
Alternativ direkt mit Expo:
```bash
npx expo start
```
Danach kann die App mit Expo Go auf einem Smartphone oder in einem Emulator gestartet werden.
Für den Barcode-Scan muss die Kamera-Berechtigung erlaubt werden. Auf Web oder ohne Kamera kann der Scanner über die Beispiel-Barcodes und die manuelle Suche getestet werden.
## Repository teilen
Repository-Link für den Kursleiter:
```text
https://git.bachmannj.ch/Fretux/Shoppy
```