Giter Club home page Giter Club logo

vdolog's Introduction

VDOLog · Funkprotokollierung

HerthaBSC GitHub Workflow Status (branch) GitHub release (latest SemVer) forthebadge forthebadge

Eine Software zur Begleitung der Funkleitstelle von Veranstaltungen.

image

Diese README ist für die Entwicklungsversion v2.x - Die README für die Version v1.x findet sich hier

Funktionalitäten

  • Erstellung von Veranstaltungen
  • Führung eines Funkprotokolls (Sender / Empfänger) zu jeder Veranstaltung
  • Export des Funkprotokolls in eine Excel-Datei
  • Bereitstellung über PHPDesktop als lokale Desktopapplikation

Entwicklung / Roadmap

Die Software wird aktuell im Funkleitstand des Fussball-Bundesligisten Hertha BSC verwendet und ist daher auch auf die dortigen Bedüfnisse zugeschnitten. Aktuell sieht die Idee der Software die folgenden zusätzlichen Funktionalitäten vor.

  • Übersichtskarten von Veranstaltungsorten mit der Möglichkeit Sektoren einzuzeichnen
  • Übersicht von vorhandenen Ordnergruppen und ihrem Standort
  • Einfaches verschieben von Ordnergruppen mit automatischer Protkollierung
  • Übersetzung der Software in andere Sprachen

Verwendung als Docker-Environment

Die Applikation unterstützt die Arbeit in einer Docker-Container-Umgebung. Diese Umgebung erfordert keinerlei PHP-Abhängigkeiten auf einem Host-System, so dass unabhängig vom Host die Applikation ausgeführt werden kann.

Dafür ist das Programm Docker ebenso wie Docker Compose auf dem Host-System nötig. Die Applikation kann dann folgendermaßen ausgeführt und über die Adresse http://localhost:8080 ausgeführt werden.

Verwendung als Desktopapplikation (Windows)

Für die Verwendung der Desktopversion ist ein Download des fertigen PHPDesktop-Paketes nötig. Die letzte stabile Version findet sich auf der Übersichtsseite der Releases und kann als Anhang der Version im ZIP-Format gefunden werden.

Nachdem die anhängende PHPDesktop.zip-Datei heruntergeladen und entpackt wurde findet sich im Zielverzeichnis die ausführbare Datei phpdesktop-chrome.php, welche die Applikation startet und in einem Chrome bereitstellt. Es ist nicht nötig zuvor Chrome zu installieren, der Browser wird mitgeliefert.

Eine Installation, die Einrichtung einer Datenbank oder eines Webservers sind für die Verwendung nicht nötig. Durch den Einsatz einer SQLite-Datenbank, welche sich im Verzeichnis var/data findet, bestehen neben einem aktuellen Windows keine weiteren Abhängigkeiten.

Verwendung als Serverversion

Für die Verwendung als Serverversion kann man die benötigte Version von den letzten Releases, welche man auf der Übersichtsseite der Releases findet, herunterladen. Der gesamte Sourcecode muss auf einem Server mit wenigstens PHP 8 installiert werden.

Eine Hilfe wie man einen Webserver für eine Symfony-Applikation einrichtet findet sich in der Dokumentation von Symfony.

Um das Projekt über den Sourcecode zu installieren sind folgende Schritte nötig:

# Installation aller PHP Abhängigkeiten
composer install --optimize-autoloader --no-dev --prefer-dist --no-plugins --no-scripts --no-progress

# Einrichtung einer initialen Datenbank
php bin/console doctrine:database:create
php bin/console doctrine:schema:create
php bin/console doctrine:schema:update --force

# Installation aller Frontend Abhängigkeiten
yarn install
yarn run prod

Verwendung des aktuellen Entwicklungsstandes

Für experimentelle Zwecke ist es möglich den letzten Entwicklungsstand nicht nur als Sourcecodeversion, sondern auch als Windowsversion zu verwenden. Die letzte mögliche Windowsversion findet sich unter den aktuellen Builds. Hier hängt die Datei VDOLog-PHPDesktop an jeder Änderung des Entwicklungszweiges an.

Anpassung der Konfiguration für Titel und Logo

Die Datei settings.json findet sich im Stammverzeichnis der Windowsversion. Für die Verwendung mit einem Webserver liegt die Datei unter dem Pfad config/phpdesktop/settings.json.

Relevant für die Anpassung an den eigenen Veranstalter sind folgende Einstellungen:

{
  "main_window": {
    "title": "Hertha BSC Protokoll VDO-Edition", 
    "footer_image": "/images/hertha_96x96.png",
    "footer_image_title": "Hertha BSC Logo",
    "icon": "www/public/favicon.ico"
  }
}

Danksagung und Lizenz

VDOLog © 2019+, Denis Zunke. Veröffentlicht mit der MIT Lizenz.

GitHub @dzunke  ·  Twitter @DZunke

Hertha BSC  ·  PHPDesktop  ·  tabler.io

vdolog's People

Contributors

dependabot[bot] avatar dzunke avatar

Watchers

 avatar  avatar

vdolog's Issues

Qualitätsmanagement

Die Qualität der Software soll gesichert werden. Dafür ist die Einbindung einiger QA-Tools und deren automatisierte Prüfung nötig.

  • Einbindung PHP CS mit Doctrine Code Style Regelwerk
  • Einbindung PHPStan
  • Einbindung E2E-Tests für die vorhandenen Funktionalitäten
  • Einbindung Unit-Tests wo es sinnvoll erscheint
  • Automatischer Export der relevanten Dateien in ein Archiv (build)

Bearbeitung von Funksprüchen

Funksprüche sollen bearbeitbar sein. Dafür ist neben dem "Hinzufügen"-Button an Funksprüchen ein "Bearbeiten"-Button anzubringen. Bei klick soll der Funkspruch in das Formular übernommen werden. Bei Speicherung ist der Inhalt zu aktualisieren.

Konfigurierbarkeit von Logo und Titel

Es gab die Frage eines anderen Unternehmens, ob die Software verwendet werden dürfte im eigenen Branding. Da aktuell das Branding von Hertha BSC fest verankert ist muss dieses dynamischer gestaltet werden um eine einfache Konfiguration ohne umfangreiche Codeänderungen zu verwenden.

Vorstellbar wäre die Erweiterung der settings.json für phpdesktop, da diese bereits für die gebaute Desktopversion diverse Strings für das Branding von Hertha enthält.

Datenbank-Migrationen zwischen den Versionen

Es muss möglich werden die SQLite Datenbank zu migrieren auf neuere Versionen. Automaitsche Backups im lokalen Dateisystem müssen dabei angelegt werden. Bei Start der Software muss eine Prüfung der Datenbank stattfinden und ob ein Update notwendig ist. Ist keine Datenbank vorhanden soll man die Möglichkeit haben eine anzulegen oder eine alte Datenbank zu importieren.

Übersetzungsmöglichkeit schaffen

Der Quellcode beinhaltet aktuell ausschließlich statische Strings zur Darstellung, die allesamt auf Deutsch sind. Die Sprache "Deutsch" soll auch weiterhin der Standard sein, jedoch soll die Möglichkeit geschaffen werden die Software im späteren Verlauf noch zu übersetzen. Die Grundlage dafür ist, dass die bisherige Funktionalität bereits mit Übersetzungen arbeitet.

Einbindung Vue.js

Ziel ist es das Frontend vom veralteten jQuery auf Vue.js und natives JS umzustellen. Bisherige Funktionalitäten müssen vollständig übernommen werden.

  • Einbindung Vue.js in den Encore-Workflow
  • Übernahme der protocol.js in eine Vue.js Komponente
  • Entfernung von jQuery
  • BootstrapJS aktualisieren zum Laufen ohne jQuery
  • Tabler Frontend JS überführen zu Vue.js

Github-Link lädt den Loader

Wenn man in der Anwendung auf den Github-Button "Quellcode" klickt, dann wird der JS-Loader geladen, der bei Links und Buttons auch geladen werden soll. Hier fehlt die Ausnahme des Buttons.

Nur als Merker 😋

Änderung der Softwarelizenz für v2 auf GPLv3 o.Ä.

Um die kommerzielle Verwertung einzuschränken ist eine für den Kommerz unattraktive Lizenz zu wählen und mit Version 2.0 zu implementieren. Gerade für die Weiterentwicklung ist eine kommerzielle Verwendung so schwer wie möglich zu machen. Ziel ist es sich mit dem pflegenden Entwickler auseinanderzusetzen, wenn die Software kommerziell eingesetzt werden soll.

Die Version 1.0 verbleibt in der offenen MIT Lizenz, da in der reinen Protokoll-Funktion nicht so viel Arbeit steckt und es eher als Experiment verwendet wurde. In die Weiterentwicklung wurde jedoch mehr Arbeit gesteckt und der Grad des "Experiments" überschritten.

Manueller Reload-Button

Im Header soll ein Button untergebracht werden, der bei Klick den Reload der Seite auslöst. Das ist für Leute, die weder F5 noch STRG + F5 drücken wollen 🤣

Alternative für PHPDesktop

PHPDesktop unterstützt leider für Windows aktuell nur die alte PHP Version 7.1.3 während die aktuelle Version von PHP bereits 7.4 ist. Es braucht eine Alternative oder einen Weg PHPDesktop selbst zu aktualisieren.

Die Alternative darf auch ein exklusiver USB-Stick mit Xampp o.Ä. sein. Es muss Easy-To-Setup mit einem Windows 10 möglich sein.

Aktuelle Software: https://github.com/cztomczak/phpdesktop
Prüfen: https://www.exeoutput.com/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.