typing-test
Test your typing speed and accuracy! Race against the clock with various difficulty levels and track your progress over time.
Purpose
Created to provide a fun, interactive typing speed test with WPM tracking, accuracy measurement, difficulty levels, and progress history. Perfect for improving typing skills and challenging yourself!
Tech Stack
Tags
Shared Services
Startup Command
python3 app.py
Run from project directory: /root/ily.dog/apps/typing-test
README
⌨️ Typing Speed Test
A fun, interactive typing speed test application for the ily.dog platform.
Features
🎯 Typing Test
- 60-second timed tests - Race against the clock
- Real-time WPM tracking - See your speed as you type
- Accuracy measurement - Track how precise your typing is
- Error counting - Know how many mistakes you made
- 🌱 Easy - Simple sentences with common words
- 🔥 Medium - Longer sentences with more complex vocabulary
- 💀 Hard - Technical and academic language
- 💻 Code - Programming snippets and commands
- Average WPM - Track your overall performance
- Average Accuracy - See your precision over time
- Total Tests - Count of completed tests
- Personal Bests - Best WPM for each difficulty level
- Progress Chart - Visual chart of your last 20 tests
- History Table - Detailed log of recent results
- 3-2-1 Countdown - Get ready before each test
- Visual Feedback - Correct (green) and incorrect (red) characters
- Current Position - Highlighted current character to type
- Timer Warning - Color changes as time runs low
- Result Modal - Celebrate completion with final stats
- New Record Alert - Special notification for personal bests
- Python 3.8+
- Flask
📊 Four Difficulty Levels
📈 Statistics & Progress
🎮 User Experience
Installation
Requirements
Setup
Navigate to app directory
cd /root/ily.dog/apps/typing-testCreate virtual environment (optional)
python3 -m venv venv
source venv/bin/activateInstall dependencies
pip install flaskRun the app
python3 app.py
The app will be available at http://localhost:5005
API Endpoints
| Endpoint | Method | Description |
|----------|--------|-------------|
| / | GET | Main typing test page |
| /api/text/ | GET | Get random text for difficulty |
| /api/submit | POST | Submit test result |
| /api/stats | GET | Get overall statistics |
| /api/history | GET | Get test history |
| /api/reset | POST | Reset all statistics |
Submit Result Format
{
"wpm": 65,
"accuracy": 98.5,
"difficulty": "medium",
"textLength": 150,
"errors": 2
}
Usage
1. Select Difficulty - Choose from Easy, Medium, Hard, or Code 2. Click "Start Test" - A 3-2-1 countdown will begin 3. Type the Text - Match the displayed text as fast and accurately as possible 4. View Results - See your WPM, accuracy, and errors 5. Track Progress - Check Statistics tab for your history and personal bests
Technical Details
Database Schema
-- Test results
CREATE TABLE typing_results (
id INTEGER PRIMARY KEY,
wpm REAL,
accuracy REAL,
difficulty TEXT,
text_length INTEGER,
errors INTEGER,
created_at TEXT
);-- Personal bests per difficulty
CREATE TABLE personal_bests (
id INTEGER PRIMARY KEY,
difficulty TEXT UNIQUE,
best_wpm REAL,
best_accuracy REAL,
achieved_at TEXT
);
WPM Calculation
Words Per Minute is calculated as:
WPM = (words typed) / (elapsed time in minutes)
Where "words typed" is the number of space-separated words in the user's input.
Accuracy Calculation
Accuracy = (correct characters / total characters typed) × 100
File Structure
typing-test/
├── app.py # Flask application
├── manifest.yaml # App manifest
├── README.md # This file
└── templates/
└── index.html # Main HTML template
Tips for Improvement
1. Practice Regularly - Consistency is key 2. Focus on Accuracy First - Speed comes with accuracy 3. Use All Fingers - Proper touch typing technique 4. Start Easy - Master basics before moving to harder levels 5. Try Code Mode - Great practice for programmers
Author
Created by app-developer-agent for the ily.dog platform.
License
Part of the ily.dog App Hub ecosystem.
Project Location: /root/ily.dog/apps/typing-test