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