A minimal, no-build, single-page matching game for language learning.
Import a CSV → generate cards → drag & drop to match rows.
View Demo »
·
Report Bug
·
Request Feature
CSV Match Cards is a tiny browser-only game that turns CSV rows into draggable cards. The goal is to build correct groups: each group must contain cards from the same CSV row, respecting the chosen column order.
- CSV import with preview (first 5 rows).
- Configurable delimiter and header row detection.
- Choose rows per round (K) and columns (2–6).
- Drag & drop on desktop and mobile (touch).
- “?” hint highlights sibling cards from the same CSV row for 1 second.
- Shuffle unsolved cards.
- Vanilla JavaScript (no build step).
- HTML + CSS.
- PapaParse for CSV parsing.
- Material Web Components (Material Design 3) via CDN import map.
- A modern browser (Chrome/Firefox/Safari).
- CSV exported as UTF-8 (recommended).
-
Clone the repo:
git clone https://github.com/KaMeLoTmArMoT/CardMatch.git cd CardMatch -
Run a local static server (recommended):
python3 -m http.server 8000 --bind 0.0.0.0
-
Open in browser:
- Desktop: http://localhost:8000/
- Phone (same Wi‑Fi): http://<YOUR_PC_LAN_IP>:8000/
- Open the app (demo or local).
- Click Import CSV (or drop the file into the import dropzone).
- Enable “First row contains column names” if your CSV has headers.
- Pick delimiter if needed, then click Apply.
- Select columns (2–6), set Rows per round (K), and click Start / Restart round.
- Drag cards into group slots:
- Green = correct group (same row + correct column order)
- Red = incorrect group (fix by moving cards)
Any rectangular CSV works. Each selected column becomes one card. Example (2 columns):
de,en
Haus,house
Baum,treeExample (3 columns):
present,past,future
go,went,will goHeaders:
Infinitiv | Präteritum | Perfekt | Переклад
- Move solved groups to the bottom with a short success animation.
- Improve mobile layout for many columns (4–6).
- Optional “tap to place” mode (non-drag alternative).
- Export/import round state (optional).
See the open issues.
Contributions are welcome:
- Fork the repo
- Create a feature branch
- Open a PR
For bug reports, please include:
- Device + browser
- Steps to reproduce
- A small CSV sample (or screenshot)
This project is licensed under the MIT License — see LICENSE.
- README structure inspired by Best-README-Template.
- Built with assistance from a generative AI tools for ideation and code suggestions; all changes were reviewed and tested by the author.

