🧠 Lokales Backup- & Deployment-Tool für Entwicklerprojekte
Ein schlankes, lokal ausführbares Backup- und Deployment-Tool für Entwicklungsprojekte – entwickelt mit Python, Tkinter und einer SQLite-Datenbank zur Verwaltung projektbezogener Informationen. Ziel ist eine einfache, transparente Sicherung und Übertragung von Quellcode in definierte Backup- oder Runtime-Verzeichnisse.
- 🗂️ Projektverwaltung mit Quell-, Backup- und optionalem Runtime-Pfad
- 🕓 Versionierte Backups mit Zeitstempel (nach Datum/Uhrzeit)
- 🚀 Manuelles Deployment in Laufzeitumgebungen (z. B. XAMPP)
- 🧹 Ausschlussmuster für
.git,__pycache__etc. - 🛡️ Pfadvalidierung gegen riskante Systemverzeichnisse
- 📊 Fortschrittsanzeige und Statusprotokoll im Hauptfenster
codekeeper/
main.py # GUI, Engine und Projektsteuerung
codekeeper.db # SQLite-Datenbank für Projekte
config/
templates/ # ggf. Vorlagen für zukünftige Erweiterungen
-
Repository klonen:
git clone https://github.com/chefkoch0312/codekeeper.git
-
Abhängigkeiten sicherstellen (nur Standardbibliotheken benötigt) & Ausführen:
python main.py
Über die grafische Oberfläche lassen sich Projekte hinzufügen, bearbeiten oder löschen. Jedes Projekt speichert:
- ✅ Quellpfad (z. B.
C:/Users/user/dev/projektX) - ✅ Backup-Ziel (z. B.
Z:/backup/projektX) - ✅ Optional: Laufzeitumgebung (z. B.
C:/xampp/htdocs/projektX)
Ein Klick auf „Backup erstellen“ erzeugt eine vollständige, versionierte Kopie. Der Button „In Runtime kopieren“ überträgt den aktuellen Stand (nach Rückfrage) in das Laufzeitverzeichnis.
Das Herzstück bildet die Klasse BackupEngine. Sie durchläuft rekursiv den Quellordner, ignoriert per Muster definierte Ausschlüsse und kopiert die restlichen Dateien an den Zielort. Pfade wie C:/Windows oder Root-Verzeichnisse werden geblockt.
Die Klasse ProjectManager verwaltet alle Projekte in der SQLite-Datenbank. Die GUI-Komponente CodeKeeperGUI verbindet alle Logikbestandteile zu einer übersichtlichen Bedienoberfläche.
CodeKeeper ist ein lokales Werkzeug – es läuft vollständig ohne Internetverbindung. Die Datenbank befindet sich im Projektverzeichnis und speichert ausschließlich Pfadinformationen und Metaangaben. Es erfolgt keine automatische Synchronisierung oder Cloud-Nutzung.
- 🔄 Automatische Backup-Intervalle (per Task-Scheduler)
- ☁️ Unterstützung für Netzlaufwerke & Cloud-Ziele
- 🧪 Unit Tests für BackupEngine und PathValidator
- 🗃️ Export/Import von Projektprofilen (z. B. als JSON)
Entwickelt & gepflegt von Kai Dombrowski