Sei sulla pagina 1di 17

Capstone Final Report Hasemeyer Page 1

Baseball League Manager

CST 499 Directed Capstone

Austin Hasemeyer

October 16, 2017


Capstone Final Report Hasemeyer Page 2

Executive Summary

Baseball is one of if not the most statistically dependent sports in the world;

everything from batting average to the color of the winning pitchers socks is recorded and

stored. Some of these statistics may be more useful than others however the more data that you

have on a particular player the better equipped your team is to go against them. In contrast these

statistics can also vastly improve players on your own team by highlighting their weaknesses and

showing all of the holes in your game.

Professional baseball teams have a vast array of tools and professional statisticians at

their disposal and can create incredibly detailed stats and sabermetrics to relay this crucial

information to the players. All of this data has led to major changes in Major League Baseball

the most apparent of all is the shift. The shift has always been around in baseball, at least in a

minimal sense, but with new emerging statistics teams are able to tell exactly where on the field

a player is more likely to hit the ball and field accordingly. This concept is still rather

controversial in Major League Baseball but its impact is unescapable almost every team is now

resorting to shifting for power hitters and some teams for almost every at bat.

Since major league teams have so many statisticians they are able to come up with these

shifts based on the numbers; however, couldnt this play style also help in independent leagues?

For my Capstone project I am going to create a program that fills this void. My program,

Baseball League Manager, will be the perfect platform for independent leagues to create teams,

players, and leagues while retaining data for each respective position. This will allow for teams

to be able to breakdown all of their players games into feasible numbers that can help them

improve their play style.


Capstone Final Report Hasemeyer Page 3

Table of Contents
Capstone Final Report Hasemeyer Page 4

Introduction

For years amateur baseball leagues have been sprouting up all around the United States

from youth to adult leagues everyone wants in on the fun. For these small independent leagues,

the matter of score keeping and keeping up player statistics can be overwhelming and laborious.

Calculating every players weekly statistics can only be done at the most basic level before you

are buried in a mountain of paperwork. Going to the league playoffs can be a complete guessing

game as you spent all of your time meticulously compiling your teams statistics and you had no

time to scout out your competition. If only there was a simple way to be able to present your

players with all of their individual statistics along with their completions. Well now thanks to

Baseball League Manager every team, player, and managers statistics can be located with the

press of a button.

Baseball League Manager is a Java based program that allows a manager or league

commissioner to create leagues, teams, and players then compare them against each other.

Baseball League Manager takes all of the statistic calculations out of the hands of a team

manager and generates everything from just a few fields that can be easily updated with just a

few clicks by using an up-to-date JavaFX interface. All of this information is stored in SQL

databased for easy retrieval so when game day comes a manager can quickly pull up his

opponents information just as easily as he could pull up his own teams information. This will

allow for teams to be more prepared for their competition and lead to better game play and

further improve a players ability to adapt to challenges.


Capstone Final Report Hasemeyer Page 5

To test the efficacy of Baseball League Manager it needs to be applied in a competitive

setting as it is designed to help improve a players shortcomings. Of course, the system can be

applied on any level of baseball and can be used casually to only record one team; but to be fully

implemented it should be applied in a competitive league. An ideal setting for this program

would be in either a High School League of in a city Little League program. Both of these

settings involve players who are not yet at their full potential and have much to learn and to

improve upon. Helping developing player is the key aim for this program, as more and more

information is added to the system the more apparent a players shortcomings will become

making it easier to pin point where they can improve and become a better player.

Project Goals and Objects

Goals

To ensure that the information that is being given to the players is not only accurate but

useful you need to consider what a player needs to know in order to improve their game. Most

scoresheet software will simply record a players slash line and leave it at that, a slash line being

their batting average, on base percentage, and their on base plus slugging or .300/.333/.400 as an

example. This information is important but it does not show the entire picture, for example a

batter may be only batting .100 against right handed pitchers while .500 against left, seeing that

batters average as .300 would rather deceiving. There will be several important splits that

Baseball League Manager will provide to help pin point how the player can improve. Many of

these will be focused towards the batters ability to perform versus certain matchups. Throwing

arm is a very important focus as a batter may have very different results against a left-handed

throwing pitcher opposed to a right-handed pitcher. Throwing arm matchups are not the only
Capstone Final Report Hasemeyer Page 6

discernable statistics as there are several others, from pitch type to field type everything can and

will affect a players ability to perform on any given day. To ensure all of these issues are

addressed in Baseball League Manager there are certain objectives that must be met.

Objectives

To determine if all a players possible needs are met I have complied a list of the most important

aspects needed for Baseball League Manager.

Team and Player creation must be simple and easily manageable.

Players can be broken down by Player type: Hitter, Pitcher and Manager all have unique

statistics pertaining to their position.

User Interface must be intuitive, after every game all data needs to be entered so you

must be able to update one of your players with minimal button presses.

o No unnecessary information should be entered, a lot of baseball statistics can be

determined from a limited number of data.

Information must be stored in a quick and readily available format.

All Players must be securely stored and edited, mainly by only allowing those who

created a record to edit that record.

Player data must be easily converted to physical documents that display the correct

information for a particular position.

Player records should be as inclusive as possible and easily editable.

o Player records contain type, position, name, team, and a picture of the player.

o Can only be edited by creator.


Capstone Final Report Hasemeyer Page 7

Must be some level of secrecy for players statistics to protect poor performers from over

scrutiny.

Must be able to pull up data using different breakdowns, such as: lookup by team, by

position, by type etc.

Looking up player data must be done efficiently and simply, MySQL allows for both of

these.

Usability Testing/Evaluation

To develop Baseball League Manager, I stuck to the methodology of the Agile

development method, that being the case continuous tested had to take place throughout the

development process. To ensure that every new feature would not interfere with the overall

program each had to be extensively tested at time of creation.

For example, for each class within the Model there was extensive Junit testing for each

class ensuring that no data could be corrupted or lost in the creation, update and editing stages.

One of the more important classes is one named DBUtil, the purpose of this class is handle all

exchanges between Baseball League Manager and MySQL. Again, though several Junit tests all

of the bugs between the two software were worked out.

The more difficult testing environment was the testing and exception handling of the

GUI. For each entry page there was extensive exception handling to ensure that there was no

way that a user could accidently insert some bad data into the system, for example you cannot

have characters in your player number. This process was rather lengthy but once complete the

program was ready for real user testing.


Capstone Final Report Hasemeyer Page 8

The main focus of real user testing was not for errors as most of these had already been

flushed out at this point, but was more focused on ease of use for entries. To test these three

testers were asked to enter the MLB AL West division into the software, each tester was given a

different team. This was a test not only for how easily player data could be used but as a way to

populate the system with a large amount of data to try to find any bottlenecks in the data

processing process.

This test was successful in improving the flow of the data entry pages and was able to

bring some additional issues to light. As for the data retrieval there was no significant delays in

loading any individual player or even a list of all players, and no issues with bad data being

passed into the system. The testing did however produce the results I was mainly focused on

which was ease of use. Through testing each tester took notes on what they found to be the best

way to present data to be entered and how they would like confirmation windows to behave

when they have made changes. All of these issues were addressed and it did make the program

more user friendly but really demonstrated the demand for a mobile platform to make this data

entry less cumbersome as a mobile application would allow for more real-time entries.

Future Goals

Baseball League Manager is currently still rather limited, not necessarily in capability but

more in accessibility. Currently it is developed in a Java and JavaFX environment that is limited

to use in a personal computer. To take Baseball League Manager to the next level a few things

would need to take place. First Baseball League Manager would need a cloud MySQL server,

this way all computers and users would be able to look up statistics no matter where they were.

Second Baseball League Manager is the perfect platform for an Android mobile application,
Capstone Final Report Hasemeyer Page 9

which would allow for teams to update their players in real time. To contribute to that real-time

data entry a scorebook could even be implemented to reduce paper waste and keep the system as

up to date as possible.

Stakeholders and Community

Baseball League Manager is really geared towards those who want to improve either their

individual game or improve an entire team by giving the players the tools to better themselves.

Because of this the main benefactors would be the players but they are not the only one who can

reap the benefits. Baseball, as well as most competitive sports, can bring together students, adults

or really anyone together with others who may never see each other in everyday live. When you

break it down Baseball is just a game, a competitive game, but still a game with a purpose to

have fun. As any athlete or competitive person will tell you games are always more fun when

you are winning. This is the main purpose of Baseball League Manager, giving players the

ability to improve their game, which will in turn improve their experience and improve their

relationship with fellow athletes. If more people can enjoy the game while improving their play

not only is their everyday experience more fun they can even elevate their game to the next level

and maybe do more.

Feasibility

Baseball statistics programs are nothing new, and some have existed for several years now;

however, all of these programs are lacking in one way or another. To bring Baseball League

Manager up to the highest level it required some an environmental scan to compare and contrast

against other similar programs. The lead competitor for school baseball statistic recording is a

website called MaxPreps. MaxPreps is website that allows for High School teams, baseball,
Capstone Final Report Hasemeyer Page 10

football, basketball etc. which allows you to compare your High School to another High School.

However, if you are not a High School athlete and play in a competitive adult league you are not

able to use MaxPreps as they only permit High Schools. However, MaxPreps has a good system

for comparing players against other players or in their case the national average player. The

statistics that they offer for players is rather limited only offering the following statistics: games

played, batting average, on base percentage, hits, runs batted in, and runs.

Where MaxPreps excels Baseball League Manager offers the same features, and where

MaxPreps lacks Baseball League Manager excels. Namely in MaxPreps when a players record

is retrieved it shows all of the players statistics compared to the national average. Baseball

League Manager will offer a similar feature; however, it will only compare to the league average

as the database is not quite big enough to encompass the nation. MaxPreps only offers a few

select statistics for the players that may not be very useful. As previously mentioned splits are

very important when analyzing a player, MaxPreps offers no splits which is not very useful for

player development and preparation. Baseball League Manager is focused on giving you every

statistic that is possible to record at an amateur level to give users the most informative statistics

that they could ask for. Most importantly Baseball League Manager is available to anyone who

wants to use it, if you are not attending a registered High School MaxPreps will not allow you to

use their service. The portability and easy accessibility to Baseball League Manager puts it one

step ahead of MaxPreps.

Design Requirements

Functional Decomposition
Capstone Final Report Hasemeyer Page 11

Baseball League Manager is broken up into 4 major functional components, all of which

combine to allow for a fully encompassing baseball statistics program. Each of these sections

have their own specific task that helps a league manager store information for each of their

players while being able to easily manipulate and extract whatever information that is required.

These major sections are rather self-explanatory in an attempt to keep the user interface as

simple and user friendly as possible.

The first section is labeled with Create!, this section is dedicated to the creation of both

Players and Teams. Teams will need to be created first and each team must have a unique name,

the team creation page checks for duplicates, teams that are unique will be created as new teams.

Once there is at least one team created you can create your Players. Players can be broken down

into multiple subcategories: Players, Hitters, Pitchers and Managers. The creation page asks what

type of Player you are creating, if a player is a manager they cannot be a hitter or pitcher and

vice versa, and after filling out all appropriate fields your player is created.

The second section is labeled with Update!, this section is dedicated to updating all

possible entries, such as updating: Pitchers, Hitters, Managers, and Teams. This is where the user

is going to spend most of their time in the software. After a game has been played and scoresheet

is complete the user will go to the Update section and update their players statistics for the

previous game.

The third section may be the most important as it is labeled with Lookup! and allows

for the user to extract exactly what they want. They will be able to produce a table that details all

players statistics, to just their teams statistics, and even look up individual player statistics.
Capstone Final Report Hasemeyer Page 12

From here the user will be able to print whatever page they are looking at or save it to a PDF for

later use.

The last section is labeled Edit!, and is intended for the editing of entered records.

Records such as a players name, number, or player type will generally stay the same throughout

the season and may only change a couple times if at all. This is what the Editing section is

intended for, changing fundamental records as well as for deleting unnecessary or incorrect

records. To keep this vital information from be inadvertently changes in the updating process

Baseball League Manager keeps this section separate giving the user a visual clue for when they

need to change a fundamental record.

Selection of Design Criterion

Baseball League Manager is designed to be a low impact SQL database system that relies

on Java and JavaFX to display the information. That being said it is still of the upmost

importance to keep the program as streamline as possible to not only improve performance but to

demonstrate clean coding practices and allow any other designer to easily pick up where another

left off. However, this minimal code will still be all encompassing. Baseball League Manager is

heavily reliant on data entry, with this in mind it is extremely important to make sure that no bad

information is entered into the system by using several try and catch blocks.

Along with good data the system must retain secure data. To ensure that the data is secure

and can only be edited or altered by those who have created it a login is required to use Baseball

League Manager. After sign in the user will only be able to edit or delete records which they

have created, while they will still be able to lookup anyones record they cannot alter them.

Final Deliverables
Capstone Final Report Hasemeyer Page 13

The final deliverable for Baseball League Manager is the JavaFX application itself. Since

all functions are contained within the application there is no accompanying webpage or

necessary additional software. One of the key features for the final deliverable is the ability to

print records. Since this program is designed to be used in real baseball situations being able to

have physical copies of the records is very important for its practicality.

Methodology/Approach

When first considering creating a baseball statistics program the first thing that comes to

mind is it must be simple. As the program is dependent on user input it needs to be as user

friendly as possible. This lead to choose what would be the best languages to use to not only

handle the backend but to create a clean and efficient GUI.

Due to these two main components as well as the timeline of 6 weeks I chose to use a

language that I am already rather familiar with which is Java. I have Swing experience, but also

know that it is not the most user friendly and can look a little dated, so I decided to use a more

modern JavaFX GUI, that generates the pages using FXML which allowed me to apply CSS to

those pages. This project was very time constrained so using FXML streamlined the process as I

already had CSS experience which gave me more time for the core product.

Once the basic outline of the project was determined I moved forward with creating the

Model for the system. I broke the Model up into 4 classes that correlated to the structure of the

MySQL relational database to make for easy passage of information between the two systems.

Once all classes were created and tested for all push, pull and updates the base product needed to

be built.
Capstone Final Report Hasemeyer Page 14

The first version of the Model was thrown together in not the most effective manner, but

this was intentional as I needed to get a working GUI get a feel for how a user would use this

program. Then it was a matter of refining the GUI to be as simple and user friendly as possible.

To start I really focused on the Create Player window, this window created the base player but

the window set the template for all other windows to follow. Once all windows were functional

they were styled and were what I considered my version 1.0.

After version 1.0 was complete it was a manner of adding and refining. Many of my early

SQL calls where numerous and a little out of hand, all classes were refined, repackaged, notated,

and streamlined as much as time allowed. Then it was just a manner of adding additional features

to the base program. Features such as profile pictures, printing pages, login credentials, user

creator stamps, and editing existing records was all implemented on top of the existing system.

With this approach largely matching an Agile process the system can still continue to

grow. Given another 6 weeks things such as a mobile application of a scorecard sheet could

easily be added to the program without having to alter the Model at all.

Legal Considerations

Since Baseball League Manager was written from scratch I do not believe that there

would be any legal consequences for the subject matter of the program. One legal issue that

could arise would be having to do with the images that I am using for the software. Since this is a

baseball program having appropriate imagery really drives the baseball feel home.

Unfortunately, I am not a graphic designer and do not have Photoshop or any other photo editing

software readily available. Because of this I am using images from the web, which if I were to

release this program to the market I would make sure are copy protected.
Capstone Final Report Hasemeyer Page 15

Ethical Considerations

The main ethical concern with the Baseball League Manager is the impact it will have on

lower level baseball players. Statistic programs bring scrutiny to all who are using them, most of

the time this is for the better allowing players to see where they are struggling and improve those

faults. However, when used in the wrong setting scrutiny can not only be unnecessary but

actually hurt not necessarily the statistics of a young player but affect the game overall. When it

comes down to it baseball is a game, and everyone playing should be having fun. When you try

to record a Tee-ball league you are not going to help anyone and probably ensure some kids

never try baseball again. For these reasons it is important that Baseball League Manager along

with any other statistics program is applied in the right settings with players who understand the

game but want to improve.

Conclusion

Amateur baseball players do not have an easy way to store player statistics throughout a

season and easily retrieve all possible statistics that they may need on any given player. The

currently available options require you to be a part of a recognized high school or to manually

record all statistics and calculate everyone individually. As a coach with a busy schedule this

task can seem insurmountable, but now there is an easy way for any coach or player to create

teams, players and leagues while giving you the ability to easily update each record and retrieve

whatever information a player may need.

Baseball League Manager takes all of the hard work of calculating and storing player

information and presents it in one easy to use and informational package. Baseball League

Manager has many of the statistics that other programs do not offer allowing for your players to
Capstone Final Report Hasemeyer Page 16

see all of their strengths and weaknesses to lead them to their full potential. To make Baseball

League Manager as effective as possible it is written in Java using a JavaFX GUI to give the user

the most intuitive display possible. With its continuous testing Baseball League Manager can

easily introduce new features to give even more capabilities.

This project was a great example of what can be done in a short window of time. The

entire program was written in about 140 hours and shows many of the capabilities that Java,

JavaFX, MySQL, JPA, FXML and CSS can offer. This project was an ideal platform for the

Agile development process and I stuck to that to allow for continuous improvements without fear

of having to alter previous code. If given more time and resources Baseball League Manager

could be implemented with a cloud database and even be written for the mobile platform giving

you the ability to manage your league from anywhere.


Capstone Final Report Hasemeyer Page 17

References

The Official Site of Major League Baseball. Retrieved October 1, 2017, from

https://www.mlb.com/

MaxPreps High School Sports. Retrieved October 1, 2017, from http://www.maxpreps.com/

Potrebbero piacerti anche