-> Inter-Data
-> Technik
-> Architektur & Tech-Stack
Architektur & Tech-Stack
Technologie-Entscheidungen und Designprinzipien
Tech-Stack
Frontend
Vue 3, Vuetify 3, Vite 7, Pinia, Vue Router 4
Vue 3, Vuetify 3, Vite 7, Pinia, Vue Router 4
Backend
PHP 8, PostgreSQL 16
PHP 8, PostgreSQL 16
Echtzeit
Node.js 22 SSE-Server
Node.js 22 SSE-Server
Kalender
FullCalendar v6
FullCalendar v6
Editor
Tiptap (Rich Text)
Tiptap (Rich Text)
Charts
Chart.js
Chart.js
Dateimanager
VueFinder
VueFinder
Drag & Drop
Vuedraggable
Vuedraggable
Telefon
libphonenumber-js
libphonenumber-js
Deployment
Lokal, Cloud oder Docker (Apache/NGINX) mit Let's Encrypt SSL
Lokal, Cloud oder Docker (Apache/NGINX) mit Let's Encrypt SSL
Architektur-Prinzipien
UX First
Jede Designentscheidung priorisiert Bedienbarkeit
Jede Designentscheidung priorisiert Bedienbarkeit
Logik in der Datenbank
SQL statt PHP — PHP ist Transport-Layer
SQL statt PHP — PHP ist Transport-Layer
Ein Request = Eine Query
Keine Daten-Assemblierung im Backend
Keine Daten-Assemblierung im Backend
Single Source of Truth
Pinia-Store verhindert doppelte API-Calls
Pinia-Store verhindert doppelte API-Calls
Kein Hardcoding
Alles kommt aus der Datenbank — keine statischen Listen im Code
Alles kommt aus der Datenbank — keine statischen Listen im Code
Prepared Statements
Konsequent parametrisierte Queries, keine String-Interpolation
Konsequent parametrisierte Queries, keine String-Interpolation
Responsive Design
Desktop, Tablet, Mobil — eine Codebasis
Desktop, Tablet, Mobil — eine Codebasis
Integrationen
- Meta WhatsApp Business API — Messaging direkt im ERP
- Brevo (Sendinblue) — E-Mail-Marketing und Templates
- OpenAI Whisper — Anruftranskription (Speech-to-Text)
- Anthropic Claude — KI-Zusammenfassungen und Vorschläge
- VIES — EU-weite USt-IdNr.-Validierung
- IMAP/SMTP — Integrierter E-Mail-Client
- Telefonanlagen — Click-to-Call
- DATEV — Buchhaltungsexport
- fahrzeugschein-scanner.de — OCR für Fahrzeugscheine
- SilverDAT — VXS-Import für Ersatzteile
