Skip to content

MRThugh/AryaKeys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

⌨️ AryaKeys

Python CustomTkinter Platform License Open Source Status Contributions

A clean, modern, and smooth typing test application inspired by MonkeyType — built with Python and CustomTkinter.


🚀 About The Project

AryaKeys is a fast, minimal, and beautifully designed desktop typing test app that tracks your typing performance in real time.

It features accurate WPM calculation, keystroke tracking, error detection, animated caret rendering, and automatic history saving — all wrapped inside a polished dark UI.

Built with clean architecture and performance optimizations in mind.


✨ Features

  • ⚡ Real-time WPM calculation
  • 🎯 Accurate keystroke & error tracking
  • 📊 Accuracy percentage tracking
  • ⏱ Time-based tests (15 / 30 / 60 seconds)
  • 📝 Word-based tests (10 / 25 / 50 words)
  • 📈 WPM history recording
  • 💾 Automatic local JSON result saving
  • 🖥 Smooth dark-themed UI
  • 🎨 Per-character highlighting (correct / incorrect / untyped)
  • ✨ Blinking animated caret
  • 🔁 Instant restart with Tab or Ctrl + R
  • 🛡 Corruption-safe history file handling
  • 🧠 Optimized rendering logic for performance

🏗 Architecture

The project follows a modular structure:

  • TextProvider → Supplies words and quotes
  • TypingEngine → Manages typed input and character states
  • StatsTracker → Calculates WPM, accuracy, errors, and timing
  • HistoryManager → Safely saves and loads JSON history
  • AryaKeysApp (GUI) → Handles rendering and user interaction

Clean separation of concerns makes the project easy to maintain and extend.


📦 Installation

Clone the repository:

git clone https://github.com/MRThugh/AryaKeys.git
cd AryaKeys

Install dependencies:

pip install customtkinter

Run the application:

python main.py

📊 How WPM Is Calculated

AryaKeys follows the standard formula:

[ WPM = \frac{(\text{Correct Characters} / 5)}{\text{Elapsed Minutes}} ]

Accuracy:

[ Accuracy = \frac{\text{Correct Characters}}{\text{Total Typed Characters}} \times 100 ]


📁 Project Structure

AryaKeys/
│
├── main.py
├── aryakeys_history.json   # Auto-created
└── README.md

📝 Example Saved Result

{
  "timestamp": "2026-05-05T14:32:10",
  "wpm": 72,
  "accuracy": 95,
  "errors": 6,
  "keystrokes": 320,
  "mode": "time 30",
  "wpm_history": [[1.0, 48], [2.0, 52], [3.0, 60]]
}

🌍 Open Source

This project is open source and open to contributions.

Feel free to:

  • Fork the project
  • Submit pull requests
  • Suggest improvements
  • Add new features

Contributions are always welcome ❤️


📜 License

This project is licensed under the MIT License.

You are free to use, modify, distribute, and build upon this software, provided that the original license is included.

See the LICENSE file for details.


👨‍💻 Author

Ali Kamrani
GitHub: https://github.com/MRThugh


⭐ If you like this project, consider giving it a star!

About

A modern, clean, and smooth Python typing test app inspired by MonkeyType — built with CustomTkinter and packed with real-time stats, WPM tracking, and history logging.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages