{"id":20942241,"url":"https://github.com/jbtronics/stura-finanzsoftware","last_synced_at":"2026-02-24T21:31:52.212Z","repository":{"id":43873558,"uuid":"272775779","full_name":"jbtronics/StuRa-Finanzsoftware","owner":"jbtronics","description":"A little web project to submit PaymentOrders via a web formula and manage them in a backend. Developed for the student council of the University of Jena.","archived":false,"fork":false,"pushed_at":"2025-02-13T22:27:33.000Z","size":2849,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"v2","last_synced_at":"2025-05-14T00:10:26.107Z","etag":null,"topics":["financial","jena","stura","symfony"],"latest_commit_sha":null,"homepage":"https://www.stura.uni-jena.de/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jbtronics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-06-16T17:51:39.000Z","updated_at":"2025-02-13T22:27:36.000Z","dependencies_parsed_at":"2025-01-08T22:06:57.231Z","dependency_job_id":"876a562c-5628-482a-9e05-e268cee04f5c","html_url":"https://github.com/jbtronics/StuRa-Finanzsoftware","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/jbtronics/StuRa-Finanzsoftware","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbtronics%2FStuRa-Finanzsoftware","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbtronics%2FStuRa-Finanzsoftware/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbtronics%2FStuRa-Finanzsoftware/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbtronics%2FStuRa-Finanzsoftware/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jbtronics","download_url":"https://codeload.github.com/jbtronics/StuRa-Finanzsoftware/tar.gz/refs/heads/v2","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbtronics%2FStuRa-Finanzsoftware/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29801021,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T21:02:39.706Z","status":"ssl_error","status_checked_at":"2026-02-24T21:02:21.834Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["financial","jena","stura","symfony"],"created_at":"2024-11-18T23:24:55.480Z","updated_at":"2026-02-24T21:31:52.196Z","avatar_url":"https://github.com/jbtronics.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/jbtronics/StuRa-Finanzsoftware/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/jbtronics/StuRa-Finanzsoftware/?branch=master)\n![PHPUnit Tests](https://github.com/jbtronics/StuRa-Finanzsoftware/workflows/PHPUnit%20Tests/badge.svg)\n![Static analysis](https://github.com/jbtronics/StuRa-Finanzsoftware/workflows/Static%20analysis/badge.svg)\n[![codecov](https://codecov.io/gh/jbtronics/StuRa-Finanzsoftware/branch/master/graph/badge.svg)](https://codecov.io/gh/jbtronics/StuRa-Finanzsoftware)\n![GitHub License](https://img.shields.io/github/license/Part-DB/Part-DB-symfony)\n![PHP Version](https://img.shields.io/badge/PHP-%3E%3D%207.3-green)\n\n# StuRa-Finanzsoftware\n\n## Einführung\nDie Software in diesem Repository wurde für den Studierendenrat (StuRa) der Friedrich-Schiller-Universität Jena\nentwickelt, um das Handling von Zahlungsaufträgen der FSR an die zentrale Finanzverwaltung des StuRas zu\nvereinfachen (siehe TOP 9 der StuRa-Sitzung vom [14.07.20](https://www.stura.uni-jena.de/downloads/sitzungsmaterial/19-20/2020-07-14_Sitzungsmaterial.pdf)).\n\nWenn ein Fachschaftsrat (FSR) eine Zahlung aus ihrem Haushaltstopf tätigen, so musste bisher ein Zahlungsauftrag als Formular\nan den Fachschaftsbeauftragten (FSB) geschickt werden. Die Idee dieser Software ist es das Handling dieser Zahlungsaufträge zu vereinfachen,\nindem sie bereits in digitaler Form eingereicht werden.\n\nDie Finanzbeauftragten der FSRe können die Zahlungsaufträge durch ein webbasiertes Formular abschicken, die Finanzer\ndes StuRas können in einem geschütztem Bereich die eingereichten Zahlungsaufträge einsehen, bearbeiten und bestätigen \n(der Kassenverantwortliche prüft die rechnerische Korrektheit, ein HHV die sachliche Korrektheit). Zusätzlich können dort neue Benutzer angelegt werden\nund die Organsiationseinheiten der Studierendenschaft (also welche FSRe und Referate) gibt es.\n\nDie Software erlaubt die Verwendung von Zwei-Faktor-Authentifizierung zur Absicherung der Logins, um eine hohe Sicherheit\nder vertraulichen Daten zu gewährleisten.\nNutzern lassen sich verschiedene Berechtigungen zuweisen, sodass ein Benutzer nur Zugriff auf die Daten hat, die für seine Rolle notwendig sind.\nZusätzlich werden vielfach geprüfte Standardbibliotheken und verschiedene Techniken (z.B. CSFR-Tokens)\nverwendet, um typische Angriffsvektoren zu minimieren.\n\nWichtige Features der Software sind:\n * Einfache Einreichung von Zahlungsaufträge über eine Weboberfläche, grundlegende Validierung der Daten (Prüfung ob Email, IBAN, etc. gültig sind)\n * Administrations-Backend zur Verwaltung von Benutzern, Strukturen und Zahlungsaufträgen. Sortierung, Suche und Filterung der Zahlungsaufträge möglich\n * Zwei-Faktor-Authentifizierung von Benutzern und Berechtigungssystem\n * Mehrsprachigkeit (Deutsch und Englisch unterstützt); weitere Sprachen einfach hinzufügbar\n * Verwendung von erprobten Standardbibliotheken (Symfony 5, Doctrine, etc.), damit einfache Erweiterbarkeit\n \n## Installation\n\n### Systemanforderungen\nZum Betrieb der Software werden folgende Anforderungen an den Server gestellt:\n * Webserver (am einfachsten einzurichten ist Apache2) mit eingerichtetem PHP\n * MySQL 5.6+ oder MariaDB 10.1+ als Datenbank-Server mit einer Datenbank die von der Software benutzt werden kann.\n * PHP-Version \u003e= 7.3 mit Erweiterungen `php-ctype`, `php-iconv`, `php-intl`, `php-ctype`, `php-pdo`, `php-xsl` (die Existenz dieser Erweiterungen wird aber später auch noch überprüft)\n  Die Installation von `php-opcache` ist empfohlen, da es die Performance enorm verbessert.\n * Eine eigene Subdomain / VHost, wo die Software eingerichtet werden kann\n * [Composer](https://getcomposer.org/): Entwender installiert aus Paketquellen (z.B. `apt install composer`) oder lokal via `wget https://getcomposer.org/composer-stable.phar`\n \nNachfolgend wird angenommen, dass SSH bzw. Konsolen Zugriff auf den Server besteht. Eine Installation ohne Konsolenzugriff ist zwar\nprinzipiell möglich, wird aber nicht empfohlen. Wenn dies unbedingt notwendig ist, sollte Rücksprache mit dem Autor gehalten werden.\n\n### Installationsschritte\n1. `git clone [REPO]`: Die Installation via git ist empfohlen, da es später eine einfache Aktualisierung mittels `git pull` erlaubt. \nDas Repo kann aber auch normal heruntergeladen werden und auf den Server kopiert werden.\n2. `cp .env .env.local`: Kopiere die Einstellungsvorlage in die bearbeitbare Einstellungen\n3. `.env.local` in einem Editor öffnen und die Einstellungen anpassen (siehe Kommentare): Wichtig ist, dass `APP_ENV` auf `prod` steht \nund in `DATABASE_URL` die korrekte Datenbank und die Datenbankzugangsdaten eingetragen sind. \n4. `composer install --no-dev -o` (oder `php composer.phar install --no-dev -o` bei lokaler Installation): Installiert alle benötigten Bibliotheken und kopiert die benötigten Assets.\nDieser Schritt sollte als Benutzer des Webservers (meist `www-data`) ausgeführt werden, damit die Berechtigungen alle stimmen.\n5. Anpassen des `DocumentRoot` in Webserver-Configuration: Die öffentlich erreichbaren Dateien dieser Software liegen im Ordner `public/`, daher muss die Webserverkonfiguration \nentsprechend angepasst werden. Bei Apache2 findet sich in der Konfigurationsdatei des VHosts die Einstellung `DocumentRoot`, diese muss auf den `public/`-Ordner\nverweisen (d.h. z.B. `DocumentRoot /pfad/zur/software/public`)\n6. `php bin/console doctrine:migrations:migrate` und bestätigen: Hierbei wird das Datenbankschema erstellt und wenn nötig aktualisiert.\n7. Erstellen eines initialen Benutzers mit `php bin/console app:user-new [username]`. Es kann ein beliebiger Nutzername angegeben werden. \n Mit dem eingegeben Passwort kann man sich nun in die Administrationsoberfläche einloggen und z.B. neue Benutzer und Strukturen anlegen.\n \n### Updateanweisungen\nWenn ein Update verfügbar ist, kann die Software wie folgt aktualisiert werden:\n1. `git pull`\n2. `composer install --no-dev -o`\n3. `php bin/console doctrine:migrations:migrate` (**vorher sollte unbedingt ein Backup der Datenbank geschehen!**)\n\n## Administration\n\n### Command Line Interface\n\nÜber die Konsole können Benutzer angelegt werden, Passwörter geändert, und Berechtigungen an Nutzer vergeben werden.\nDies ist nützlich, wenn das Passwort für den Administrationsbenutzer vergessen wurde, und diese Dinge daher nicht auf \nder Weboberfläche geändert werden können. Weiterhin lässt sich nur so die Zwei-Faktor-Authentifizierung zurücksetzen, wenn\nein Benutzer sein Gerät und die Backup-Codes vergessen hat.\n\nNützliche Befehle sind (ausgeführt aus dem Hauptverzeichnis):\n* `php bin/console app:user-new [USERNAME]`: legt einen neuen Benutzer an\n* `php bin/console app:user-change-password [USERNAME]`: ändert das Passwort eines Benutzers\n* `php bin/console app:user-disable-2fa [USERNAME]`: Deaktiviert alle Zwei-Faktor-Authentifizierungsmaßnahmen für den Benutzer.\nDer Nutzer kann sich danach alleine mit seinem Passwort anmelden.\n* `php bin/console app:user-promote [USERNAME]`: Gibt dem Benutzer eine zusätzliche Rolle. Siehe eingebaute Hilfe für mehr Informationen.\n\nMit der Option `--help` kann eine Hilfe zur Verwendung und Funktionsweise dieser Befehle aufgerufen werden.\n\nWeitere nützliche Befehle könnten nützlich sein:\n* `php bin/console cache:clear`: Löscht den Programmcache. Notwendig wenn etwas an Dateien verändert wurde\n* `php bin/console doctrine:migrations:migrate`: Aktualisiert die Datenbank auf den aktuellen Programmstand\n\n### Fehlerbehebung\n\nLog-Dateien finden sich in `var/log/` (vom Programmverzeichnis aus), insbesondere `var/log/prod.log` dürfte interessant sein.\n\nWenn Fehler auftreten, ist es hilfreich erstmal den Browsercache und Servercache (mit `php bin/console cache:clear`) zu löschen.\nWeiterhin ist wichtig, dass der Webserver vollen Zugriff auf `var/` und alle darinliegenden Dateien hat (Lesen + Schreiben).\nWenn z.B. composer als root-User ausgeführt wurde, müssen die Berechtigungen angepasst werden. Eine andere Möglichkeit wäre,\nden Ordner `var/` zu löschen und die Website aufzurufen. Die Software legt dann die benötigten Dateien und Ordnerstrukturen wieder an.\n\nWenn diese Tipps nicht helfen, ist es auch möglich in `.env.log` die `APP_ENV` zu `APP_ENV=dev` zu ändern \n(dann muss aber Dev-Abhängigkeiten mit `composer install -o` installiert worden sein). Mit dieser Einstellungen werden Fehlermeldungen\nim Browser angezeigt, inklusiver Hilfreicher Debug-Tools. Da dies potentiell unsicher ist, sollte die Einstellung schnellstmöglich auf\n`APP_ENV=prod` zurückgeändert werden.\n\n## Lizenz\nDiese Software ist unter der GNU Affero General Public License v3.0 (AGPL) lizensiert. \nDies bedeutet diese Software kann für alle Zwecke kostenlos verwendet und modifiziert werden, solange alle Änderungen\nebenfalls unter AGPL bereitgestellt. Für weiter Infos siehe [LICENSE](https://github.com/jbtronics/StuRa-Finanzsoftware/blob/master/LICENSE).\n\nManche Bestandteile (externe Bibliotheken) stehen unter anderen Lizenzen, diese steht dann in der entsprechenden Datei.\n\n## Entwicklerinformationen\nDiese Anwendung ist mit [Symfony 5](https://symfony.com/) und [EasyAdmin](https://github.com/EasyCorp/EasyAdminBundle) entwickelt worden.\nFür Weiterentwicklung dieser Software sollte dort die entsprechende Dokumentation gelesen werden.\n\nFür eine Entwicklungsumgebung sollten die Dev-Abhängigkeiten ohne Optimierungen mit `composer install` installiert werden.\nDann kann der Entwicklermodus mit `APP_ENV=dev` in `.env.local` aktiviert werden, Symfony zeigt dann eine Entwicklertoolbar an und\nOptimierungen werden deaktiviert.\n\nÜbersetzungsdateien befinden sich in `translations/` und können mit einem Editor wie [POEdit](https://poedit.net/) bearbeitet werden.\nNach Änderungen muss der Cache gelöscht werden: `php bin/console cache:clear`.\n\nDer HTML-Code für die Frontpage findet sich in `templates/`. Für Templates wird [Twig](https://twig.symfony.com/) verwendet.\n\nAlles was von einem Browser abgerufen werden können soll (z.B. Styles und Javascript), muss im Ordner `public/` liegen,\nda dies der DocumentRoot ist. Die benötigten Frontendabhängigkeiten werden von Composer heruntergeladen und in den `public/assets/`\nOrdner kopiert (siehe `extra.copyFile` Eintrag in composer.json). Wenn noch deutlich komplexe Frontend-Skripte benötigt werden sollten,\nmacht es eventuell Sinn auf Webpack bzw. [Webpack-Encore](https://github.com/symfony/webpack-encore) zu migrieren.\n\nDie Abhängigkeiten können mit `composer update` (bzw. `composer update -o`, wenn es im Produktivbetrieb benutzt werden soll) aktualisiert werden.\nDie Constraints sollten so gesetzt sein, dass alles weiterhin funktioniert nach einem Update, trotzdem sollte die Anwendung nach einem Update\nder Abhängigkeiten getestet werden. Für ein Upgrade von Symfony folge [dieser](https://symfony.com/doc/current/setup/upgrade_minor.html) Anleitung.\nSolange die Major-Version gleich bleibt, sollte ein Upgrade gefahrlos möglich sein (d.h. 5.1 -\u003e 5.2 funktioniert, 5.2 -\u003e 6.0 vermutlich nicht).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbtronics%2Fstura-finanzsoftware","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjbtronics%2Fstura-finanzsoftware","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbtronics%2Fstura-finanzsoftware/lists"}