Aufgabenstellung:
unterstützen beim Reinigen der Stolperteine in berlin durch hilfreiche informationen.
rei
Benutzergruppen: 
1. anwender die ihren standort nicht freigeben-> diese habe die daten nur im lesemodus
2. anwender mit standortfreigabe: diese können den reinigungsstatus von steine steine aktualisieren und steine ergänzen, solang sie in unmittelbarer nähe des standorts sind.
3. Anwender die den Adminzugang kennen: diese können erweiterte edit funktionen nutzen

designphilosoppie: einfach, angelehnt an bekannte apps wie google maps, erweiterbar und wartbar 

Filestruktur
// app-ui-co.js
Aufgabe:  Die app-ui-co koordiniert die Benutzeroberfläche der Anwendung und ist insbesondere dafür zuständig, 
ständig sichtare UI-Elemente auf der top-ebene  wie zB das Such-trigger-feld mit den aktuellen Adressinformationen 
 (aus dem bottom sheet) zu synchronisieren und zu aktualisieren.
 
bs-cluster-co.js
sc-bottom-sheet-mgr.js (NEU):
Aufgabe: Verwaltet den Inhalt und die Interaktionen des Bottom Sheets zur  Anzeige von Details zu einem Cluster (z.B. Anzahl der Steine, Adressen) und das Auslösen von Aktionen für dieses Cluster.

bs-poi-co.js :
Aufgabe: Verantwortlich für das Erstellen des Inhalts für das bootom sheet für einzelne POI(Marker) und das Anhängen der entsprechenden Event-Listener an die Interaktionselemente innerhalb dieser Popups.

cluster-mgr.js:
Aufgabe: Enthält die Logik für Cluster-weite Aktionen, wie das Markieren aller Steine innerhalb eines Clusters als gereinigt. Es delegiert die eigentlichen Status-Updates 

insert-poi-co.js
Aufgabe von insert-poi-co ist es, die gesamte Logik für das Hinzufügen und Speichern neuer Stolpersteine zu koordinieren, indem es die Benutzeroberfläche mit dem Backend-Dienst verbindet.

map-manager.js:
Aufgabe: Verantwortlich für die Initialisierung der Leaflet-Karte und der MarkerClusterGroup. Es enthält die iconCreateFunction für die Cluster-Farben und die fetchPOIs-Funktion, um die Stolpersteine vom Backend zu laden und als Marker zur Karte hinzuzufügen. Es ist der Hauptkoordinator für die Kartenansicht.

map-poi-mgr.js:
Aufgabe: verantwortlich für das gesamte Management der Informationen&Aktionen, die erscheinen, wenn ein einzelner Stolperstein-Marker auf der Karte angeklickt wird

marker-display-utils.js :
Aufgabe: Liefert die grundlegende Logik zur Farbbestimmung und zum Icon-HTML für einzelne Marker, basierend auf deren last_cleaned-Datum und Patenschaftsstatus. Es sind reine Hilfsfunktionen für die visuelle Darstellung.

marker-mgr.js :
Aufgabe: Verwaltet die Leaflet-Marker-Objekte auf der Karte. Dazu gehört das Finden, Aktualisieren ihrer Daten und das Setzen ihrer visuellen Darstellung (Icons) auf der Karte.

sc-add-button-ui.js:
Aufgabe: Verwaltet die Benutzeroberfläche und das Verhalten des "Hinzufügen"-Buttons auf der Karte, der es dem Benutzer ermöglicht, neue Stolpersteine zu registrieren.

sc-admin-mode.js:
Aufgabe: verwaltet den Admin-Modus der App. Es aktiviert ihn durch mehrfaches Tippen auf ein spezifisches HTML-Element und stellt eine Funktion bereit (getAdminModeStatus), um den Modus abzufragen. So bleibt die Admin-Funktionalität versteckt, aber zugänglich.

backend-geo.js:
Aufgabe: Kümmert sich um alle  Backend-Aufrufe an HERE, Nominatim, ev. auch google navigator etc..
backend-poi.js:
Aufgabe: Kümmert sich um alle spezifischen Backend-Aufrufe und Datenoperationen für Stolpersteine, wie das Aktualisieren des Reinigungs- oder Patenschaftsstatus in der Datenbank. Es abstrahiert die API-Kommunikation.

sc-bottom-sheet-ui.js:
Aufgabe: Die generische UI-Komponente für das Bottom Sheet. Sie stellt die grundlegende Funktionalität zum Öffnen, Schließen, Setzen von Titel und Inhalt des Bottom Sheets bereit, unabhängig davon, welche Daten angez

sc-close-button.js
komponente für einen einheitlichen close button in den zusatzpanels
sc-location-button-ui.js:
Aufgabe: Verwaltet die Benutzeroberfläche und das Verhalten des "Standort"-Buttons auf der Karte, der die Standortverfolgung des Benutzers steuert und die Karte auf dessen Position zentriert.
eigt werden. (sc-bottom-sheet-mgr.js nutzt diese UI-Komponente.)

addrs-ui.js
adresseingabe/auswahl

addrs-co.js
adresshandling

sc-settings-ui.js
location checkbox

sc-settings-co.js
location  steuerung

sc-user-location.js:
Aufgabe: Eine Klasse, die alle Informationen und Funktionen im Zusammenhang mit der aktuellen Benutzerposition kapselt, einschließlich Standortverfolgung, Zentrierung der Karte auf den Benutzer und Abrufen der aktuellen Koordinaten.

sc-utilities.js:
Aufgabe: Stellt allgemeine, wiederverwendbare Hilfsfunktionen bereit, die an verschiedenen Stellen der Anwendung benötigt werden. Dazu gehören Funktionen wie showToast für Benachrichtigungen, is_development zur Überprüfung des Entwicklungsmodus 
ScStone.js:
Aufgabe: Definiert die ScStone-Klasse. Diese Klasse repräsentiert einen Stolperstein als Datenobjekt und kapselt möglicherweise die Logik für spezifische Interaktionen oder Zustände eines einzelnen Stolpersteins (z.B. seinen Reinigungsstatus, Patenschaft). Sie dient als zentrale Datenstruktur für die Steine.


showmap.html:
Aufgabe: 
Hier findet die Initialisierung der Standortfreigabe statt. Die Hauptansicht der Anwendung. Dieses HTML-Dokument stellt den DOM (Document Object Model) für die Karte, die Buttons (Standort, Hinzufügen) und das Bottom Sheet bereit. Es ist der primäre Container, der die JavaScript-Module lädt und initialisiert, um die interaktive Karte anzuzeigen.

stolperclean.css:
Aufgabe: Die allgemeine CSS-Datei für die gesamte Anwendung, die das Styling und Layout für alle UI-Elemente und Komponenten definiert.

validate_adress.html:
Aufgabe: Eine separate Seite, die speziell dafür gedacht ist, die Eingabe und Validierung von Adressen/Koordinaten für das Hinzufügen neuer Stolpersteine zu ermöglichen.



bottom sheet
trigger: 1.click poi, click adress-cluster, select adresss

layout:
HEADER : 
immer: 
- adresse (ohne hnr nur,  wenn es dort keine hnr gibt)
wenn mehrere steine: anzahl steine dort
wenn ein stein: name
ACTION AREA
wenn keine steine: 
- button Stolperstein hier hinzufügen
wenn mehrere steine: 
- button alle reinigen (bzw rot markieren)
- button Stolperstein hier hinzufügen
wenn ein stein: 
- button reinigen (bzw rot markieren)
- button Stolperstein hier hinzufügen
button "mehr..."
- button stein nicht vorhanden/auffindbar
- NAme
-Vorname
- Geboren
- Verlegeort
- button editieren ( nur im admin modus)

wenn stolperstein hinzufügen: eoinb