CARe – Der smarte Begleiter für Autopflege, Wartung und Kostenkontrolle
Im Rahmen der Wildauer Softwarefabrik haben wir CARe entwickelt: eine moderne, mobile-optimierte Webanwendung, die Fahrzeughaltern dabei hilft, wichtige Wartungs- und Pflegeaufgaben ihres Fahrzeugs zuverlässig im Blick zu behalten. Egal ob Reifenluftdruck, Motorölstand oder anstehende Hauptuntersuchungen. CARe erinnert Nutzer rechtzeitig an wiederkehrende Aufgaben um ihr Auto langfristig in einem guten Zustand zu halten. Gleichzeitig bietet die App eine integrierte Kostenerfassung für Kraftstoff, um den finanziellen Aufwand stets sichtbar zu machen. Das Ergebnis des ersten Projektsemesters ist ein voll funktionsfähiger Proof of Concept, der die Autopflege in eine motivierende Routine verwandelt.
Projektkontext
Die regelmäßige Instandhaltung eines Autos ist wichtig für die Sicherheit, Zuverlässigkeit und den Werterhalt, wird im Alltag jedoch oft vernachlässigt. Viele Fahrer denken erst an Wartungsmaßnahmen, wenn bereits ein Problem oder Defekt aufgetreten ist.
Genau hier setzt CARe an. Das Ziel des Projekts ist es, Fahrzeughaltern eine einfache und motivierende Möglichkeit zu bieten, sich um ihr Auto zu kümmern. Statt Wartung als lästige Pflicht wahrzunehmen, hilft CARe dabei, notwendige Aufgaben strukturiert und verständlich in den Alltag zu integrieren. Die Anwendung richtet sich insbesondere an Menschen, die:
- Wartungsaufgaben schnell aus den Augen verlieren,
- den Überblick über fahrzeugbezogene Kosten behalten möchten,
- ihr Auto langfristig in einem guten Zustand halten wollen,
- eine zentrale, digitale und mobile Lösung für Pflege, Kontrolle und Kostenübersicht suchen.
Herausforderungen für das Projekt
- Entwicklung ohne feste Rollenteilung: Das Projektteam entschied sich bewusst gegen eine strikte Trennung in reine Frontend- und Backend-Entwickler. Alle sieben Teammitglieder arbeiteten als Full-Stack-Entwickler an beiden Systemteilen. Dies erforderte eine hohe Abstimmungskompetenz, intensiven Wissensaustausch und ein sehr diszipliniertes Merge-Request-Management.
- Agile Arbeitsweise und Scrum-Koordination: Die Steuerung eines größeren Teams in zweiwöchigen Sprints war für viele Beteiligte eine neue Erfahrung. Vor allem in den ersten beiden Sprints fiel es schwer, die Komplexität und den tatsächlichen Implementierungsaufwand von User Stories realistisch einzuschätzen und eine klare Abgrenzung zwischen den einzelnen Tickets zu definieren.
- Technologische Einarbeitung: Obwohl das Team auf vorhandenem Vorwissen aufbauen konnte, mussten moderne Versionen der Frameworks (wie Angular 21, Tailwind CSS 4 und Spring Boot 4) beherrscht und in einer komplexen, containerisierten Docker-Compose-Umgebung lokal sowie produktiv orchestriert werden.
Herangehensweise
Die Wahl des Themas war unkompliziert und konnte in enger Abstimmung mit dem Dozententeam schnell beschlossen werden. Um mit dem gleichen Wissensstand zu starten, nutzte das Team die Vorbereitungszeit zur Einarbeitung in die technologische Basis.
Im ersten Sprint lag der Fokus darauf, das grundlegende System auf den Geräten aller Teammitglieder erfolgreich zum Laufen zu bringen, um technische Integrationsprobleme im weiteren Projektverlauf zu minimieren.
- Agile GitLab-Struktur: Das Projektmanagement wurde vollständig über GitLab abgebildet. Features wurden als Epics definiert, in kleinere User Stories (Issues mit klaren Akzeptanzkriterien) unterteilt und schließlich in konkrete Tasks (Implementierungsschritte von wenigen Stunden) zerlegt.
- Wissenstransfer durch Code Reviews: Änderungen wurden ausschließlich über Merge Requests gegen den main-Branch eingebracht. Jeder Merge Request musste vor dem Zusammenführen von mindestens einem anderen Teammitglied gereviewt und freigegeben werden.
- Regelmäßige Reflektion: Zu Beginn und zur Mitte jedes Sprints fanden Teammeetings statt (Sprint Review), um den aktuellen Projektstand zu reflektieren, Arbeitsstände zu demonstrieren und Lösungsansätze für aufgetretene Probleme zu erarbeiten.
- Inkrementeller Entwicklungsansatz: In den ersten Sprints lag der Fokus auf der Kernarchitektur (Spring Boot Backend, Angular Frontend, PostgreSQL Datenbank) und dem Registrierungs- und Onboarding-Prozess. Erst danach folgten das Aufgaben-Tracking, das Kosten-Dashboard und die Historie, um die Skalierbarkeit des Systems schrittweise zu validieren.
Lösung
CARe basiert auf einer modernen, dreigeteilten und containerisierten Architektur, die für Entwicklung und Produktion über Docker Compose realisiert wurde:
Frontend
Das Frontend wurde mit Angular 21.2.0 umgesetzt und nutzt Tailwind CSS 4.1.12 für ein modernes, schlankes und responsives Design.
- Progressive Web App (PWA): Die Benutzeroberfläche ist als PWA konzipiert, wodurch sie sich auf Smartphones wie eine native App installieren lässt und eine optimale mobile Bedienbarkeit bietet.
- Mehrstufiges Onboarding: Ein benutzerfreundlicher, 4-stufiger Registrierungsprozess führt den Nutzer durch die Erfassung der relevanten Fahrzeugdaten.
- Dashboard / Garage: Eine übersichtliche „Garage“ zeigt den aktuellen Status des Fahrzeugs und die nächsten anstehenden Aufgaben auf einen Blick.
- Kostenerfassung: Eine dedizierte Maske ermöglicht die schnelle Eingabe und Auswertung laufender Ausgaben, wie beispielsweise Spritkosten.
- Gamifizierte Aufgabenliste (Todos): Spielerisch gestaltete Erinnerungen an wiederkehrende Wartungsaufgaben (z. B. Reifenluftdruck, Motorölstand).
Backend
Das Backend läuft als Spring Boot 4.0.5 Applikation unter Java 21 und stellt eine REST-API für das Frontend zur Verfügung.
- Modularer Aufbau: Eigene Pakete für Authentifizierung (auth), Fahrzeugdaten (car), Kosten (costs), Sicherheit (security) und Aufgaben (tasks).
- REST-Schnittstellen & Sicherheit: Das Backend verwaltet die Business-Logik und stellt gesicherte REST-Endpunkte bereit. Die Authentifizierung erfolgt über JWT-Token, ergänzt durch E-Mail-Verifizierungsschleifen und Passwort-Reset-Prozesse.
- Datenbank-Integration: Datenzugriffe werden performant über JPA-Repositories an die PostgreSQL-Datenbank übergeben.
Datenspeicherung & Infrastruktur
- PostgreSQL 16.4: Dient zur zuverlässigen und strukturierten Speicherung von Benutzerprofilen, Fahrzeugen, Kosteneinträgen und der Historie erledigter Wartungsaufgaben.
- Docker Compose: Das System wird über verschiedene Compose-Dateien verwaltet. Für die lokale Entwicklung existiert ein Setup mit Live-Reload (docker-compose.dev.yaml), während für den Produktivbetrieb (docker-compose.prod.yaml) ein nginx-Reverse-Proxy zur sicheren Weiterleitung und Bereitstellung geschaltet ist.
Fazit & Ausblick
Mit CARe ist es uns gelungen, einen stabilen, voll funktionsfähigen Proof of Concept einer modernen Autopflege- und Kosten-Applikation zu entwickeln. Das Projekt zeigt, wie sich die Instandhaltung eines Fahrzeugs durch eine transparente Kostenkontrolle und regelmäßige Wartung sinnvoll in den Alltag integrieren lässt.
Trotz der organisatorischen Herausforderung, als 7-köpfiges Team komplett im Full-Stack-Modell ohne starre Rollen zu arbeiten, konnten wir durch disziplinierte GitLab-Nutzung, kontinuierliche Code-Reviews und regelmäßige Synchronisationen ein qualitativ hochwertiges System aufbauen. Jedes Teammitglied konnte tiefe Einblicke sowohl in die moderne Angular-Frontend-Entwicklung als auch in robuste Spring-Boot-Backend-Strukturen gewinnen.
Unsere Vision für Semester 2
Im kommenden Semester möchten wir CARe basierend auf dem bestehenden Proof of Concept zu einem vollwertigen Assistenten ausbauen:
- Gamification (XP & Achievements): Nutzer erhalten Erfahrungspunkte und schalten Erfolge frei, wenn sie Wartungsaufgaben pünktlich erledigen, um die Motivation weiter zu steigern.
- Dokumentenablage: Ein digitaler Dokumentensafe für Fahrzeugpapiere, TÜV-Berichte und Werkstattrechnungen.
- Freundesbereich: Möglichkeit, Fahrzeuge mit Familienmitgliedern oder Freunden zu teilen und Verbrauchsdaten zu vergleichen.
- Erweiterte Kostenauswertung mit KI-Bilderkennung: Einbindung eines OCR-Dienstes, um Tankquittungen oder Werkstattrechnungen einfach abzufotografieren und automatisch digital zu erfassen.