Offene Baustellen » Historie » Revision 15
Revision 14 (Tilo Thiele, 12.02.2026 17:46) → Revision 15/18 (Tilo Thiele, 18.02.2026 10:37)
{{>toc}}
# Offene Baustellen
## Logik
1. ~~Terminkalender~~ es nur fehlt noch:
1. ~~Mailbenachrichtigung~~ nach der Anmeldung
1. (klären: JR/EL) Berechtigungsgesteuerter Abruf der Anmeldung (für Sonderleiter)
1. Berechtigungsgesteuerter Abruf von Seiten
1. (klären: JR/EL) Seite: Neue Mitglieder
1. (klären: JR/EL) Formulare/Downloads
1. ~~Geolocation zuende implementieren (drosseln auf < 1 Abfrage/sek)~~
1. ~~Hunde: Verknüpfung mit Züchter (Import Daten von Chromosoft)~~
1. ~~Verknüpfung der Hunde (Vorfahren/Nachkommen) für Pedigree (automatisch nicht möglich über Zuchtbuchnummer).~~
1. ~~Kestra~~ Automation bei Import
1. ~~Seitliches Drawer-Kurzmenü~~
1. ~~(klären: (klären: JR/EL) Selfservice Welpenpflege~~ Welpenpflege
1. ~~(klären: (klären: JR/EL) Selfservice Züchterdatenpflege~~ Züchterdatenpflege
1. ~~Züchtersuche Züchtersuche mit Karte; Tabellen-/Card-Ansicht~~ Tabellen-/Card-Ansicht
1. ~~Hundesuche: Tabellen-/Card-Ansicht~~
1. ~~Würfe mit Karte~~
1. ~~News/Neuigkeiten~~
1. ~~Berichte~~
1. ~~Preview-Logik implementieren~~
1. Meine HZD zuende gestalten
1. (klären: JR/EL) teilen via fb, twitter, insta - wer ist hier admin? Wer kann mir die App-ID/Token geben?
1. SEO / robots.txt, metadata,~~sitemap.xml~~ implementieren
1. Captcha in den Kontaktmailer integrieren
1. EG: Zuchthündin - Anzeige, welche Würfe hat die Hündin in dem Zwinger?
1. EG: Züchter ohne Hündin sichtbar bis z.B. 3 Jahre (über Disable manuell lösbar)
1. EG: PDF Viewer nice-to-have
1. EG: Champins Seite implementieren
1. EG: Fotos auch als Großansicht
## Frontend-Design
1. Testseite auf Prod gestalten - mit allen Sections
1. ~~Farbkonzept / Farbpalette definieren~~
1. ~~Schriften festlegen (Robotoslab/Roboto?)~~
1. ~~(klären: EG) Bilder: Seitenverhältnis klären; ggf. Layout anpassen oder Bilder beschneiden~~ -> 4:3
1. Optimieren von
- Abstände
- Schriftgrößen
- Schriftstärke
- Zeichenabstände
- Zeilenhöhe
1. Optimieren mobile Ansicht/Responsiveness
1. Accessability
1. ~~micro animations einbauen~~
1. css optimieren: `<ul>` und `<ol>` werden in der RichtTextSection ohne bullets und in schwarzer Schrift dargestellt.
1. SS: Social Icons in HZD-Blau
## Redaktionelles/Rechtliches
1. (klären: JR/EG) Menüstruktur / Struktur der Website
1. (TODO TIK) wo sollen die Regionen verlinkt werden? Wo kommen die Ortsgruppen hin?
1. (TODO TIK) (ggf. Impressum)
1. (TODO TIK) Datenschutzerklärung anpassen
1. (TODO TIK) Texte überarbeiten
1. (TODO JR/TIK) Formulare
- (TODO JR/TIK) Vollständigkeit
- (klären JR/TIK) Zugriffsbeschränkung
- (TODO JR/TIK) Systematik IDs
## Import Chromosoft Daten
### Hunde
Hier ist alles klar soweit.
Die Daten werden vollständig von Chromosoft übernommen.
### User
| Relevantes Felder | Bedeutung/Besonderheit |
|--|--|
| ID Person | |
| 0/1 access | |
| email | |
| internet | |
| membership number | |
| person is a member | |
| person is a breeder | bei =1, wird ein Breeder Datensatz angelegt und mit dem User Datensatz verknüpft. |
| person is an active breeder | |
| date of joining, date of leaving | Zugang wird geblockt, wenn noch kein Mitglied (oder nicht mehr) |
| date of death | |
#### eindeutige Email-Adressen
es muss *eine* gültige, eindeutige Email-Adresse vorhanden sein
Geht nicht: 'pfeifferb64@gmx.de mchaeb@t-online.de' (sind zwei EMail-Adressen)
Geht nicht: '-', '', (leer)
#### Importskript (Pseudocode)
1. Lies die CSV-Datei ein (chromosoft-user)
1. Setze blocked=true, wenn die email ungültig oder leer ist oder date-of-joining/leaving keine gültige Mitgliedschaft anzeigt.
1. Bilde eine map (chromosoft-user-by-cid)
1. Email-Dubletten für user(blocked=false): Löse Konflikt - Prio hat 1. Datensatz (membership status=Mitglied)
1. Bilde eine map (chromosoft-user-by-email)
1. Lies die Website-User ein.
1. Bilde eine map (website-user-by-documentId)
1. Bilde eine map (website-user-by-email)
1. Bilde eine map (website-user-by-username)
1. jeden chromosoft-user in die website importieren
1. username = membership-no oder 'c-'cId falls membership-no nicht vorhanden ist
1. dddd
## Datenmigration
klären JR/EL/EG/TIK
1. Datenmigration von der aktuellen Website - Umfang klären.
1. Hunde sind für mich sichtbar nur über die Zuchtbuchnummer verknüpft. Diese ist jedoch nicht eindeutig und ist in verschiedenen Schreibweisen gespeichert (VDH-...)
1. Klären: welcher Umfang welcher Daten?
1. Berichte
1. Nachrichten
1. Hunde
1. Züchter
1. Würfe
1. User
1. bilder
1. Datenpflege Chromosoft: totgeborene Welpen eindeutig benamen A1, A2, ...
1. Datenpflege Chromosoft: weitere mehrdeutige Namen eliminieren
1. ~~'aktive' Züchter manuell disablen (Möglichkeit im Backend schaffen)~~
```
Validation failed for alle-hunde.csv:
- Spalte E: Wert 'B..... zur Teufelseiche' ist nicht eindeutig (Zeilen: [86, 87])
- Spalte E: Wert 'Nika vom Campemoor' ist nicht eindeutig (Zeilen: [164, 4856])
- Spalte E: Wert 'Sunia Las Ksiezniczek' ist nicht eindeutig (Zeilen: [252, 1812])
- Spalte E: Wert 'Lotta Klejnot Fanusi' ist nicht eindeutig (Zeilen: [253, 1826])
- Spalte E: Wert 'Xena Chatka Zielarki' ist nicht eindeutig (Zeilen: [283, 4109])
- Spalte E: Wert 'Nicht nach VDH- und FCI-Regeln gezüchtet' ist nicht eindeutig (Zeilen: [355, 8178])
- Spalte E: Wert 'A... von Gina's vier Linden' ist nicht eindeutig (Zeilen: [386, 8221])
- Spalte E: Wert 'E... vom Schadendorfer Krug' ist nicht eindeutig (Zeilen: [402, 403, 404, 8239, 8240, 8241, 8242])
- Spalte E: Wert 'B... aus dem Buntspecht-Wald' ist nicht eindeutig (Zeilen: [620, 621, 622, 8438, 8439])
- Spalte E: Wert 'Hovahome´s Afi' ist nicht eindeutig (Zeilen: [764, 1428])
- Spalte E: Wert 'Azazela von Philippsdorf' ist nicht eindeutig (Zeilen: [1036, 1305])
- Spalte E: Wert 'A... von Xanyara's Hof' ist nicht eindeutig (Zeilen: [1084, 8853])
- Spalte E: Wert 'Avila von der Asseburg' ist nicht eindeutig (Zeilen: [2874, 4617])
- Spalte E: Wert 'Panja von der Asseburg' ist nicht eindeutig (Zeilen: [3305, 3394])
- Spalte E: Wert 'Pearl von der Asseburg' ist nicht eindeutig (Zeilen: [3307, 3395])
- Spalte E: Wert 'Balinka vom Wirtemberg' ist nicht eindeutig (Zeilen: [5422, 7388])
- Spalte E: Wert 'Ypsy von der Asseburg' ist nicht eindeutig (Zeilen: [5599, 6146])
- Spalte E: Wert 'Flocky Eilleen' ist nicht eindeutig (Zeilen: [7847, 12413])
- Spalte E: Wert 'Ozi Las Ksiezniczek' ist nicht eindeutig (Zeilen: [8143, 9538])
- Spalte E: Wert 'Gigur von Griessesch' ist nicht eindeutig (Zeilen: [8306, 15128])
- Spalte E: Wert 'Wasko von der Asseburg' ist nicht eindeutig (Zeilen: [12261, 14074])
- Spalte E: Wert 'Xandro von der Asseburg' ist nicht eindeutig (Zeilen: [12549, 14039])
- Spalte E: Wert 'Yorki von der Asseburg' ist nicht eindeutig (Zeilen: [13265, 13839])
- Spalte E: Wert 'Zemo von der Asseburg' ist nicht eindeutig (Zeilen: [13784, 14692])
- Row 163: Wert in Spalte H '-' existiert nicht in Spalte E.
```
## Weiterentwicklung
1. Bilderdatenbank für Gesamt-HZD - Uploadmöglichkeit über die Website?
1. Mitgliederantrag-Online?
1. Bilderupload Züchter (Freigabemechanismus)
1. HZD-App
- Körbogen-Formulare für Paul/Harald
## Brainstorming
Assoziationen - Alternativen für Hovithek
- Hovipedia
- Hovi-Almanach
- Hovizykopädie
- Hovikon (von Lexikon)
- Hovisaurus
- Hovibet (von Alphabet)
-
von Chattie:
- Hovapedia – Klassiker, angelehnt an Wikipedia
- HovaLex – von „Lexikon“
- HovaWissen – klar und verständlich
- HovaWiki – direkt selbsterklärend
- HovaBase – modern, technisch
- HovaArchiv – eher seriös/traditionell
- HovaKompass – als Orientierungshilfe
- HovaNet – schlicht und breit
- HovaGuide – beratender Charakter
- HovaInfo – sehr neutral
Etwas kreativer / verspielter:
- Hovarium (wie Herbarium/Aquarium)
- HovaSource
- HovaHub
- HovaWelt
- HovaPortal
Wenn es als Domain taugen soll (z. B. .de oder .org), sind besonders gut:
Hovapedia, HovaLex, Hovarium, HovaHub, HovaWiki.
## HTML-Code für die Regionenkarte (angepasst auf http://hovawarte.app.tilothiele.de)
``` html
<div itemprop="articleBody">
<p><img src="https://hzd-backend.app.tilothiele.de/uploads/HZD_gesamt_1_96be7bcf94.jpg" alt="HZD gesamt 1" usemap="#HZD-MAP-MAP" width="300" height="419" id="HZD-MAP" style="display: block; margin-left: auto; margin-right: auto;" class="img-responsive"></p>
<p><map name="HZD-MAP-MAP" id="HZD-MAP-MAP">
<area coords="57,76,81,75,85,85,82,91,91,90,91,85,91,79,97,86,97,90,109,92,113,103,121,105,123,116,113,131,104,140,94,140,85,146,85,162,76,167,76,178,81,183,80,189,90,205,90,217,82,229,75,231,73,241,61,251,63,264,73,274,76,282,76,289,69,289,61,284,59,289,47,290,42,288,40,292,30,286,25,288,24,293,19,298,17,293,13,288,17,280,18,276,8,267,8,250,13,250,13,238,11,237,10,229,6,221,11,218,9,210,5,210,6,206,8,207,14,204,19,185,11,169,16,164,24,167,32,165,32,167,39,167,38,159,36,158,48,150,48,136,38,134,38,130,43,127,48,129,51,118,55,113,57,96,61,96,60,91,56,88,51,89,52,84,56,83,57,79,55,78,57,76"
shape="poly"
href="/regionalgruppe-west"
style="outline: none;"
title="RG West"
onmouseover="if(document.images) document.getElementById('HZD-MAP').src='https://hzd-backend.app.tilothiele.de/uploads/RG_west1_f437ec23c9.jpg';"
onmouseout="if(document.images) document.getElementById('HZD-MAP').src= 'https://hzd-backend.app.tilothiele.de/uploads/HZD_gesamt_1_96be7bcf94.jpg';">
<area alt="" coords="100,88,101,89,111,90,113,101,123,103,126,115,116,133,104,142,94,142,87,148,86,163,77,170,78,176,82,180,83,188,91,204,105,191,105,178,119,172,133,185,137,179,150,181,147,191,152,194,157,188,156,179,152,176,158,169,154,163,164,163,169,159,167,151,172,147,167,142,167,132,161,118,169,119,172,115,177,118,183,117,193,108,190,105,192,98,200,97,206,90,218,99,224,97,227,103,237,103,240,99,246,99,254,91,259,91,265,87,272,96,285,92,286,76,283,80,273,78,261,70,274,70,282,71,289,63,283,67,275,69,270,63,268,66,263,67,260,65,262,59,268,61,262,56,250,59,245,51,253,45,259,48,253,39,256,36,250,34,246,32,243,33,243,38,245,44,243,48,240,50,237,44,231,46,225,46,220,52,216,49,209,58,205,58,204,60,198,58,194,59,194,63,191,63,190,71,184,68,181,63,170,69,166,59,173,56,178,54,177,45,174,45,169,50,161,44,153,43,149,45,149,38,137,40,146,34,147,28,137,37,133,37,132,35,143,27,143,22,138,21,133,19,127,20,127,18,133,13,108,5,105,17,117,37,113,40,104,41,106,46,113,45,111,54,115,56,112,62,112,67,125,68,134,82,141,88,132,87,119,70,108,71,101,68,100,74,98,79,102,88"
shape="poly"
href="/regionalgruppe-nord"
style="outline: none;"
title="RG Nord"
onmouseover="if(document.images) document.getElementById('HZD-MAP').src='https://hzd-backend.app.tilothiele.de/uploads/regionalgruppe_nord_hzd_hovawart_zuchtgemeinschaft_jpg_4cbb34659c.jpg';"
onmouseout="if(document.images) document.getElementById('HZD-MAP').src= 'https://hzd-backend.app.tilothiele.de/uploads/HZD_gesamt_1_96be7bcf94.jpg';">
<area alt="" coords="153,196,154,197,159,189,160,176,156,176,161,170,159,165,166,166,172,159,170,150,174,145,170,140,169,130,165,122,172,119,183,122,198,107,193,104,195,100,203,100,206,95,217,102,222,100,226,106,239,105,242,102,249,102,256,92,262,93,264,91,271,100,284,96,279,107,280,111,273,117,272,124,281,132,283,135,288,137,288,146,285,149,295,165,285,191,291,198,293,210,293,221,281,215,278,218,282,221,284,223,267,229,267,233,256,234,255,237,249,237,249,240,246,239,243,245,238,245,236,250,232,249,227,250,223,250,217,255,216,261,212,255,209,255,207,259,201,259,197,252,192,256,184,256,174,249,168,254,164,254,156,264,152,261,140,244,149,236,150,229,138,226,140,221,147,215,146,208,158,201,155,197"
shape="poly"
href="/regionalgruppe-ost"
style="outline: none;"
title="RG Ost"
onmouseover="if(document.images) document.getElementById('HZD-MAP').src='https://hzd-backend.app.tilothiele.de/uploads/RG_ost_1_4a75d8669b.jpg';"
onmouseout="if(document.images) document.getElementById('HZD-MAP').src= 'https://hzd-backend.app.tilothiele.de/uploads/HZD_gesamt_1_96be7bcf94.jpgg';">
<area alt="" coords="118,175,119,176,108,180,108,192,91,208,92,217,83,230,75,233,75,242,63,253,66,265,78,274,79,290,69,292,63,287,60,290,46,293,43,293,41,298,30,288,26,290,26,296,19,301,23,305,23,308,25,309,31,307,36,312,43,313,47,311,60,316,71,308,89,316,93,314,94,306,102,308,106,294,116,294,124,305,138,303,147,288,157,290,161,286,166,288,172,276,182,279,189,288,194,283,218,285,221,277,221,277,208,266,206,263,199,262,197,256,192,260,182,259,175,253,169,256,164,256,156,266,148,262,137,245,146,235,146,230,135,228,134,221,144,213,144,207,153,200,146,192,145,183,138,183,134,187,132,187,120,175"
shape="poly"
href="/regionalgruppe-mitte"
style="outline: none;"
title="RG Mitte"
onmouseover="if(document.images) document.getElementById('HZD-MAP').src='https://hzd-backend.app.tilothiele.de/uploads/RG_mitte1_cbf164c161.jpg';"
onmouseout="if(document.images) document.getElementById('HZD-MAP').src= 'https://hzd-backend.app.tilothiele.de/uploads/HZD_gesamt_1_96be7bcf94.jpg';">
<area alt="" coords="64,318,65,318,71,311,90,318,95,316,95,310,106,310,107,297,113,297,123,306,137,307,148,290,155,292,160,289,171,290,172,280,180,281,191,292,196,286,218,287,225,298,225,304,227,306,227,307,237,309,250,322,249,326,256,327,265,335,265,344,262,349,257,347,253,348,249,360,244,361,237,366,231,366,227,373,236,382,235,388,234,391,240,394,239,404,232,401,232,395,229,390,221,393,216,392,210,391,207,397,186,397,184,401,181,403,181,406,166,406,164,401,160,401,154,399,152,399,149,397,146,397,147,405,141,412,139,410,139,408,137,407,135,406,134,401,130,401,126,396,121,401,112,400,107,393,103,393,101,390,96,390,92,386,90,389,81,386,81,394,75,394,69,391,66,394,58,393,56,391,50,394,45,388,49,373,51,363,58,343,74,321,65,318"
shape="poly"
href="/regionalgruppe-sued"
style="outline: none;"
title="RG Süd"
onmouseover="if(document.images) document.getElementById('HZD-MAP').src='https://hzd-backend.app.tilothiele.de/uploads/RG_sued1_ad9fb11c13.jpg';"
onmouseout="if(document.images) document.getElementById('HZD-MAP').src= 'https://hzd-backend.app.tilothiele.de/uploads/HZD_gesamt_1_96be7bcf94.jpg';">
</map>
</p>
</div>
```