Files
skyview.astronomiemuseum.de/docs/README_PROJEKT.md
T

168 lines
4.5 KiB
Markdown

# Projektueberblick
Diese Datei beschreibt die Website grundsaetzlich: 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:
- oeffentliche Astronomie-Werkzeuge
- persoenliche Benutzerfunktionen
- Import- und Auswerteprozesse fuer astronomische Daten
- Telegram-Anbindung fuer Benachrichtigungen und Tests
## Hauptbereiche
Die Website besteht im Kern aus vier Bereichen.
## 1. Oeffentliche Astronomie-Seiten
Unter [`public/`](../public) liegen die eigentlichen Seiten der Website.
Typische Inhalte sind:
- Mond und Mondphasen
- Planetensichtbarkeit
- Sternenhimmel
- Meteorstroeme
- 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 koennen 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 geschuetzten Seiten
- normale Benutzer erhalten gezielte Seitenfreigaben
- das Header-Menue 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 fuer 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)
Fuehrt Telegram-Aufgaben zeitgesteuert aus
## T CrB
Ein aktueller Spezialbereich ist `T CrB`.
Dazu gehoeren:
- 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 koennen Benutzer:
- ihr Konto mit Telegram verknuepfen
- spaeter 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 koennen 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
## Fuer 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-Menue erscheinen
- braucht sie Datenimport oder Cron
- braucht sie Telegram-Anbindung
- braucht sie Dokumentation in `docs`
## Passende Zusatzdokumente
- [`docs/README_LOCAL_WEBSERVER.md`](README_LOCAL_WEBSERVER.md)
- [`docs/README_RECHTESYSTEM.md`](README_RECHTESYSTEM.md)