Der chuchipirat ist eine Web-Applikation, die Freiwillige in Jugendverbänden in der Planung, Durchführung und Nachbearbeitung von Lagerküchen unterstützt. Das Kochen in grossen Mengen in einem Lager oder Kurs ist gerade in der Vorbereitung aufwendig und erfordert spezifische Kenntnisse, damit nicht nur schmackhaftes, sondern auch Essen in passender Menge serviert werden kann. Genau hier unterstützt dich der chuchipirat. Lege einen Anlass an, wähle aus den bestehenden Rezepten (oder lege ein neues an) und plane dieses ein. Definiere für wie viele Portionen du zubereiten möchtest und überlasse die Skalierung dem chuchipirat. Kurz vor dem Anlass kannst du automatisiert die Einkaufsliste generieren oder die verwendeten Rezepte (in der richtigen Skalierung) ausdrucken. Wie du mit dem chuchipirat arbeiten kannst, ist im Helpcenter beschrieben.
Willst du als Entwickler*in am chuchipirat mitarbeiten? Hier findest du alle nötigen Informationen, um das Projekt bei dir zum Laufen zu bringen.
- Rezepte suchen und neue erstellen
- Skalieren von Rezepten auf die gewünschten Gruppengrösse
- Menüplan erstellen und Rezepte zuordnen
- Erstellen von Gruppen und deren Ernährungsform
- automatisches Erstellen einer Einkaufsliste anhand der geplanten Rezepte
- automatisches Erstellen einer Materialliste anhand der geplanten Rezepte
- automatische Neuberechnung der Portionen bei einer Anpassung der hinterlegten Gruppe
- Export des Menüplans, der Rezepte und der Listen als PDF (offline-Fall)
- Frontend: React, Material UI
- Backend: Node.js
- Datenbank: Firebase
- Build-Tools: [z. B.: Webpack, Babel]
- Test-Frameworks: Jest
├── public/ # Statische Dateien wie index.html
├── src/ # Quellcode des Projekts
│ ├── components/ # Wiederverwendbare React-Komponenten
│ ├── pages/ # Seitenkomponenten
│ ├── services/ # API-Aufrufe und externe Verbindungen
│ ├── styles/ # CSS oder Tailwind-Konfiguration
│ ├── utils/ # Hilfsfunktionen und Services
│ └── App.js # Haupteinstiegspunkt der Anwendung
├── tests/ # Testfälle und Test-Suiten
├── .env # Umgebungsvariablen (nicht in das Repo hochladen)
├── package.json # NPM-Abhängigkeiten und Skripte └── README.md
Stelle sicher, dass folgende Software auf deinem Rechner installiert ist:
- Node.js: Version >= 14.x.x
- npm: Version >= 6.x.x
Lege dir eine Firebase-Datenbank an. Die Struktur und Sicherheitsregeln der Datenbank findest du unter [[Firebase-Datenstruktur]] und [[Firebase-Securityrules]].
Um das Projekt lokal auszuführen, musst du eine .env
-Datei mit den Umgebungsvariablen erstellen. Beispiel:
REACT_APP_API_URL=http://localhost:5000 MONGO_URI=mongodb://localhost:27017/chuchipirat PORT=3000
[!Info] Bitte beachte, dass es neben diesem Repository auch einige Cloud-Functions gibt, welche gewisse Prozesse/Manipulationen auf der Cloud direkt ausführen. Dieser Code ist in einem privaten Repository.
Wir freuen uns über jede Art von Mitwirkung! Um mitzumachen, folge bitte diesen Schritten:
- Forke das Repository.
- Erstelle einen neuen Branch (
git checkout -b feature-xy
). - Führe deine Änderungen durch und commite sie (
git commit -am 'Neue Funktionalität'
). - Schreibe oder ändere die entprechenden Tests.
- Pushe auf den Branch (
git push origin feature-xy
). - Stelle einen Pull-Request.
Um die Tests auszuführen, kannst du folgendes Kommando nutzen:
npm run test
Das Test-Framework führt dann alle definierten Tests in der Datei tests/
aus.
Dieses Projekt ist lizenziert unter der GNU Affero General Public License v3.0.
Du findest den vollständigen Lizenztext in der Datei LICENSE.