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 ├── router.js # Hash-Router mit :params
├── i18n.js # t('key'), subscribe(), updateDOM() ├── i18n.js # t('key'), subscribe(), updateDOM()
├── services/ ├── services/
│ ├── directus.js # Directus API Client │ ├── directus.js # Directus API Client (Core)
│ ├── auth.js # UUID-basierte Authentifizierung │ ├── 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 │ └── currency.js # XMR/Fiat Umrechnung
└── components/ └── components/
├── app-shell.js # Layout, registriert Routes ├── app-shell.js # Layout, registriert Routes
├── app-header.js # Header (Theme-Toggle, Lang-Dropdown) ├── app-header.js # Header (Theme-Toggle, Lang-Dropdown)
├── app-footer.js # Footer ├── app-footer.js # Footer
├── auth-modal.js # Login/Register Modal ├── auth-modal.js # Login/Register Modal
├── chat-widget.js # E2E Chat Widget
└── pages/ # Seiten als Web Components └── pages/ # Seiten als Web Components
css/ css/
@@ -101,9 +108,21 @@ locales/
## Nächste Schritte ## Nächste Schritte
1. Suchseite (`page-search.js`) mit Filtern ausbauen 1. Suchseite (`page-search.js`) mit Filtern ausbauen
2. Anzeige-Detailseite (`page-listing.js`) gestalten 2. Profil-Seite (`page-profile.js`) erstellen - Meine Anzeigen, Favoriten
3. Anzeige-Erstellen-Formular (`page-create.js`) fertigstellen 3. Directus Berechtigungen für Public-Rolle vervollständigen
4. Profil-Seite (`page-profile.js`) erstellen 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 ## Farbpalette

View File

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