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 dev3. Feature-Branch erstellen
bash
git checkout -b feature/feature-name
# oder
git checkout -b fix/bug-description4. Ä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-Funktionen6. 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