Waterpolo timer application

As I trained water polo in my youth, and later, with friends from the club and my brother, even took over the management of the water polo club for a time, I was well aware of what was happening at the scorer’s table during every water polo match. Dealing with old stopwatches during a game, their maintenance, and the uncertainty of whether they would fail at a critical moment have stuck with me. During my experimentation with angular.js in 2016, I made a simple stopwatch in JavaScript, but it was just an unfinished backup in case the classic mechanical stopwatch failed. It was intended as a functional and ergonomic stopwatch for use on a mobile phone in an emergency. You can see and try out that application at the link https://sheshnjak.github.io/water-polo-stopwatch/ or in the article “Advanced JavaScript.”

Before the possibility of using vibe programming, I hadn’t ventured into making this kind of application, where the basic functionality requires many interconnected elements. Besides that, in recent years there have been some changes in the rules of the game that specifically concern timekeeping and the duration of the attack. That is why the moment has now come for me to dedicate some time and create an application like this. Since water polo is a “small” sport compared to, say, football (soccer), I made the application bilingual and included the option to use the English language.

Water Polo Timer (https://sheshnjak.github.io/waterpolo-timer/):

This application allows for the simultaneous tracking of the main game clock and the shot clock during a water polo match. It is possible to add player exclusions (multiple ones, a double exclusion is also possible). Upon an exclusion, the remaining attack time is automatically set. After the attack time expires, an audible alarm sounds, and the new attack time automatically starts because the assumption is a change of ball possession after the expiry. After a goal is scored, the time automatically stops, and currently active exclusions are paused; due to the time needed for the ball to move from the center, the immediate continuation of the live game time is not assumed. Manual setting of the quarter duration, the entire attack time, or the continuation of the attack after a foul is also enabled. It is also possible to manually correct the main time remaining until the end of the quarter, even in the middle of the quarter.

In the settings, it is possible to switch the application language to Croatian or English and set the names of the teams playing the match. For every key change, an undo option is displayed for 5 seconds. After the match, the application offers the user the option to download a log (record) with the times and sequence of key events – goals scored, exclusions, the start, and the end of quarters. I decided not to have the application’s log contain all the items of a standard match scoresheet. This wouldn’t even be very difficult to program, but the problem lies in the interface through which all that information would be entered in real-time, because entering the player number for every foul or goal scored would be too slow for the application user to follow the match. I intended the application for tracking water polo game time and shot time, and the exclusion time naturally falls into that category. The additional functionality of scorekeeping doesn’t take much extra time, so I added that too.

The application is made as a PWA, which means that after you open it on a mobile device or tablet, you have the option to install it, adding an application icon that will then open full screen. For devices with a physical keyboard (or a connected Bluetooth keyboard), there are also practical keyboard shortcuts, although the layout of the elements is optimized for touchscreen devices so that commands are within finger reach and key information is on the upper part of the screen.

The plan is for the application to be free and to make life easier for everyone involved in water polo in any way. I would like to encourage any user to write me a short email with their experience and suggestion. Feel free to contact me at the email address sheshnjak@gmail.com.