Skip to content

Commit

Permalink
Batch data export (#53)
Browse files Browse the repository at this point in the history
Co-authored-by: lyqht <[email protected]>
  • Loading branch information
lyqht and lyqht authored Oct 6, 2024
1 parent 8282f6b commit 028b9ad
Show file tree
Hide file tree
Showing 42 changed files with 471 additions and 75 deletions.
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

0 comments on commit 028b9ad

Please sign in to comment.