# 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.