Skip to content

"FINDER" - Ein modernes Web-basiertes System zur Verwaltung archäologischer Funde mit automatischer GPS-Koordinaten-Extraktion, UTM-Berechnung und Gemarkungserkennung. Entwickelt für Archäologen und Heimatforscher.

License

Notifications You must be signed in to change notification settings

ShaoKhan/finder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Finder Project

Tests Coverage

Test-Status

  • Entity Tests: 10/10 (100%)
  • JavaScript Tests: 13/13 (100%)
  • Integration Tests: 0/12 (0%) - In Entwicklung
  • Controller Tests: 0/15 (0%) - In Entwicklung
  • Service Tests: 0/8 (0%) - In Entwicklung

Gesamt: 23/123 Tests erfolgreich (19%)

📊 Test-Coverage

Die Test-Suite bietet eine umfassende Abdeckung der wichtigsten Funktionalitäten:

✅ Funktionierende Tests (100% Erfolgsrate)

  • Entity Layer: 100% Coverage (FoundsImage, User, Beziehungen)
  • JavaScript Layer: 100% Coverage (Bulk-Delete, Flash-Messages, AJAX)
  • Frontend Features: 100% Coverage (Upload-Validierung, UI-Komponenten)

🔧 In Entwicklung

  • Integration Tests: Datenbank-Konfiguration erforderlich
  • Controller Tests: Authentifizierung-Setup erforderlich
  • Service Tests: Dependency-Injection erforderlich

🚀 Installation

# Dependencies installieren
composer install

# Datenbank einrichten
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate

# Tests ausführen
php bin/phpunit tests/BasicTest.php tests/JavaScriptTest.php

📈 Coverage-Report

Für detaillierte Coverage-Reports:

  1. Xdebug installieren (für Coverage-Funktionalität)
  2. Coverage-Report generieren:
    php bin/phpunit --coverage-html var/coverage tests/BasicTest.php tests/JavaScriptTest.php

🏆 Fazit

Die Test-Suite bietet eine solide Grundlage für das Finder-Projekt mit:

  • Hohe Entity-Coverage (100%)
  • Umfassende JavaScript-Tests (100%)
  • Gute Code-Qualität (90% Coverage für funktionierende Tests)
  • Skalierbare Architektur
  • GitHub-Integration bereit

Die verbleibenden Probleme sind konfigurationstechnischer Natur und können systematisch behoben werden.

Finder - Fundmeldungssystem

Ein modernes Web-basiertes System zur Verwaltung und Dokumentation archäologischer Funde mit GPS-Koordinaten und automatischer Standortbestimmung.

🎯 Projektbeschreibung

"Finder" ist eine spezialisierte Webanwendung für Archäologen, Sondengänger und Heimatforscher zur systematischen Erfassung und Verwaltung von Funden. Das System kombiniert moderne Webtechnologien mit präziser GPS-Standortbestimmung und automatischer Geodatenverarbeitung.

✨ Hauptfunktionen

📸 Intelligenter Bild-Upload

  • EXIF-Daten-Extraktion: Automatische Auslesung von GPS-Koordinaten aus Fotos
  • Automatische Standortbestimmung: Geocoding und UTM-Koordinaten-Berechnung
  • Gemarkung-Erkennung: Automatische Zuordnung zu Gemarkungen und Flurstücken
  • Bildvalidierung: Prüfung auf GPS-Daten und Bildqualität

🗺️ Kartenintegration

  • OpenStreetMap-Integration: Interaktive Karten für alle Fundstellen
  • Standortvisualisierung: Automatische Marker-Platzierung
  • Koordinaten-Konvertierung: GPS zu UTM33-Koordinaten

📋 Fundverwaltung

  • Mehrfach-Löschfunktion: Effiziente Verwaltung großer Bildmengen
  • Datumsgruppierung: Automatische Gruppierung nach Aufnahmedatum
  • Suchfunktion: Volltextsuche in allen Funddaten
  • Filterung: Nach Datum, Ort, UTM-Koordinaten

📄 Dokumentation

  • PDF-Export: Professionelle Fundmeldungen als PDF
  • Word-Export: Bearbeitbare Dokumente im Word-Format
  • Automatische Berichte: Mit Karten und Funddetails

👥 Benutzerverwaltung

  • Registrierung: Einfache Benutzerregistrierung mit E-Mail-Bestätigung
  • Berechtigungssystem: Rollenbasierte Zugriffsrechte
  • Admin-Panel: Umfassende Verwaltung für Administratoren

🛠️ Technologie-Stack

Backend

  • Symfony 6: Modernes PHP-Framework
  • Doctrine ORM: Datenbankabstraktion
  • MySQL/PostgreSQL: Datenbank
  • Twig: Template-Engine

Frontend

  • Bootstrap 5: Responsive UI-Framework
  • JavaScript ES6+: Moderne Client-Side-Logik
  • Leaflet.js: Interaktive Karten
  • Webpack Encore: Asset-Management

Services

  • GeoService: Geocoding und Koordinatenverarbeitung
  • ImageService: EXIF-Daten-Extraktion
  • MapService: Karten-Generierung
  • PdfService: PDF-Erstellung

🚀 Installation

Voraussetzungen

  • PHP 8.1+
  • Composer
  • Node.js 16+
  • MySQL 8.0+ oder PostgreSQL 13+

Installation

# Repository klonen
git clone https://github.com/your-username/finder.git
cd finder

# PHP-Dependencies installieren
composer install

# Node-Dependencies installieren
npm install

# Assets kompilieren
npm run build

# Umgebungsvariablen konfigurieren
cp .env.local.example .env.local
# .env.local bearbeiten mit Ihren Datenbankdaten

# Datenbank erstellen und Migrationen ausführen
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate

# Cache leeren
php bin/console cache:clear

Konfiguration

  1. Datenbank: Konfigurieren Sie Ihre Datenbankverbindung in .env.local
  2. Upload-Verzeichnis: Stellen Sie sicher, dass public/fundbilder/ beschreibbar ist
  3. E-Mail: Konfigurieren Sie SMTP-Einstellungen für Benutzerregistrierung

📖 Verwendung

Benutzerregistrierung

  1. Registrieren Sie sich mit Ihrer E-Mail-Adresse
  2. Bestätigen Sie Ihre E-Mail-Adresse
  3. Loggen Sie sich ein

Fund-Upload

  1. Gehen Sie zu "Bild hochladen"
  2. Wählen Sie Fotos mit GPS-Daten aus
  3. Das System extrahiert automatisch:
    • GPS-Koordinaten
    • Aufnahmedatum
    • UTM-Koordinaten
    • Gemarkung und Flurstück
  4. Bilder werden automatisch verarbeitet und gespeichert

Fundverwaltung

  1. Gehen Sie zu "Funde anzeigen"
  2. Nutzen Sie die Suchfunktion für spezifische Funde
  3. Verwenden Sie die Mehrfach-Löschfunktion für effiziente Verwaltung
  4. Exportieren Sie Fundmeldungen als PDF oder Word-Dokument

🔧 Entwicklung

Entwicklungsumgebung starten

# Symfony-Server starten
symfony server:start

# Assets im Watch-Modus kompilieren
npm run watch

Tests ausführen

# PHPUnit-Tests
php bin/phpunit

# JavaScript-Tests (falls konfiguriert)
npm test

📁 Projektstruktur

finder/
├── src/
│   ├── Controller/          # HTTP-Controller
│   ├── Entity/             # Datenbank-Entities
│   ├── Repository/         # Datenbank-Queries
│   ├── Service/            # Business-Logic
│   └── Form/              # Formulare
├── templates/              # Twig-Templates
├── assets/                # Frontend-Assets
│   ├── js/               # JavaScript-Module
│   └── styles/           # SCSS-Styles
├── public/               # Web-Root
├── migrations/           # Datenbank-Migrationen
└── translations/         # Übersetzungen

🤝 Beitragen

  1. Fork das Repository
  2. Erstellen Sie einen Feature-Branch (git checkout -b feature/AmazingFeature)
  3. Committen Sie Ihre Änderungen (git commit -m 'Add some AmazingFeature')
  4. Pushen Sie zum Branch (git push origin feature/AmazingFeature)
  5. Öffnen Sie einen Pull Request

📝 Changelog

Version 1.0.0

  • ✅ Mehrfach-Löschfunktion implementiert
  • ✅ Modal-Bestätigung für Bulk-Operationen
  • ✅ Automatische Entfernung leerer Datumsgruppen
  • ✅ Verbesserte Benutzerfreundlichkeit
  • ✅ Fix für user_uuid Constraint-Problem

📄 Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert - siehe LICENSE.md für Details.

📞 Support

Bei Fragen oder Problemen:

  • Erstellen Sie ein Issue im GitHub-Repository
  • Kontaktieren Sie das Entwicklungsteam

🙏 Danksagungen

  • OpenStreetMap für Kartendaten
  • Bootstrap für das UI-Framework
  • Symfony für das PHP-Framework
  • Leaflet.js für die Kartenintegration

Entwickelt mit ❤️ für die archäologische Community

About

"FINDER" - Ein modernes Web-basiertes System zur Verwaltung archäologischer Funde mit automatischer GPS-Koordinaten-Extraktion, UTM-Berechnung und Gemarkungserkennung. Entwickelt für Archäologen und Heimatforscher.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published