Skip to content

MettaBlender/file-to-qr-code

Repository files navigation

📱 Datei zu QR-Code Konverter

Eine moderne Next.js-Anwendung, mit der Sie beliebige Dateien in QR-Codes umwandeln und diese dann mit einem anderen Gerät scannen können, um die ursprüngliche Datei zu rekonstruieren.

✨ Features

  • 📤 Datei-Upload: Laden Sie beliebige Dateien (Bilder, Dokumente, etc.) hoch
  • 🎯 QR-Code-Generierung: Konvertiert Dateien automatisch in eine Serie von QR-Codes
  • 📱 QR-Code-Scanner: Eingebauter Kamera-Scanner zum Rekonstruieren von Dateien
  • 💾 Download-Funktionen:
    • QR-Codes als ZIP-Datei herunterladen
    • Gescannte Dateien automatisch herunterladen
  • 🔧 Intelligente Chunking: Große Dateien werden automatisch in mehrere QR-Codes aufgeteilt
  • 📊 Fortschrittsanzeige: Zeigt den Scan-Fortschritt visuell an
  • 🎨 Modernes UI: Responsive Design mit Tailwind CSS
  • 🔄 Flexible Reihenfolge: QR-Codes können in beliebiger Reihenfolge gescannt werden
  • 🔒 Datenschutz: Alle Verarbeitung erfolgt lokal im Browser
  • Optimiert für Lesbarkeit: Kleinere Chunks, höhere Fehlerkorrektur, bessere QR-Code-Qualität
  • 🔍 Verbesserte Erkennung: Robustere Scanning-Algorithmen für schwierige Bedingungen## 🚀 Installation

Voraussetzungen

  • Node.js (Version 18 oder höher)
  • npm oder yarn

Schritt-für-Schritt Installation

  1. Repository klonen:
git clone https://github.com/MettaBlender/file-to-qr-code.git

cd file-to-qr-code
  1. Abhängigkeiten installieren:
npm install
  1. Entwicklungsserver starten:
npm run dev
  1. App öffnen: Öffnen Sie http://localhost:3000 in Ihrem Browser.

🔧 Verwendung

📤 Datei zu QR-Code konvertieren:

  1. Tab "Datei zu QR-Code" auswählen
  2. Datei auswählen über den Upload-Button
  3. "QR-Codes generieren" klicken
  4. QR-Codes werden angezeigt - Die App zeigt alle generierten QR-Codes an
  5. Optional: QR-Codes als ZIP-Datei herunterladen für einfache Weiterleitung

📱 QR-Codes scannen und Datei rekonstruieren:

  1. Tab "QR-Code scannen" auswählen
  2. "Kamera starten" klicken und Kamera-Berechtigung erteilen
  3. QR-Codes scannen - Reihenfolge ist egal! Die App erkennt automatisch:
    • Welcher QR-Code bereits gescannt wurde
    • Wie viele QR-Codes noch fehlen
    • Den Fortschritt in Echtzeit
  4. Automatischer Download - Sobald alle QR-Codes gescannt wurden, wird die ursprüngliche Datei automatisch heruntergeladen

📋 Technische Details

Verwendete Technologien:

  • Next.js 15 - React-Framework mit App Router
  • React 19 - UI-Framework
  • Tailwind CSS 4 - Modernes Styling
  • qrcode - QR-Code-Generierung
  • qr-scanner - QR-Code-Scanning mit Kamera
  • jszip - ZIP-Archiv-Erstellung
  • file-saver - Browser-Datei-Downloads

Funktionsweise:

Datei zu QR-Code:

  1. Datei-Verarbeitung: Dateien werden in Base64 konvertiert und mit Metadaten versehen
  2. Chunking: Große Datenmengen werden in QR-Code-taugliche Chunks aufgeteilt (max. 2000 Zeichen)
  3. QR-Code-Generierung: Jeder Chunk wird mit Index- und Validierungsinformationen in einen QR-Code umgewandelt
  4. Anzeige: QR-Codes werden übersichtlich dargestellt

QR-Code zu Datei:

  1. Kamera-Scanning: Eingebauter Scanner erkennt QR-Codes automatisch
  2. Intelligente Verarbeitung:
    • Duplikate werden ignoriert
    • Reihenfolge spielt keine Rolle
    • Fortschritt wird live angezeigt
  3. Validierung: Überprüfung auf Vollständigkeit und Integrität
  4. Rekonstruktion: Gescannte Chunks werden in der richtigen Reihenfolge zusammengefügt
  5. Download: Ursprüngliche Datei wird automatisch heruntergeladen

Unterstützte Dateiformate:

  • Bilder: JPG, PNG, GIF, SVG, WebP, etc.
  • Dokumente: PDF, DOC, DOCX, TXT, etc.
  • Archive: ZIP, RAR, 7Z, etc.
  • Code: JS, HTML, CSS, JSON, etc.
  • Alle anderen Dateiformate

🔒 Datenschutz & Sicherheitheit

  • Keine Server-Übertragung: Alle Verarbeitung erfolgt lokal im Browser
  • Keine Datenspeicherung: Dateien werden nicht gespeichert oder übertragen
  • Client-seitige Verarbeitung: Höchste Privatsphäre und Sicherheit
  • Offline-fähig: Funktioniert ohne Internetverbindung
  • Open Source: Transparenter und verifizierbarer Code

🌐 Browser-Kompatibilität

Unterstützte Browser:

  • Chrome/Chromium (empfohlen)
  • Firefox
  • Safari
  • Edge

Anforderungen:

  • Kamera-Zugriff: Erforderlich für QR-Code-Scanning
  • HTTPS oder localhost: Für Kamera-Berechtigung erforderlich
  • JavaScript aktiviert: Für alle Funktionen erforderlich

📱 Mobile Nutzung

Optimiert für:

  • 📱 Smartphones (iOS & Android)oid)
  • 📟 Tablets
  • 💻 Desktop-Computer

Perfekte Mobile-Experience:

  • Touch-optimierte Benutzeroberfläche
  • Responsive Design für alle Bildschirmgrößen
  • PWA-Unterstützung (installierbar als App)
  • Optimierte Kamera-Performance

Typische Nutzungsszenarien:

  1. Computer → Smartphone: QR-Codes auf dem Computer generieren, mit dem Smartphone scannen
  2. Smartphone → Computer: QR-Codes auf dem Smartphone generieren, mit Computer-Webcam scannen
  3. Smartphone → Smartphone: Dateien zwischen zwei Geräten übertragen

🔧 Entwicklung

Verfügbare Scripts:

# Entwicklungsserver mit Turbopack (empfohlen)
npm run dev



# Production Build erstellen
npm run build



# Production Server starten
npm run start



# Code Linting
npm run lintt

Projekt-Struktur:

src/
├── app/
│   ├── page.js              # Haupt-Anwendung mit QR-Code-Funktionalität
│   ├── layout.js            # App-Layout mit PWA-Konfiguration
│   ├── globals.css          # Globale Styles (Tailwind)
│   └── api/                 # API-Routen (legacy, nicht mehr verwendet)
public/
├── manifest.json            # PWA-Manifest für App-Installation
└── ...                      # Statische Assets
 Assets

🛠️ Fehlerbehebung

Häufige Probleme:

Kamera funktioniert nicht:

  • Lösung: Stellen Sie sicher, dass die App über HTTPS oder localhost aufgerufen wird
  • Chrome: Überprüfen Sie die Kamera-Berechtigungen in den Browser-Einstellungen
  • Mobile: Erlauben Sie Kamera-Zugriff wenn nachgefragt

QR-Codes können nicht gescannt werden:

  • Bildschirm-Helligkeit: Stellen Sie die Helligkeit auf Maximum
  • Abstand: Halten Sie die Kamera 10-30cm vom QR-Code entfernt
  • Stabilität: Halten Sie das Gerät ruhig beim Scannen
  • Qualität: Stellen Sie sicher, dass der QR-Code scharf und vollständig sichtbar ist

Datei-Rekonstruktion schlägt fehl:

  • Vollständigkeit: Stellen Sie sicher, dass alle QR-Codes gescannt wurden
  • Browser-Speicher: Bei sehr großen Dateien kann der Browser-Speicher begrenzt sein
  • Format: Überprüfen Sie, ob die ursprüngliche Datei korrekt war

Debug-Modus:

Öffnen Sie die Browser-Konsole (F12) um detaillierte Logging-Informationen zu sehen.

🤝 Beitragen

Wir freuen uns über Beiträge zur Verbesserung der App!

Beitrag leisten:

  1. Fork das Repository
  2. Feature-Branch erstellen: git checkout -b feature/AmazingFeature
  3. Änderungen committen: git commit -m 'Add some AmazingFeature'
  4. Branch pushen: git push origin feature/AmazingFeature
  5. Pull Request erstellen

Entwicklungs-Guidelines:

  • Folgen Sie den bestehenden Code-Konventionen
  • Testen Sie Ihre Änderungen gründlich
  • Dokumentieren Sie neue Features
  • Berücksichtigen Sie Mobile-Kompatibilität

📈 Roadmap

Geplante Features:

  • 🔐 Verschlüsselung: Optionale Passwort-Verschlüsselung für sensible Dateien
  • 📊 Komprimierung: Datei-Komprimierung für kleinere QR-Codes
  • 🎨 Anpassbare QR-Codes: Farbige und branded QR-Codes
  • 📱 PWA-Verbesserungen: Vollständige Offline-Funktionalität
  • 🔄 Batch-Verarbeitung: Mehrere Dateien gleichzeitig verarbeiten

📄 Lizenz

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

MIT-Lizenz Zusammenfassung:

  • ✅ Kommerzielle Nutzung erlaubt
  • ✅ Modifikation erlaubt
  • ✅ Distribution erlaubt
  • ✅ Private Nutzung erlaubt
  • ❌ Keine Haftung
  • ❌ Keine Garantie

🙏 Danksagungen

  • qrcode - Excellente QR-Code-Generierung
  • qr-scanner - Zuverlässiges QR-Code-Scanning
  • Next.js - Fantastisches React-Framework
  • Tailwind CSS - Modernes und flexibles Styling
  • Vercel - Hosting und Deployment-Platform

📞 Support

Bei Fragen oder Problemen:

  1. GitHub Issues: Erstellen Sie ein Issue
  2. Dokumentation: Lesen Sie diese README gründlich
  3. Browser-Konsole: Überprüfen Sie die Konsole auf Fehlermeldungen

Erstellt mit ❤️ von Aaron Mettler

Genießen Sie die sichere und einfache Dateiübertragung ohne Cloud-Services!

You can start editing the page by modifying app/page.js. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.

Zahlensystem

new dez
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
a 10
b 11
c 12
d 13
e 14
f 15
g 16
h 17
i 18
j 19
k 20
l 21
m 22
n 23
o 24
p 25
q 26
r 27
s 28
t 29
u 30
v 31
w 32
x 33
y 34
z 35
A 36
B 37
C 38
D 39
E 40
F 41
G 42
H 43
I 44
J 45
K 46
L 47
M 48
N 49
O 50
P 51
Q 52
R 53
S 54
T 55
U 56
V 57
W 58
X 59
Y 60
Z 61
- 62
( 63
) 64