--- name: project-overview description: NeoNail DB — Laravel-Webapp für persönliche Nagellack-Sammlungen mit Fotos, Admin-Bereich und E-Mail-Benachrichtigungen metadata: type: project --- NeoNail DB ist eine Laravel 12 / PHP 8.2 Webanwendung (SQLite-Datenbank), bei der Nutzer ihre eigene Nagellack-Sammlung verwalten und Fotos hochladen können. **Kernfunktionen:** - User-Sammlung: eigene Lacke hinzufügen/entfernen (Many-to-Many via `user_nail_polishes`) - Foto-Upload: Bilder werden im `storage/public/nail_polishes/` Ordner gespeichert - Hersteller-Verwaltung: alle eingeloggten User können Hersteller anlegen/bearbeiten - Admin-Bereich (`/admin`): User-CRUD, Nagellack-Katalog, Statistiken, Willkommens-E-Mails - E-Mail: Willkommens-Mail an neue User + Bestätigungs-Mail an Admin (oliver@vogt.de.com) **Tech-Stack:** - Backend: Laravel 12, PHP 8.2, SQLite (database/database.sqlite) - Frontend: Bootstrap 5.3, Font Awesome 6, Blade-Templates - Bild-Verarbeitung: Intervention Image v3 (im NailPolishController), direkt im UserNailPolishController - Auth: Laravel UI (kein Breeze/Jetstream), session-basiert **Rollen:** - User: kann Sammlung verwalten, Hersteller anlegen, eigene Lacke hinzufügen - Admin: `is_admin`-Flag in users-Tabelle ODER E-Mail-Whitelist in User::isAdmin() **Wichtige Controller:** - `NailPolishController` — Admin-only CRUD für den globalen Katalog - `UserNailPolishController` — User-seitige Sammlung (index, available, add, remove, create/store) - `AdminController` — Dashboard, User-Management, Statistiken - `ManufacturerController` — für alle eingeloggten User **Why:** Persönliches Hobby-Projekt zur Verwaltung einer Nagellack-Sammlung. **How to apply:** Bei neuen Features beachten: User sehen nur ihre eigene Sammlung, nur Admins verwalten den Gesamt-Katalog. SQLite-Datei liegt doppelt (root + database/). Viele Debug-/Fix-Skripte im Root stammen aus der Produktions-Einrichtung und können ignoriert werden.