Development of Player-Friendly Web-Based Golf League Management Application

Abstract

Golf is played by millions around the world because of its accessibility to all age groups and the social nature of competition. One of the most popular ways to play with peers is through recurring league competitions. However, league play requires extensive management because of the information handling and coordination involved. This paper presents the development of a web application which facilitates league management by automating and consolidating management processes. Using this application, golfers can easily create and join leagues of peers, store player information, organize competitions, and update scores throughout play. While some golf league applications already exist, none of these alternatives provide sufficient flexibility and automation at no cost. To address this need, the presented application enables the simultaneous management of multiple leagues and courses. The application also automatically generates teams for each competition based on player handicaps. To reduce management workload, responsibilities are distributed amongst all players and scores can be input and viewed live. While existing alternatives address some of these needs, there are none which provide all these features on one platform. By automating these processes and consolidating them into one application, golfers will be able to focus on the competitive and social experience of their leagues.

Share and Cite:

Staton, D. and Bellah, J. (2022) Development of Player-Friendly Web-Based Golf League Management Application. Journal of Software Engineering and Applications, 15, 59-74. doi: 10.4236/jsea.2022.153003.

1. Introduction

Developing an application is a creative process in which new knowledge is created [1] . As a result of the interactions between developers, users, and development tools, new understandings emerge related to the domain [2] [3] . The authors of this paper embarked on a journey to make the creation of teams easier for a local golf club in their weekly golf league. In the process of creating an application to address this issue, we identified a comprehensive model that allows for better management of golf leagues generally.

Played by approximately 24.8 million Americans in 2020, golf is one of the countries favorite pastimes and it continues to grow in popularity globally [4] . As a game that can be enjoyed by people of all ages and varying levels of skill, golf is one of the most accessible sports in the world. Due to the low physical impact nature of the sport, it can be played with relatively low physical risk or requisite athleticism. Golf can also be a great way to socialize by playing with friends or in community events. While other sports can be played with others, golf allows participants to converse in a low intensity environment making it more of a social experience than other athletic games. One of the most popular ways to play golf with colleagues is through leagues with recurring competitions. League play allows participants to play competitive events either in a team or individual format and keep a record of scores. The outcome and scores of each event can then be used to determine a winner(s) over the course of a season.

One of the biggest challenges with running a golf league is the extensive management required. Typically, a golf league is made up of about forty members and can get even larger, so much of the work done running a league involves management of player data including handicaps, scores, and points. Another significant component of league management is course data including holes, pars, and different games like scramble and best ball. To successfully run a golf league, league managers must use both player and course data to carry out many duties like player registration, event coordination, team assignment, and scoring. With many players and the potential to use different course for events, managing all this data and carrying out these responsibilities can be an overwhelming amount of work. Yet, many golf leagues still rely on pen and paper for this process. Recently, however, automated golf league applications have become a popular solution to reduce management workload allowing participants to focus more on the competitive and social experiences which are the true purpose of the golf league.

In 2020, the number of golf participants in the U.S. experienced the largest growth in seventeen years at more than two percent [5] . As the game continues to grow and subsequently more leagues form, there is an increasing need for effective management applications. To address this need, we developed an application to automate and streamline the many processes involved in golf league management. Among the existing gaps being addressed by this application are the capacity for multiple leagues and courses to be managed simultaneously, automated team generation based on handicap, distribution of responsibilities among all players rather than just the designated manager, live mobile scoring, and no cost to the user. While previous solutions each address some of these needs, there is not one application which provides all these features in one platform.

2. Existing Works

One of the most popular and comprehensive software available is Golf Genius [6] . This high-quality solution provides many important features including online registration, different game types, and live mobile scoring. It also has a well-developed user interface which makes it the tournament management software of choice for organizations like the USGA. However, it caters more toward these large tournaments and therefore doesn’t offer multiple league and course capability, team generation, or player-oriented management. The software is also expensive with an annual subscription cost of $3400 plus a $500 one-time onboarding fee. This price along with inability to generate teams of any size or play different courses within one league makes Golf Genius ineffective for leagues that operate independently of a golf club.

At $6 per golfer annually, GolfSoftware’s League Manager [7] is another more-affordable solution for independent golf leagues. This platform has functionality for team generation, multiple courses, user registration, and live scoring making it a comprehensive solution as well. It also gives league managers options to delegate responsibilities which can help reduce workload. However, the minimum number of subscriptions required to start a league is sixteen which means the minimum total cost per year is $96. While not very expensive, this price is something to consider with leagues sometimes reaching as many as sixty players. This subscription is also annual and applies to only one league, so costs multiply for recurring leagues or those playing in multiple leagues each year.

League Golfer [8] is another alternative priced at only $99 a year for an entire league regardless of size. However, this application only allows for one course and can’t automatically assign teams according to handicap. There is also no live scoring feature outside of the mobile app which costs an additional $5 for each player to access. Finally, users can’t join events and seasons on their own and must be added by the league manager increasing their workload.

Fringe Golfers [9] is a free software making it the most affordable alternative. This solution has capabilities for managing multiple courses and live scoring. However, there is no automatic team generation based on handicap and players must be individually assigned to teams. Players must also be added to events by the manager rather than allowing players to register on their own which increases management workload. While free live scoring and multiple course functionality make Fringe Golfers an affordable alternative to other league management platforms, the lack of automated team generation and user ability to manage their own seasons and events leave something to be desired. There are also advertisements and some premium features which must be purchased like no-ads and handicap history. Figure 1 summarizes the differences between solutions.

Figure 1. Comparison of alternative solutions.

3. Methodology

We developed a web-based application that will facilitate the management of golf leagues independent from clubs and courses. This solution is free for any golf league to use and includes features like team generation by handicap and live scoring updates as each hole is completed. The application also delegates responsibility for league, season, and event registration to each participant to reduce the workload of the league manager.

3.1. Technology Used

The application was developed using Mendix Low-Code Application Development Platform [10] . The result of this no-code and low-code combination is that business domain experts can work alongside developers to achieve much greater levels of alignment and accelerated delivery. Moreover, the platform’s cloud-native architecture and automation tools support the deployment, management, and monitoring of highly available enterprise-grade applications.

3.2. Domain Model

Figure 2 shows an entity relationship diagram that represents the database structure upon which the application is built.

The League entity ties together most of the model. The League entity is related to the User entity through an associative entity called LeagueManager. This models the functionality where a user can manage many leagues, and each league can be managed by many users. There is a different relationship for users who participate in a league. That relationship goes through the Season entity. Each league, over time, will have multiple seasons. For example, most golf leagues operate during the summer and shut down during the colder months. Users can pay to play in a league during a season, and their points accumulate while that season is active.

Multiple events can occur during a season. Users can participate in events. The database structure allows for users to be assigned to teams for the competition.

Figure 2. Entity relationship diagram.

One unique aspect of this application is that it allows for a league to use multiple golf courses for competitions. This is accomplished using the Course and Hole entities. When an event is scheduled, specific holes on a golf course are assigned to that event. Each hole can have a different game assigned to it, and the game determines how many scores will be recorded. For example, in a Scramble, only one score counts because all of the players work together to earn that score. In a Shamble, players work together for the first shot, but after that, each player plays his/her own ball. That means multiple scores could be recorded.

3.3. User Roles

There are two user roles in the application which are shown in the domain model, a regular user and a league manager. Any user can become a league manager by creating a league from the user home page. Once the user starts a league, they will be able to create seasons and events for their league. The manager can also add courses for the league and assign courses to specific events. For each event, the manager can view registered players and generate approximately even teams based on handicap and the desired number of players per team. Once the teams are generated, they can also be edited manually by the manager. Payment status can also be indicated for each player if necessary. Finally, the league manager can assign holes to each team and specify the game that will be played for each hole. Users can create as many leagues as they wish, and they can also join other leagues in which they will just be a participant.

Users can search all active seasons to join those created by the league manager. On the user home page, they will see all the seasons for which they are registered. After joining, users can view all the players registered and events scheduled. The user can also join events for each season to indicate which ones they will participate in. Once teams for each event are generated, the user can view their teams. During play, users can input live scores as they finish each hole. Upon completion of the event, they can view the allotted points for each team and player.

4. Results

The first version of the application was developed for one golf club and was used during the summer of 2021. There was limited functionality in the application, but the function that was most attractive to the golf club was operational. This function is the team creation process. Creating balanced teams is complicated. Ideally, the golf club wants the same number of A players (excellent golfers), B players (good golfers), etc. on each team. To accomplish this, we developed a process that is similar to a draft with a snaking order.

Figure 3 depicts the logical process of generating teams based on handicap. By dividing the number of players registered by players per team, the application creates the necessary number of teams. If there is a remainder, the number of teams are rounded up. The application then carries out a snake-draft starting with the best player assigned to Team 1. The second-best player is assigned to Team 2 and so on until all teams have one player. Next, the system iterates over the teams in backward order to assign the next best player to the last team continuing until each team has two players. The process continues until all players have been assigned a team.

Live scoring was added to the application in an update later in the summer, but it was never used by the golf club. Allowing players to enter their own scores as each hole is completed saves management the time and responsibility of tracking every player’s performance across the league. It also enhances the competitive nature of play by letting players compare their own performance to others throughout the event. Figure 4 shows the live scoring interface accessed by web and mobile device in which a player enters their team’s scores for a hole. In this case, the game type is “Play your own ball” so multiple players on the team record a score. The total team score for each respective hole is displayed at the bottom of the screen and calculated based on the par value of the hole.

Figure 3. Generating new teams.

Figure 4. Live scoring for mobile device.

The second version of the application was completed after the summer, so it was never used. In this version, functionality was added to allow for multiple leagues to be managed in the application. It also allowed for multiple golf courses to be used in competitions. The impetus for adding these functions was talking with golfers and learning about how golf leagues work in different places. One specific golfer told us he is part of a league that plays competitions where they use a different golf course each time. It will be interesting to see how the application performs when it is used during the next season. Following are selected screenshots and descriptions of functionality to provide the reader with a better understanding of the system.

4.1. User Home Page

Once a player has created an account and logged in, they can access the home page. The home page shows the user all the seasons for which they are registered along with the respective league name. If the user is the manager of any of those leagues, it will also appear under “League Manager” at the top of the page. The user can create a league by clicking the “New League” button. By clicking the “Join A Season” button, users will be able to search all seasons to find and join the active season for their league. Figure 5 shows the user home page.

4.2. League Management

When the user creates a new league, they will become the league manager by default. Figure 6 is a microflow that shows how the application creates a new league entity and assigns the current user as the manager.

Once the league is created, the manager can click the “manage” button on the home page to access the following league overview page. From this page, managers can create new seasons for their league and add courses to play. As seen in Figure 7, the league has two seasons and is only played at Pebble Beach. If a league has multiple seasons, a green button will appear on all non-current seasons allowing the manager to indicate the current season.

4.3. Course & Hole Management

As shown in Figure 7, league managers can view all course information from the league overview page including the address, phone number, and manager if

Figure 5. User home page.

Figure 6. Creating a new league.

Figure 7. League overview.

applicable. To prepare a course for a league event, the manager must add hole information by clicking the “Holes” button next to the course information. This will take you to the following page where you can edit and view par values and yardage of each hole on the course. As a manager, adding hole information for each course is important because it is necessary for scoring. Figure 8 shows the holes overview.

4.4. Event Management

From the league overview page, managers can create and view all league events by clicking on the “Events” button for the desired season. This page shows each event with buttons for all event management features including team generation, selecting holes to be played and corresponding game types, team player lists, and a team scoreboard. Figure 9 shows the events overview.

By clicking the “Hole Details” button, managers can add holes for each event. This allows managers to choose all or only a portion of course holes for each event. Managers can also choose game types for each individual hole in case the league wants to play multiple games within one event. Figure 10 shows the event holes overview.

By clicking the “Registration & Team Generator” button, managers will see a list of all the players who have registered for the specific event. This registration is separate from season registration. The manager can denote payment using the green button on each player’s row. Furthermore, the green button in the top right corner will generate approximately even teams based on the handicaps of the registered players. Figure 11 shows the event registration overview.

Figure 8. Holes overview

Figure 9. Events overview.

Figure 10. Event holes overview.

After clicking the button to generate teams, the following pop-up will appear allowing managers to designate the number of players for each team. This makes the application flexible in facilitating many different league and event structures. Figure 12 shows the generate teams pop-up.

Figure 11. Event registration overview.

Figure 12. Generate teams pop-up.

4.5. Team Management

After teams have been generated, the manager will see the following page showing the players on each team. The page can also be access through the “Team Player List” button on the events page. The green and red buttons allow for manual manipulation of teams if necessary. Player handicaps are also visible to highlight approximate fairness of teams. The manager can assign starting holes to each team which will be visible to players. Figure 13 shows the team player overview.

By clicking the “Team Scores” button on the events page, managers can view and edit the scores of each team by hole. For each team row, “score” refers to the team’s performance on the current event. If applicable, “points” can be used as an accumulated scoring statistic for season-long team competitions to award team points based on event performance. Figure 14 shows the team score overview.

4.6. Player Functionality

One of the most differentiating characteristics of this application is the accessibility

Figure 13. Team player overview.

Figure 14. Team score overview.

to all players. The user home page shown in Figure 3 displays the seasons for which each player has registered. By clicking the “Join A Season” button, players can join any season in the application database. The list of seasons also displays the associated league, helping players distinguish their league’s seasons from others. League managers can remove players who don’t belong in the league. The figure below shows the season display list. Figure 15 shows the list of seasons to join.

Once a player has joined a season, it will appear on their user home page. By clicking the “View” button on a season, players can access the following season overview page. This page displays all the players registered for the season along with their GHIN numbers, handicaps, and season point total. The list of events only displays events for which the player has registered with buttons to access more event information. By clicking the green “Unregistered Events” button, a player can view all the scheduled events for which they have not registered with the option to register. Figure 16 shows the season overview for players.

The “Team Player List” button shows the teams generated by the league manager. This page also shares starting hole and handicap information making it easy for event participants to organize themselves without being told by management. As shown by Figure 17, none of the information is editable.

The “Hole Details” button shows the holes to be played for each event and the corresponding games. As seen in Figure 18, each hole can have a different game type allowing for a fun mix of play. The rules for each game and number of scores can be viewed through the “Game Details” button as shown in Figure 19.

Figure 15. List of seasons to join.

Figure 16. Season overview for players.

Figure 17. Team overview for players.

Figure 18. Event hole overview for players.

Figure 19. Game type overview.

5. Conclusions

Golf is a game enjoyed by millions around the world, and its continuing to grow in popularity because of its accessibility and low physical stress on the body. Golf is also a great way to socialize with peers, so much so that it’s often used for professional networking. Because of the social and competitive experience, playing in a league with peers is one of the most common ways to enjoy golf. However, the challenge of league play is managing players and logistics. While there are some applications which serve one or more of these needs, there are no low-cost solutions designed to delegate responsibility amongst all players which also facilitate multiple courses, game types, and team structures. This application addresses these needs with a free solution that is flexible enough to adapt to any league style and reduces management workload with player-oriented management.

The process of developing the application led to unique insights into the process. Some of what was learned was expected, but there were also surprises. Because the most important functionality to the user was the creation of teams, this part of the application was used every week during the summer. Users expressed relief with the ease of use of the application. During previous seasons, when the creation of teams was done manually, it would be common for a player to ask to be added to the event after teams were created. Modifying teams at this point in time was extremely difficult for the golf club because all of the teams were already balanced with respect to ability. This pain point was alleviated by the application we developed. Users are able to click one button and re-create all of the teams, in a way that was balanced.

The most surprising result of running the application for the season was that the users never used the live scoring functionality. We assume that the users were less excited about that functionality because they never had live scoring to begin with. So the players in the league did not know that it was possible. It will be interesting to see, moving forward, if this changes. Perhaps with a year of successful implementation of basic functions, the users will be more interested in using the more advanced functions.

In all, the creation of the golf league management application was a great experience. We learned much about how golf leagues operate, and we made the management of a league less onerous for one golf club. We are happy to share the design architecture of the system and hope that it will help other developers and researchers in the creation of novel systems.

Conflicts of Interest

The authors declare no conflicts of interest regarding the publication of this paper.

References

[1] Hasan, H. (2003) Information Systems Development as a Research Method. Australasian Journal of Information Systems, 11, 4-13.
https://doi.org/10.3127/ajis.v11i1.142
[2] Markus, M.L., Majchrzak, A. and Gasser, L. (2002) A Design Theory for Systems that Support Emergent Knowledge Processes. MIS Quarterly, 26, 179-212.
[3] Pornphol, P. and McGrath, G. (2011) Information Systems Development as an Emergent Knowledge Research Process. International Journal of Interdisciplinary Social Sciences, 6, 301-318.
https://doi.org/10.18848/1833-1882/CGP/v06i01/51992
[4] National Golf Foundation (2021) Golf Industry Facts.
https://www.ngf.org/golf-industry-research/
[5] Thomas, I. (2021) Golf’s Growth in Popularity Is Much Bigger than a Pandemic Story.
https://www.cnbc.com/2021/09/26/callaway-dicks-sporting-goods-score-with-growth-of-golf.html
[6] Golf Genius (2021) Tournament Management.
https://www.golfgenius.com/tm
[7] Golf Software (2021) League Manager.
http://golfsoftware.com/lm/features.html
[8] League Golfer Web (2021)
https://www.leaguegolfer.com/league-manager-web.php
[9] Fringe Golfers (2020)
https://fringegolfers.com/welcome
[10] Mendix (2021)
https://www.mendix.com/

Copyright © 2024 by authors and Scientific Research Publishing Inc.

Creative Commons License

This work and the related PDF file are licensed under a Creative Commons Attribution 4.0 International License.