Grocee ist ein smarter Einkaufslistenplaner für Haushalte und WGs. Von klassischer Listenverwaltung bis zu Budgettracking und fairer Kostenaufteilung ist alles dabei. Minimaler Overhead, maximaler Nutzen – designed mit Clean Architecture, DDD und modernen Webtechnologien.
Grocee soll helfen, den Alltag rund ums Einkaufen strukturiert, transparent und teamfähig zu gestalten:
- Einkaufslisten: Produkte mit Name, Kategorie, Marke, Haltbarkeitsdatum
- Lebensmittel-Tracking: Reminder bei ablaufenden Produkten
- Budgetkontrolle: Monatsbudget für Einzelpersonen inkl. Warnung bei Überschreitung
- Kostenaufteilung: In WGs wird automatisch fair verteilt, basierend auf zugewiesenen Anteilen
- Verlauf: Produkthistorie zur Wiederverwendung
- Kein Dupes: Gleiches Produkt ≠ neue Zeile – die Menge wird aktualisiert
| Layer | Tool / Stack |
|---|---|
| Backend | Spring Boot 3.4.5 (Java 24) |
| Frontend | |
| Architektur | Clean Architecture + Domain Driven Design |
| DB | SQLite |
| Tests | JUnit 5 + Mocking (Mockito) |
| Build | Maven |
| Dev Tools | VS Code, Spring Dev Tools |
grocee/
├── docs/ # Technische Doku (Markdown, PDF, etc.)
├── backend/ # Java + Spring Boot Backend
│ └── src/
│ └── main/java/de/fab001/grocee/
│ ├── domain/ # DDD: Entities, VOs, Aggregates
│ ├── application/ # UseCases / Services
│ ├── adapters/ # REST Controller, DTOs, Mappings
│ └── plugins/ # DB / External / Framework-Anbindung
├── frontend/ # Postman Collection (temporär anstelle von Next.js)
│ └── postman_collection.json # API-Endpunkte für Testung
├── .gitignore
├── README.md# clean-layered structure:
├── domain
├── application
├── adapters
└── pluginsDomain ist frei von Frameworks. Application orchestriert die Use Cases. Die Adapters sind z. B. Controller und Mapper. Die äußeren Plugins kapseln Technik wie Spring, DBs etc. Die Richtung der Abhängigkeiten zeigt immer von außen nach innen.
cd backend/grocee
./mvnw spring-boot:runStatt einer Next.js-Frontend-Implementierung verwenden wir aktuell eine Postman Collection für API-Tests und Entwicklung. Die Postman Collection enthält alle verfügbaren Endpunkte und kann importiert werden:
- Postman öffnen
- Collection importieren aus:
frontend/postman_collection.json - Backend starten (siehe oben)
- API-Endpunkte über Postman nutzen (Standard:
http://localhost:8080)
- Clean Architecture Setup
- Domain Layer inkl. Value Objects und Entities
- Einfache Produkt-API
- SQLite-Datenbankintegration
- Auth + Session (JWT oder Clerk/Supabase)
- Kostenaufteilungs-Logik
- Budget-UI & Visualisierung
- Next.js Frontend-Implementierung
PRs sind willkommen! Fokus auf:
- saubere Architektur (DDD, Clean Architecture)
- gute Naming-Strategien (Ubiquitous Language)
- Testing & Refactoring (mit Coverage)
- keine YAGNI-Logik
MIT – siehe LICENSE
„Ship early, refactor often."
Ein Teil dieses Codes wurde mit Unterstützung von KI-Tools wie ChatGPT (OpenAI) und/oder GitHub Copilot erstellt. Die finale Implementierung, Überprüfung und Anpassung erfolgte durch den Projektautor.