# Projektüberblick Diese Datei beschreibt die Website grundsätzlich: Worum es geht, welche Bereiche es gibt und wie die wichtigsten Bausteine zusammenspielen. ## Zweck der Website `SkyView & AstroTools` ist eine Astronomie-Website des Astronomiemuseums der Sternwarte Sonneberg. Die Seite verbindet: - öffentliche Astronomie-Werkzeuge - persönliche Benutzerfunktionen - Import- und Auswerteprozesse für astronomische Daten - Telegram-Anbindung für Benachrichtigungen und Tests ## Hauptbereiche Die Website besteht im Kern aus vier Bereichen. ## 1. Öffentliche Astronomie-Seiten Unter [`public/`](../public) liegen die eigentlichen Seiten der Website. Typische Inhalte sind: - Mond und Mondphasen - Planetensichtbarkeit - Sternenhimmel - Meteorströme - Finsternisse und Bedeckungen - Geocron und Geocron 3D - Vorhersage-Seiten wie Monats- und Wochenvorhersage - Spezialseiten wie die T-CrB-Lichtkurve Diese Seiten nutzen in der Regel den gemeinsamen Header und Footer: - [`public/header.php`](../public/header.php) - [`public/footer.php`](../public/footer.php) ## 2. Benutzerkonten Die Seite besitzt eigene Benutzerkonten mit Login. Wichtige Konto-Seiten: - [`public/login.php`](../public/login.php) - [`public/register.php`](../public/register.php) - [`public/settings.php`](../public/settings.php) - [`public/my_favorites.php`](../public/my_favorites.php) Benutzer können dort unter anderem: - ihr Konto verwalten - Telegram verbinden - Standorte verwalten - Favoriten pflegen ## 3. Rechtesystem Die Seite hat ein Rollen- und Seitenrechtesystem. Aktuell gibt es: - `user` - `admin` - `master` Wichtig: - `admin` und `master` haben Vollzugriff auf die geschützten Seiten - normale Benutzer erhalten gezielte Seitenfreigaben - das Header-Menü passt sich an die Seitenrechte an Die Details dazu stehen in: - [`docs/README_RECHTESYSTEM.md`](README_RECHTESYSTEM.md) ## 4. Hintergrundprozesse und Datenimporte Die Website arbeitet nicht nur mit statischen Seiten, sondern auch mit Import- und Cron-Skripten. Wichtige Skripte liegen unter: - [`scripts/import/`](../scripts/import) - [`scripts/telegram/`](../scripts/telegram) Beispiele: - [`scripts/import/import_tcrb.php`](../scripts/import/import_tcrb.php) Importiert AAVSO-WebObs-Daten für T CrB - [`scripts/import/import_celestrak_active.php`](../scripts/import/import_celestrak_active.php) Importiert Satellitendaten - [`scripts/telegram/telegram_cron.php`](../scripts/telegram/telegram_cron.php) Führt Telegram-Aufgaben zeitgesteuert aus ## T CrB Ein aktueller Spezialbereich ist `T CrB`. Dazu gehören: - Import der AAVSO-Daten - Speicherung in der Datenbank - grafische Darstellung als Lichtkurve - Telegram-Benachrichtigung zum letzten `V`-Wert Wichtige Dateien: - [`scripts/import/import_tcrb.php`](../scripts/import/import_tcrb.php) - [`public/tcrb_lightcurve.php`](../public/tcrb_lightcurve.php) - [`scripts/telegram/telegram_cron.php`](../scripts/telegram/telegram_cron.php) ## Telegram Die Website besitzt eine Telegram-Anbindung. Damit können Benutzer: - ihr Konto mit Telegram verknüpfen - später Nachrichten oder Diagramme erhalten Wichtige Bausteine: - [`public/settings.php`](../public/settings.php) - [`public/telegram/connect.php`](../public/telegram/connect.php) - [`public/telegram/webhook.php`](../public/telegram/webhook.php) - [`public/telegram/broadcast_test.php`](../public/telegram/broadcast_test.php) - [`scripts/telegram/telegram_cron.php`](../scripts/telegram/telegram_cron.php) ## Datenfluss grob Vereinfacht sieht der Ablauf so aus: 1. Import-Skripte holen astronomische Daten aus externen Quellen 2. Die Daten werden in der Datenbank gespeichert 3. Seiten unter `public/` lesen diese Daten aus und stellen sie dar 4. Cron-Skripte können daraus Telegram-Nachrichten oder andere Folgeaktionen erzeugen ## Technischer Aufbau Die Website ist aktuell klassisch in PHP aufgebaut. Wichtige Verzeichnisse: - [`public/`](../public) Webroot und PHP-Seiten - [`config/`](../config) Konfigurationen und SQL - [`scripts/`](../scripts) Import- und Cron-Skripte - [`docs/`](.) Projektdokumentation ## Für neue Arbeit an der Seite wichtig Wenn neue Funktionen dazukommen, sollte man immer an diese Punkte denken: - braucht die Seite einen Eintrag im Rechtesystem - soll sie im Header-Menü erscheinen - braucht sie Datenimport oder Cron - braucht sie Telegram-Anbindung - braucht sie Dokumentation in `docs` ## Schreibweise Für deutsche Ausgabetexte in UI, Meldungen, Dialogen und Dokumentation sollen normale Umlaute und `ß` verwendet werden. Für technische Bezeichner soll das nicht automatisch gelten, insbesondere bei: - Dateinamen - URLs und Pfaden - Funktionsnamen - Variablennamen - Datenbankspalten, Keys und anderen Schnittstellen ## Passende Zusatzdokumente - [`docs/README_LOCAL_WEBSERVER.md`](README_LOCAL_WEBSERVER.md) - [`docs/README_RECHTESYSTEM.md`](README_RECHTESYSTEM.md)