|
|
||
|---|---|---|
| html | ||
| migrations | ||
| tests | ||
| .gitignore | ||
| composer.json | ||
| composer.lock | ||
| init.sql | ||
| LICENSE | ||
| phpunit.xml | ||
| README.md | ||
| update.sh | ||
| update.sql | ||
FSCash
Dokumentiere Ausgaben on-the-go als Webapp & behalte den Überblick über Dein Aktiendepot
ToDo
- Zusammenfassen von mehreren Einträgen zu einer Aktie
- Prüfen ob APIKEYS leer sind und ggfs die Aktualisierung ausblenden
V.2.3
- Listen mit Spaltenfiltern (Dashboard) zeigen unterhalb eine optisch abgesetzte Summenzeile, die die Beträge der aktuell sichtbaren (gefilterten) Einträge in der Spalte "Betrag" aufsummiert.
V.2.2
- Unit-Tests (PHPUnit) für die wichtigsten Funktionen, gebündelt in
html/lib/fscash.php: Monatsnavigation, Admin-/Aktien-Rollenprüfung, Aktien-GuV-Berechnung, OpenFIGI-/Alpha-Vantage-Antwortauswertung, Eingabevalidierung, CSV-Export und Migrations-Logik (siehe Abschnitt "Tests" unten). update.shführt die Tests jetzt automatisch vor jedem Deploy aus (inkl.composer install, falls nötig) und bricht bei Fehlschlag ab, bevor irgendetwas kopiert oder migriert wird.
V.2.1
update.shzum Deployen auf einen Zielserver: prüft PHP-Syntax, kopiert den aktuellen git-Stand ins Webroot (ohne die produktiveconfig.phpzu überschreiben) und wendet danach ausstehende Datenbank-Migrationen an.- neues Verzeichnis
migrations/mit versioniertem Migrationssystem: nummerierte.sql-Dateien werden über eineschema_migrations-Tabelle nachverfolgt und jeweils nur einmal angewendet (siehemigrations/README.mdfür die Konvention).
V.2.0
- neue Haupt-Funktion: Aktien zeigt eine Liste mit gespeicherten, zu beobachtenden Aktien
- Die Tabelle errechnet automatisch den aktuellen Gewinn oder Verluststand jeder Aktieneintragung
- neue Aktie hinzufügen mit Kaufdatum und Kaufpreis, wird je Benutzer separat hinterlegt (user_id)
- es KANN eine ISIN oder WKN eingetragen werden
- Beim Abruf von aktuellen Kursdaten muss vorher ein API Key von https://www.alphavantage.co/support/#api-key beantragt werden.
- Suchen von Symbolen passend zur ISIN geht über einen API Key von https://www.openfigi.com/user/signup
- Alternativ kann auch nach dem Aktiennamen bei alphavantage gesucht werden - dafür muss man auf den Namen klicken
- Aktien können geändert und gelöscht werden.
V.1.2
- Einträge löschen als Button im Editier-Fenster (UX dient der Prävention versehentlichen löschens auf der Startseite)
V.1.1
Admin-Funktion:
- in der config.php kann vorkonfiguriert werden, welchen User_ids erlaubt ist, weitere User anzulegen.
Auswertungen:
- CSV Export des ausgewählten Monats in der Kategorieübersicht
- Monatssumme je Kategorie
- Filter monatsweise
- monate durchblättern zurück und vor, defaut aktueller Monat
- Monatssumme je Person
- Haken, welche Kategorieen eingeschlossen werden
- Filter monatssummen
- monate durchblättern zurück und vor, defaut aktueller Monat
V.1.0
Das erste Release enthält:
- mariadb setup
- apache2 setup
- Auswahl des UI frameworks
- login
- Anzeige bestehender Ausgaben des aktuellen Monats
- "+" Button zum Aufruf der Eingabemaske
- Eingabemaske für Ausgaben
- Speichern der Ausgaben in mariadb
Eingabe:
- Betrag
- Personn derzeit individuell direkt über die Mariadb Tabelle individualiserbar
- für wen (Person1, Person2) jeweils mit Haken
- Kategorie, derzeit individuell direkt über die Mariadb Tabelle individualiserbar
- Einkaufen
- Essengehen
- Freizeit
- PuFra
- Urlaub gemeinsam
- Urlaub Pössi
- Barausgaben
- Datum ohne Uhrzeit, default heute, wählbar via Picker
- Zahlungsmittel, derzeit individuell direkt über die Mariadb Tabelle individualiserbar
- Bar
- Karte
- Paypal
- nicht löschbar!
- alles MUSS-Felder
Ausgabe
- Anzeige aller Ausgaben des aktuellen Monats
- "+" Symbol für neue Ausgabe
Weiteres
- Login/User aktiv halten
- Datenspeicher MariaDB
- Strato-Server
- Kategorieanzeige in Übersicht durch Strings ersetzen
- Übersicht rückwärts sortiert neu -> alt
- Betrag deutsche Zahlen und rechtsbündig
- Kommentarfeld freitext drei Zeilen
Installationshinweise:
- webserver & DB server aufsetzen
- init.sql script als berechtigter DB user laufen lassen (meist root), der Datenbanken anlegen und Berechtigungen setzen kann.
- html Ordner ins webroot kopieren
- config_sample.php in config.php umbenennen und DB credentials setzen
- webroot (z.B. http://localhost/) aufrufen und mit user test / test123 einloggen.
- obige Schritte sind nur das Nötigste, um die Funktionalität herzustellen. Insbesondere bei Zugriffsmöglichkeiten aus dem Internet ist es wichtig, https Protokolle, vpns und/oder ggfs zusätzliche Sicherungsmassnahmen (hardening) zu ergreifen.
Ausserdem solltet Ihr User registrieren und ggfs. die Kategorien anpassen.
Das sollte alles sein. Bitte erstellt ein Bug-Ticket, wenn ich etwas übersehen habe. Gerne könnt Ihr auch Pull-Requests erstellen.
Tests
Die wichtigsten, DB- und netzwerkfreien Funktionen liegen gebündelt in html/lib/fscash.php
(Monatsnavigation, Rollenprüfung, Aktien-GuV-Berechnung, Auswertung der OpenFIGI-/Alpha-Vantage-Antworten,
Eingabevalidierung, CSV-Export, Migrations-Logik) und werden über PHPUnit in tests/FscashTest.php geprüft.
Einmalig Abhängigkeiten installieren:
composer install
Tests lokal ausführen:
bash tests/run.sh
update.sh führt diesen Schritt automatisch vor jedem Deploy aus (inkl. composer install, falls vendor/
noch fehlt) und bricht bei einem Testfehlschlag ab, bevor irgendetwas kopiert oder migriert wird.