🌱 BetterGS - sustain the future
Eine innovative mobile App der Stadt Goslar für nachhaltiges Engagement und Community-Building.
BetterGS ist eine Progressive Web App (PWA) mit nativen mobilen Funktionen, entwickelt für das MachMit!Haus in Goslar. Die App fördert nachhaltiges Verhalten und Community-Engagement durch:
- 🏃♀️ Aktivitäts-Tracking: Verfolge deine nachhaltigen Aktivitäten
- 🏆 Gamification: Sammle Punkte und erreiche Ziele
- 👥 Community: Vernetze dich mit anderen umweltbewussten Bürgern
- 📊 Ranglisten: Vergleiche deine Fortschritte mit anderen
- 🌍 Internationalisierung: Vollständige Unterstützung für Deutsch und Englisch
- Angular 20 - Modernes Web-Framework
- Ionic 8 - Cross-Platform UI Components
- TypeScript 5.8 - Type-sichere Entwicklung
- RxJS 7.8 - Reactive Programming
- SCSS - Styling mit CSS-Präprozessor
- Firebase - Backend-as-a-Service
- Authentication (Benutzeranmeldung)
- Firestore (NoSQL-Datenbank)
- Storage (Datei-Upload)
- Capacitor 7 - Native App-Funktionen
- Kamera-Integration
- Local Notifications
- Platform-spezifische APIs
- ESLint - Code-Qualität und Stil
- Jasmine + Karma - Unit Testing
- Angular CLI - Build-System
- i18n - Internationalisierung
node >= 18.0.0
npm >= 9.0.0# Repository klonen
git clone https://github.com/stadt-goslar/betterGS.git
cd betterGS
# Dependencies installieren
npm install
# Capacitor für mobile Entwicklung vorbereiten
npm run ionic capacitor sync# Development Server starten (Englisch)
npm run start:en
# Development Server starten (Deutsch)
npm run start:de
# Standard Development Server
npm startDie App läuft unter http://localhost:4200
# Unit Tests ausführen
npm test
# Tests mit Code Coverage
npm run test:coverage
# Tests im Watch-Mode
npm run test:watch# Production Build (alle Sprachen)
npm run build:i18n
# Production Build (nur Deutsch)
npm run build:de
# Production Build (nur Englisch)
npm run build:enbetterGS/
├── src/
│ ├── app/
│ │ ├── components/ # Wiederverwendbare Komponenten
│ │ ├── core/ # Core Services & Guards
│ │ ├── singlePages/ # Standalone Seiten
│ │ ├── tabs/ # Tab-Navigation Seiten
│ │ │ ├── my-activities/ # Aktivitäts-Management
│ │ │ ├── profile/ # Benutzer-Profil
│ │ │ └── ranking/ # Ranglisten & Leaderboards
│ │ └── shared/ # Geteilte Utilities
│ ├── assets/ # Statische Assets
│ ├── environments/ # Umgebungs-Konfigurationen
│ ├── locale/ # i18n Übersetzungsdateien
│ └── theme/ # SCSS Theming
├── ios/ # iOS Capacitor Projekt
├── www/ # Build Output
└── docs/ # Dokumentation
Die App unterstützt vollständige Mehrsprachigkeit:
- 🇺🇸 Englisch (en) - Standard/Fallback
- 🇩🇪 Deutsch (de) - Deutsche Übersetzung
# Neue Übersetzungen extrahieren
npm run extract-i18n
# Übersetzungsdateien bearbeiten
# src/locale/messages.de.xlf
# src/locale/messages.en.xlf
# Mit Übersetzungen testen
npm run start:de
npm run start:enSiehe I18N-README.md für detaillierte Anleitungen.
# iOS Projekt erstellen/aktualisieren
npm run ionic capacitor sync ios
# iOS App im Simulator öffnen
npm run ionic capacitor run ios# Android Projekt erstellen/aktualisieren
npm run ionic capacitor sync android
# Android App im Emulator öffnen
npm run ionic capacitor run androidDas Projekt verfügt über eine umfassende Test-Suite:
- Unit Tests: Jasmine + Karma
- Component Tests: Angular Testing Utilities
- Firebase Mocking: Vollständige Mock-Implementation
- Test Coverage: Umfassende Abdeckung kritischer Pfade
- ✅ MyActivitiesPage: 29/29 Tests
- ✅ RankingPage: 53/53 Tests
- ✅ ProfilePage: 49/49 Tests
- ✅ Gesamt: 101/101 Tests bestehen
# Alle Tests ausführen
npm test
# Spezifische Komponente testen
npm test -- --include='**/profile.page.spec.ts'
# Tests mit Watch-Mode
npm test -- --watch
# Headless Testing (CI)
npm test -- --browsers=ChromeHeadless --watch=false# Linting ausführen
npm run lint
# Auto-Fix für Linting-Fehler
npm run lint:fix- Feature Branch erstellen:
git checkout -b feature/neue-funktion - Changes committen:
git commit -m "feat: neue Funktion hinzugefügt" - Pull Request erstellen gegen
mainBranch - CI/CD Pipeline muss erfolgreich durchlaufen
- Code Review und Merge
feat: neue Funktion
fix: Bugfix
docs: Dokumentation
style: Formatierung
refactor: Code-Refactoring
test: Tests hinzufügen/ändern
chore: Build-Prozess/Dependencies
# Build für Staging
npm run build:i18n
# Deploy zu Firebase Hosting (Staging)
firebase deploy --only hosting:staging# Production Build
npm run build:i18n
# Deploy zu Firebase Hosting (Production)
firebase deploy --only hosting:production# iOS Build für App Store
npm run build:i18n
npm run ionic capacitor sync ios
# Xcode öffnen und Archive erstellen
# Android Build für Play Store
npm run build:i18n
npm run ionic capacitor sync android
# Android Studio öffnen und Bundle erstellen- Repository forken und klonen
npm installausführen- Feature Branch erstellen
- Änderungen implementieren
- Tests schreiben/aktualisieren
- Pull Request erstellen
- ✅ Alle Tests müssen bestehen
- ✅ Code-Qualität (ESLint) erfüllt
- ✅ Dokumentation aktualisiert
- ✅ i18n Übersetzungen vollständig
- ✅ Mobile Kompatibilität getestet
- Lighthouse Score: > 90
- First Contentful Paint: < 2s
- Largest Contentful Paint: < 2.5s
- Cumulative Layout Shift: < 0.1
- Main Bundle: < 500KB (gzipped)
- Lazy Loaded Chunks: < 50KB each
- Tree Shaking: Aktiviert für optimale Bundle-Größe
- Firebase Security Rules: Strenge Datenzugriffs-Kontrolle
- Authentication: Sichere Benutzer-Anmeldung
- HTTPS: Verschlüsselte Datenübertragung
- Content Security Policy: XSS-Schutz
- Dependency Scanning: Regelmäßige Sicherheitsupdates
- Repository: GitHub - BetterGS
- Issues: GitHub Issues
- Wiki: Projekt-Wiki
- MachMit!Haus: machmit.goslar.de
- E-Mail: machmit@goslar.de
- Telefon: +49 5321 704 - 525
Dieses Projekt steht unter der MIT Lizenz.
- Stadt Goslar - Projektträger und Vision
- MachMit!Haus Team - Fachliche Beratung und Testing
- Angular & Ionic Teams - Exzellente Frameworks
- Open Source Community - Inspiration und Tools
💚 Gemeinsam für eine nachhaltige Zukunft in Goslar!