TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
스위스 청소년 단체의 저장식당 계획을 위한 무료 웹앱, 레시피 확대·메뉴 계획·구매 목록 생성
Kostenlose Web-App für die Planung von Lagerküchen in Schweizer Jugendverbänden. Rezepte skalieren, Menüpläne erstellen, Einkaufslisten generieren.
생산성TypeScript · PLpgSQLGitHub @chuchipirat온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
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.