2.1 KiB
2.1 KiB
Redmine Ticket-Portal (Prototyp)
Vorgeschaltete Webseite für die Ticket-Anlage mit verpflichtendem Kundenbezug
(Lösung #1 aus redmine.unicon-gmbh.de).
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
- Mitarbeiter sucht den Kunden per Nummer oder Firmenname (Autocomplete)
- Betreff und Beschreibung erfassen
- 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 Mitarbeiter (z. B. LDAP/SSO im Reverse Proxy)
- WS-Nummer als zweites Custom Field automatisch mitschreiben
- HTTPS und Betrieb hinter dem vorhandenen Reverse Proxy