Project 4: QR Code Crafter 📱¶

Difficulty: 🟢 Beginner

Run cells top to bottom. Each step builds on the previous one and saves real files under outputs/qr_code_crafter/.

← Back to index

Description¶

Encode URLs, Wi-Fi credentials, or secret messages into scannable QR code images.

Libraries & Modules¶

  • qrcode — QR generation
  • qrcode.constants — error correction levels

Python Concepts You'll Practice¶

Object-oriented library usage, saving images, constants/enums

🎛️ Parameter Variations¶

  • DATA — URL, plain text, or WIFI:T:WPA;S:MyNetwork;P:secret;;
  • BOX_SIZE — 5 (small) vs 15 (poster-size)
  • FILL_COLOR / BACK_COLOR — brand colors
  • ERROR_CORRECTION — L, M, Q, or H (more damage tolerance)
In [1]:
# Install dependencies for this project (safe to re-run)
import sys
!{sys.executable} -m pip install pillow numpy matplotlib wordcloud qrcode[pil] python-barcode fpdf2 jinja2 folium plotly pandas scipy ipywidgets -q
Skipping pip install (already installed)
In [2]:
# Interactive Jupyter setup — run this cell first
%matplotlib inline

from pathlib import Path
from IPython.display import display, Image as IPImage, HTML, Markdown, Audio, IFrame

OUTPUT_DIR = Path("outputs") / "qr_code_crafter"
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
print(f"✅ Outputs folder: {OUTPUT_DIR.resolve()}")
✅ Outputs folder: C:\Users\Hansel Yan\Projects\CodeItAll\outputs\qr_code_crafter

Step 1 — Configure and generate¶

In [3]:
import qrcode
from qrcode.constants import ERROR_CORRECT_H, ERROR_CORRECT_M

# 🎛️ TWEAK THESE
DATA = "https://codeitall.dev — Built with Python!"
BOX_SIZE = 10
BORDER = 4
FILL_COLOR = "#1a1a2e"
BACK_COLOR = "#eaeaea"
ERROR_CORRECTION = ERROR_CORRECT_M  # try ERROR_CORRECT_H for logos overlay later

qr = qrcode.QRCode(
    version=None,
    error_correction=ERROR_CORRECTION,
    box_size=BOX_SIZE,
    border=BORDER,
)
qr.add_data(DATA)
qr.make(fit=True)
img = qr.make_image(fill_color=FILL_COLOR, back_color=BACK_COLOR)
out = OUTPUT_DIR / "qr_code.png"
img.save(out)
print(f"Encoded {len(DATA)} chars → {out}")
display(img)
Encoded 42 chars → outputs\qr_code_crafter\qr_code.png
No description has been provided for this image

✅ Project complete¶

Check your output folder: outputs/qr_code_crafter/

Next: Project 5: Word Cloud Weaver · Index