6.9 KiB
Features & Funktionalität
Übersicht
Der Immorechner bietet zwei Hauptkomponenten:
- Web-Frontend - Interaktive Benutzeroberfläche für Endanwender
- REST-API - Programmgesteuerter Zugriff für Integrationen
Frontend-Features
1. Immobilienrechner (Startseite)
Der Immobilienrechner ermöglicht die schnelle Berechnung wichtiger Kennzahlen einer Immobilie.
Eingabefelder
| Feld | Typ | Beschreibung | Pflicht |
|---|---|---|---|
| Adresse | Text | Vollständige Adresse der Immobilie | Nein |
| Kaufpreis | Zahl | Kaufpreis in Euro | Empfohlen |
| Wohnfläche | Zahl | Wohnfläche in m² | Ja |
| Nutzfläche | Zahl | Nutzfläche in m² | Nein |
| Zimmer | Zahl | Anzahl der Zimmer | Empfohlen |
| Baujahr | Zahl | Baujahr der Immobilie | Nein |
| Etage | Zahl | Stockwerk | Nein |
| Immobilientyp | Auswahl | Wohnung, Haus oder Gewerbe | Empfohlen |
| Bundesland | Auswahl | Deutsches Bundesland | Empfohlen |
| Heizungstyp | Auswahl | Ölheizung, Gasheizung, Wärmepumpe, Pelletheizung | Nein |
| Abschreibungszeit | Zahl | Jahre für Abschreibung (Standard: 50) | Nein |
| Garage | Checkbox | Garage vorhanden? | Nein |
Live-Berechnungen
Alle Werte werden in Echtzeit berechnet (ohne Seitenreload):
-
Gesamtfläche
- Formel: Wohnfläche + Nutzfläche
- Einheit: m²
-
Preis pro m² Wohnfläche
- Formel: Kaufpreis / Wohnfläche
- Einheit: €/m²
-
Grunderwerbsteuer
- Formel: Kaufpreis × Grunderwerbsteuersatz des Bundeslandes
- Sätze: 3,5% (Bayern) bis 6,5% (Brandenburg, NRW, Saarland, SH)
- Einheit: €
-
Gesamtkosten
- Formel: Kaufpreis + Grunderwerbsteuer
- Einheit: €
-
Jährliche Abschreibung
- Formel: Kaufpreis / Abschreibungszeit
- Standard-Abschreibungszeit: 50 Jahre
- Einheit: €/Jahr
-
Alter der Immobilie
- Formel: Aktuelles Jahr - Baujahr
- Einheit: Jahre
2. URL-Sharing für anonyme Nutzer
Funktion: "Link teilen" Button
- Kodiert alle Formulardaten in URL-Parameter
- Ermöglicht Teilen der Berechnung ohne Registrierung
- Link funktioniert auch nach Tagen/Wochen
- Daten werden nicht in der Datenbank gespeichert
- Ideal für schnelle Berechnungen und Vergleiche
Beispiel-URL:
http://localhost:8080/?adresse=Teststr+123&kaufpreis=300000&wohnflaeche=85&...
3. Benutzer-Authentifizierung
Registrierung
URL: http://localhost:8080/register
- Name (Pflicht, mind. 2 Zeichen)
- E-Mail (Pflicht, muss gültig und eindeutig sein)
- Passwort (Pflicht, mind. 6 Zeichen)
- Passwort bestätigen
Sicherheit:
- Passwort wird mit bcrypt gehasht
- E-Mail muss eindeutig sein
- Validierung auf Client- und Server-Seite
Login
URL: http://localhost:8080/login
- Passwort
Session-basiert:
- Bleibt aktiv bis zum Logout
- Cookie-basierte Session
- CSRF-Schutz integriert
Logout
- Link im Header "Abmelden"
- Beendet Session
- Redirect zur Startseite
4. Immobilien speichern (nur eingeloggte Nutzer)
Funktion: "Speichern" Button (erscheint nur nach Login)
- Speichert alle eingegebenen Daten in der Datenbank
- Immobilie wird dem eingeloggten Nutzer zugeordnet
- Nutzer kann nur eigene Immobilien sehen
- AJAX-basiert (kein Seitenreload)
- Erfolgs-/Fehlermeldung als Alert
5. Meine Immobilien
URL: http://localhost:8080/meine-immobilien (nur nach Login)
Funktionen:
- Übersicht aller gespeicherten Immobilien
- Anzeige aller Details pro Immobilie
- Berechnete Werte werden angezeigt
- Sortierung nach Erstellungsdatum (neueste zuerst)
Angezeigt werden:
- Typ, Kaufpreis, Flächen
- Zimmer, Baujahr, Etage
- Bundesland, Heizungstyp
- Garage (Ja/Nein)
- Erstellungsdatum
API-Features
Vollständige Details siehe API-Dokumentation
1. Dual-Authentifizierung
Session-basiert (Frontend):
- Form-Login mit E-Mail/Passwort
- Cookie-basierte Sessions
- Für Web-Interface
API-Key-basiert (API):
- Header:
X-API-KEY - Automatisch generiert bei User-Erstellung
- Für programmatischen Zugriff
2. Rollenbasierte Zugriffskontrolle
| Rolle | Rechte |
|---|---|
| USER | Eigene Immobilien verwalten |
| ADMIN | Alle Immobilien verwalten, alle User sehen |
| MODERATOR | Erweiterte Rechte |
| TECHNICAL | Bundesländer & Heizungstypen verwalten |
3. Mandantenfähigkeit
- Jeder User sieht nur eigene Immobilien
- Admins sehen alle Immobilien
- Automatische Filterung auf Basis des eingeloggten Users
- Keine manuelle Filterung nötig
4. Öffentliche Ressourcen
Ohne Authentifizierung verfügbar:
GET /api/bundeslands- Alle Bundesländer mit GrunderwerbsteuersätzenGET /api/heizungstyps- Alle Heizungstypen
Vorbefüllt:
- 16 deutsche Bundesländer mit aktuellen Steuersätzen
- 4 Heizungstypen (Öl, Gas, Wärmepumpe, Pellet)
5. Swagger/OpenAPI-Dokumentation
URL: http://localhost:8080/api/docs.html
Features:
- Interaktive API-Dokumentation
- "Try it out" Funktion für alle Endpunkte
- Request/Response Beispiele
- Schema-Dokumentation
- Export als JSON/YAML
Technische Features
1. Responsive Design
- Mobile-optimiert
- Grid-Layout passt sich an Bildschirmgröße an
- Touch-freundliche Buttons und Formulare
2. Performance
- Live-Berechnungen ohne Server-Anfragen
- AJAX für Speichern-Funktion (kein Reload)
- Opcache aktiviert in Produktion
- Doctrine Query Cache
3. Datenvalidierung
Frontend:
- HTML5-Validierung
- Required-Felder
- Type-Checking (number, email, etc.)
Backend:
- Symfony Validator
- Doctrine Constraints
- Custom Validation Rules
4. Sicherheit
- CSRF-Protection für alle Forms
- Passwort-Hashing mit bcrypt
- SQL-Injection-Schutz durch Doctrine ORM
- XSS-Schutz durch Twig Auto-Escaping
- CORS-Konfiguration für API
5. Separation of Concerns
- CSS in separaten Dateien (
public/css/) - JavaScript in separaten Dateien (
public/js/) - Templates mit Twig
- Controller für Logik
- Entities für Datenmodell
Berechnungslogik
Grunderwerbsteuer
Bundesland-spezifisch (Stand 2025):
| Bundesland | Steuersatz |
|---|---|
| Bayern | 3,5% |
| Baden-Württemberg, Bremen, Niedersachsen, Rheinland-Pfalz, Sachsen-Anhalt, Thüringen | 5,0% |
| Hamburg, Sachsen | 5,5% |
| Berlin, Hessen, Mecklenburg-Vorpommern | 6,0% |
| Brandenburg, NRW, Saarland, Schleswig-Holstein | 6,5% |
Kaufnebenkosten (nur API)
Bei API-Anfragen werden zusätzlich berechnet:
- Notarkosten: ca. 1,5% des Kaufpreises
- Grundbuchkosten: ca. 0,5% des Kaufpreises
- Grunderwerbsteuer: siehe oben
- Gesamt: Summe aller Nebenkosten
Siehe auch:
- Technische Dokumentation - Architektur & Datenbank
- API-Dokumentation - REST-API Details
- Installation - Setup-Anleitung