Schulprojekt von Florian Ackle
v0.1
Als Software-Entwickler muss man in der Lage sein, ein Softwareprojekt auf- und umzusetzen. Dabei ist es wichtig, dass es von Beginn weg sauber strukturiert, dokumentiert und getestet wird. Um das zu verinnerlichen, ist es am besten, es immer wieder zu machen und von den vorherigen Erfahrungen zu profitieren.
Der "Budget-Planner" ist eine App, die es Benutzern ermöglicht, ihre Einnahmen und Ausgaben zu verwalten und ein Budget zu erstellen. Jede Transaktion kann Kategorien zugeordnet werden, und Benutzer können ihr Budget basierend auf ihren Finanzaktivitäten aktualisieren und nachverfolgen.
Das Projekt ist wie folgt aufgebaut:
- React mit Material-UI 💄
- Unter
/frontend/srcgibt es den Ordner/componentsund/servicesdiese beinhalten folgendes: /components: einzelne Frontend Komponente/services: Dienste für Abfragen aus dem Frontend an das Backend
- FastAPI 🚀
- Unter
/backend/appwurde das Projekt in folgende Unterordner aufgeteilt: /models- Datenbank Modelle/routers- Backend Routen/schemas- Datenbank Schemas/services- Dienste für die einzelnen Komponenten (Business-Logik)/seeders- Datenbank Seeder (z.B. vordefinierte Kategorien)- Die Config für die Verbindung zur Datenbank befindet sich in folgenden Files:
/dependencies.pyund/database.py
- PostgreSQL innerhalb Docker-Container 🐋
- Das
docker-compose.ymlliegt direkt im root Ordner vom Projekt
Der Budget-Planner unterstützt folgende Funktionen:
- Benutzer Registrierung und Login (mit JWT Integration) 🔐
- Eintragen von Einnahmen und Ausgaben 💸
- Kategorisieren von Einnahmen und Ausgaben 🔖
- Einnahmen und Ausgaben anzeigen (pro kategorie und typ) 📜
deploy project to google cloud
- Endpoint hinzufügen, dass ein User seinen Account löschen kann (somit wird sein Budget und alle seine Einnahmen und Ausgaben gelöscht)
- Funktion für das Ausloggen eines Benutzers hinzufügen
- Dem Benutzer erlauben, dass er seine Income und Expenses editieren und löschen kan
- Funktion hinzufügen, dass ein Benutzer seine eigenen Kategorien erstellen kann (Endpoints dafür sind bereits erstellt)
- Projekt erweitern, dass ein Benutzer mehrere Budgets haben kann (z.B. für verschiedene Konten, oder gemeinsames Budget mit einem anderen User)
- Pagination für die Einnahmen & Ausgaben Tabelle ergänzen (damit die Liste nicht unendlich lang wird und bei vielen Einträgen weiterhin schnell lädt)
- Erweiterte Sicherheit (bessere Validierung für Kennwörter für mehr Komplexität)
- Weitere Backend Tests mit erweiterten Cases
Bitte kopiere diesen Code nicht... ausser du gibst mir einen 🍪
Sonst... lass die Finger davon 👈.
23.12.2024