Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Batch data export #53

Merged
merged 14 commits into from
Oct 6, 2024
2 changes: 1 addition & 1 deletion .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

yarn lint-staged
pnpm lint-staged
35 changes: 21 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,28 +17,35 @@ A customizable QR code generator to create beautiful and unique QR codes.

## Demo

Try it out [here](https://mini-qr.vercel.app/).

https://github.com/lyqht/mini-qr/assets/35736525/991b2d7e-f168-4354-9091-1678d2c1bddb

Batch data export is also now supported.

![](./public/batch_data_export.mp4)

## Features

- 🎨 Generate QR codes with custom colors and styles
- 🖼️ Support for various output formats, including SVG and PNG
- 📋 Copy to clipboard
- 🌓 UI respects user's light/dark mode preferences
- 🎲 Randomize style button
- 🌐 Available in 29 languages thanks to [deepl-translate-github-action](https://github.com/lyqht/deepl-translate-github-action)
- 💾 Save & Load QR Code config
- 🖼️ Upload custom image for logo
- 🎭 Presets: Pre-crafted QR code styles are available as immediate usage/ reference. Refer to samples above!
- 🔳 User can choose to include background or obtain a transparent QR code
- 🛡️ Error correction level selection - this will affect the size of the qr code and image within. Use lower correction levels for bigger pieces of data.
- 📦 Batch data export: Import a CSV file with multiple data strings and export QR codes for them all at once.

## Self-hosting with Docker 🐋

Mini-QR can easily be self-hosted. We provide a [docker-compose.yml](docker-compose.yml) file as well as our own images. We are using GitHub's `ghrc.io` Container Registry.

```bash
wget https://github.com/lyqht/mini-qr/raw/main/docker-compose.yml

docker compose up -d
```

## Features

- Generate QR codes with custom colors and styles
- Support for various output formats, including SVG and PNG
- Copy to clipboard
- UI respects user's light/dark mode preferences
- Randomize style button
- Available in 29 languages thanks to [deepl-translate-github-action](https://github.com/lyqht/deepl-translate-github-action)
- Save & Load QR Code config
- Upload custom image for logo
- Presets: Pre-crafted QR code styles are available as immediate usage/ reference. Refer to samples above!
- User can choose to include background or obtain a transparent QR code
- Error correction level selection - this will affect the size of the qr code and image within.
2 changes: 1 addition & 1 deletion locales/bg.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"Mini QR Code Generator":"Генератор на мини QR код","Default":"По подразбиране","Randomize style":"Случаен избор на стил","No data!":"Няма дата!","Select language":"Избор на език","Select preset":"Избор на предварителна настройка","GitHub repository for this project":"Хранилище на GitHub за този проект","Data to encode":"Данни за кодиране","data to encode e.g. a URL or a string":"данни за кодиране, напр. URL адрес или низ","Logo image URL":"URL адрес на изображението на логото","Last saved locally":"Зареждане от локално хранилище","Loaded from file":"Зареждане от файл","Copy QR Code to clipboard":"Копиране на QR кода в клипборда","Export as":"Експортиране като","Download QR Code as PNG":"Изтегляне на QR код като PNG","Download QR Code as SVG":"Изтегляне на QR код като SVG","Upload image":"Качване на изображение","Background color":"Фонов цвят","Width (px)":"Ширина (px)","Height (px)":"Височина (px)","Margin (px)":"Марж (px)","Image margin (px)":"Марж на изображението (px)","Border radius (px)":"Радиус на границата (px)","Dots color":"Цвят на точките","Dots type":"Тип точки","Save QR Code configuration":"Запазване на конфигурацията на QR кода","Load QR Code configuration":"Зареждане на конфигурацията на QR кода","Corners Square color":"Ъгли Квадратен цвят","Corners Square type":"Ъгли Квадратен тип","Corners Dot color":"Ъгли Цвят на точката","Corners Dot type":"Ъгли Тип точка","With background":"С фон","QR code preset":"Предварително зададен QR код","Recommended":"Препоръчителен","Error correction level":"Ниво на корекция на грешките","Low (7%)":"Нисък (7%)","Medium (15%)":"Среден (15%)","High (25%)":"Висока (25%)","Highest (30%)":"Най-висока (30%)","What is this?":"Какво е това?","What is error correction level?":"Какво е ниво на корекция на грешки?","Preset":"Предварителна настройка","dots":"точки","rounded":"закръглени","classy":"стилен","classy-rounded":"класически закръглени","square":"квадрат","extra-rounded":"изключително закръглени","dot":"точка","bg":"Български","cs":"Чешка република","da":"Датски","de":"Немски","el":"Гръцки","en":"Английски език","es":"Испански","et":"Естонски","fi":"Финландски","fr":"Френски","hu":"Унгарски","id":"Индонезийски","it":"Италиански","ja":"Японски","ko":"Корейски","lt":"Литовски","lv":"Латвийски","nb":"Норвежки Bokmål","nl":"Холандски","pl":"Полски","ptBR":"Португалски (Бразилия)","ptPT":"Португалски (Португалия)","ro":"Румънски","ru":"Руски","sk":"Словашки","sl":"Словенски","sv":"Шведски","tr":"Турски","uk":"Украински","zh":"Китайски"}
{"Mini QR Code Generator":"Генератор на мини QR код","Default":"По подразбиране","Randomize style":"Случаен избор на стил","No data!":"Няма дата!","Select language":"Избор на език","Select preset":"Избор на предварителна настройка","GitHub repository for this project":"Хранилище на GitHub за този проект","Data to encode":"Данни за кодиране","data to encode e.g. a URL or a string":"данни за кодиране, напр. URL адрес или низ","Logo image URL":"URL адрес на изображението на логото","Last saved locally":"Зареждане от локално хранилище","Loaded from file":"Зареждане от файл","Copy QR Code to clipboard":"Копиране на QR кода в клипборда","Export as":"Експортиране като","Download QR Code as PNG":"Изтегляне на QR код като PNG","Download QR Code as SVG":"Изтегляне на QR код като SVG","Upload image":"Качване на изображение","Background color":"Фонов цвят","Width (px)":"Ширина (px)","Height (px)":"Височина (px)","Margin (px)":"Марж (px)","Image margin (px)":"Марж на изображението (px)","Border radius (px)":"Радиус на границата (px)","Dots color":"Цвят на точките","Dots type":"Тип точки","Save QR Code configuration":"Запазване на конфигурацията на QR кода","Load QR Code configuration":"Зареждане на конфигурацията на QR кода","Corners Square color":"Ъгли Квадратен цвят","Corners Square type":"Ъгли Квадратен тип","Corners Dot color":"Ъгли Цвят на точката","Corners Dot type":"Ъгли Тип точка","With background":"С фон","QR code preset":"Предварително зададен QR код","Recommended":"Препоръчителен","Error correction level":"Ниво на корекция на грешките","Low (7%)":"Нисък (7%)","Medium (15%)":"Среден (15%)","High (25%)":"Висока (25%)","Highest (30%)":"Най-висока (30%)","What is this?":"Какво е това?","What is error correction level?":"Какво е ниво на корекция на грешки?","Preset":"Предварителна настройка","dots":"точки","rounded":"закръглени","classy":"стилен","classy-rounded":"класически закръглени","square":"квадрат","extra-rounded":"изключително закръглени","dot":"точка","Drag and drop a CSV file here or click to select":"Плъзнете и пуснете CSV файл тук или кликнете, за да изберете","Click to select and upload a CSV file":"Щракнете, за да изберете и качите CSV файл","{count} piece(s) of data detected":"{count} част(и) от откритите данни","Invalid CSV":"Невалиден CSV","Single export":"Единичен износ","Batch export":"Партиден износ","Creating QR codes... This may take a while.":"Създаване на QR кодове... Това може да отнеме известно време.","{index} / {count} QR codes have been created.":"{index} / {count} Създадени са QR кодове.","QR codes have been successfully exported.":"QR кодовете са експортирани успешно.","Start new batch export":"Стартиране на нов експорт на партиди","There are too many QR codes to be copied to the clipboard at once. Please download them as SVG or PNG instead.":"Има твърде много QR кодове, които могат да бъдат копирани едновременно в клипборда. Вместо това ги изтеглете като SVG или PNG.","bg":"Български","cs":"Чешка република","da":"Датски","de":"Немски","el":"Гръцки","en":"Английски език","es":"Испански","et":"Естонски","fi":"Финландски","fr":"Френски","hu":"Унгарски","id":"Индонезийски","it":"Италиански","ja":"Японски","ko":"Корейски","lt":"Литовски","lv":"Латвийски","nb":"Норвежки Bokmål","nl":"Холандски","pl":"Полски","ptBR":"Португалски (Бразилия)","ptPT":"Португалски (Португалия)","ro":"Румънски","ru":"Руски","sk":"Словашки","sl":"Словенски","sv":"Шведски","tr":"Турски","uk":"Украински","zh":"Китайски"}
2 changes: 1 addition & 1 deletion locales/cs.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"Mini QR Code Generator":"Generátor mini QR kódů","Default":"Výchozí","Randomize style":"Náhodný výběr stylu","No data!":"Žádné datum!","Select language":"Výběr jazyka","Select preset":"Výběr předvolby","GitHub repository for this project":"Úložiště GitHub pro tento projekt","Data to encode":"Data k zakódování","data to encode e.g. a URL or a string":"data k zakódování, např. URL nebo řetězec","Logo image URL":"Adresa URL obrázku loga","Last saved locally":"Načteno z místního úložiště","Loaded from file":"Načteno ze souboru","Copy QR Code to clipboard":"Kopírování kódu QR do schránky","Export as":"Exportovat jako","Download QR Code as PNG":"Stažení kódu QR jako PNG","Download QR Code as SVG":"Stáhnout QR kód jako SVG","Upload image":"Nahrát obrázek","Background color":"Barva pozadí","Width (px)":"Šířka (px)","Height (px)":"Výška (px)","Margin (px)":"Okraj (px)","Image margin (px)":"Okraj obrázku (px)","Border radius (px)":"Poloměr okraje (px)","Dots color":"Barva teček","Dots type":"Typ teček","Save QR Code configuration":"Uložit konfiguraci kódu QR","Load QR Code configuration":"Načtení konfigurace kódu QR","Corners Square color":"Rohové čtvercové barvy","Corners Square type":"Rohy Čtvercového typu","Corners Dot color":"Rohy Barva teček","Corners Dot type":"Rohy Typ tečky","With background":"S pozadím","QR code preset":"Předvolba QR kódu","Recommended":"Doporučené stránky","Error correction level":"Úroveň korekce chyb","Low (7%)":"Nízká (7 %)","Medium (15%)":"Střední (15%)","High (25%)":"Vysoká (25 %)","Highest (30%)":"Nejvyšší (30 %)","What is this?":"Co je to?","What is error correction level?":"Co je to úroveň korekce chyb?","Preset":"Přednastavení","dots":"tečky","rounded":"zaokrouhlení","classy":"elegantní","classy-rounded":"elegantně zaoblené","square":"čtverec","extra-rounded":"extra zaoblené","dot":"tečka","bg":"Bulharský","cs":"Česká republika","da":"Dánský","de":"Němčina","el":"Řecký","en":"Angličtina","es":"Španělština","et":"Estonština","fi":"Finsko","fr":"Francouzština","hu":"Maďarština","id":"Indonéský","it":"Italský","ja":"Japonský","ko":"Korejský","lt":"Litevština","lv":"Lotyšský","nb":"Norský jazyk Bokmål","nl":"Holandský","pl":"Polský","ptBR":"Portugalština (Brazílie)","ptPT":"Portugalština (Portugalsko)","ro":"Rumunština","ru":"Ruský","sk":"Slovenská","sl":"Slovinština","sv":"Švédský","tr":"Turecký","uk":"Ukrajinský","zh":"Čínský"}
{"Mini QR Code Generator":"Generátor mini QR kódů","Default":"Výchozí","Randomize style":"Náhodný výběr stylu","No data!":"Žádné datum!","Select language":"Výběr jazyka","Select preset":"Výběr předvolby","GitHub repository for this project":"Úložiště GitHub pro tento projekt","Data to encode":"Data k zakódování","data to encode e.g. a URL or a string":"data k zakódování, např. URL nebo řetězec","Logo image URL":"Adresa URL obrázku loga","Last saved locally":"Načteno z místního úložiště","Loaded from file":"Načteno ze souboru","Copy QR Code to clipboard":"Kopírování kódu QR do schránky","Export as":"Exportovat jako","Download QR Code as PNG":"Stažení kódu QR jako PNG","Download QR Code as SVG":"Stáhnout QR kód jako SVG","Upload image":"Nahrát obrázek","Background color":"Barva pozadí","Width (px)":"Šířka (px)","Height (px)":"Výška (px)","Margin (px)":"Okraj (px)","Image margin (px)":"Okraj obrázku (px)","Border radius (px)":"Poloměr okraje (px)","Dots color":"Barva teček","Dots type":"Typ teček","Save QR Code configuration":"Uložit konfiguraci kódu QR","Load QR Code configuration":"Načtení konfigurace kódu QR","Corners Square color":"Rohové čtvercové barvy","Corners Square type":"Rohy Čtvercového typu","Corners Dot color":"Rohy Barva teček","Corners Dot type":"Rohy Typ tečky","With background":"S pozadím","QR code preset":"Předvolba QR kódu","Recommended":"Doporučené stránky","Error correction level":"Úroveň korekce chyb","Low (7%)":"Nízká (7 %)","Medium (15%)":"Střední (15%)","High (25%)":"Vysoká (25 %)","Highest (30%)":"Nejvyšší (30 %)","What is this?":"Co je to?","What is error correction level?":"Co je to úroveň korekce chyb?","Preset":"Přednastavení","dots":"tečky","rounded":"zaokrouhlení","classy":"elegantní","classy-rounded":"elegantně zaoblené","square":"čtverec","extra-rounded":"extra zaoblené","dot":"tečka","Drag and drop a CSV file here or click to select":"Přetáhněte sem soubor CSV nebo klikněte na tlačítko a vyberte","Click to select and upload a CSV file":"Kliknutím vyberte a nahrajte soubor CSV","{count} piece(s) of data detected":"{count} zjištěné údaje","Invalid CSV":"Neplatný CSV","Single export":"Jednotný vývoz","Batch export":"Dávkový export","Creating QR codes... This may take a while.":"Vytváření QR kódů... To může chvíli trvat.","{index} / {count} QR codes have been created.":"{index} / {count} Byly vytvořeny QR kódy.","QR codes have been successfully exported.":"QR kódy byly úspěšně exportovány.","Start new batch export":"Spuštění nového dávkového exportu","There are too many QR codes to be copied to the clipboard at once. Please download them as SVG or PNG instead.":"Do schránky lze zkopírovat příliš mnoho QR kódů najednou. Stáhněte si je raději ve formátu SVG nebo PNG.","bg":"Bulharský","cs":"Česká republika","da":"Dánský","de":"Němčina","el":"Řecký","en":"Angličtina","es":"Španělština","et":"Estonština","fi":"Finsko","fr":"Francouzština","hu":"Maďarština","id":"Indonéský","it":"Italský","ja":"Japonský","ko":"Korejský","lt":"Litevština","lv":"Lotyšský","nb":"Norský jazyk Bokmål","nl":"Holandský","pl":"Polský","ptBR":"Portugalština (Brazílie)","ptPT":"Portugalština (Portugalsko)","ro":"Rumunština","ru":"Ruský","sk":"Slovenská","sl":"Slovinština","sv":"Švédský","tr":"Turecký","uk":"Ukrajinský","zh":"Čínský"}
Loading
Loading