- Rebrand: Kunden-Logo, Joseph-Hinterstein-Portrait, Kontakt-Banner, Texte - Login-Pflicht auf /login (Route-Guard), Gruppen Verwaltung/Mieter - Mieter-Registrierung per einmaligem Registrierungscode - Benutzerverwaltung als 6. Modul (/benutzer, nur Verwaltung) - Demo-Zugänge mit Passwort 0815 (j.hinterstein, a.berger, m.wolf) - Mail-Server-API: Token-Auth (/send, X-Api-Token), Mail-Stack live auf Server - Store-Key hinterstein-mieterportal-v2, Doku (kimi.md, README) nachgeführt
49 lines
2.2 KiB
Markdown
49 lines
2.2 KiB
Markdown
# Hinterstein Immobilien · Mieterportal
|
||
|
||
Mieterportal der **Hinterstein Immobilien** für **50 Wohnungen in 3 Häusern** (Hauptstraße 12 ·
|
||
Ringweg 3 · Am Park 5) – analog zum [Schulportal](https://git.hocks.eu/ah-admin/Schulportal).
|
||
Live-Ziel: `https://mieterportal.hocks.eu`.
|
||
|
||
## Module
|
||
|
||
1. **Dashboard** – persönliche Übersicht (Mieter) bzw. Kennzahlen, Belegung und Einnahmen (Verwaltung)
|
||
2. **Benutzerverwaltung** (nur Verwaltung) – Konten anlegen/pflegen, Registrierungscodes erzeugen
|
||
3. **Mietkonto & Zahlungen** – Buchungsverlauf, offene Forderungen, Nebenkosten; Verwaltung sieht Zahlungsstatus aller 50 Wohnungen
|
||
4. **Schadensmeldungen** – Tickets erfassen, priorisieren und Status pflegen
|
||
5. **Dokumente** – Verträge, Abrechnungen, Hausordnung; zentraler Such- und Filterzugriff
|
||
6. **Nachrichten** – Direktkommunikation Mieter ↔ Verwaltung
|
||
|
||
**Anmeldung erforderlich** – Gruppen: **Verwaltung** und **Mieter** (Registrierung der Mieter per Code auf der Startseite).
|
||
Demo-Zugänge (Passwort jeweils `0815`): `j.hinterstein` (Verwaltung) · `a.berger` (Mieterin) · Demo-Registrierungscode: `MP-2026-0815`.
|
||
Alle Demo-Daten werden lokal im Browser (localStorage) gespeichert. Dark-Mode-Umschalter
|
||
in der Seitenleiste bzw. Mobilen Kopfzeile.
|
||
|
||
## Entwicklung
|
||
|
||
```bash
|
||
npm install
|
||
npm run dev # http://localhost:3000
|
||
npm run build # Produktionsbuild nach dist/
|
||
python beispieldaten.py # generiert src/data/generated.json (Seed wählbar)
|
||
```
|
||
|
||
Projekt-Kontext für Kimi Work: [kimi.md](kimi.md).
|
||
|
||
## Deployment (bewährter Workflow, s. kimi.md Kap. 4)
|
||
|
||
```bash
|
||
./deploy.sh
|
||
```
|
||
|
||
baut das Frontend, lädt das `dist/`-Paket per `pscp` auf den Server (Port 38592,
|
||
Pageant-Key `Z:\Devel\ssh\priv_ionos_hocks_vps.ppk`) und startet den nginx-Container
|
||
`mp-portal` neu. TLS/Subdomain liefert der Nginx Proxy Manager (npm_default-Netz).
|
||
|
||
Alternativ lokal ohne Server: `docker build -t mieterportal . && docker run -p 8080:80 mieterportal`.
|
||
|
||
## Optional: Mail-Stack
|
||
|
||
`mail-server/` enthält den aus dem Schulportal übernommenen Aufbau: Postfix-Relay
|
||
(nur intern, kein offenes Relay) + schlanke Python-API. Konfiguration über
|
||
`mail-server/mail.env` (Vorlage: `mail.env.example`), **nicht** im Repo.
|