@@ -1,2 +1,75 @@
|
||||
# startrading
|
||||
# Trading Tool Prototype — MariaDB
|
||||
|
||||
Go-Webapp für Trading-Anfragen, automatische Quest-Erzeugung, MariaDB und Pocket ID Login via OIDC.
|
||||
|
||||
## Webinterface
|
||||
|
||||
Ja. Enthalten sind:
|
||||
|
||||
- Login-Seite über Pocket ID / OIDC
|
||||
- Dashboard für Trading-Anfragen
|
||||
- Formular für neue Ankauf-/Verkaufs-Anfragen
|
||||
- Quest-Tabelle für Mining, Logistik, Crafting usw.
|
||||
- Auftragnehmer können Status und Notizen/Gegenvorschläge setzen
|
||||
|
||||
## Auftragnehmer beeinflussen den Workflow
|
||||
|
||||
Ja, im aktuellen Prototyp über Quest-Status und Notizen:
|
||||
|
||||
- `accepted`
|
||||
- `in_progress`
|
||||
- `done`
|
||||
- `blocked`
|
||||
- `change_requested`
|
||||
- `cancelled`
|
||||
|
||||
Alle Änderungen werden zusätzlich in `quest_updates` protokolliert. Damit kann später die Workflow-Engine z. B. bei `blocked` eine zusätzliche Beschaffungsquest oder bei `change_requested` eine Trading-Freigabe erzeugen.
|
||||
|
||||
## Pocket ID Setup
|
||||
|
||||
In Pocket ID eine OIDC-App anlegen:
|
||||
|
||||
- Callback URL: `http://localhost:8080/auth/callback`
|
||||
- Scopes: `openid profile email`
|
||||
|
||||
Pocket ID stellt Client ID, Client Secret und Issuer URL bereit. Die Issuer URL ist normalerweise die Basis-URL deiner Pocket-ID-Instanz; die Discovery URL ist `/.well-known/openid-configuration`.
|
||||
|
||||
## Start
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
docker compose up -d
|
||||
set -a; source .env; set +a
|
||||
go mod tidy
|
||||
go run ./cmd/server
|
||||
```
|
||||
|
||||
Dann öffnen: http://localhost:8080
|
||||
|
||||
## Architektur
|
||||
|
||||
- Go-Standardbibliothek für HTTP, Templates, Cookies, OIDC-Discovery und JWT-RS256-Prüfung.
|
||||
- Einzige externe Go-Abhängigkeit: `github.com/go-sql-driver/mysql` als MariaDB/MySQL-Treiber.
|
||||
- Tabellen: `users`, `departments`, `items`, `trade_requests`, `quests`, `quest_updates`, `events`, `workflow_rules`.
|
||||
|
||||
## Nächste sinnvolle Schritte
|
||||
|
||||
- Workflow-Regeln aus `workflow_rules.actions_json` ausführen statt Default-Schritte im Code.
|
||||
- Rollen/Gruppen aus Pocket ID Claims auf Trading/Admin/Abteilungen mappen.
|
||||
- Lagerbestand und Stücklisten/BOM für Crafting ergänzen.
|
||||
- API-Endpunkte für externe Quest-Systeme ergänzen.
|
||||
|
||||
## Admin-Konfiguration
|
||||
|
||||
Nach dem Login gibt es im Dashboard den Link **Admin-Konfiguration** (`/admin`). Dort kannst du ohne Codeänderung konfigurieren:
|
||||
|
||||
- globale Einstellungen wie Währung, Standardmarge, Auto-Quest-Erzeugung und Admin-E-Mails
|
||||
- Abteilungen
|
||||
- Items und Ressourcen
|
||||
- Request- und Quest-Statuswerte
|
||||
- Quest-Templates inklusive zuständiger Abteilung, Reihenfolge und Belohnungsfaktor
|
||||
- Workflow-Regeln als JSON
|
||||
|
||||
Standardmäßig darf jeder eingeloggte Nutzer die Admin-Seite öffnen. Setze in `/admin` bei `admin_emails` eine kommagetrennte Liste, z. B. `you@example.com,lead@example.com`, dann erhalten nur diese Pocket-ID-Nutzer Zugriff.
|
||||
|
||||
Bestehende Installationen erhalten die Admin-Tabellen über `migrations/002_admin.sql` automatisch beim nächsten Start.
|
||||
|
||||
Reference in New Issue
Block a user