https://alobuuls.github.io/typing-speed-test/
Typing Speed Test is a browser-based typing game built with vanilla JavaScript.
Players must type randomly generated words as quickly and accurately as possible before the timer reaches zero. At the end of each session, the application generates detailed statistics including typing speed, accuracy, correct words, incorrect words, and corrected mistakes.
Before running the project, make sure you have:
- 🌐 A modern web browser (Chrome, Firefox, Edge, Safari)
- 📦 Git (optional)
Check that Git is installed:
git --versiongit clone git@github.com:alobuuls/typing-speed-test.git
cd typing-speed-testNo dependencies or package installation are required.
You can simply open:
index.html
or run the project using Live Server in Visual Studio Code.
Open the index.html file directly in your browser or start a local development server.
The application is built using vanilla JavaScript and direct DOM manipulation.
Responsible for:
- Initializing the game
- Managing the countdown timer
- Generating random words
- Restarting the game session
Handles:
- User keyboard input
- Character validation
- Word validation
- Navigation between words
Calculates:
- Correct words
- Incorrect words
- Corrected words
- Correct characters
- Incorrect characters
- Corrected characters
- Accuracy percentage
- Words Per Minute (WPM)
- ⌨️ Real-time typing test
- ⏱️ 30-second countdown timer
- 🎯 Character-by-character validation
- 📊 Automatic WPM calculation
- 📈 Accuracy percentage calculation
- ✅ Correct word tracking
- ❌ Incorrect word tracking
- 🔄 Corrected error detection
- 🎲 Random word generation
- 📋 Detailed performance statistics
- 🔁 One-click restart functionality
| Key | Action |
|---|---|
| Any key | Start the game |
| Letters | Type words |
| Space | Submit current word |
| Backspace | Correct mistakes |
| Reload Button | Restart game |
- HTML5
- CSS3
- JavaScript (ES6+)
- DOM API
typing-speed-test/
├── index.html
├── styles.css
├── main.js
├── images/
│ └── preview.png
└── README.md
- Separation of responsibilities
- Efficient DOM manipulation
- Event-driven architecture
- Reusable functions
- Real-time validation logic
- State management through JavaScript
- Clear and maintainable code structure
Practice and strengthen fundamental JavaScript concepts through an interactive application:
- DOM manipulation
- Keyboard events
- State management
- Real-time data processing
- Performance metrics calculation
- User interaction handling
- Application architecture without frameworks
This project is intended for educational and portfolio purposes.
Created by Alondra Francisco.
