Skip to content
🔴In Arbeit0%
Vollständigkeit:
0%
Korrektheit:
0%
⏳ Noch nicht geprüft

Contributing

Status: 🚧 Dokumentation in Arbeit

Übersicht

Willkommen im p2d2-Projekt! Dieses Dokument beschreibt die Richtlinien und Prozesse für Beiträge zum Projekt. Wir freuen uns über jeden Beitrag, der zur Verbesserung der p2d2-Plattform beiträgt.

Wie man beiträgt

1. Issue erstellen

  • Vor dem Code-Beitrag ein Issue erstellen
  • Klare Beschreibung des Problems oder Features
  • Relevante Labels zuweisen (bug, feature, enhancement, etc.)

2. Entwicklungsumgebung einrichten

bash
git clone https://gitlab.opencode.de/OC000028072444/p2d2.git
cd p2d2
npm install
npm run dev

3. Feature-Branch erstellen

bash
git checkout -b feature/feature-name
# oder
git checkout -b fix/bug-description

4. Änderungen entwickeln

  • Code nach Best Practices schreiben
  • TypeScript für typsichere Entwicklung nutzen
  • Tests für neue Funktionalität schreiben
  • Dokumentation aktualisieren

5. Commit-Nachrichten

feat: Neue Karten-Funktionalität hinzufügen
fix: Layer-Loading Fehler beheben
docs: API-Dokumentation erweitern
test: Unit-Tests für Utility-Funktionen

6. Pull Request erstellen

  • Beschreibung der Änderungen
  • Referenz zu relevanten Issues
  • Screenshots für UI-Änderungen
  • Testing-Ergebnisse

Code-Richtlinien

TypeScript

  • Strict Mode aktiviert
  • Explizite Typ-Definitionen
  • Keine any-Typen ohne Begründung
  • Interface-Segregation

Styling

  • TailwindCSS Utility-Klassen
  • Responsive Design (Mobile-first)
  • Konsistente Design-Tokens

Testing

  • Unit-Tests für Utility-Funktionen
  • Integration-Tests für Komponenten
  • E2E-Tests für kritische Pfade

Review-Prozess

1. Automated Checks

  • TypeScript-Kompilierung
  • ESLint und Prettier
  • Unit-Tests
  • Build-Validation

2. Code-Review

  • Mindestens 1 Reviewer erforderlich
  • Konstruktives Feedback
  • Fokus auf Code-Qualität und Architektur

3. Merge-Policy

  • Alle Checks müssen bestehen
  • Approvals von Reviewern
  • Keine Merge-Konflikte

Kommunikation

Issue-Diskussionen

  • Klare Problembeschreibung
  • Reproduzierbare Schritte
  • Erwartetes vs. tatsächliches Verhalten

Code-Review-Kommentare

  • Konstruktiv und respektvoll
  • Spezifische Verbesserungsvorschläge
  • Begründung für Änderungen

Bereichs-spezifische Richtlinien

Karten-Entwicklung

  • OpenLayers Best Practices
  • Performance-Optimierung für große Datensätze
  • Cross-Browser Kompatibilität

UI-Komponenten

  • Wiederverwendbarkeit
  • Accessibility (WCAG 2.1)
  • Responsive Design

Backend-Funktionen

  • Error-Handling und Validation
  • Security-Considerations
  • Performance-Monitoring

Häufige Fehler vermeiden

❌ Zu vermeiden

  • Direkte DOM-Manipulation
  • Globale Variablen
  • Komplexe verschachtelte Callbacks
  • Ungetesteter Code

✅ Empfohlen

  • Deklarative Programmierung
  • Immutable Datenstrukturen
  • Async/Await statt Callbacks
  • Komponenten-basierte Architektur

Nächste Schritte

  • [ ] Detaillierte Entwicklungsumgebung dokumentieren
  • [ ] Code-Beispiele für häufige Patterns
  • [ ] Testing-Guide erweitern
  • [ ] Performance-Best Practices hinzufügen

Support

Bei Fragen zum Beitragsprozess:

  • Issue im GitLab Repository erstellen
  • Entwicklungsteam kontaktieren
  • Dokumentation durchlesen