Skip to content

⌨️ A full-stack SPA typing trainer for touch-typing. Generates random lessons by language/count. Final test uses multiple text sources: AI (cloud/local), seeded database, or custom files. Features: virtual keyboard, error highlighting, progress tracking, and statistics.

License

Notifications You must be signed in to change notification settings

mezentsevs/typing-trainer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Typing trainer

Note on Future Development

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.

About 'Typing trainer'

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:

Getting Started

  • 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

That's it! Thank you!

Screenshots

2025-07-31_23-19-20 2025-07-31_23-19-42 2025-07-31_18-46-38 2025-07-31_18-47-18 2025-11-05_17-45-59 2025-11-05_18-13-54 2025-07-31_18-50-33 2025-07-31_18-51-37 2025-07-31_23-47-00 2025-07-31_23-47-16 2025-07-31_23-49-14 2025-07-31_23-49-44 2025-07-31_19-06-21 2025-07-31_19-06-53 2025-07-31_19-08-42 2025-07-31_19-09-09 2025-07-31_19-09-31 2025-07-31_19-09-53 2025-07-31_23-55-56 2025-07-31_23-56-21 2025-07-31_19-26-42 2025-07-31_19-27-36

License

The 'Typing trainer' is open-sourced software licensed under the MIT license.

About

⌨️ A full-stack SPA typing trainer for touch-typing. Generates random lessons by language/count. Final test uses multiple text sources: AI (cloud/local), seeded database, or custom files. Features: virtual keyboard, error highlighting, progress tracking, and statistics.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published