companyos / backend
CompanyOS Backend Bundle - VueJS Frontend for Admin Interface
Installs: 38
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Language:Vue
Type:symfony-bundle
Requires
- php: >=8.2
- cboden/ratchet: ^0.4.4
- ratchet/pawl: ^0.4.1
- symfony/asset: ^7.3
- symfony/framework-bundle: ^7.3
- symfony/twig-bundle: ^7.3
- symfony/webpack-encore-bundle: ^2.2
Requires (Dev)
- phpunit/phpunit: ^10.0
- symfony/maker-bundle: ^1.63
- symfony/test-pack: ^1.0
- dev-main
- 0.1.89-alpha
- 0.1.88-alpha
- 0.1.87-alpha
- 0.1.86-alpha
- 0.1.85-alpha
- 0.1.84-alpha
- 0.1.83-alpha
- 0.1.82-alpha
- 0.1.81-alpha
- 0.1.80-alpha
- 0.1.79-alpha
- 0.1.78-alpha
- 0.1.77-alpha
- 0.1.76-alpha
- 0.1.74-alpha
- 0.1.73-alpha
- 0.1.72-alpha
- 0.1.71-alpha
- 0.1.70-alpha
- 0.1.69-alpha
- 0.1.68-alpha
- 0.1.67-alpha
- 0.1.66-alpha
- 0.1.65-alpha
- 0.1.64-alpha
- 0.1.63-alpha
- 0.1.62-alpha
- 0.1.61-alpha
- 0.1.60-alpha
- 0.1.59-alpha
- 0.1.58-alpha
- 0.1.57-alpha
- 0.1.56-alpha
- 0.1.55-alpha
- 0.1.54-alpha
- 0.1.53-alpha
- 0.1.52-alpha
- 0.1.51-alpha
- 0.1.50-alpha
- 0.1.49-alpha
- 0.1.48-alpha
- 0.1.47-alpha
- 0.1.46-alpha
- 0.1.45-alpha
- 0.1.44-alpha
- 0.1.43-alpha
- 0.1.42-alpha
- 0.1.41-alpha
- 0.1.40-alpha
- 0.1.39-alpha
- 0.1.38-alpha
- 0.1.37-alpha
- 0.1.36-alpha
- 0.1.35-alpha
- 0.1.34-alpha
- 0.1.33-alpha
- 0.1.32-alpha
- 0.1.31-alpha
- 0.1.29-alpha
- 0.1.28-alpha
- 0.1.27-alpha
- 0.1.26-alpha
- 0.1.25-alpha
- 0.1.24-alpha
- 0.1.23-alpha
- 0.1.22-alpha
- 0.1.21-alpha
- 0.1.20-alpha
- 0.1.19-alpha
- 0.1.18-alpha
- 0.1.17-alpha
- 0.1.16-alpha
- 0.1.15-alpha
- 0.1.14-alpha
- 0.1.13-alpha
- 0.1.12-alpha
- 0.1.11-alpha
- 0.1.10-alpha
- 0.1.9-alpha
- 0.1.8-alpha
- 0.1.7-alpha
- 0.1.6-alpha
- 0.1.5-alpha
- 0.1.4-alpha
- 0.1.3-alpha
- 0.1.2-alpha
- 0.1.0-alpha
This package is auto-updated.
Last update: 2025-06-27 22:54:51 UTC
README
Ein vollständiges Symfony-Bundle für das CompanyOS Backend-Frontend mit VueJS, CoreUI und modularem Admin-Interface.
⚠️ Alpha Version
Dies ist eine Alpha-Version (0.1.6-alpha) und ist NICHT für den Produktiveinsatz geeignet.
Was funktioniert:
- ✅ Vollständiges CoreUI-Admin-Template
- ✅ VueJS 3 mit Composition API
- ✅ Responsive Sidebar und Header
- ✅ Theme-Switching (Dark/Light Mode)
- ✅ Routing und Navigation
- ✅ Login-System
- ✅ Dashboard mit Widgets
Was noch fehlt:
- ❌ Vollständige CRUD-Implementierungen
- ❌ Unit/Integration Tests
- ❌ Plugin-System-Integration
- ❌ Vollständige API-Integration
Architektur
Das BackendBundle ist ein reines Frontend-Bundle:
- VueJS-Frontend: SPA mit CoreUI-Design
- Webpack-Build: Asset-Kompilierung
- Admin-Interface: Vollständige Admin-Oberfläche
- Plugin-System: Erweiterbar durch Plugins
- API-First: Konsumiert CoreBundle-API
Features
- CoreUI-Integration: Vollständiges Admin-Template
- VueJS 3: Modernes Frontend-Framework
- Responsive Design: Mobile-freundlich
- Theme-System: Dark/Light Mode
- Navigation: Dynamische Sidebar-Navigation
- Authentication: Login/Logout-System
- Dashboard: Übersicht mit Widgets
- Plugin-Ready: Erweiterbar durch Plugins
Installation
⚠️ Nur für Entwickler und Tester
composer require companyos/backend:^0.1.89-alpha
Bundle registrieren
// config/bundles.php return [ // ... andere Bundles CompanyOS\BackendBundle\CompanyOSBackendBundle::class => ['all' => true], ];
Frontend-Dependencies installieren
cd vendor/companyos/backend
npm install
Assets kompilieren
# Development npm run dev # Production npm run build
Verwendung
Admin-Interface aufrufen
Das Bundle registriert automatisch die /admin
-Route:
http://your-domain.com/admin
Navigation
Das Admin-Interface bietet folgende Bereiche:
- Dashboard: Übersicht und Statistiken
- Benutzer: Benutzer-Verwaltung
- Rollen: Rollen- und Berechtigungsverwaltung
- Plugins: Plugin-Management
- Einstellungen: System-Konfiguration
- Webhooks: Webhook-Verwaltung
- API-Dokumentation: API-Referenz
- System-Status: System-Monitoring
Theme-System
Das Bundle unterstützt automatisch:
- Light Mode: Helles Design
- Dark Mode: Dunkles Design
- Auto Mode: Automatische Erkennung
Entwicklung
Frontend-Entwicklung
# Im Bundle-Verzeichnis cd vendor/companyos/backend # Dependencies installieren npm install # Development-Server starten npm run dev # Watch-Modus npm run watch # Production-Build npm run build
Neue Views erstellen
<!-- Resources/app/views/MyView.vue --> <template> <div> <CCard class="mb-4"> <CCardHeader> <strong>Meine View</strong> </CCardHeader> <CCardBody> <p>Meine View-Inhalte</p> </CCardBody> </CCard> </div> </template> <script setup> // View-Logik hier </script>
Navigation erweitern
// _nav.js erweitern export default [ // ... bestehende Navigation { component: 'CNavItem', name: 'Meine View', to: '/my-view', icon: 'cil-star', }, ]
Plugin-System
Dynamische Plugin-Integration
- Plugins werden als eigenständige Bundles entwickelt und gebaut
- Nach dem Login werden alle aktiven Plugins über die API geladen
- Die Sidebar und die Routen werden automatisch um die Navigation und Views der aktiven Plugins erweitert
- Plugins registrieren ihre Navigation und Routen in ihrem eigenen Bundle (z.B.
window.plugin_MyPlugin
) - Keine statischen Entrypoints oder manuelle Navigationserweiterung nötig
Beispiel für ein Plugin
// In custom/plugins/CompanyOSCRMPlugin/Resources/app/main.js import CustomerList from './components/CustomerList.vue' import ContractList from './components/ContractList.vue' export const components = { 'CustomerList': CustomerList, 'ContractList': ContractList } export const routes = [ { path: '/plugin/crm/customers', name: 'crm-customers', component: CustomerList, meta: { title: 'Kunden', permission: 'crm.customers' } }, { path: '/plugin/crm/contracts', name: 'crm-contracts', component: ContractList, meta: { title: 'Verträge', permission: 'crm.contracts' } } ] export const navigation = [ { component: 'CNavTitle', name: 'CRM', permission: 'crm' }, { component: 'CNavItem', name: 'Kunden', to: '/plugin/crm/customers', icon: 'cil-people', permission: 'crm.customers' }, { component: 'CNavItem', name: 'Verträge', to: '/plugin/crm/contracts', icon: 'cil-file', permission: 'crm.contracts' } ] window.plugin_CompanyOSCRMPlugin = { components, routes, navigation, name: 'CompanyOSCRMPlugin' }
Berechtigungen
- Die Sidebar und die Routen werden automatisch nach den Berechtigungen des eingeloggten Users gefiltert
- Jede Navigation und Route kann ein
permission
-Attribut haben - Nur User mit entsprechender Berechtigung sehen und nutzen die Plugin-Funktionen
Das Plugin-System ist jetzt vollständig dynamisch und benötigt keine statischen Entrypoints oder Navigationserweiterungen mehr!
API-Integration
Das BackendBundle konsumiert die API des CoreBundles:
// API-Calls import axios from 'axios' // Benutzer abrufen const users = await axios.get('/api/users') // Plugin installieren await axios.post('/api/plugins/my-plugin/install')
Konfiguration
Webpack-Konfiguration
// webpack.config.js Encore .setOutputPath('Resources/public/build/') .setPublicPath('/bundles/companyosbackend/build') .addEntry('app', './Resources/app/frontend/app.js') .enableVueLoader()
Asset-Pfade
{# admin.html.twig #} <link rel="stylesheet" href="{{ asset('bundles/companyosbackend/build/app.css') }}"> <script src="{{ asset('bundles/companyosbackend/build/app.js') }}"></script>
Testing
# PHPUnit Tests ./vendor/bin/phpunit # Frontend Tests (später) npm run test
Contributing
- Fork das Repository
- Erstelle einen Feature-Branch
- Committe deine Änderungen
- Push zum Branch
- Erstelle einen Pull Request
License
Dieses Bundle ist unter der MIT-Lizenz lizenziert. Siehe LICENSE für Details.
Support
- Issues: GitHub Issues
- Documentation: GitHub Wiki
- Email: info@bechstein.digital
Changelog
Siehe CHANGELOG.md für eine Liste der Änderungen.