Repository files navigation [JavaFX GUI] Typing Test Platform
User - represents a registered user
TypingTest - the data of a completed typing test for maintaining a history
TypingSession - a session of typing (for a test or a challenge)
Text - the content used for typing tests
Achievement – defines an achievement that can be unlocked by the user
TestsTakenAchievement – achievement granted when a certain number of tests is completed
SpeedAchievement – achievement granted when a certain typing speed is reached
Notification – message received by a user when they are surpassed in the WPM leaderboard
TestTimer – a timer that measures the duration of a typing test
Challenge – defines a challenge that can be taken by a user
SpeedChallenge – speed-based challenge
TimeChallenge – time-based challenge
LeaderboardEntry – an entry in the leaderboard
When the application starts, users can log in using their username
If a user with the entered name exists in the database, their data is loaded
If a user with the entered name does not exist in the database, a new entry is created
Users can take a test to check their typing speed
The system automatically calculates and displays the typing speed at the end of the test
Users can choose a category for the text they want to type
Users can opt to take a random challenge (e.g., type a text in under X seconds or at a speed of at least Y WPM) and earn a certain score
At the end of a challenge, the system checks whether the user's performance meets the challenge criteria
Users can view the leaderboard based on typing speed
The typing speed leaderboard is updated after each test
For every user surpassed in the WPM leaderboard by the current user, a notification is sent
At the end of a test, the system checks whether the user has unlocked any predefined achievements
Users can view the leaderboard based on challenge scores
The challenge score leaderboard is updated after each challenge
Users can view the list of completed challenges
Users can view the list of unlocked achievements
Users can view the list of system-generated notifications when they are surpassed in the typing speed leaderboard
Users can delete their own notifications
Users can log out from the system
Entity Relationship Diagram
About
Typing Test Application in Java with Layered Architecture & SQL Integration via JDBC
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.