A beautiful, interactive typing test application with multiple modes, games, and themes. Built with Flask backend and modern web technologies.
- Standard Typing Test: Practice with random texts and track your WPM and accuracy
- HTML Practice Mode: Improve your coding speed with HTML snippets
- Real-time Stats: Live WPM, accuracy, and timer tracking
- Word Race: Race against the clock to type as many words as possible
- Typing Shooter: Shoot falling words by typing them correctly
- 4 Beautiful Themes: Dark, Blue, and Light
- Theme Persistence: Your theme choice is saved automatically
- Responsive Design: Works perfectly on all devices
- List of relevant stats
- Dynamic Content: Add/edit typing texts and HTML snippets from the UI
- No File Editing: Update content directly in the browser
- Persistent Storage: Changes are saved to JSON files
- Python 3.7 or higher
- Flask
-
Clone or download this project
-
Install Flask (if not already installed):
python -m pip install flask- Run the application:
python app.py- Automatic Launch: The app will automatically:
- Find an available port (starting from 5000)
- Launch in your default browser
- Display the URL in the terminal
- Choose Your Theme: Select from 3 beautiful themes in the top-right corner
- Pick a Mode: Use the navigation tabs to switch between different typing modes
- Start Typing: Click "Start Test" and begin typing!
- Click "๐ Start Test" to begin
- Type the displayed text as accurately as possible
- Watch your WPM and accuracy update in real-time
- Use "๐ New Text" to get a different text
- Perfect for developers wanting to improve coding speed
- Practice with real HTML snippets
- Same timing and accuracy tracking as the standard test
- 30-second challenge to type as many words as possible
- Press Enter after each word
- Score points based on word length
- Type falling words to "shoot" them before they hit the bottom
- 3 lives to start with
- Score points for each successful hit
- Go to "โ๏ธ Manage Content" tab
- Add your own typing texts (one per line)
- Add your own HTML snippets (one per line)
- Click "๐พ Save" to update the content
- Changes take effect immediately
- ๐ Dark: Classic dark theme for comfortable typing
- ๐ Blue: Cool blue theme for focus
- โ๏ธ Light: Clean light theme for day use
This app is designed to work with PyInstaller for standalone distribution:
# Install PyInstaller
python -m pip install pyinstaller
# Create executable (run from project directory)
pyinstaller --onefile --windowed --add-data "templates;templates" --add-data "static;static" --icon "logo.ico" app.py
- Flask: Lightweight Python web framework
- Auto Port Detection: Finds available ports automatically
- JSON Storage: Simple file-based content storage
- RESTful API: Clean API endpoints for content management
- Vanilla JavaScript: No heavy frameworks, just clean JS
- CSS3: Modern styling with animations and transitions
- Responsive Design: Mobile-first approach
- Local Storage: Theme preferences and scores saved locally
โโโ app.py # Flask backend
โโโ templates/
โ โโโ index.html # Main HTML template
โโโ static/
โ โโโ css/
โ โ โโโ styles.css # All styles and themes
โ โโโ js/
โ โ โโโ script.js # Application logic
โ โโโ data/
โ โโโ typing-texts.json # Typing test texts
โ โโโ html-snippets.json # HTML practice snippets
โโโ README.md
- Use all 10 fingers for maximum typing speed
- Focus on accuracy first, speed will follow
- Take regular breaks to avoid strain
- Practice different types of content using the content manager
- Try all themes to find what works best for you
- Play the games to make practice more engaging
App won't start?
- Make sure Python and Flask are installed
- Check if the port is available
- Try running with
python -m flask run
Browser doesn't open automatically?
- Check the terminal for the URL
- Manually navigate to
http://127.0.0.1:5000(or the displayed port)
Content not saving?
- Check file permissions in the project directory
- Ensure the
static/data/folder exists
Feel free to enhance this app! Some ideas:
- Add more typing games
- Implement user accounts and statistics
- Add sound effects and animations
- Create more themes
- Add difficulty levels
This project is open source and available under the MIT License.
Happy Typing! ๐
Made with โค๏ธ for typing enthusiasts everywhere!