add: Django projekts to KB
This commit is contained in:
1 parent
eadfe50e65
commit
4723b23600
2 files changed
+69
-3
No files matched your search
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user