180 lines
4.8 KiB
Markdown
180 lines
4.8 KiB
Markdown
# 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)
|