- add_packing_list.php: Critical Fix für Browser-Freeze (MutationObserver ersetzt). - packing_list_detail.php: Chart-Design optimiert (Kontrast, Rahmen entfernt). - backpacks.php: Button-Farbe angepasst. - README.md: Changelog aktualisiert.
Trekking Packliste
Eine moderne, webbasierte Anwendung zur Verwaltung von Packlisten für Wanderungen, Trekking-Touren und Reisen. Die Anwendung hilft dir, deine Ausrüstung zu organisieren, das Gewicht zu optimieren und nichts Wichtiges zu vergessen. Besonderer Fokus liegt auf der Zusammenarbeit in Haushalten und einer hierarchischen Packstruktur (z.B. Inhalt im Kulturbeutel im Rucksack).
Inhaltsverzeichnis
Funktionen
- Artikeldatenbank: Erfasse deine gesamte Ausrüstung mit Bild, Gewicht, Hersteller und Kategorie.
- Rucksack-Management: Definiere deine Rucksäcke inkl. Fächern (Deckelfach, Bodenfach, etc.).
- Intelligente Packlisten:
- Drag & Drop Editor: Ziehe Artikel einfach aus deinem Bestand in die Liste.
- Container-Logik: Weise Trägern Rucksäcke zu. Die Fächer erscheinen automatisch als Ordner, in die du packen kannst.
- Verschachtelung (Nesting): Organisiere deine Liste logisch (z.B. Erste-Hilfe-Set im Deckelfach).
- Haushalts-Modus: Teile deinen Artikelbestand und deine Listen mit Familie oder Freunden.
- Gewichtskalkulation: Sieh sofort, wie schwer dein Rucksack ist und wie viel Gewicht auf welche Kategorie (z.B. "Kochen", "Schlafen") entfällt.
- Druck-Optimierung: Generiere eine übersichtliche PDF/Druckansicht zum Abhaken.
- Modernes UI: Responsive Oberfläche mit Dark-Glass-Effekten.
Installation
Voraussetzungen
- Webserver (Apache mit
mod_rewriteempfohlen, oder Nginx) - PHP 8.0 oder höher
- MariaDB / MySQL Datenbank
- PHP-Erweiterungen:
mysqli,gd(für Bildbearbeitung)
Neuinstallation
-
Dateien hochladen: Kopiere alle Dateien aus diesem Repository in das Web-Verzeichnis deines Servers (z.B.
/var/www/html/packliste). -
Datenbank einrichten:
- Erstelle eine leere Datenbank (z.B.
packliste). - Importiere die Datei
packliste.sqlin diese Datenbank (z.B. via phpMyAdmin oder Konsole).
- Erstelle eine leere Datenbank (z.B.
-
Konfiguration:
- Erstelle eine Datei
config.iniaußerhalb des öffentlichen Web-Verzeichnisses (z.B. ein Verzeichnis höher alsindex.php). - Inhalt der
config.ini:servername = localhost username = dein_db_benutzer password = dein_db_passwort dbname = packliste - Hinweis: Die Anwendung sucht standardmäßig unter
../config.ini.
- Erstelle eine Datei
Docker Deployment
Die Anwendung ist vollständig containerisiert ("Dockerized"). Du kannst sie direkt als Container starten und mit einer beliebigen externen MySQL/MariaDB-Datenbank verbinden.
-
Image bauen:
docker build -t packliste-app . -
Container starten: (Ersetze die Platzhalter durch deine Datenbank-Zugangsdaten)
docker run -d \ -p 8080:80 \ -e DB_HOST="deine-datenbank-ip" \ -e DB_USER="dein_db_user" \ -e DB_PASSWORD="dein_db_passwort" \ -e DB_NAME="packliste" \ -v packliste_uploads:/var/www/html/uploads \ --name packliste-container \ packliste-appHinweis: Bilder werden im Volume
packliste_uploadsgespeichert. Das Git-Repository enthält keine Nutzer-Bilder. -
Update & Rebuild (Aktualisierung): Wenn du Änderungen aus dem Git ziehen ("den Rotz ziehen") und die App aktualisieren willst:
# 1. Neuesten Code holen git pull origin master # 2. Container stoppen und löschen (Datenbank & Uploads bleiben im Volume erhalten!) docker stop packliste-container docker rm packliste-container # 3. Image neu bauen docker build -t packliste-app . # 4. Neuen Container starten (gleicher Befehl wie oben) docker run -d ... (siehe oben)Die App ist anschließend unter
http://localhost:8080erreichbar.
Bedienungsanleitung
1. Erste Schritte & Haushalte
Nach der Registrierung landest du auf dem Dashboard. Die App ist darauf ausgelegt, dass man Ausrüstung teilen kann.
- Haushalt gründen: Unter dem Menüpunkt "Haushalt" kannst du einen neuen Haushalt erstellen (z.B. "WG Müller" oder "Familie Schmidt").
- Mitglieder einladen: Als Admin des Haushalts kannst du andere registrierte Benutzer per Benutzernamen einladen. Diese sehen nach dem Login eine Einladung, die sie annehmen können.
- Vorteil: Alle Artikel, die als "Für Haushalt freigegeben" markiert sind, können von allen Mitgliedern in deren Packlisten verwendet werden.
2. Ausrüstung verwalten (Artikel & Rucksäcke)
- Artikel: Pfleg deinen Bestand unter "Artikel". Du kannst Bilder hochladen, eine URL angeben oder Bilder per Copy & Paste einfügen.
- Rucksäcke: Unter "Rucksäcke" legst du deine Transportmittel an. Definiere hier auch die Fächer (z.B. Hauptfach, Deckelfach, Hüftgurt). Diese dienen später als Container in deinen Listen.
3. Packlisten erstellen & bearbeiten
Dies ist das Herzstück der Anwendung.
- Gehe zu "Packlisten" und erstelle eine neue Liste.
- Rucksack-Zuweisung: Wähle direkt beim Erstellen (oder später unter "Details bearbeiten"), wer welchen Rucksack trägt.
- Klicke in der Übersicht auf "Artikel verwalten" (das Box-Icon).
Der Packlisten-Editor (Drag & Drop)
Der Editor ist zweigeteilt:
- Links: Dein verfügbarer Artikelbestand (filterbar).
- Rechts: Deine Packliste, gruppiert nach Trägern und deren Rucksäcken/Fächern.
Bedienung:
- Packen: Ziehe Artikel in die entsprechenden Fächer deines Rucksacks.
- Verschachteln: Du kannst Artikel auch in andere Artikel ziehen (z.B. "Socken" in "Packbeutel").
- Sortieren: Ziehe Artikel nach oben oder unten, um die Reihenfolge zu ändern.
4. Drucken & Export
Klicke in der Packlisten-Übersicht auf "Details ansehen" (Augen-Icon).
- Ansicht: Du siehst eine hierarchische Baumstruktur deiner Liste. Rucksäcke sind grün hinterlegt.
- Drucken: Klicke auf "Drucken". Die Ansicht ist speziell für Papier optimiert (fettgedruckte Fächer, Checkboxen für Artikel).
5. Profil & Einstellungen
Unter "Profil" kannst du dein Passwort ändern und App-Einstellungen vornehmen.
Technologie
Das Projekt basiert auf bewährten Web-Standards:
- Backend: PHP 8.2 (Natives PHP, keine schweren Frameworks)
- Frontend: HTML5, CSS3 (Custom Theme), Bootstrap 5
- Datenbank: MariaDB / MySQL
- JavaScript: Vanilla JS + Sortable.js (für Drag & Drop) + Chart.js (für Diagramme).
Changelog
06.12.2025
- Rucksäcke:
- Neues Feld für Hersteller-Link (Product URL) hinzugefügt.
- "Info"-Button in der Übersicht öffnet den hinterlegten Link (Design angepasst auf Grün).
- Fix: Eingabefeld für neue Hersteller erscheint nun zuverlässig.
- Artikel:
- Komfort-Funktion: Auswahl aus den letzten 24 hochgeladenen Bildern beim Erstellen neuer Artikel hinzugefügt.
- Packlisten:
- Editor: Filter-Optionen ("Alle Kategorien", "Alle Hersteller") korrigiert und erweitert.
- Erstellung:
- Validierung hinzugefügt, die verhindert, dass ein Rucksack mehrfach zugewiesen wird.
- Critical Fix: Browser-Freeze durch Endlosschleife bei der Validierung behoben.
- Details:
- Design-Update: Diagramme verwenden nun kontrastreiche Grüntöne passend zum Thema (ohne weiße Rahmen).
- Statistik: Klickbare Trägernamen öffnen ein Modal mit detaillierten Gewichtsstatistiken pro Kategorie.