Initial commit: Redmine ticket portal
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user