# LBM Anforderungen (Konzept Vorprogrammierer)

> **Hinweis:** Transkribierte Vorlage des Vorprogrammierers. Quelle: PDF, transkribiert.
> Kopf des Originals: „LSVV LBM", Datum „07.05.2025/jf".
> Handschriftliche Anmerkungen sind als Blockzitat mit Präfix „Handnotiz:" gekennzeichnet.

## Programmiersprache

Bei der Applikation LBM handelt es sich um eine Eigenentwicklung, welche mittels PHP und ohne Framework entwickelt wurde. Die PHP-Applikation läuft aktuell auf einer Linux-Umgebung, die eingesetzte PHP-Version ist 7.4. Das End of Life (EOL) für PHP 7.4 war der 28. November 2022 — seit diesem Datum keine offiziellen Updates, Sicherheitspatches oder Fehlerbehebungen mehr.

## Datenmenge in der Datenbank

Für zukünftige Nutzbarkeit vermutlich 1 TB notwendig.

## Struktur

Wir brauchen einerseits ein Element „Brennpunkt" und andererseits das Element „Navigator", also die Startseite des LBM. Das Element Brennpunkt besitzt verschiedene Eigenschaften (siehe Abbildung), ein Journal und eine Dokumentablage. Die Dokumentablage hat einen integrierten Viewer für PDF und Bilder, eine Download-Funktion und eine Upload-Funktion.

Im Navigator werden alle Brennpunkte angezeigt. Es kann nach Brennpunkten gesucht werden und die Brennpunkte können nach den Eigenschaften gefiltert werden. Es können neue Brennpunkte erstellt werden, ein Link zu einem Brennpunkt verschickt werden (passwortgeschützt) und ein PDF-Dossier eines Brennpunkts erstellt bzw. ein Zip-Ordner eines Brennpunkts heruntergeladen werden.

Auswertungsfunktion: Brennpunkte, die nach Kriterien gefiltert wurden, sollen in einem Excel ausgegeben werden mit ihren Objektinformationen, bspw. für Statistik im Jahresbericht.

Dann gibt es noch einen Einstellungsbereich und einen Userbereich, um sich bspw. abzumelden.

Die Applikation soll in adaptivem Design auch für Smartphone anwendbar sein.

> Handnotiz: „+ iPad ?"

## Skizze Seite 2 — „LBM NAVIGATOR"

```mermaid
flowchart TD
    NAV["LBM NAVIGATOR"]

    NAV --> SUCHEN["SUCHEN"]
    SUCHEN --> SUCHEN1["nach Worten (bis in die Dokumente rein)"]

    NAV --> FILTERN["FILTERN"]
    FILTERN --> FILTERN1["nach den Eigenschaften der Brennpunkte"]
    FILTERN --> FILTERN2["nach letzter Bearbeitung (Datum)"]
    FILTERN --> FILTERN3["Handnotiz: nach 'Owner'"]
    FILTERN --> FILTERN4["Handnotiz: 'für Jahresbericht (Projekte pro Jahr)'"]

    NAV --> ERSTELLEN["BRENNPUNKT ERSTELLEN"]
    ERSTELLEN --> ERSTELLEN1["Handnotiz: 'keine Dokumente ohne Ordner!'"]
    ERSTELLEN --> ERSTELLEN2["Handnotiz: '1. Ordner zwingend: Name?'"]

    NAV --> LINK["LINK"]
    LINK --> LINK1["zu Brennpunkt teilen (passwortgeschützt)"]
    LINK --> LINK2["Handnotiz: 'auch zu Ordner/Unterordner'"]

    NAV --> EINST["LBM-EINSTELLUNGEN"]

    NAV --> USER["USER"]
    USER --> USER1["Abmelden"]
    USER --> USER2["Einstellungen"]

    NOTE1["Anmerkung: ADAPTIVE DESIGN — für alle Arten von Bildschirmen (z. B. Smartphone) + iPad (?)"]
    NOTE2["Anmerkung: BRENNPUNKT-DOSSIER als PDF drucken"]

    NAV -.-> NOTE1
    NAV -.-> NOTE2
```

## Skizze Seite 3 — „BRENNPUNKT »Beispiel«"

```mermaid
flowchart TD
    BP["BRENNPUNKT (Beispiel)"]

    BP --> EIG["EIGENSCHAFTEN eines Brennpunkts"]
    EIG --> EIG1["Name/Brennpunkt ('Beispiel')"]
    EIG --> EIG2["ID/Nummer"]
    EIG --> EIG3["Kurzbeschrieb (Gegenstand)"]
    EIG --> EIG4["Kategorie"]
    EIG --> EIG5["Startdatum"]
    EIG --> EIG6["Abschlussdatum"]
    EIG --> EIG7["Kanton"]
    EIG --> EIG8["Gemeinde"]
    EIG --> EIG9["Koordinaten X/Y/(Z)"]
    EIG --> EIG10["Status"]
    EIG --> EIG11["Massnahme"]
    EIG --> EIG12["Dossierleitung"]
    EIG --> EIG13["Erfasst durch (Name)"]
    EIG --> EIG14["Erfasst am (Datum)"]
    EIG --> EIG15["Bemerkung"]
    EIG --> EIG16["Externe Organisation (Handnotiz '?')"]
    EIG --> EIG17["Fazit (Erfolg/Nicht-Erfolg)"]
    EIG --> EIGNOTE["Handnotiz zu Datum: 'Datumsformate? TT.MM.JJJJ / JJJJ MM TT'"]

    BP --> JOURNAL["JOURNAL"]
    JOURNAL --> JOU1["Textfeld"]
    JOURNAL --> JOU2["Zeile: 'User, Datum' und 'Bearbeiten / Löschen'"]
    JOURNAL --> JOU3["weitere (leere) Einträge"]
    JOURNAL --> JOUNOTE["Handnotiz: 'Ausdruck als »History« zusammenhängend möglich je Projekt (BP) für Jahresbericht'"]

    BP --> DOK["DOKUMENTABLAGE"]
    DOK --> DOK1["Ordner mit Unterordnern"]
    DOK --> DOK2["Dateiformate: PDF, DOC, XLS, PPT, MP3, MP4, JPG, PNG, TIF, OBJ, AI, PSD, SketchUp, QGIS …"]
    DOK --> DOKNOTE1["Handnotiz: 'keine Dokumente ohne Ordner'"]
    DOK --> DOKNOTE2["Handnotiz: 'erster Ordner zwingend je BP (Projektpräsentation)'"]
    DOK --> VIEWER["VIEWER (PDF, JPG direkt eingebettet anzeigen, ohne Download)"]
    DOK --> DOWNLOAD["DOWNLOAD"]
    DOK --> UPLOAD["UPLOAD (per Dokumentupload oder Kamera; Handnotiz '?')"]
```

## Seite 4 — Serverinformationen

| Artikel | Detail |
| --- | --- |
| Hosting-Paket | Standard_25GB |
| Servername | srv02 |
| cPanel Version | 110.0 (build 10) |
| Apache-Version | 2.4.57 |
| MySQL-Version | 10.3.39-MariaDB-cll-lve |
| Architektur | x86_64 |
| Betriebssystem | linux |
| Gemeinsam genutzte IP-Adresse | 195.201.81.134 |
| Pfad zu Sendmail | /usr/sbin/sendmail |
| Pfad zu Perl | /usr/bin/perl |
| Perl-Version | 5.16.3 |
| Kernel-Version | 3.10.0-962.3.2.lve1.5.79.el7.x86_64 |
