Chestlify ist eine moderne Full-Stack-Webanwendung zur Verwaltung von Gruppenfinanzen. Ursprünglich für die Organisation von Abi-Kassen entwickelt, bietet Chestlify eine flexible Architektur, um die Finanzen von Vereinen, WGs, Reisekassen und anderen Kollektiven sicher, transparent und effizient zu verwalten. https://www.chestlify.com
  • JavaScript 79.3%
  • PHP 12.2%
  • Blade 7.8%
  • CSS 0.7%
Find a file
Björn Engelhardt 8cb8268c69
Some checks failed
CI / code-quality (push) Has been cancelled
CI / tests (push) Has been cancelled
CI / frontend (push) Has been cancelled
Refactor role permissions and add team-based model trait and enums for transaction types and statuses
2026-03-03 02:55:56 +01:00
.forgejo/workflows Add code quality tooling, tests, documentation, CI/CD and deployment 2026-02-08 03:05:14 +01:00
app Refactor role permissions and add team-based model trait and enums for transaction types and statuses 2026-03-03 02:55:56 +01:00
bootstrap Initial commit: Abi 2027 App (Laravel 12 + Filament 3) 2026-02-08 03:05:14 +01:00
config Add code quality tooling, tests, documentation, CI/CD and deployment 2026-02-08 03:05:14 +01:00
database Add code quality tooling, tests, documentation, CI/CD and deployment 2026-02-08 03:05:14 +01:00
docs Add code quality tooling, tests, documentation, CI/CD and deployment 2026-02-08 03:05:14 +01:00
public Initial commit: Abi 2027 App (Laravel 12 + Filament 3) 2026-02-08 03:05:14 +01:00
resources Initial commit: Abi 2027 App (Laravel 12 + Filament 3) 2026-02-08 03:05:14 +01:00
routes Add code quality tooling, tests, documentation, CI/CD and deployment 2026-02-08 03:05:14 +01:00
storage Initial commit: Abi 2027 App (Laravel 12 + Filament 3) 2026-02-08 03:05:14 +01:00
tests Add code quality tooling, tests, documentation, CI/CD and deployment 2026-02-08 03:05:14 +01:00
.editorconfig Initial commit: Abi 2027 App (Laravel 12 + Filament 3) 2026-02-08 03:05:14 +01:00
.env.example Initial commit: Abi 2027 App (Laravel 12 + Filament 3) 2026-02-08 03:05:14 +01:00
.gitattributes Initial commit: Abi 2027 App (Laravel 12 + Filament 3) 2026-02-08 03:05:14 +01:00
.gitignore Add code quality tooling, tests, documentation, CI/CD and deployment 2026-02-08 03:05:14 +01:00
artisan Initial commit: Abi 2027 App (Laravel 12 + Filament 3) 2026-02-08 03:05:14 +01:00
composer.json Add code quality tooling, tests, documentation, CI/CD and deployment 2026-02-08 03:05:14 +01:00
composer.lock Add code quality tooling, tests, documentation, CI/CD and deployment 2026-02-08 03:05:14 +01:00
deploy.php Add code quality tooling, tests, documentation, CI/CD and deployment 2026-02-08 03:05:14 +01:00
package-lock.json Initial commit: Abi 2027 App (Laravel 12 + Filament 3) 2026-02-08 03:05:14 +01:00
package.json Initial commit: Abi 2027 App (Laravel 12 + Filament 3) 2026-02-08 03:05:14 +01:00
phpstan.neon Add code quality tooling, tests, documentation, CI/CD and deployment 2026-02-08 03:05:14 +01:00
phpunit.xml Initial commit: Abi 2027 App (Laravel 12 + Filament 3) 2026-02-08 03:05:14 +01:00
pint.json Add code quality tooling, tests, documentation, CI/CD and deployment 2026-02-08 03:05:14 +01:00
README.md Add code quality tooling, tests, documentation, CI/CD and deployment 2026-02-08 03:05:14 +01:00
rector.php Add code quality tooling, tests, documentation, CI/CD and deployment 2026-02-08 03:05:14 +01:00
vite.config.js Initial commit: Abi 2027 App (Laravel 12 + Filament 3) 2026-02-08 03:05:14 +01:00

Abi 2027 - Klassenkasse & Finanzverwaltung

Ein modernes Backend zur Verwaltung der Abikasse, gebaut mit Laravel 12 und Filament 3.

Tech Stack

Schicht Technologie Version
Backend Laravel 12
Admin UI Filament 3.2
Reactivity Livewire 3.7
Frontend Tailwind CSS + Vite 4 + 7
Rollen Spatie Permission + Filament Shield -
Kalender Filament Fullcalendar 3.2
PDF Laravel Snappy 1.0
Desktop NativePHP 1.3

Features

  • Finanzverwaltung: Mehrere Bankkonten, Einnahmen & Ausgaben, Kategorisierung, PDF-Export
  • Kalender & Events: FullCalendar-Integration, Quick-Add, Verknuepfung mit Transaktionen
  • Team-Verwaltung: Multi-Team-Support mit Daten-Isolation pro Klasse/Jahrgang
  • Rollen & Rechte: Super Admin, Admin, Kassenwart, Beobachter (via Filament Shield)
  • Einladungssystem: Token-basierte Benutzereinladungen per E-Mail
  • Zwei-Faktor-Authentifizierung: 6-stellige Codes mit Ablaufzeit
  • App-Branding: Login-Seite und Dashboard pro Team anpassbar
  • Dashboard-Widgets: Kontostand, Einnahmen/Ausgaben, Termine, Mini-Kalender, Event-Umsatz-Chart

Voraussetzungen

  • PHP 8.3+
  • Composer
  • Node.js 20+ / npm
  • DDEV (empfohlen) oder MariaDB/MySQL
  • Docker Desktop (fuer DDEV)

Installation

# Repository klonen
git clone <repository-url> abi-2027
cd abi-2027

# Abhaengigkeiten installieren
composer install
npm install

# Umgebung konfigurieren
cp .env.example .env
php artisan key:generate

# Datenbank migrieren & Demo-Daten laden
php artisan migrate --seed

# Storage-Link setzen
php artisan storage:link

# Frontend bauen
npm run build

Mit DDEV

ddev start
ddev composer install
ddev npm install && ddev npm run build
ddev artisan migrate:fresh --seed
ddev artisan storage:link

Development

# Dev-Server starten (Vite + Artisan + Queue + Logs)
composer dev

# Oder einzeln:
php artisan serve
npm run dev

Demo-Zugaenge

Rolle Email Passwort
Super Admin admin@abi2027.de password
Kassenwart kasse@abi2027.de password
Beobachter view@abi2027.de password

Admin Panel: http://localhost:8000/admin (oder https://abi-2027.ddev.site/admin mit DDEV)

Code Quality

# Code-Style pruefen (Laravel Pint)
composer pint:check

# Code-Style automatisch fixen
composer pint

# Statische Analyse (PHPStan Level 5)
composer phpstan

# Rector (Code-Modernisierung) - Vorschau
composer rector:check

# Rector ausfuehren
composer rector

# Tests ausfuehren (Pest)
composer test

# Tests parallel ausfuehren
composer test:parallel

# Alle Checks auf einmal
composer ci

Rollen & Rechte

Die Berechtigungen werden ueber Filament Shield verwaltet:

  • Super Admin: Voller Zugriff auf alles inkl. App-Einstellungen
  • Admin: Kann Nutzer verwalten, aber keine System-Settings
  • Kassenwart: Darf Buchungen anlegen, editieren und loeschen
  • Beobachter: Nur Lesezugriff (Read-Only)

Projektstruktur

app/
├── Filament/
│   ├── Pages/          # Dashboard, AppSettings, Auth, Kalender
│   ├── Resources/      # CRUD fuer alle Models
│   └── Widgets/        # Dashboard-Widgets
├── Http/
│   ├── Controllers/    # InvitationController
│   └── Middleware/      # 2FA, Password-Check
├── Models/             # User, Team, Transaction, BankAccount, Category, Event, AppSetting
├── Notifications/      # Einladung, 2FA-Code
└── Policies/           # RolePolicy
database/
├── factories/          # Model Factories fuer Tests
├── migrations/         # 16 Migrations
└── seeders/            # Demo-Daten, Shield-Seeder
tests/
├── Unit/Models/        # Model-Tests
└── Feature/            # Auth, Filament-Resources, Middleware

Deployment

Das Projekt verwendet PHP Deployer fuer Zero-Downtime-Deployments. Siehe deploy.php fuer die Konfiguration.

# Erster Deploy (Setup)
dep deploy:setup production

# Deployment
dep deploy production

# Rollback
dep rollback production

CI/CD

Die CI-Pipeline (.forgejo/workflows/ci.yml) prueft bei jedem Push/PR:

  1. Code Quality: Pint, PHPStan, Rector
  2. Tests: Pest mit MariaDB
  3. Frontend: npm build

Lizenz

Proprietaer - Alle Rechte vorbehalten.