Bosch — Plattform für Aufgabenverwaltung
Full-stack Aufgabenverwaltung, entwickelt als technische Aufgabe im Rahmen eines Bewerbungsprozesses bei Bosch.
Die Aufgabe
Eine Anwendung zur Aufgabenverwaltung bauen, die Engineering in Produktionsqualität über den gesamten Stack zeigt. Authentifizierung, CRUD, eine durchdachte UX, bereit für das Deployment. Ich habe sie behandelt, als würde sie tatsächlich live gehen.
Was ich geliefert habe
- JWT-Authentifizierung mit Refresh-Token-Rotation und Schutz auf Routenebene
- Aufgaben-CRUD mit Prioritäten, Fälligkeitsdaten und Tags
- Intelligente Sortierung — Aufgaben werden automatisch nach einem gewichteten Score aus Nähe des Fälligkeitsdatums, Priorität und Erstellungszeitpunkt sortiert, sodass die dringendsten ohne manuelle Triage zuoberst stehen
- Docker-Stack —
docker-compose upstartet Flask-API, Angular-Frontend und PostgreSQL mit einem einzigen Befehl - REST API mit einheitlichem Fehlerformat und korrekten HTTP-Statuscodes
Wichtige Entscheidungen
Flask statt FastAPI. Die Aufgabenstellung liess das offen. Ich habe Flask gewählt, weil ich damit am meisten Produktionserfahrung habe und die Aufmerksamkeit der Prüfer auf der Architektur liegen sollte — nicht darauf, wie ich unter Zeitdruck ein neues Framework lerne.
JWT mit Refresh-Rotation, nicht nur Access Tokens. Die meisten technischen Aufgaben liefern ein einzelnes JWT mit 24 Stunden Gültigkeit und nennen das Authentifizierung. Refresh-Rotation ist das, was man in Produktion einsetzt — und das, was ich auch im Job bauen würde.
Intelligente Sortierung als zentrales Feature. Die Aufgabe lautete «Aufgabenverwaltung». Ein CRUD liefert jeder. Eine intelligente Sortierung darüber zu legen, war der günstigste Weg, Produktdenken zu zeigen und nicht nur technische Umsetzung.
Docker Compose vom ersten Tag an. Prüfer sollten meinen Code in 30 Sekunden starten können, statt einen Nachmittag mit lokalen Abhängigkeiten zu verbringen. Das ist wichtiger, als viele Bewerber denken.
Begründung des Stacks
| Ebene | Technologie | Warum |
|---|---|---|
| Frontend | Angular | Entsprach dem erwarteten Stack der Stelle |
| Backend | Flask + SQLAlchemy | Ausgereift, schnelle Iteration, gut lesbar |
| Datenbank | PostgreSQL | Passend für ein relationales Datenmodell |
| Authentifizierung | JWT + Refresh | Produktionsreife Muster statt Demo-Authentifizierung |
| Deployment | Docker Compose | Reproduzierbar mit einem Befehl |
Rückblick
Wenn ich das Projekt über die Aufgabe hinaus weiterführen würde: Echtzeit-Zusammenarbeit über WebSockets, ein richtiges System für Hintergrundjobs für Benachrichtigungen (Celery + Redis) und generierte OpenAPI-Spezifikationen für die REST-Schicht. Das Fundament steht — das sind Erweiterungen, keine Umbauten.