# Redmine Ticket-Portal (Prototyp) Vorgeschaltete Webseite für die Ticket-Anlage mit verpflichtendem Kundenbezug (Lösungsvariante 1 aus [redmine.unicon-gmbh.de](https://redmine.unicon-gmbh.de/redmine/issues/6)). Die Kundenauswahl läuft über ein Autocomplete gegen die eigenen Stammdaten. Die Kunden müssen also nicht als Auswahlliste in Redmine gepflegt werden. Die Kundennummer wird in ein Text-Custom-Field des Tickets geschrieben. ## Ablauf 1. Mitarbeiter sucht den Kunden per Nummer oder Firmenname (Autocomplete) 2. Betreff und Beschreibung erfassen 3. Der Server validiert die Kundennummer gegen die Stammdaten und legt das Ticket per POST /issues.json in Redmine an (API-Key nur serverseitig) ## Setup npm install cp .env.example .env # Werte anpassen (API-Key, Projekt, Feld-ID) npm start Ohne gesetzten REDMINE_API_KEY läuft der Server im Trockenlauf: die Oberfläche funktioniert komplett, Tickets werden aber nur simuliert. Zum schnellen Ausprobieren reicht daher: npm install && npm run start:dry Danach http://localhost:3000 öffnen. ## Konfiguration (.env) | Variable | Bedeutung | |---------------------|----------------------------------------------------| | REDMINE_URL | Basis-URL der Redmine-Installation | | REDMINE_API_KEY | API-Key eines technischen Users (Recht: Tickets anlegen) | | REDMINE_PROJECT_ID | Ziel-Projekt für neue Tickets | | REDMINE_TRACKER_ID | Tracker (z. B. Support) | | CUSTOMER_FIELD_ID | ID des Custom Fields für die Kundennummer | | CUSTOMERS_FILE | CSV mit den Kundenstammdaten (Nummer;Name) | Die Feld-ID lässt sich per GET /custom_fields.json ermitteln. ## Nächste Schritte Richtung Produktion - Kundenliste direkt aus CRM/ERP ziehen (DB-View oder Export per Cron) - Authentifizierung für die Techniker (z. B. LDAP/SSO im Reverse Proxy) - WS-Nummer als zweites Custom Field automatisch mitschreiben - HTTPS und Betrieb hinter dem vorhandenen Reverse Proxy