Zusammenfassung des aktuellen Standes
Grundsystem
Es wurde ein eigenes kleines CMS / Seitensystem auf Basis von Node.js, Express, express-hbs und MariaDB aufgebaut.
Die Seite nutzt ein öffentliches Frontend und einen geschützten ACP-Bereich.
Seiten, Inhalte und Einstellungen werden aus der Datenbank geladen und nicht mehr fest als einzelne Unterseiten gepflegt.
Authentifizierung / ACP
Es gibt einen Admin-Login mit Session.
Beim ersten Start kann über /admin/setup ein erster Admin angelegt werden.
Der ACP-Bereich ist über Middleware geschützt.
Seiten-System
Normale Seiten werden über die Tabelle pages verwaltet.
Es gibt Funktionen für:
Seite anlegen
Seite bearbeiten
Seite löschen
Startseite definieren
Seite im Menü anzeigen oder ausblenden
Status setzen
Layout / Design
Das Frontend wurde auf ein dunkles Layout mit Akzentfarbe umgestellt.
Header, Navigation, Karten und Footer wurden optisch überarbeitet.
Der Footer hängt nicht mehr „in der Luft“, sondern sitzt sauber unten.
Logo / Favicon
Es wurde ein Upload für das Logo eingebaut.
Das gleiche PNG wird gleichzeitig auch als Favicon genutzt.
Die Pfade werden in den Settings gespeichert.
Startseite / Hero
Die Startseite wurde zu einem Hero-Bereich erweitert.
Dieser Hero enthält:
Badge
Titel
Untertitel
Beschreibung
Buttons
Diese Inhalte sind über den ACP-Bereich pflegbar.
Persönliche Inhalte
Es wurde Text für die Startseite und für die persönliche Beschreibung vorbereitet.
Dabei wurden auch Punkte wie ADHS, viele parallele Projekte, Arbeit, Familie und die Community Bad-Hippo berücksichtigt.
Öffentliche Module
Projekte
Es gibt jetzt ein eigenes Projekt-Modul.
Öffentlich verfügbar über:
/projekte
/projekte/:slug
Im ACP können Projekte angelegt, bearbeitet und gelöscht werden.
Downloads
Es gibt ein eigenes Download-Modul.
Downloads können im ACP hochgeladen werden.
Dabei werden gespeichert:
Dateiname
gespeicherter Dateiname
MIME-Type
Dateigröße in Bytes
lesbare Dateigröße
Downloads laufen nicht über einen festen Direktlink.
Stattdessen wird pro Download ein Token-Link erzeugt, der nur kurz gültig ist.
So kann nicht einfach ein Standardlink weitergegeben werden.
Bewertung und Download-Zähler
Downloads haben einen Download-Counter.
Zusätzlich gibt es eine Sterne-Bewertung von 1 bis 5.
Die Bewertung wird pro Besucher gespeichert und der Durchschnitt wird berechnet.
Blog und News
Blog und News wurden als gemeinsames Post-Modul aufgebaut.
Es gibt zwei Typen:
blog
news
Öffentlich verfügbar über:
/blog
/blog/:slug
/news
/news/:slug
Im ACP können Beiträge angelegt, bearbeitet und gelöscht werden.
Statistik
Es wurde ein System für echte Seitenaufrufe eingebaut.
Dabei werden öffentliche Aufrufe geloggt und im ACP ausgewertet.
Vorhanden sind:
Gesamtaufrufe
eindeutige Besucher heute
eindeutige Besucher 30 Tage
Top-Seiten
Statistik nach Tag
Statistik nach Monat
Statistik nach Jahr
Die Statistik wird sowohl im Dashboard als auch auf einer eigenen Statistik-Seite angezeigt.
Die Diagramme laufen über eigenes JavaScript mit Canvas.
Routing
Die Routing-Reihenfolge wurde korrigiert.
Wichtig war, dass spezielle Routen wie /admin, /projekte, /downloads, /blog und /news vor den allgemeinen Seitenrouten geladen werden.
Dadurch werden Konflikte mit /:slug vermieden.
Nginx
Zusätzlich wurde eine einfache Nginx-Proxy-Konfiguration für whois.bad-hippo.me erstellt.
Diese läuft ohne SSL und leitet auf 127.0.0.1:7801 weiter.
Aktueller Stand insgesamt
Das System ist inzwischen deutlich mehr als nur eine kleine statische Website.
Es gibt bereits:
Seiten-Verwaltung
Hero / Startseiten-Steuerung
Logo-Upload
Projekte
Downloads mit Upload, Token-Links, Zähler und Bewertung
Blog und News
Statistik mit Diagrammen
Geplante / naheliegende nächste Schritte
Als nächstes sinnvoll sind unter anderem:
Galerie
weitere Verfeinerung der Statistik
weitere Content-Typen
optische Verfeinerung im ACP und Frontend