Files
immorechner/README.md
2025-11-09 11:27:21 +01:00

4.6 KiB

Immorechner

Eine moderne Webanwendung zur Immobilienberechnung mit interaktivem Frontend und vollständiger REST-API.

Schnellstart

# Repository klonen
git clone <repository-url>
cd immorechner

# Docker-Container starten
docker-compose up -d --build

# Dependencies installieren
docker-compose exec web composer install

# Datenbank initialisieren
docker-compose exec web php bin/console doctrine:migrations:migrate --no-interaction

# Anwendung öffnen
# Frontend: http://localhost:8080
# API-Docs: http://localhost:8080/api/docs.html
# phpMyAdmin: http://localhost:8081

Features

Frontend (Web-Interface)

  • 🧮 Interaktiver Immobilienrechner mit Live-Berechnungen
  • 🔗 URL-Sharing für anonyme Nutzer (keine Registrierung nötig)
  • 👤 Benutzer-Registrierung & Login
  • 💾 Immobilien speichern (nur für registrierte Nutzer)
  • 📊 Automatische Berechnungen: Grunderwerbsteuer, Gesamtkosten, Abschreibung, etc.
  • 📱 Responsive Design (Mobile-optimiert)

Backend (REST-API)

  • 🔌 Vollständige REST-API mit API Platform 4.2
  • 🔐 Dual-Authentifizierung: Session-basiert (Frontend) & API-Key (API)
  • 🔑 Rollenbasierte Zugriffskontrolle: USER, ADMIN, MODERATOR, TECHNICAL
  • 📖 Swagger/OpenAPI Dokumentation
  • 🏢 Mandantenfähigkeit: Jeder User sieht nur seine eigenen Immobilien
  • 🌍 Öffentliche Ressourcen: Bundesländer und Heizungstypen ohne Authentifizierung

Technologie

  • Backend: PHP 8.4, Symfony 7.3
  • Frontend: Twig, jQuery, separates CSS/JS
  • Datenbank: MariaDB
  • Container: Docker & Docker Compose
  • ORM: Doctrine 3.0
  • API: API Platform 4.2

Dokumentation

📚 Detaillierte Dokumentation:

Projekt-Struktur

immorechner/
├── config/                 # Symfony Konfiguration
├── docs/                   # Dokumentation
├── migrations/            # Datenbank-Migrationen
├── public/                # Web-Root, CSS, JS, Assets
├── src/                   # PHP-Quellcode
│   ├── Controller/       # Controller (Frontend & API)
│   ├── Entity/           # Doctrine Entities
│   ├── Repository/       # Doctrine Repositories
│   └── Security/         # Authentifizierung
├── templates/             # Twig-Templates
├── docker-compose.yml    # Docker Compose-Konfiguration
└── Dockerfile            # Docker-Image für PHP/Apache

Verwendung

Frontend

Startseite (Rechner): http://localhost:8080

  • Immobiliendaten eingeben
  • Live-Berechnungen ansehen
  • Link zum Teilen generieren
  • Bei Anmeldung: Immobilie speichern

Registrierung: http://localhost:8080/register

Login: http://localhost:8080/login

Meine Immobilien: http://localhost:8080/meine-immobilien (nach Login)

API

API-Dokumentation (Swagger UI): http://localhost:8080/api/docs.html

API Entrypoint: http://localhost:8080/api

Öffentliche Endpunkte (ohne Authentifizierung):

  • GET /api/bundeslands - Alle Bundesländer
  • GET /api/heizungstyps - Alle Heizungstypen

Geschützte Endpunkte (API-Key erforderlich):

  • /api/immobilies - Immobilien-Management
  • /api/users - Benutzer-Management

Schnelle Befehle

# Container starten
docker-compose up -d

# Container stoppen
docker-compose down

# Logs anzeigen
docker-compose logs -f

# In Container einloggen
docker-compose exec web bash

# Cache leeren
docker-compose exec web php bin/console cache:clear

# Tests ausführen
docker-compose exec web php bin/phpunit

Sicherheitshinweise

⚠️ Wichtig für Produktion:

  1. Ändern Sie alle Standardpasswörter in docker-compose.yml und .env
  2. Generieren Sie einen neuen APP_SECRET
  3. Setzen Sie APP_ENV=prod
  4. Aktivieren Sie HTTPS
  5. Entfernen Sie phpMyAdmin
  6. Konfigurieren Sie CORS für Ihre Domain

Details siehe Technische Dokumentation.

Lizenz

[Lizenz hier einfügen]

Support

Bei Problemen siehe Fehlerbehebung oder öffnen Sie ein Issue.