TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
Chuchipirat
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Der chuchipirat ist eine kostenlose Open-Source-Web-Applikation, die Freiwillige in Schweizer Jugendverbänden (Pfadi, Jungwacht Blauring etc.) 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.檢視完整 README ↗
Der chuchipirat ist eine kostenlose Open-Source-Web-Applikation, die Freiwillige in Schweizer Jugendverbänden (Pfadi, Jungwacht Blauring etc.) 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.
| Bereich | Technologie |
|---|---|
| Frontend | React 18, TypeScript, Material UI 7 |
| Backend / Datenbank | Supabase (PostgreSQL, Auth, Edge Functions, Storage) |
| Build-Tool | Vite |
| Tests | Jest, React Testing Library |
| PDF-Export | @react-pdf/renderer |
| Fehler-Tracking | Sentry |
| Analytics | Umami |
Stelle sicher, dass folgende Software auf deinem Rechner installiert ist:
.nvmrc) — empfohlen via nvmRepository forken und klonen
git clone https://github.com/<dein-username>/chuchipirat.git
cd chuchipirat
Node-Version setzen (falls nvm installiert)
nvm use
Abhängigkeiten installieren
npm install
Umgebungsvariablen einrichten
cp .env.example .env.development
Öffne .env.development und trage die Werte ein. Die Variablen sind in folgende Kategorien unterteilt:
| Kategorie | Prefix / Variablen | Beschreibung |
|---|---|---|
| Umgebung | VITE_ENVIRONMENT | DEV, TST oder PRD |
| Supabase | VITE_SUPABASE_* | URL und Anon-Key |
| Sentry | VITE_SENTRY_DSN | DSN für Fehler-Tracking |
| Umami | VITE_UMAMI_* | Host und Website-ID für Analytics |
Supabase lokal starten
supabase start
Dies startet eine lokale Supabase-Instanz via Docker (Postgres, Auth, Storage, etc.). Die Verbindungsdaten werden in der Konsole ausgegeben — trage diese in .env.development ein.
Entwicklungsserver starten
npm start
Die App ist dann unter http://localhost:5173 erreichbar.
chuchipirat/
├── public/ # Statische Dateien (favicon, Bilder)
├── src/
│ ├── components/ # React-Komponenten nach Feature-Ordner
│ │ ├── Admin/ # Admin-Bereich
│ │ ├── Event/ # Anlass (Lager/Kurs)
│ │ ├── Recipe/ # Rezepte
│ │ ├── Product/ # Produkte (Stammdaten)
│ │ ├── Material/ # Material (Stammdaten)
│ │ ├── Unit/ # Einheiten (Stammdaten)
│ │ ├── Shared/ # Geteilte UI-Komponenten
│ │ ├── Navigation/ # Navigation und Routing
│ │ ├── App/ # App-Root und Providers
│ │ └── ... # Weitere Feature-Ordner
│ ├── constants/ # Konstanten, Routen, Styles, Enums
│ ├── hooks/ # Custom React Hooks
│ └── __mocks__/ # Jest-Mocks
├── supabase/
│ ├── migrations/ # SQL-Migrationsdateien (Postgres)
│ ├── volumes/functions/ # Supabase Edge Functions
│ ├── config.toml # Supabase-Konfiguration
│ └── docker-compose.yml # Docker-Setup für lokale Instanz
├── .env.example # Vorlage für Umgebungsvariablen
├── vite.config.ts # Vite-Konfiguration
├── tsconfig.json # TypeScript-Konfiguration
├── jest.config.json # Jest-Konfiguration
└── package.json # Abhängigkeiten und Scripts
| Befehl | Beschreibung |
|---|---|
npm start | Startet den Vite-Entwicklungsserver |
npm run build | Erstellt einen Production-Build |
npm run build:dev | Build für die DEV-Umgebung |
npm run build:test | Build für die TEST-Umgebung |
npm run build:prod | Build für die PROD-Umgebung |
npm run preview | Vorschau des Production-Builds |
npm run test | Startet Jest im Watch-Modus mit Coverage |
npm run test:coverage | Einmaliger Test-Durchlauf mit Coverage-Report |
npm run lint | ESLint über alle TypeScript-Dateien |
npm run analyze | Bundle-Analyse mit source-map-explorer |
Wir freuen uns über jede Art von Mitwirkung! So gehst du vor:
feature/ — neue Funktionalitätfix/ — Bugfixrefactor/ — Code-Verbesserung ohne Verhaltensänderungfeat: Neue Filterfunktion für Rezepte
fix: Portionenberechnung bei leeren Gruppen
refactor: Repository-Pattern für Produkte
npm run lint && npm run test
any, stattdessen unknown und Type-NarrowingTests befinden sich jeweils in einem __tests__/-Ordner innerhalb des zugehörigen Feature-Ordners:
src/components/Recipe/__tests__/Recipe.test.ts
src/constants/__tests__/actions.test.ts
Tests ausführen:
npm run test # Watch-Modus
npm run test -- --filter "RecipeName" # Einzelner Test
Vielen Dank für die grossartige Software:
Dieses Projekt ist lizenziert unter der GNU Affero General Public License v3.0. Du findest den vollständigen Lizenztext in der Datei LICENSE.