# myCRM - Moderne CRM-Lösung Eine moderne, modulare CRM-Anwendung basierend auf Symfony 7.1 LTS, Vue.js 3 und PrimeVue. ## 🚀 Features - **Symfony 7.1 LTS** - Stabile PHP-Backend-Framework - **Vue.js 3** - Modernes, reaktives Frontend mit Composition API - **PrimeVue 4** - Professionelle UI-Komponenten (DataTable, Charts, Forms) - **Sakai Template** - Professional Admin Layout mit Dark Mode - **Tailwind CSS v4** - Utility-First CSS Framework - **API Platform** - RESTful API mit OpenAPI-Dokumentation - **MariaDB** - Zuverlässige relationale Datenbank - **Webpack Encore** - Asset-Management und Hot Module Replacement - **Modulares Berechtigungssystem** - Flexible Rollen mit Modul-basierter Rechteverwaltung - **User CRUD** - Vollständige Benutzerverwaltung via API Platform - **Login-System** - Form-basierte Authentifizierung mit Remember Me - **Kontaktmodul** - Firmenstammdaten mit Ansprechpersonen und Debitor/Kreditor-Klassifizierung ## 📋 Voraussetzungen - PHP 8.2 oder höher - Composer 2.x - Node.js 18.x oder höher - MariaDB/MySQL 10.x oder höher - NPM oder Yarn ## 🛠️ Installation ```bash # 1. Repository klonen git clone mycrm cd mycrm # 2. PHP-Abhängigkeiten installieren composer install # 3. NPM-Abhängigkeiten installieren npm install # 4. Umgebungsvariablen konfigurieren # Kopiere .env zu .env.local und passe DATABASE_URL an cp .env .env.local # 5. Datenbank erstellen php bin/console doctrine:database:create # 6. Datenbank-Schema erstellen php bin/console doctrine:migrations:migrate # 7. Test-Daten laden (optional) php bin/console doctrine:fixtures:load ``` ### Testbenutzer Nach dem Laden der Fixtures stehen folgende Testbenutzer zur Verfügung: - **Administrator**: admin@mycrm.local / admin123 - **Vertriebsmitarbeiter**: sales@mycrm.local / sales123 ## 🎯 Entwicklung ### Backend-Server starten ```bash # Mit PHP Built-in Server php -S localhost:8000 -t public/ # ODER mit Symfony CLI (wenn installiert) symfony serve -d ``` ### Frontend-Assets kompilieren ```bash # Einmalig kompilieren npm run dev # Mit Auto-Reload (empfohlen für Entwicklung) npm run watch # Für Production npm run build ``` ### Parallel Development (empfohlen) Öffne zwei Terminal-Fenster: **Terminal 1:** ```bash php -S localhost:8000 -t public/ ``` **Terminal 2:** ```bash npm run watch ``` ## 📂 Projektstruktur ``` /assets /js /components - Wiederverwendbare Vue-Komponenten /views - Page-Level Vue-Komponenten (ContactManagement, UserManagement, etc.) /layout - Sakai Layout-Komponenten (AppLayout, AppTopbar, AppSidebar, AppMenu) /composables - Vue Composition API Functions /stores - Pinia State Management /api - API Client Wrapper /styles /layout - Sakai SCSS (Topbar, Sidebar, Menu, Footer, Responsive, Animations) tailwind.css - Tailwind CSS v4 mit PrimeUI Plugin sakai.scss - Sakai Layout Imports /config - Symfony-Konfiguration /src /Controller - HTTP Controllers /Entity - Doctrine Entities (User, Role, Contact, ContactPerson) /Repository - Database Queries /Service - Business Logic /Security/Voter - Permission Logic /DataFixtures - Test-Daten (200 Kontakte mit realistischen deutschen Daten) /templates - Twig Templates /public - Public Assets & Entry Point /migrations - Doctrine Migrations /tests - Tests (PHPUnit, Jest/Vitest) ``` ## 🎨 Technologie-Stack ### Backend - **Symfony 7.1 LTS** - PHP Framework - **Doctrine ORM** - Database Abstraction - **API Platform** - REST API Generation - **Symfony Security** - Authentication & Authorization ### Frontend - **Vue.js 3** - Progressive JavaScript Framework - **Vue Router** - SPA Navigation - **Pinia** - State Management - **PrimeVue 4** - UI Component Library mit Aura Theme - **Sakai Template** - Professional Admin Layout (von PrimeFaces) - **Tailwind CSS v4** - Utility-First CSS Framework mit PrimeUI Plugin - **Webpack Encore** - Asset Bundler ### Database - **MariaDB** - Primary Database ## 📱 Module - **Dashboard** - Übersicht und KPIs - **Kontakte** - Firmenstammdatenverwaltung mit Ansprechpersonen (✅ implementiert) - Vollständige CRUD-Operationen via API Platform - Server-seitige Filterung (Debitoren/Kreditoren/Status) - 200 Test-Fixtures mit realistischen deutschen Firmendaten - Strukturiertes Formular in 6 Kategorien (Basisdaten, Adresse, Kontaktdaten, Steuerdaten, Ansprechpartner, Notizen) - Bis zu 2 Ansprechpersonen pro Firma - Debitor/Kreditor-Klassifizierung (beide möglich) - Aktiv/Inaktiv-Status - **Deals** - Sales-Pipeline Management (in Entwicklung) - **Aktivitäten** - Interaktions-Historie (in Entwicklung) - **Benutzerverwaltung** - CRUD für User (✅ implementiert) - **Rollenverwaltung** - Modulare Berechtigungen (✅ implementiert) ## 🔐 Sicherheit - Symfony Security Component mit Voter-Pattern - CSRF-Schutz aktiviert - Password Hashing mit Symfony PasswordHasher (bcrypt) - Session-basierte Authentifizierung mit Remember Me (7 Tage) - API-Sicherheit mit granularen Berechtigungen (ROLE_ADMIN, object == user) - Modulares Berechtigungssystem mit 6 Aktionstypen (View, Create, Edit, Delete, Export, Manage) ## 🧪 Testing ```bash # Backend Tests (PHPUnit) php bin/phpunit # Frontend Tests (wenn konfiguriert) npm run test:unit # Doctrine Schema validieren php bin/console doctrine:schema:validate ``` ## 📚 Weitere Dokumentationen - [LOGIN.md](docs/LOGIN.md) - Authentifizierungssystem - [PERMISSIONS.md](docs/PERMISSIONS.md) - Modulares Berechtigungssystem - [USER-CRUD.md](docs/USER-CRUD.md) - Benutzerverwaltung mit API Platform - [AI Agent Instructions](.github/copilot-instructions.md) - Entwickler-Richtlinien - [Symfony Documentation](https://symfony.com/doc/current/index.html) - [API Platform Documentation](https://api-platform.com/docs/) - [Vue.js Guide](https://vuejs.org/guide/) - [PrimeVue Documentation](https://primevue.org/) ## 🤝 Entwicklungs-Konventionen Siehe `.github/copilot-instructions.md` für detaillierte Informationen zu: - Architektur-Patterns - Code-Standards - Testing-Strategien - CRM Domain Logic ## 📝 Lizenz Proprietary - Alle Rechte vorbehalten ## 👥 Autoren Dein Team --- **Status:** ✅ Grundsystem + Kontaktmodul implementiert - Ready for weitere CRM-Module! **Implementiert:** - ✅ Projekt-Setup (Symfony 7.1 + Vue.js 3 + PrimeVue 4) - ✅ Sakai Template Integration (Professional Admin Layout) - ✅ Tailwind CSS v4 mit PrimeUI Plugin - ✅ Modulares Berechtigungssystem (User, Role, Module, RolePermission) - ✅ Login-System mit Remember Me - ✅ User-CRUD mit API Platform - ✅ **Kontaktmodul mit Firmenstammdaten** - Contact & ContactPerson Entities - API Platform REST Endpoints mit Filtern - Vue.js ContactManagement Component - Strukturiertes Formular (6 Kategorien) - 200 Test-Fixtures mit deutschen Daten - Server-seitige Filterung & Pagination - ✅ Vue.js Frontend mit PrimeVue DataTable, Dialogs, Forms - ✅ Password-Hashing via State Processor - ✅ Dark Mode Support - ✅ Responsive Design mit Sakai Layout **Next Steps:** 1. Deal-Entity mit Pipeline-Stages erstellen 2. Activity-Entity für Interaktionshistorie 3. Dashboard mit KPIs und Charts 4. Reporting-Modul 5. E-Mail-Integration 6. Kalender/Termine