Website und Verwaltung für Ardit Derjaj, Fotograf für Hochzeiten, Events, Produkte und Interieurs in Padua: Galerien auf Italienisch und Englisch, Angebote, die der Kunde online unterschreibt, Fotolieferungen über einen privaten Link mit ZIP und eine Verwaltung, die sich bequem am Handy bedienen und wie eine App installieren lässt.
Ardit Derjaj ist Fotograf in Padua: Hochzeiten, Events, Produkte, Interieurs und Industrie. Eine Website hatte er schon: Ich habe sie in einem einzigen Repository zusammengeführt und Stück für Stück neu gebaut, die Verwaltung von Grund auf, damit Ardit sie wirklich benutzt – auch vom Handy aus.
**Was sie kann**
- **Galerien**: sechs, mit 133 veröffentlichten Fotos, auf Italienisch und Englisch. Jedes hochgeladene Foto verliert seine versteckten Daten (GPS-Position, Seriennummer der Kamera), ohne neu komprimiert zu werden, und der Server erstellt leichte WebP-Versionen. - **Angebote**: Ardit stellt sie aus seiner Preisliste zusammen; der Kunde öffnet sie über einen Link, unterschreibt auf dem Bildschirm und lädt das PDF herunter, bei Bedarf mit Anzahlung und IBAN. - **Lieferungen**: ein privater Link mit PIN, die vom Kunden gewählten Favoriten und „Alle als ZIP herunterladen“. - **Anfragen** aus dem Kontaktformular, Bewertungen und Kooperationen. - **Besuchsstatistiken** mit Weltkarte; IP-Adressen werden nur als Hash gespeichert. - **Warnungen per E-Mail**: ein ablaufendes HTTPS-Zertifikat, eine volle Festplatte, eine stehende Datenbank.
**Die Verwaltung** ist von Grund auf neu geschrieben und lässt sich wie eine App aufs Handy installieren: fünf Bereiche, eine Suche in den Einstellungen, die Tippfehler verzeiht und das gefundene Feld hervorhebt, und Bildbeschreibungen, die Claude vorschlägt und Ardit vor dem Speichern prüft, mit einer monatlichen Kostengrenze.
**Der schwierige Teil** ist das ZIP der Lieferungen: Hunderte Fotos in hoher Auflösung, verschickt, während das Archiv entsteht, ohne temporäre Datei auf dem Server. Der Server berechnet vorher die genaue Größe, damit der Browser anzeigt, wie viel noch fehlt, und über 4 GB wechselt er ins ZIP64-Format: Ich habe es mit einem echten 5-GB-Archiv getestet.
Vue 3, Tailwind CSS und Express mit MongoDB; jede Änderung durchläuft 150 automatische Tests und geht mit einer GitHub Action von selbst online, eine Version pro Ordner – schlägt die Prüfung nach dem Release fehl, kehrt der Server zur vorherigen Version zurück.
Konzeption, Full-Stack-Entwicklung und Veröffentlichung · Ardit Derjaj · 2026
Vue.js, Express, MongoDB, Tailwind CSS, Claude