f7dc452b9958d50fd1dae2869026dac76f48dbbb
WhereIsMyMoney
Eine moderne Webanwendung zur persönlichen Finanzverwaltung mit umfassenden Funktionen für Transaktionsmanagement und Finanzübersicht.
Features
Transaktionsmanagement
- Vollständige CRUD-Operationen: Erstellen, Bearbeiten, Löschen von Transaktionen
- Multi-Edit-Funktionalität: Mehrere Transaktionen gleichzeitig bearbeiten
- Multi-Delete-Funktionalität: Mehrere Transaktionen gleichzeitig löschen
- Erweiterte Filter: Nach Datum, Beschreibung, Kategorie, Konto, Typ und Betrag filtern
- Paginierung: Übersichtliche Navigation durch große Transaktionslisten
- Regelmäßige Transaktionen: Automatische Generierung wiederkehrender Transaktionen
Konten & Kategorien
- Bankkonten-Management: Verwaltung mehrerer Bankkonten mit verschiedenen Typen
- Depot-Management: Verwaltung von Investment-Depots verschiedener Broker
- Kategorien-System: Flexible Kategorisierung mit Icons für bessere Übersicht
- Übersicht über Einnahmen und Ausgaben: Detaillierte Finanzanalyse
Benutzerfreundlichkeit
- Responsive Design: Optimiert für Desktop und Mobile
- Interaktive Dashboards: Grafische Darstellung der Finanzdaten mit Chart.js
- Benutzereinstellungen: Passwort-Management und Profilverwaltung
- Session-Management: Sichere Benutzeranmeldung mit Safari-Kompatibilität
Technische Features
- Type-safe Templates: a-h/templ für sichere HTML-Generierung
- Moderne Architektur: GORM für Datenbankoperationen
- RESTful API: JSON-basierte Endpunkte für AJAX-Operationen
- Filter-Persistierung: URL-Parameter bleiben bei Navigation erhalten
Technologien
- Backend: Go 1.23 mit Gin Framework
- Templates: a-h/templ für type-safe HTML Templates
- Database: GORM mit SQLite
- Configuration: Viper für Konfigurationsmanagement
- Sessions: Gorilla Sessions
- Frontend: Tailwind CSS
Installation
- Repository klonen oder herunterladen
- In das Projektverzeichnis wechseln:
cd whereismymoney - Dependencies installieren:
go mod tidy - Templates generieren:
templ generate - Server starten:
go run main.go
API Routes
Authentifizierung
- Auth:
/login,/register,/logout
Hauptseiten
- Dashboard:
/(geschützt) - Finanzübersicht mit Grafiken - Transaktionen:
/transactions(geschützt) - Transaktionsliste mit Filtern - Konten:
/accounts(geschützt) - Bank- und Depot-Verwaltung - Einstellungen:
/settings(geschützt) - Benutzereinstellungen
Transaktions-API
- GET
/transactions- Transaktionsliste mit Paginierung und Filtern - POST
/transactions- Neue Transaktion erstellen - PUT
/transactions/:id- Transaktion bearbeiten - DELETE
/transactions/:id- Transaktion löschen - PUT
/transactions/multi-update- Mehrere Transaktionen bearbeiten - DELETE
/transactions/multi-delete- Mehrere Transaktionen löschen
Recurring Transactions
- GET
/recurring- Regelmäßige Transaktionen anzeigen - POST
/recurring- Neue regelmäßige Transaktion erstellen - PUT
/recurring/:id- Regelmäßige Transaktion bearbeiten - DELETE
/recurring/:id- Regelmäßige Transaktion löschen
- Browser öffnen: http://localhost:8080
Entwicklung
Templates generieren
templ generate
Server starten
go run main.go
Build erstellen
go build -o app .
./app
Konfiguration
Die App verwendet eine config.yaml Datei für die Konfiguration:
server:
host: localhost
port: "8080"
database:
type: sqlite
path: "./whereismymoney.db"
Projekt-Struktur
whereismymoney/
├── main.go # Hauptanwendung mit Routing
├── config.yaml # Konfigurationsdatei
├── whereismymoney.db # SQLite Datenbank
├── static/
│ ├── css/
│ │ └── style.css # Custom CSS
│ └── js/
│ └── dashboard-charts.js # Chart.js Konfiguration
├── internal/
│ ├── config/
│ │ └── config.go # Konfigurationsverwaltung
│ ├── database/
│ │ └── database.go # Datenbankverbindung und Migrationen
│ ├── handlers/
│ │ └── handlers.go # HTTP Handler (Auth, Transaktionen, etc.)
│ ├── models/
│ │ └── models.go # GORM Modelle (User, Transaction, etc.)
│ └── views/ # Templ Templates
│ ├── layout.templ # Basis-Layout
│ ├── navigation.templ # Navigation-Komponente
│ ├── dashboard.templ # Dashboard mit Grafiken
│ ├── transactions.templ # Transaktionsliste mit Filtern
│ ├── accounts.templ # Konten-Management
│ ├── recurring.templ # Regelmäßige Transaktionen
│ ├── settings.templ # Benutzereinstellungen
│ ├── login.templ # Login-Seite
│ └── register.templ # Registrierung
└── README.md # Diese Datei
Datenbank-Modelle
User
- Benutzerauthentifizierung mit bcrypt
- Beziehungen zu Konten, Depots und Transaktionen
Transaction
- Vollständige Transaktionsdaten (Betrag, Beschreibung, Datum, etc.)
- Verknüpfung zu Benutzern, Kategorien und Konten
- Unterstützung für Ein- und Ausgaben
RecurringTransaction
- Vorlage für regelmäßige Transaktionen
- Flexible Intervalle (täglich, wöchentlich, monatlich, jährlich)
- Automatische Generierung neuer Transaktionen
BankAccount & Depot
- Verschiedene Kontotypen (Girokonto, Sparkonto, Kreditkarte)
- Depot-Management für verschiedene Broker
- Saldo-Verfolgung
Category
- Kategorisierung mit Icons
- Flexible Zuordnung zu Transaktionen
Description
Languages
templ
56.3%
Go
37.6%
JavaScript
6.1%