Please be aware that this project might transition to a commercial subscription-based service for advanced features in the future. While currently open-source, contributions are not actively encouraged at this stage. Plans may change based on further development. Thank you for your understanding.
This is a typing trainer, written in and for educational and demonstrational purposes.
A full-stack SPA typing trainer for mastering touch-typing. It generates random lessons based on language and count. The final test sources text through multiple strategies: genre-based AI generation using cloud or local models, a seeded database, or user-uploaded files. Features include a virtual keyboard, real-time error highlighting, progress tracking, and detailed statistics.
Based on tech stack:
- HTML,
- PHP,
- Laravel,
- Sanctum,
- MySQL,
- TypeScript,
- Vue,
- Vue Router,
- Pinia,
- Axios,
- CSS,
- TailwindCss,
- Docker,
- Sail,
- Swagger,
- Postman,
- Scribe.
- Clone the repository:
git clone [repository-url]- Change directory to project:
cd /path/to/typing-trainer/- Install php dependencies:
composer install- Create .env file:
cp .env.example .env- Generate application key:
php artisan key:generate-
Run Docker Desktop (with wsl - for Windows only)
-
Run wsl (for Windows only):
wsl- Run Sail:
./vendor/bin/sail up- Add new tab in terminal and connect to container:
docker exec -it typing-trainer-laravel.test-1 bash- Install php dependencies (optional, if missing some required php extension in base system):
composer install- Run migrations:
php artisan migrate- Install node dependencies:
npm install- Build project:
npm run build-
Configure your AI model in .env (tested with LM Studio + qwen/qwen3-1.7b)
-
Configure your custom AI text generation prompt template or delete it from .env for using default
-
In browser go to http://localhost/
-
Register new user on http://localhost/register (enter your name, email, password)
-
Or you can seed database with user (name: Test User, email: test@example.com, password: password) and default texts for final tests:
php artisan migrate:fresh --seed- Login on http://localhost/login
That's it! Thank you!
The 'Typing trainer' is open-sourced software licensed under the MIT license.