Schießplatzplaner programmieren

Wir leben in interessanten Zeiten. Unser Alltag wurde komplett auf den Kopf gestellt und wir können vieles nicht mehr machen, was uns eigentlich gut tut. Bei mir ist das Bogenschießen. Ich bin kein guter Schütze, aber ich habe andere Fähigkeiten. Und diese Fähigkeiten habe ich eingesetzt, damit wir wieder auf unseren schönen Schießplatz können.

Mit §9 der Vierten Bayerischem Infektionsschutzmaßnahmenverordnung (4. BayIfSMV) vom 5. Mai 2020 wurde die Grundlage geschaffen, dass wir grundsätzlich wieder auf den Schießplatz dürfen. Dabei müssen wir strenge Auflagen einhalten. Schließlich wollen wir uns alle gegenseitig schützen. Es gibt da zahlreiche Möglichkeiten. Ich habe mir einige Varianten angeschaut, allerdings waren diese zu kompliziert oder zu ungenau. Damit würden wir nur einer kleinen Gruppe von Schützen den Zugang zum Platz ermöglichen und andere ausschließen. Also habe ich angefangen einen eigene Lösung zu bauen.

Florian bei der Konzeption

Ich nenne ihn aktuell Schießplatzplaner. Eventuell wird es aber eher ein virtuelles Schießbuch. Eventuell kann ich diese Anwendung auch auf andere Bereiche ausweiten. Dann brauche ich einen neuen Namen dafür.

Also die Idee ist, dass in einer Web-Anwendungen – die natürlich auch auf Smartphones und Tablets nutzbar ist – eine Liste von Timeslots (bzw. Zeitfenster… richtige Bezeichnungen finden ist nicht leicht) angezeigt wird. Schützen können sich dort eintragen. Pro Timeslot sind nur 5 Schützen erlaubt (§9 Satz 1 Nummer 3 „Ausübung allein oder in kleinen Gruppen von bis zu fünf Personen“). Einer dieser Schützen muss einen Schlüssel zum Platz haben und die Schießaufsicht übernehmen.

Als nettes Gimmick binde ich über die API von OpenWeatherMap auch die jeweilige Wettervorhersage passend zum Timeslot ein. Bin schon sehr gespannt, ob es da eine Korrelation gibt zwischen Anzahl Schützen und Temperatur? Eigentlich ja nicht. Es gibt ja kein schlechtes Wetter. Nur unpassende Kleidung ;-)

Ich habe mich bei diesem Projekt für das PHP-Framework Code Igniter 4 entschieden. Es ist schon lange her, dass ich mit einem PHP-Framework entwickelt habe. Es hat auch ein wenig gedauert, bis ich dort reingekommen bin. Inzwischen komme ich ganz gut zurecht.

Für das Frontend verwende ich Bootstrap und jQuery. Wobei ich natürlich vieles lieber mit OpenUI5 machen würde. Allerdings fehlt mir hierzu der OData-Service. Daher muss ich aktuell noch vieles, was mir als UI-Entwickler von UI5 geschenkt wird, erstmal noch von Hand basteln. Aber ich habe bereits begonnen einen Controller für OData V2 im Code Igniter aufzubauen. Wenn ich alle benötigen OData-Operation hinbekomme, dann kann ich UI5 einsetzen und komme damit dann deutlich schneller voran.

Dank der Mithilfe unserer Bogensport-Abteilung hatte ich auch schon ein relativ gutes Bild, was wir brauchen und wie es am Ende aussehen soll. Ich habe das für mich dann nochmal als User Story formuliert und dann losgelegt. Ich habe auch gleich von Anfang GitLab für die Versionsverwaltung genutzt. Insgesamt sind es seit dem 1. Mai schon 80 Commits. Wobei auch viele kleinere Änderungen dabei waren. Als Entwickler bin ich natürlich Nachts sehr aktiv. Und am Wochenende konnte ich dann auch mal mehrere Stunden entwickeln und auch live Änderungswünsche beim Telefonieren einbauen. Das Repository ist (noch) nicht frei zugänglich. Ich bin mit der Code Qualität noch nicht zufrieden (Perfektionismus) – schließlich habe ich in der kurzen Zeit vieles nur so gebaut, dass es läuft – und nicht, dass ich es morgen noch verstehe ;-).

Und ab und zu musste ich auch mal Fehler suchen (Debugging)