Initial commit: Redmine ticket portal

This commit is contained in:
2026-07-13 13:26:37 +02:00
commit fb78c96e6b
8 changed files with 1416 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
# Redmine Ticket-Portal (Prototyp)
Vorgeschaltete Webseite fuer die Ticket-Anlage mit verpflichtendem Kundenbezug
(Loesungsvariante 1 aus dem Ticket). Die Kundenauswahl laeuft ueber ein
Autocomplete gegen die eigenen Stammdaten - die 1500 Kunden muessen also
nicht als Auswahlliste in Redmine gepflegt werden. Die Kundennummer wird in
ein Text-Custom-Field des Tickets geschrieben.
## Ablauf
1. Techniker 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 laeuft der Server im Trockenlauf: die
Oberflaeche funktioniert komplett, Tickets werden aber nur simuliert.
Zum schnellen Ausprobieren reicht daher:
npm install && npm run start:dry
Danach http://localhost:3000 oeffnen.
## 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 fuer neue Tickets |
| REDMINE_TRACKER_ID | Tracker (z. B. Support) |
| CUSTOMER_FIELD_ID | ID des Custom Fields fuer die Kundennummer |
| CUSTOMERS_FILE | CSV mit den Kundenstammdaten (Nummer;Name) |
Die Feld-ID laesst sich per GET /custom_fields.json ermitteln.
## Naechste Schritte Richtung Produktion
- Kundenliste direkt aus CRM/ERP ziehen (DB-View oder Export per Cron)
- Authentifizierung fuer 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