Skip to content

creme332/tizc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tizc

Java coverage

A minimal typing test built with Java.

GIF of typing test

Features

  • 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

Tools

  • Maven for build
  • JUnit for testing
  • AWT, Swing, and Flatlaf for GUI

Installation

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.

Method 1

  1. Download the jar file from the latest Releases.
  2. Navigate to the directory where your jar is found.
  3. Run the jar file:
java -jar tizc-0.jar

Method 2

🔴 Additional requirements: You must have Git and Maven installed.

Clone repository:

git clone [email protected]: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.

Useful commands

To create a jar file:

mvn clean compile assembly:single

To generate jacoco code coverage report:

mvn jacoco:prepare-agent test install jacoco:report

Usage

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.

To-do

  • 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

References