A minimal typing test built with Java.
- Live errors, wpm, and accuracy displays
- Adjustable difficulty
- Typing sound effect
- Detailed statistics with chart after each test
- Model-View-Controller pattern
- Tested with JUnit
- JavaDoc documentation
- Maven for build
- JUnit for testing
- AWT, Swing, and Flatlaf for GUI
There are two ways to install this project and both ways requires Java JDK 11+. The easiest way to run this project is by using Method 1. Method 2 is recommended if you plan on making changes to the application.
- Download the jar file from the latest Releases.
- Navigate to the directory where your jar is found.
- Run the jar file:
java -jar tizc-0.jar
🔴 Additional requirements: You must have Git and Maven installed.
Clone repository:
git clone git@github.com:creme332/tizc.git
Navigate to the root directory of the project:
cd tizc
Install dependencies:
mvn clean install
Run src/main/java/com/github/creme332/App.java
in an IDE.
To create a jar file:
mvn clean compile assembly:single
To generate jacoco code coverage report:
mvn jacoco:prepare-agent test install jacoco:report
Click on the Play
button and start typing when you are ready. As soon as you make a mistake, the cursor will stop, and you will have to type the correct letter.
🟢 Tip: When a mistake is made, there is no need to press Backspace.
🟢 Tip: Press Tab to restart/reset test at any time. The timer only starts when you start typing.
- In death mode, wait 2s before showing game over screen
- Add more tests including UI tests
- Refactor PlayScreen by splitting view into subviews
- Connect to mysql database
- Create a dynamic scoreboard
- Save high score
- Add new features
- Add time limit and cancel tests longer than this limit
- Track worst keys typed
- Support capital letters, punctuation, numbers.
- Use JPackage to convert .jar to .exe
- Make UI responsive
- List of english words in
words.txt
: https://www.ef.com/wwen/english-resources/english-vocabulary/top-1000-words/ - Font from Google Fonts
- Passive View MVC Pattern