- Introduced typography styles in _typography.scss for headings, paragraphs, blockquotes, and horizontal rules. - Added utility classes in _utils.scss for card styling and clearfix. - Updated layout.scss to include new typography and utility styles. - Defined common CSS variables in _common.scss for consistent theming. - Created dark and light theme variables in _dark.scss and _light.scss respectively. - Integrated Tailwind CSS with custom configurations in tailwind.config.js and postcss.config.js. - Implemented database migrations for contact and contact_persons tables. - Added data fixtures for generating sample contact data. - Developed Contact and ContactPerson entities with appropriate validation and serialization. - Enhanced ContactRepository with search and type filtering methods.
245 lines
7.2 KiB
Markdown
245 lines
7.2 KiB
Markdown
# 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 <repository-url> 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
|