Files
Fitnessblog/README.md
2026-01-07 16:04:55 +01:00

108 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Fitnessblog
**Fitnessblog** ist ein Laravel-basiertes Blog-System für Fitness-/Lifestyle-Content mit öffentlichem Frontend und einem Admin-Backend zur Verwaltung von Beiträgen, Kategorien, Slider und Website-Einstellungen.
---
## Überblick
Das Projekt stellt eine klassische Blog-Struktur bereit:
- **Frontend**: Blog-Startseite, Beiträge nach Kategorien/Tags/Autoren, Suche, Kontaktformular
- **Backend (Admin)**: Login/Passwort-Reset, Dashboard, Beitragsverwaltung, Kategorien, Slider, Settings, Newsletter-Versand
---
## Tech-Stack
### Backend
- **Framework:** Laravel (Projekt nutzt moderne Laravel-Struktur)
- **Sprache:** PHP (empfohlen **PHP >= 8.2**)
- **Datenbank:** MySQL/MariaDB (alternativ PostgreSQL/SQLite möglich)
- **E-Mail:** Custom SMTP-Konfiguration über `CMAIL_*` (für Kontakt & Newsletter)
- **Queues/Jobs:** Newsletter-Versand erfolgt über Queue-Jobs (falls Worker aktiv)
### Frontend
- **Build Tool:** Vite
- **CSS:** Tailwind CSS
- **HTTP/AJAX:** Axios
### Verwendete Pakete (Auszug)
- **SEO:** `artesaos/seotools` (Meta-Tags, OpenGraph, Twitter Cards)
- **Sitemap:** `spatie/laravel-sitemap` (Sitemap-Generierung)
- **Slugs:** `cviebrock/eloquent-sluggable` (sprechende URLs)
- **Bildbearbeitung:** `intervention/image` (Thumbnails/Resizes)
- **Dateimanager:** `barryvdh/laravel-elfinder` (Medienverwaltung)
- **UI:** Livewire (interaktive Komponenten)
- **Mail:** `phpmailer/phpmailer`
- **Image Crop:** `sawastacks/kropify-laravel` (z.B. Profil/Logo-Zuschnitt)
---
## Features
### Frontend (öffentlich)
- **Startseite** mit SEO-Informationen aus den Einstellungen
- **Kategorien-Ansicht** (Posts nach Kategorie)
- **Autor-Seiten** (Posts nach Autor)
- **Tag-Seiten** (Posts nach Tags)
- **Suche** nach Beiträgen
- **Startseiten-Slider** (Slides aus dem Backend)
- **Sidebar-Widgets**
- Neueste Beiträge
- Kategorien mit Beitragsanzahl
- Tag-Übersicht
- **Lesedauer-Anzeige** (automatisch berechnet)
- **Kontaktformular** (`/contact`) inkl. Mailversand
- **Sitemap** (`/sitemap.xml`)
### Admin-Backend
- **Login** und **Passwort-Reset** (Token-basiert)
- **Dashboard** mit Kennzahlen (Posts/Tags/Newsletter-Abonnenten)
- **Beitragsverwaltung**
- Erstellen/Bearbeiten/Löschen
- Bild-Upload pro Beitrag
- Automatische Bild-Generierung:
- Thumbnail (z.B. 250×250)
- Resized Preview (z.B. 512×320)
- SEO-Felder (Meta Keywords/Description, strukturierte Daten)
- Sichtbarkeit (Draft/Published)
- **Kategorien & Unterkategorien**
- **Slider-Verwaltung** (Bilder/Reihenfolge/Status)
- **Settings**
- Seitentitel / Meta-Description / Keywords
- Site-E-Mail
- Social Links
- Logo & Favicon Upload
- **Profil**
- Profilbild Upload (ersetzt vorheriges Bild)
- **Newsletter**
- Abonnenten-Verwaltung
- Optionaler Versand an alle Abonnenten beim Veröffentlichen eines Posts
---
## Installation (lokal)
### Voraussetzungen
- PHP >= 8.2
- Composer
- Node.js (LTS) + npm
- Datenbank (z.B. MariaDB/MySQL)
- Git
### Setup
```bash
git clone ssh://git@git.magicpotter.at:2222/Magicpotter/Fitnessblog.git
cd Fitnessblog
composer install
npm install
php artisan key:generate
php artisan migrate
php artisan storage:link
npm run dev
# oder: npm run build