# 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 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.