Initial implementation: Logbuch Sternwarte Welzheim

Vollständige Next.js 16 Webanwendung als Logbuch für die Sternwarte Welzheim.
4 Kuppeln (West/Ost/Süd/Pluto), BEO-basierte Authentifizierung mit erzwungenem
Passwort-Wechsel beim Erstlogin, MySQL-Backend, Docker-Deployment.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-27 17:11:27 +02:00
parent f0a86627e5
commit 4e53a7a5cd
29 changed files with 1827 additions and 97 deletions

61
types/logbuch.ts Normal file
View File

@@ -0,0 +1,61 @@
export type Kuppel = 'West' | 'Ost' | 'Süd' | 'Pluto';
export type ArtFuehrung =
| 'Reguläre Führung'
| 'Sonderführung'
| 'BEO-Sitzung'
| 'Sonnenführung'
| 'Technischer Dienst'
| 'Beobachtung'
| 'Tag der offenen Tür'
| 'Sonstiges';
export const KUPPELN: Kuppel[] = ['West', 'Ost', 'Süd', 'Pluto'];
export const ARTEN: ArtFuehrung[] = [
'Reguläre Führung',
'Sonderführung',
'BEO-Sitzung',
'Sonnenführung',
'Technischer Dienst',
'Beobachtung',
'Tag der offenen Tür',
'Sonstiges',
];
export interface BeoOption {
ID: number;
Kuerzel: string;
Name: string;
}
export interface ObjektOption {
ID: number;
Name: string;
}
export interface SelectedObjekt {
ID: number | null;
Name: string;
}
export interface Wetter {
temp: number;
feuchte: number;
druck: number;
}
export interface LogbuchEintrag {
ID: number;
Kuppel: Kuppel;
ArtFuehrung: ArtFuehrung;
Beginn: string;
Ende: string;
Besucher: number;
Bemerkungen: string | null;
WetterTemp: number | null;
WetterFeuchte: number | null;
WetterDruck: number | null;
created_by: number | null;
created_at: string;
BEOs: string;
Objekte: string;
}