🐈 Katzen-Sitting-Planer (Cat Sitting Planner)
Der Katzen-Sitting-Planer ist eine simple, aber effektive Web-App zur Koordination der Katzenbetreuung während der Urlaubszeit. Anstatt unübersichtlicher Chat-Gruppen bietet die App einen zentralen Kalender, in dem sich Freunde, Nachbarn oder Sitter eintragen können.
🌟 Konzept & Philosophie
Die App folgt dem Prinzip "Keep it simple":
- Keine Registrierung erforderlich: Sitter müssen kein Konto anlegen.
- Passwortschutz: Jeder Plan ist durch ein einfaches Gruppen-Passwort geschützt.
- Fokus auf das Wesentliche: Wer füttert an welchem Tag?
✨ Features
- 📅 Zentraler Kalender: Übersichtliche Darstellung des gesamten Zeitraums.
- <EFBFBD>⬛ Titel-Personalisierung: Gib deinem Plan einen Namen (z.B. "Urlaub bei Lilly & Diego").
- 🌍 Mehrsprachig: Volle Unterstützung für Deutsch und Englisch.
- 🔔 Webhook-Integration: Erhalte sofort Benachrichtigungen via Discord oder Telegram bei neuen Buchungen, Absagen oder wenn ein Job erledigt wurde.
- 🕒 Flexible Intervalle: Konfiguriere individuelle Intervalle für Fütterung und Reinigung (z.B. Fütterung alle 3 Tage bei Futterautomaten).
- ✅ Erledigt-Bestätigung: Sitter können mit einem Klick bestätigen, wenn sie vor Ort waren – du erhältst sofort eine Notification.
- 📅 iCal-Export: Sitter können den Plan als Kalender-Abo (ICS) in ihr Handy integrieren.
- 🏠 Besitzer-Status: Markiere Tage, an denen du noch (oder schon wieder) zu Hause bist.
- 📝 Instruktionen: Hinterlege wichtige Infos (Futtermenge, Medikamente, Notfallnummern) direkt im Plan.
🚀 Bedienung
- Plan erstellen: Wähle deinen Reisezeitraum, die Intervalle für Futter & Klo, vergib einen Titel und ein Gruppen-Passwort.
- Link teilen: Schicke den Link und das Passwort an deine Sitter.
- Eintragen lassen: Sitter klicken einfach auf einen freien Tag, geben ihren Namen ein und bestätigen.
- Bestätigen lassen: Sobald der Sitter seine Aufgabe erledigt hat, klickt er im Dashboard auf "Job erledigt?".
- Informiert bleiben: Dank der Webhooks weißt du sofort, wenn ein Tag abgedeckt ist, jemand absagen musste oder die Katzen gerade versorgt wurden.
<EFBFBD>️ Technischer Stack
- Framework: Next.js (App Router)
- Datenbank: SQLite mit Prisma ORM
- Styling: Tailwind CSS & Shadcn/UI
- Benachrichtigungen: Universelle HTTP-Webhooks
🔔 Notification Setup (Discord/Telegram)
Um Alarme zu erhalten, konfiguriere einen Webhook in den Einstellungen deines Dashboards.
👾 Discord
- Gehe in deinem Discord-Server auf Servereinstellungen > Integrationen > Webhooks.
- Erstelle einen Neuen Webhook, kopiere die Webhook-URL.
- Füge diese URL in den Plan-Einstellungen ein.
✈️ Telegram
Am einfachsten via Intergram:
- Suche in Telegram nach
@IntergramBot. - Sende
/start, um deine Chat ID zu erhalten. - Webhook-URL:
https://www.intergram.xyz/msg/DEINE_CHAT_ID
📲 Push Notifications (PWA)
Die App funktioniert als Progressive Web App (PWA) und unterstützt Push-Benachrichtigungen direkt auf dem Smartphone oder Desktop.
Setup für Selbsthoster (VAPID Keys)
Damit Push funktioniert, müssen VAPID Keys in der Umgebung hinterlegt werden.
- Generiere Keys:
npx web-push generate-vapid-keys - Setze die Environment Variables (z.B. in
.envoder Docker):
# Public Key (Wird vom Browser benötigt)
NEXT_PUBLIC_VAPID_PUBLIC_KEY="<Dein Public Key>"
# Private Key (Bleibt auf dem Server!)
VAPID_PRIVATE_KEY="<Dein Private Key>"
# Kontakt-Email für den Push-Service
VAPID_SUBJECT="mailto:admin@example.com"
Der Benutzer kann Push-Benachrichtigungen dann direkt im Dashboard über die Einstellungen aktivieren.
🐳 Deployment (Docker)
1. Build & Run
Mit Docker Compose (empfohlen):
docker-compose up -d --build
Mit Docker CLI:
# Image bauen
docker build -t cat-sitting-planner .
# Container starten
# Container starten
docker run -d \
--name cat-sitting-planner \
-p 3000:3000 \
-v /pfad/zum/host/data:/app/data \
-v /pfad/zum/host/uploads:/app/public/uploads \
--restart always \
cat-sitting-planner
2. Datenpersistenz (Wichtig)
Die Daten liegen in /app/data/dev.db.
Bilder werden in /app/public/uploads gespeichert.
Mappe diese Ordner unbedingt auf lokale Volumes:
volumes:
- /pfad/zum/host/data:/app/data
- /pfad/zum/host/uploads:/app/public/uploads
🏥 System Status
Die App stellt einen einfachen Healthcheck-Endpoint bereit, der von Docker oder externen Monitoring-Tools genutzt werden kann:
- Endpoint:
/health - Method:
GET - Response:
200 OK{"status":"ok"}
Erstellt mit ❤️ für alle Dosenöffner.