neonail-database/README.md
2025-08-10 18:09:07 +02:00

164 lines
4.4 KiB
Markdown
Executable File

# NeoNail Datenbank
Eine Laravel-basierte Webanwendung zur Verwaltung von NeoNail-Nagellack-Sammlungen. Die Anwendung ermöglicht es Benutzern, ihre persönliche Nagellack-Sammlung zu verwalten und ist speziell für die mobile Nutzung optimiert.
## Features
### Für Benutzer
- **Persönliche Sammlung**: Benutzer können ihre NeoNail-Lacke verwalten
- **Mobile Optimierung**: Handy-optimiertes Design für schnelle Nutzung im Laden
- **Suchfunktion**: Suche nach Namen oder Nummer der Lacke
- **Bild-Upload**: Möglichkeit, Bilder per Handykamera hochzuladen
- **Hersteller-Verwaltung**: Erstellen und verwalten von Herstellern
- **Responsive Design**: Funktioniert auf allen Geräten
### Für Administratoren
- **Benutzer-Verwaltung**: Erstellen, bearbeiten und löschen von Benutzern
- **Nagellack-Verwaltung**: Vollständige CRUD-Operationen für Nagellacke
- **Hersteller-Verwaltung**: Verwaltung aller Hersteller im System
- **Bildoptimierung**: Automatische Optimierung hochgeladener Bilder
- **Statistiken**: Übersicht über Benutzer, Sammlungen und Hersteller
- **Admin-Dashboard**: Übersichtliche Verwaltungsoberfläche
## Technische Details
### Datenbank-Struktur
- **Users**: Benutzer-Verwaltung
- **Manufacturers**: Hersteller-Daten (Name, Beschreibung, Website, Land)
- **NailPolishes**: Nagellack-Daten (Name, Nummer, Hersteller, Bild)
- **UserNailPolishes**: Many-to-Many Beziehung zwischen Benutzern und Lacken
### Technologien
- **Laravel 12**: PHP-Framework
- **Bootstrap 5**: CSS-Framework für responsive Design
- **Intervention Image**: Bildoptimierung
- **SQLite**: Datenbank (für einfache Entwicklung)
## Installation
### Voraussetzungen
- PHP 8.2+
- Composer
- Node.js (optional für Asset-Compilation)
### Setup
1. Repository klonen:
```bash
git clone <repository-url>
cd neonail-database
```
2. Abhängigkeiten installieren:
```bash
composer install
```
3. Umgebungsvariablen konfigurieren:
```bash
cp .env.example .env
php artisan key:generate
```
4. Datenbank einrichten:
```bash
php artisan migrate
```
5. Storage-Link erstellen:
```bash
php artisan storage:link
```
6. Admin-Benutzer erstellen:
```bash
php artisan tinker
```
```php
App\Models\User::create([
'name' => 'Admin',
'email' => 'admin@neonail.com',
'password' => bcrypt('password')
]);
```
7. Server starten:
```bash
php artisan serve
```
## Verwendung
### Admin-Zugang
- **E-Mail**: admin@neonail.com
- **Passwort**: password
### Benutzer-Flow
1. **Anmeldung**: Benutzer melden sich mit ihren Zugangsdaten an
2. **Sammlung anzeigen**: Übersicht über alle eigenen Lacke
3. **Lack hinzufügen**: Aus verfügbaren Lacken auswählen
4. **Hersteller verwalten**: Hersteller erstellen und verwalten
5. **Suchen**: Schnelle Suche nach Namen oder Nummer
6. **Bilder**: Kamera-Upload für neue Lacke (Admin)
### Admin-Flow
1. **Dashboard**: Übersicht über Statistiken
2. **Benutzer verwalten**: CRUD-Operationen für Benutzer
3. **Nagellacke verwalten**: Vollständige Verwaltung der Lacke
4. **Hersteller verwalten**: Verwaltung aller Hersteller
5. **Statistiken**: Detaillierte Auswertungen
## Mobile Optimierung
Die Anwendung ist speziell für mobile Geräte optimiert:
- **Touch-freundlich**: Große Buttons und Touch-Targets
- **Kamera-Integration**: Direkter Zugriff auf Handykamera
- **Responsive Design**: Anpassung an verschiedene Bildschirmgrößen
- **Schnelle Navigation**: Optimiert für schnelle Nutzung im Laden
## Sicherheit
- **Authentifizierung**: Laravel's eingebaute Auth-System
- **Admin-Middleware**: Geschützte Admin-Bereiche
- **Bildvalidierung**: Sichere Bild-Uploads
- **CSRF-Schutz**: Automatischer CSRF-Schutz
## Entwicklung
### Hinzufügen neuer Features
1. Migration erstellen: `php artisan make:migration`
2. Model anpassen/erstellen
3. Controller-Logik implementieren
4. Views erstellen
5. Routes definieren
### Testing
```bash
php artisan test
```
## Deployment
### Produktionsumgebung
1. `.env` für Produktion konfigurieren
2. `APP_ENV=production` setzen
3. `APP_DEBUG=false` setzen
4. Datenbank-Migrationen ausführen
5. Storage-Links erstellen
### Empfohlene Server-Konfiguration
- **Webserver**: Nginx oder Apache
- **PHP**: 8.2+ mit erforderlichen Extensions
- **Datenbank**: MySQL/PostgreSQL für Produktion
- **SSL**: HTTPS für sichere Übertragung
## Support
Bei Fragen oder Problemen:
1. Issues im Repository erstellen
2. Dokumentation prüfen
3. Laravel-Dokumentation konsultieren
## Lizenz
Dieses Projekt ist für interne Nutzung bestimmt.