A Progressive Web App for learning a foreign language in an accelerated way, built on a progressive curriculum and spaced repetition.
LinguaDrill is a Progressive Web App for learning foreign languages with maximum efficiency. It walks you up a progressive curriculum — alphabet → vocabulary → grammar → phrases — and uses spaced repetition to lock each item into memory before moving on. It currently focuses on Ukrainian, runs in the browser on desktop or mobile, and installs like a native app.
Highlights
- Progressive learning path. Master the alphabet first, then vocabulary, grammar, and phrases — each stage builds on the last.
- Spaced repetition that demands mastery. An item is only considered learned once you answer it correctly three times in a row.
- Per-user progress tracking. Secure registration and login, with progress saved individually per user and per language.
- Installable PWA. Responsive design that works on desktop and mobile and can be added to your home screen.
- Clean REST API. All functionality is exposed through RESTful endpoints, backed by Node.js, Express, and SQLite.
- Secure by construction. JWT authentication with bcrypt password hashing and rate-limited auth endpoints.
Installation
Built on Node.js (16+) with Express and SQLite. Clone, install, configure, and run:
git clone https://github.com/Solifugus/linguadrill.git
cd linguadrill
npm install
cp .env.example .env # then edit .env (PORT, JWT_SECRET, DB_PATH, ...)
npm start
The server listens on port 4000 by default; open it in your
browser and install it as a PWA from there.
Downloads & installation
Builds are coming soon. Grab the source from GitHub for now.