update AGENTS, README; cleanup page create

This commit is contained in:
2026-01-31 17:39:42 +01:00
parent aa8f7c5dab
commit 515e43541b
3 changed files with 48 additions and 22 deletions

View File

@@ -41,14 +41,21 @@ js/
├── router.js # Hash-Router mit :params
├── i18n.js # t('key'), subscribe(), updateDOM()
├── services/
│ ├── directus.js # Directus API Client
│ ├── auth.js # UUID-basierte Authentifizierung
│ ├── directus.js # Directus API Client (Core)
│ ├── auth.js # UUID-basierte Authentifizierung (SHA-256 Hash)
│ ├── listings.js # Listings Service (Filter, Preis-Formatierung)
│ ├── categories.js # Kategorien Service (Baum, Übersetzungen)
│ ├── locations.js # Standorte Service (Geo-Suche)
│ ├── conversations.js # Zero-Knowledge Chat (E2E verschlüsselt)
│ ├── chat.js # LocalStorage Chat (Legacy/Mock)
│ ├── crypto.js # NaCl Encryption
│ └── currency.js # XMR/Fiat Umrechnung
└── components/
├── app-shell.js # Layout, registriert Routes
├── app-header.js # Header (Theme-Toggle, Lang-Dropdown)
├── app-footer.js # Footer
├── auth-modal.js # Login/Register Modal
├── chat-widget.js # E2E Chat Widget
└── pages/ # Seiten als Web Components
css/
@@ -101,9 +108,21 @@ locales/
## Nächste Schritte
1. Suchseite (`page-search.js`) mit Filtern ausbauen
2. Anzeige-Detailseite (`page-listing.js`) gestalten
3. Anzeige-Erstellen-Formular (`page-create.js`) fertigstellen
4. Profil-Seite (`page-profile.js`) erstellen
2. Profil-Seite (`page-profile.js`) erstellen - Meine Anzeigen, Favoriten
3. Directus Berechtigungen für Public-Rolle vervollständigen
4. Location-Picker für Anzeigen-Erstellung
## Directus Berechtigungen (Public-Rolle)
| Collection | Read | Create | Hinweise |
|------------|------|--------|----------|
| `listings` | ✓ | ✓ | Nur `status=published` lesen |
| `listings_files` | ✓ | ✓ | Junction-Table für Bilder |
| `directus_files` | ✓ | ✓ | Für Assets/Bilder |
| `categories` | ✓ | - | Nur `status=published` |
| `categories_translations` | ✓ | - | Für i18n |
| `locations` | ✓ | - | Für Standort-Auswahl |
| `languages` | ✓ | - | Für Sprachen-Liste |
## Farbpalette

View File

@@ -19,18 +19,17 @@ dgray.io ermöglicht es Nutzern, Kleinanzeigen zu schalten und Waren/Dienstleist
| Feature | Komplexität | Status |
|---------|-------------|--------|
| Anzeigen CRUD | Niedrig | 🔲 Offen |
| Fiat/XMR Preisanzeige | Niedrig | 🔲 Offen |
| Anonyme Nutzung | Mittel | 🔲 Offen |
| Anzeigen CRUD | Niedrig | ✅ Fertig |
| Fiat/XMR Preisanzeige | Niedrig | ✅ Fertig |
| Anonyme Nutzung (UUID + Hash) | Mittel | ✅ Fertig |
| PWA | Mittel | ✅ Grundgerüst |
| Light/Dark Mode | Niedrig | ✅ Fertig |
| i18n (DE/EN/FR) | Niedrig | ✅ Fertig |
| E2E-Chat | Hoch | 🔲 Offen |
| Bildergalerie | Niedrig | ✅ Fertig |
| E2E-Chat | Hoch | 🔲 Vorbereitet |
| **Monero MultiSig** | **Sehr hoch** | 🔲 Offen |
| KI-Assistenz | Mittel | 🔲 Offen |
| Rating-System | Mittel | 🔲 Offen |
| 2FA | Mittel | 🔲 Offen |
| Forum/Gruppen | Hoch | 🔲 Offen |
### ⚠️ Kritische Punkte
@@ -111,19 +110,27 @@ dgray/
│ ├── router.js # Hash-basiertes Routing
│ ├── i18n.js # Übersetzungssystem
│ ├── services/
│ │ ── api.js # API-Client (Vorbereitung)
│ │ ── directus.js # Directus API Client
│ │ ├── auth.js # UUID-Auth (SHA-256 Hash)
│ │ ├── listings.js # Listings-Service
│ │ ├── categories.js # Kategorien-Service
│ │ ├── locations.js # Standorte-Service
│ │ ├── conversations.js# Zero-Knowledge Chat
│ │ ├── crypto.js # NaCl Encryption
│ │ └── currency.js # XMR/Fiat Umrechnung
│ └── components/
│ ├── app-shell.js # Layout-Container
│ ├── app-header.js # Header mit Navigation
│ ├── app-footer.js # Footer
│ ├── auth-modal.js # Login/Register Modal
│ ├── chat-widget.js # E2E Chat Widget
│ └── pages/ # Seiten-Komponenten
├── locales/
│ ├── de.json # Deutsch
│ ├── en.json # English
│ └── fr.json # Français
└── assets/
── fonts/ # Self-hosted Fonts (Inter, Space Grotesk)
└── icons/ # App-Icons
── fonts/ # Self-hosted Fonts
```
---
@@ -139,17 +146,19 @@ dgray/
- [x] Startseite mit Suche, Kategorien, Listings-Grid
- [x] Typografie (Inter + Space Grotesk)
- [x] Such-Komponente mit Accordion-Kategorien
- [x] Anzeige-Detailseite mit Bildergalerie
- [x] Anzeige-Erstellen-Formular
- [ ] Suchseite mit Filtern
- [ ] Anzeige-Detailseite
- [ ] Anzeige-Erstellen-Formular
- [ ] Responsive Optimierungen
### Phase 2: Backend-Integration ⬅️ **Aktuell**
- [x] Directus aufsetzen (`api.dgray.io`)
- [ ] Anzeigen-Collection
- [x] User-Auth (UUID-basiert, anonym)
- [ ] Bilder-Upload
- [x] API-Anbindung im Frontend (`js/services/directus.js`)
- [x] Listings-Collection (CRUD)
- [x] Categories mit Übersetzungen
- [x] User-Auth (UUID + SHA-256 Hash, anonym)
- [x] Bilder-Upload (Junction-Table)
- [x] API-Services (`directus.js`, `listings.js`, `categories.js`, `locations.js`)
- [ ] Directus Public-Berechtigungen vervollständigen
### Phase 3: Kommunikation
- [ ] Chat-System (E2E-verschlüsselt)

View File

@@ -426,9 +426,7 @@ class PageCreate extends HTMLElement {
}
}
console.log('Creating listing:', listingData)
const listing = await directus.createListing(listingData)
console.log('Created listing:', listing)
this.clearDraft()