add: Django projekts to KB

This commit is contained in:
trnq1ll0 committed 2026-08-01 09:31:32 +02:00
1 parent eadfe50e65
commit 4723b23600
2 files changed
+69 -3

No files matched your search

+26
View File
@@ -58,6 +58,32 @@ Jedes Projekt/Kontext besteht aus einem Link bzw Quell, einer Beschreibung, den
- Herausforderungen: Wiederverwendbare, responsive Seitenelemente für unterschiedliche Informationsinhalte; einheitliche Einbindung von Navigation, Kontakt- und Social-Media-Links; lokal reproduzierbarer Build unter Windows und Linux. - Herausforderungen: Wiederverwendbare, responsive Seitenelemente für unterschiedliche Informationsinhalte; einheitliche Einbindung von Navigation, Kontakt- und Social-Media-Links; lokal reproduzierbarer Build unter Windows und Linux.
- Lösungen: Erweiterung der Jekyll-Website um ein Full-Width-Kartenlayout auf Basis von Liquid-Templates; Anpassung von Karten- und Kontakt-Styles mit Sass; Pflege von Navigation, Footer und Social-Media-Verlinkungen; Dokumentation der lokalen Ruby-/Bundler-Installation und des Jekyll-Entwicklungsservers für Windows und Linux. - Lösungen: Erweiterung der Jekyll-Website um ein Full-Width-Kartenlayout auf Basis von Liquid-Templates; Anpassung von Karten- und Kontakt-Styles mit Sass; Pflege von Navigation, Footer und Social-Media-Verlinkungen; Dokumentation der lokalen Ruby-/Bundler-Installation und des Jekyll-Entwicklungsservers für Windows und Linux.
## Django-Lernprojekt mit Umfrage- und Blog-App
- Zeitraum: 20. bis 28. Juni 2018
- Quelle: `/Volumes/rob/code/django-first-app`.
- Kontext: Schrittweiser Aufbau einer Django-Webanwendung mit den Apps `polls` und `blog` zum Erlernen der zentralen Framework-Konzepte.
- Herausforderungen: Strukturierung von Projekt und Apps; Verknüpfung verschachtelter URL-Konfigurationen; Modellierung und Abfrage relationaler Daten; Verarbeitung von Formular-POSTs sowie Trennung von Darstellung und Anwendungslogik.
- Lösungen: Django-ORM-Modelle `Question` und `Choice` mit Fremdschlüssel und Migration; SQLite als Entwicklungsdatenbank; Registrierung der Modelle im Django-Admin; funktionsbasierte und generische `ListView`-/`DetailView`-Ansichten; Templates und Kontextvariablen; Namespaces, `get_object_or_404`, `reverse` und Redirect-after-POST für den Abstimmungsablauf.
## info.ngo – Django-CMS-Prototyp
- Zeitraum: Juli 2019, belegt durch die Projektdateien vom 30. Juli 2019.
- Quelle: lokales Projektverzeichnis `/Volumes/rob/code/django-cms/info.ngo`.
- Kontext: Prototyp einer redaktionell pflegbaren Website auf Basis von Django CMS 3.6 und Django 1.x.
- Herausforderungen: Aufbau frei editierbarer Seitenlayouts; Integration eines umfangreichen CMS-Plugin-Ökosystems; Navigation, Sitemap sowie konsistente Verwaltung von statischen Dateien und Medien.
- Lösungen: Django-CMS-Templates mit Toolbar, Menüs, Sekizai-Blöcken und Platzhaltern für Vollbreiten- und Sidebar-Layouts; CMS-Sitemap und Django-Admin; SQLite-Datenbank; Plugins für CKEditor-Text, Links, Bilder, Dateien, Spalten, Styles, Snippets, Google Maps und Videos sowie `django-filer`, `easy-thumbnails`, Treebeard und MPTT.
## info.ngo – Event-, Karten- und Datenplattform
- Zeitraum: Juli bis August 2019; Teamprojekt mit eigenen, durch Git belegten Beiträgen vom 30. Juli bis 27. August 2019.
- Quellen: Git-Repository `/Volumes/rob/code/info.ngo/info.ngo`, Django-Anwendung `/Volumes/rob/code/info.ngo/info.ngo/InfoNgo_django` und Wiederaufbaukopie `/Volumes/rob/code/info.ngo/rebuild-rob/InfoNgo_django`.
- Kontext: Gemeinsame Entwicklung einer Python- und Django-Plattform zur Gewinnung, Normalisierung, Speicherung, Filterung und kartografischen Darstellung von Veranstaltungs- und Stiftungsinformationen.
- Eigene belegte Beiträge: Abruf und Parsing der Stiftungssuche; Einlesen von Thunderbird-Mailboxen und Grundstruktur eines Mail-Parsers; Weiterentwicklung der Kalenderdaten-Auswertung; Dokumentation und Zusammenführung von Teamänderungen.
- Herausforderungen: Heterogene Websites, HTML-Seiten und E-Mail-Formate; unregelmäßige Datumsangaben; Vermeidung doppelter Events und Orte; Geokodierung und räumliche Darstellung; gemeinsames Filtern und Paginieren; Überführung eigenständiger Scraper in eine Webanwendung bei weiter möglicher Standalone-Ausführung.
- Lösungen: Requests, Beautiful Soup, `lxml`/`html5lib`, Python-`mailbox` und MIME-Verarbeitung sowie CSV-Ausgabe für die Datenerfassung; Django-2.1-Anwendung mit ORM-Modellen für Events und Locations, Migrationen, Many-to-many-Beziehung, eindeutigen Feldern und transaktionaler Importlogik; Factory-/Service-Layer zur JSON-Serialisierung und DB-Übernahme; Geokodierung mit Geopy und GeoJSON-Punkte mit `djgeojson`; Listenansicht mit `django-filter`, Datumsbereichsfilter und Paginierung; Leaflet-Karte mit zeitabhängig eingefärbten Material-Markern; Django-Templates, Authentifizierung, Crispy Forms, Bootstrap und jQuery; MySQL-Konfiguration mit SQLite-Sicherung sowie Python-3.7-/Conda-Umgebung und vorbereiteten Abhängigkeiten für PostgreSQL, Gunicorn, WhiteNoise, Heroku und S3-Speicher.
- Varianten: Die Wiederaufbaukopie enthält denselben grundlegenden Django-, App- und Service-Layer; die Hauptvariante erweitert sie um dynamische Popup-Inhalte, zeitabhängige Farbwerte und Material-Icons für Leaflet-Marker.
## WLAN-gesteuerter LED-Rahmen ## WLAN-gesteuerter LED-Rahmen
- Zeitraum: September 2022 bis Januar 2023, belegt durch eigene Commits im Repository. - Zeitraum: September 2022 bis Januar 2023, belegt durch eigene Commits im Repository.
+43 -3
View File
@@ -134,9 +134,49 @@ Jede Technologie wird einzeln genannt und enthält das Level der verwendeten Kom
### Python ### Python
- Komplexität: Entwicklung eines konfigurationsgesteuerten Migrationswerkzeugs mit API-Anbindung, Datenkonvertierung und Dateiverarbeitung. - Komplexität: Entwicklung von Web-, Scraping-, Datenmigrations- und Automatisierungswerkzeugen mit API-Anbindung, Datenkonvertierung und Dateiverarbeitung.
- Einsatz: Abruf eines MediaWiki über dessen API, HTML-zu-Markdown-Konvertierung, Download von Bildern, Erzeugung von Metadaten und interaktive Link-Konvertierung. - Einsatz:
- Projekt: MediaWiki-zu-Obsidian-Migration in `ScrapeMediawiki`, belegt durch eigene Commits von August bis Oktober 2024. - Abruf eines MediaWiki über dessen API, HTML-zu-Markdown-Konvertierung, Download von Bildern, Erzeugung von Metadaten und interaktive Link-Konvertierung;
- Web-Scraping, Mailbox-/MIME-Verarbeitung, Datumsnormalisierung und CSV-Ausgabe für Veranstaltungs- und Stiftungsdaten.
- Projekte:
- MediaWiki-zu-Obsidian-Migration in `ScrapeMediawiki`, belegt durch eigene Commits von August bis Oktober 2024;
- eigene Beiträge zum Teamprojekt `info.ngo`, belegt durch Commits von Juli bis August 2019.
### Django, Django ORM und Django CMS
- Komplexität: Vom schrittweisen Framework-Lernprojekt über einen CMS-Prototyp bis zu einer mehrschichtigen, datengetriebenen Webanwendung.
- Einsatz: Projekt- und App-Struktur, URL-Routing, ORM-Modelle und Migrationen, Admin, Authentifizierung, funktionsbasierte und generische Views, Formulare, Templates, statische Dateien und Medien; Django-CMS-Seiten mit Toolbar, Navigation, Sekizai-Blöcken, editierbaren Platzhaltern und Plugin-Konfiguration.
- Projekte: Eigenes Django-Lernprojekt `django-first-app` im Juni 2018; Django-CMS-Prototyp `/Volumes/rob/code/django-cms/info.ngo` im Juli 2019; Teamprojekt `info.ngo` im Juli und August 2019.
### Requests, Beautiful Soup, lxml und E-Mail-Parsing
- Komplexität: Gewinnung und Normalisierung semistrukturierter Daten aus mehreren Web- und Nachrichtenquellen.
- Einsatz: HTTP-GET- und POST-Abrufe; HTML-Parsing mit Beautiful Soup sowie `lxml` und `html5lib`; Behandlung unregelmäßiger Datumsangaben; CSV-Export; Einlesen von Thunderbird-Mailboxen und Dekodierung von MIME-Inhalten; Vorbereitung der Daten für eine Django-Importpipeline.
- Projekt: Eigene Beiträge zum Teamprojekt `info.ngo`, belegt durch Git-Commits vom 30. Juli bis 27. August 2019.
### django-filter, Paginierung und transaktionaler Datenimport
- Komplexität: Durchgängige Verarbeitung von extern gewonnenen Daten bis zur filterbaren, seitenweise dargestellten Webansicht.
- Einsatz: Filterung von Events nach Titel, Datumsbereich und Veranstaltungsort; Erhalt der Filterparameter beim Seitenwechsel; Django-Paginator; Factory-/Service-Layer mit JSON-Serialisierung; atomare ORM-Operationen und Behandlung von Integritätsfehlern zur Vermeidung von Duplikaten.
- Projekt: Teamprojekt `info.ngo`, Juli bis August 2019.
### Leaflet, GeoJSON, Geopy und interaktive Karten
- Komplexität: Geokodierung, Speicherung und browserseitige Visualisierung räumlicher Veranstaltungsdaten.
- Einsatz: Ermittlung von Koordinaten aus Ortsangaben mit Geopy; GeoJSON-Punktfelder über `djgeojson`; Ausgabe von Modelldaten als GeoJSON; Leaflet-Karte mit Popups, ein- und ausblendbarer Kartenansicht sowie zeitabhängig eingefärbten Material-Markern.
- Projekt: Teamprojekt `info.ngo`, Juli bis August 2019.
### Django-Templates, Bootstrap und jQuery
- Komplexität: Serverseitig gerenderte, interaktive Weboberfläche mit Formularen, Authentifizierung, Filtern und Kartendarstellung.
- Einsatz: Template-Vererbung und statische Assets; Bootstrap-Layouts, Formulare und Toggles; Crispy Forms; jQuery-basierte UI-Steuerung und Validierung; Einbindung von Leaflet und Material Icons.
- Projekt: Teamprojekt `info.ngo`, Juli bis August 2019.
### MySQL, SQLite, Conda und Python-Web-Deployment
- Komplexität: Entwicklungs-, Datenbank- und Laufzeitkonfiguration einer Django-Anwendung für lokale und serverseitige Umgebungen.
- Einsatz: MySQL als konfigurierte Anwendungsdatenbank; SQLite für Lernprojekt, CMS-Prototyp und Sicherung; reproduzierbare Python-3.7-Umgebung mit Conda und gepinnten Paketen; vorbereitete Abhängigkeiten für PostgreSQL, Gunicorn, WhiteNoise, Heroku sowie S3-kompatiblen Speicher mit `django-storages` und Boto3.
- Projekte: `django-first-app`, Django-CMS-Prototyp `info.ngo` und Teamprojekt `info.ngo`, 2018 bis 2019.
### MediaWiki-API, Requests, Beautiful Soup und html2text ### MediaWiki-API, Requests, Beautiful Soup und html2text