A modern Typing Speed Test web application built with Vanilla JavaScript, following a clean MVC architecture.
The project focuses on smooth UI/UX, real-time feedback, and accurate typing statistics like Score and WPM.
This project is fully static (no database), fast, and perfect for deployment on GitHub Pages.
- ⏱ 60-second timer (starts on first key press)
- ⌨️ Real-time typing feedback
- ✅ Green letters → correct
- ❌ Red letters → incorrect
- 🔄 Backspace support (resets letter state correctly)
- 📊 Live score tracking
- 🚀 WPM calculation (Words Per Minute)
- 🔊 Optional typing sound effect
- 🔁 Restart button
- 🎨 Smooth animated gradient background
- 📱 Fully responsive design
- 🧩 Clean MVC file structure
This project follows the Model – View – Controller pattern:
- Model → Handles word generation logic
- View → Handles DOM updates and UI rendering
- Controller → Handles game logic and user input
- Main → Application entry point
This structure keeps the code clean, scalable, and easy to maintain.
typing-speed-test/
│
├── index.html
│
├── assets/
│ ├── css/
│ │ └── style.css
│ │
│ └── sounds/
│ └── type.mp3
│
├── js/
│ ├── main.js
│ │
│ ├── controller/
│ │ └── appController.js
│ │
│ ├── model/
│ │ └── wordsModel.js
│ │
│ └── view/
│ └── uiView.js
│
└── README.md
- HTML5
- CSS3
- Flexbox
- Animations
- Gradient backgrounds
- JavaScript (ES Modules)
- Font Awesome (icons)
- Google Fonts
- Inter
- JetBrains Mono
WPM = (Correct Characters ÷ 5) ÷ Minutes
This is the standard typing test formula used across professional platforms.
- Clone or download the project
- Open
index.htmlin your browser
(or deploy directly to GitHub Pages)
No build tools. No dependencies. Just open and type.
Developed by:
Nojaid Abdullah Issa
- 🐙 GitHub: Nojaid-Ad
- ✈ Telegram: Nojaid
- 📧 Email: nojaidnojaid@gmail.com
All rights reserved ©
This project is for learning, showcasing skills, and portfolio use.