QR Genie is a simple web application that allows you to generate and decode QR codes easily.
Built with Flask (Python backend) and a responsive frontend (HTML, CSS, JavaScript), it supports text, URLs, files, and real-time camera scanning.
- QR Code Generator
- Generate QR codes from Text, URL, or File uploads.
- Download the generated QR code instantly.
- QR Code Decoder
- Upload QR code images and extract the encoded data.
- Use your device’s camera to scan QR codes live (powered by
html5-qrcode).
- Responsive UI
- Light/Dark mode with smooth transitions 🌙☀️
- Drag & Drop file uploads
- Cross-platform
- Works on desktop and mobile browsers.
- Backend: Python, Flask, Flask-CORS
- Frontend: HTML5, CSS3, JavaScript (Vanilla)
- QR Code Handling:
- qrcode – for generating QR codes
- pyzbar – for decoding QR codes from images
- html5-qrcode – for camera scanning in browser
- Other: Pillow (PIL), BytesIO for image handling
├── index.html # Home page (QR generator & decoder)
├── about.html # About page
├── contact.html # Contact form
├── style.css # Styling (light/dark theme, transitions)
├── script.js # Frontend logic (QR generation, decoding, camera scan)
├── main.py # Flask backend (API routes for /generate and /decode)
└── uploads/ # Temporary folder for QR images
git clone https://github.com/yourusername/qr-genie.git
cd qr-genieMake sure you have Python 3.10+ installed. Then install requirements:
pip install flask flask-cors qrcode pillow pyzbarpython main.pyBy default, it runs on http://127.0.0.1:5000/.
Just open index.html in your browser
👉 Or serve it via Flask to avoid CORS issues.
(Add your app screenshots here – generator, decoder, camera scan)
- Add QR customization (colors, logos inside QR).
- Add database to store scanned/generated history.
- Deploy on cloud (Heroku, Vercel, or Netlify + Flask backend).
- Tailwind CSS integration for modern UI.
Pull requests are welcome! Feel free to fork and improve the project.
This project is licensed under the MIT License.
---
👉 Do you want me to also make a **requirements.txt** file for your project (so you can just `pip install -r requirements.txt`)?