155 lines
4.6 KiB
Markdown
155 lines
4.6 KiB
Markdown
# Immorechner
|
|
|
|
Eine moderne Webanwendung zur Immobilienberechnung mit interaktivem Frontend und vollständiger REST-API.
|
|
|
|
## Schnellstart
|
|
|
|
```bash
|
|
# 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:**
|
|
|
|
- **[Installation & Setup](docs/installation.md)** - Schritt-für-Schritt Installationsanleitung
|
|
- **[Features & Funktionalität](docs/features.md)** - Übersicht aller Funktionen
|
|
- **[Technische Dokumentation](docs/technical.md)** - Architektur, Datenbank-Schema, Konfiguration
|
|
- **[API-Dokumentation](docs/api.md)** - REST-API Endpunkte, Authentifizierung, Beispiele
|
|
- **[Entwicklung](docs/development.md)** - Testing, Code Quality, Entwickler-Workflow
|
|
- **[Docker](docs/docker.md)** - Docker-Befehle und Container-Management
|
|
- **[Fehlerbehebung](docs/troubleshooting.md)** - Lösungen für häufige Probleme
|
|
|
|
## 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
|
|
|
|
```bash
|
|
# 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](docs/technical.md#sicherheit).
|
|
|
|
## Lizenz
|
|
|
|
[Lizenz hier einfügen]
|
|
|
|
## Support
|
|
|
|
Bei Problemen siehe [Fehlerbehebung](docs/troubleshooting.md) oder öffnen Sie ein Issue.
|