Files
Mieterportal/README.md
T

47 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Hocks Mieterportal
Mieterportal der Hocks Verwaltung 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. **Mietkonto & Zahlungen** – Buchungsverlauf, offene Forderungen, Nebenkosten; Verwaltung sieht Zahlungsstatus aller 50 Wohnungen
3. **Schadensmeldungen** – Tickets erfassen, priorisieren und Status pflegen
4. **Dokumente** – Verträge, Abrechnungen, Hausordnung; zentraler Such- und Filterzugriff
5. **Nachrichten** – Direktkommunikation Mieter ↔ Verwaltung
Der Rollenwechsel Mieter ↔ Verwaltung erfolgt über die Seitenleiste (Demo-Modus).
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.