dgray.io

Eine anonyme, dezentrale Kleinanzeigen-Plattform mit Monero-Bezahlung.

🎯 Vision

dgray.io ermöglicht es Nutzern, Kleinanzeigen zu schalten und Waren/Dienstleistungen sicher über Monero (XMR) zu handeln. Besonderheiten:

  • Anonymität: Nutzung ohne Account möglich
  • Käuferschutz: Monero MultiSig Escrow
  • Dezentral: Keine zentrale Zahlungsabwicklung
  • Privacy-First: E2E-Verschlüsselung für Kommunikation

📊 Machbarkeitsanalyse

Technisch realisierbar

Feature Komplexität Status
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
Bildergalerie Niedrig Fertig
E2E-Chat (NaCl) Hoch Service fertig
Monero MultiSig Sehr hoch 🔲 Offen
Rating-System Mittel 🔲 Offen
2FA Mittel 🔲 Offen

⚠️ Kritische Punkte

  1. Monero MultiSig Escrow

    • Komplexeste Komponente
    • Erfordert eigene Wallet-Integration via monero-wallet-rpc
    • Nutzer müssen Wallet-Keys verwalten → UX-Hürde
    • Alternative für MVP: Trusted Escrow-Service
  2. Rechtliche Aspekte

    • AGB, Datenschutz, Impressum erforderlich
    • Geldwäsche-Regularien (je nach Jurisdiktion)
    • Haftung bei Betrug klären
  3. E2E-Verschlüsselung

    • Key-Management für anonyme Nutzer
    • Optionen: Signal-Protokoll, Matrix-Protokoll

🛠️ Tech-Stack

Frontend (aktuell)

  • Vanilla JavaScript (ES Modules)
  • Web Components (Custom Elements)
  • CSS Custom Properties (Theming)
  • PWA (Service Worker, Manifest)

Backend (geplant)

  • Directus (Headless CMS)
    • REST/GraphQL API
    • Auth, Rollen, Berechtigungen
    • Custom Extensions für XMR-Integration

Infrastruktur (geplant)

  • PostgreSQL + Redis
  • monero-wallet-rpc
  • Matrix/Signal für Chat

🚀 Setup

Voraussetzungen

  • Moderner Browser mit ES Module Support
  • Python 3 (für lokalen Server) oder beliebiger HTTP-Server

Installation

# Repository klonen
git clone https://gitea.pro/schmidt1024/dgray.git
cd dgray

# Lokalen Server starten
python3 -m http.server 8080

# Oder mit Live-Reload (Node.js erforderlich)
npx live-server

Öffne http://localhost:8080

Projektstruktur

dgray/
├── index.html              # Entry Point
├── manifest.json           # PWA Manifest
├── service-worker.js       # Offline-Support
├── css/
│   ├── fonts.css           # Web Fonts (Inter, Space Grotesk)
│   ├── variables.css       # Theming (Light/Dark)
│   ├── base.css            # Reset, Grundstyles
│   └── components.css      # UI-Komponenten
├── js/
│   ├── app.js              # App-Initialisierung
│   ├── router.js           # Hash-basiertes Routing
│   ├── i18n.js             # Übersetzungssystem
│   ├── services/
│   │   ├── 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

📋 Offene Punkte / Roadmap

Phase 1: MVP Frontend

  • Projektstruktur
  • Routing
  • i18n (DE/EN/FR)
  • Light/Dark Mode
  • PWA Grundgerüst
  • Startseite mit Suche, Kategorien, Listings-Grid
  • Typografie (Inter + Space Grotesk)
  • Such-Komponente mit Accordion-Kategorien
  • Anzeige-Detailseite mit Bildergalerie
  • Anzeige-Erstellen-Formular
  • Suchseite mit Filtern (merged in Home)
  • Skeleton Loading, Error Boundary, Offline Indicator
  • Lazy Loading für Bilder
  • Responsive Optimierungen

Phase 2: Backend-Integration ⬅️ Aktuell

  • Directus aufsetzen (api.dgray.io)
  • Listings-Collection (CRUD)
  • Categories mit Übersetzungen
  • User-Auth (UUID + SHA-256 Hash, anonym)
  • Bilder-Upload (Junction-Table)
  • API-Services (directus.js, listings.js, categories.js, locations.js)
  • Directus Public-Berechtigungen (siehe docs/DIRECTUS-SCHEMA.md)
  • Neue Seiten: Favoriten, Meine Anzeigen, Nachrichten, Einstellungen
  • Listings bearbeiten (Edit-Modus für eigene Anzeigen)

Phase 3: Kommunikation

  • Chat-System (E2E-verschlüsselt mit NaCl)
  • Conversations/Messages Services
  • Merkliste (Favoriten-Seite)
  • Benachrichtigungen (Push)

Phase 4: Payments

  • XMR-Kursabfrage API (CoinGecko)
  • Fiat ↔ XMR Umrechnung (Dual-Preis-Anzeige)
  • Wallet-Anbindung (monero-wallet-rpc)
  • MultiSig Escrow

Phase 5: Trust & Safety

  • Rating-System
  • 2FA
  • Reporting/Moderation
  • AGB, Datenschutz

🎨 Design-Entscheidungen

Typografie

  • Headlines: Space Grotesk (Medium, Bold)
  • Body: Inter (Regular, Medium, SemiBold, Bold)
  • Self-hosted Fonts (SIL Open Font License)

Farbpalette

  • Monochrome Theme - reine Graustufen
  • Light Mode: BG #FAFAFA, Text #1A1A1A, Primary #555555
  • Dark Mode: BG #141414, Text #F0F0F0, Primary #AAAAAA

Mobile-First

  • Responsive Grid (2 Spalten Mobile, 5 Spalten Desktop)
  • Touch-optimierte Buttons
  • Icon-only Buttons auf kleinen Screens

🤝 Contributing

  1. Feature-Branch erstellen
  2. Änderungen committen
  3. Pull Request öffnen

Code-Konventionen

  • ES Modules verwenden
  • Web Components für UI-Komponenten
  • CSS Custom Properties für Theming
  • Übersetzungsschlüssel für alle Texte
  • Keine Semikolons in JavaScript (außer for-loops, CSS)
  • Englische Kommentare im Code

📄 Lizenz

TBD


📞 Kontakt

TBD

Description
No description provided
https://kashilo.com
Readme AGPL-3.0 4.8 MiB
Languages
JavaScript 94.2%
CSS 2.9%
HTML 2.4%
Python 0.4%
Shell 0.1%