2025-08-26 03:38:05 +02:00
2025-08-26 03:17:49 +02:00
2025-08-26 03:30:22 +02:00
2025-08-26 03:38:05 +02:00
2025-08-26 03:17:49 +02:00
2025-08-26 03:17:49 +02:00
2025-08-26 03:35:52 +02:00
2025-08-26 03:17:49 +02:00
2025-08-26 03:17:49 +02:00
2025-08-26 03:17:49 +02:00
2025-08-26 03:17:49 +02:00
2025-08-26 03:17:49 +02:00
2025-08-26 03:17:49 +02:00

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

  1. Repository klonen oder herunterladen
  2. In das Projektverzeichnis wechseln:
    cd whereismymoney
    
  3. Dependencies installieren:
    go mod tidy
    
  4. Templates generieren:
    templ generate
    
  5. 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
  1. 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
S
Description
No description provided
Readme 11 MiB
Languages
templ 56.3%
Go 37.6%
JavaScript 6.1%