Teamassist: CST 499 Computer Science Capstone

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 22

TeamAssist

CST 499 Computer Science Capstone


By:

Beenish Syed

William Baker

25th August 2019


1

Executive Summary:

TeamAssist was inspired by our observation of the need to consolidate not only team
stats but also individual player stats for soccer youth leagues. Currently the apps that are majorly
used for youth leagues are not focused on one sport. Apps like teamsnap are used by varying
youth leagues like baseball, swim teams, football etc. If you want consolidated information about
local soccer leagues there is no such thing out there. Now why do we feel that there is a need for
that.
Let's say scouts are looking for the best players among all the leagues to recruit for the elite
teams. They have to arrange scouting events and pick their players from those events. Those one
or two events are not exactly the true picture or the entire picture of a certain player’s
performance. If there is a website that lets you track player statistics of each and every
game/tournament that player has played. If we have those statistics for multiple teams and
multiple leagues imagine how helpful that will be! Therefore we wanted a website that focuses
on just soccer. Existing apps or websites keep track of team stats that too at a premium
membership price and still do not offer individual player stats. This website would help parents
and coaches alike. Coaches can manage their teams. Both parents or coaches can update a child’s
performance e.g. which position the player plays in, how many assists the player got, how many
goals he/she scored etc. This way scouts can also go on the website and look at the best
performer or the top performers of teams of each participating league.

Another thing we observed is that while there is a great need for a way to manage
carpooling among the players in a team but there is nothing to manage that. We plan to build a
carpool service on our website. There are always last minute frantic messages on the team app
asking for carpool or players missing practices and games just because they couldn’t find a ride.
So offering a feature that helps parents either offer carpool space to others or asking for a ride for
their child, would make everyone’s life easier. This way players will not have to miss an
important game just because of their parents busy schedule.

The population affected by the project is parents of children who play soccer, the players
themselves, team managers, coaches and scouts. We anticipate to have an easy to use website
that will make the lives of all the stakeholders easy. The data on the website will be very
organized. Providing a service that solves multiple issues in one place is what we plan to
accomplish.
2

Table of contents:

Introduction/Background
Project name and description:
Problem/ Issue in technology
Solution to the problem
Evidence that the proposed project is needed
Project Goals and Objectives
Environmental Scan
Stakeholders and Community
Approach/Methodology
Ethical Considerations
Legal Considerations
Project Scope
Timeline/Budget
Resources needed
Milestones
Risks and Dependencies
Final Deliverables
Usability Testing/Evaluation
Team Members
Team member names
Division of labor
References
Appendix
3

Introduction/Background

Project name and description:

Project name: TeamAssist

After school sports require keeping track of various stats, statistics, and events. It would

be convenient to have access to all of these on one platform. Youth Soccer leagues are very

prominent in our region and we feel that it would be an excellent candidate to build our platform

for. More than 24 million people play soccer in the United States and that soccer is the fourth

most played sport in the country (Johnson, 2015). There are several youth soccer leagues just in

the Bay Area. A quick search for a youth league on the Cal North Soccer website shows several

results of leagues and each league in turn has several teams. Each team needs to manage its own

performance as a whole and that of its individual several players. Information such as what

tournaments the team has played, the wins and losses, individual player performance, the

positions a player plays in, contact information of the players etc. Besides that, Youth Soccer

Leagues require the management of various logistics. With several teams in an area competing

for field availability, it becomes very unwieldy for the organizer to assign fields to coaches for

practices without causing a conflict. A platform where all this information can be organized

easily will make everyone’s life more convenient. Such a platform would need to be usable for

an audience with varying technology literacy such as coaches, parents and students.
4

Problem/ Issue in technology

The problem is that there is no such platform where everything mentioned above is

combined together. While there are various apps that help organize the teams, the players

information and updates of upcoming events, there is no option for parents or players to organize

carpooling for the team. Mostly emails or texts are being sent and information becomes muddled

or lost in long threads. Not everyone gets those emails and sometimes misses the opportunity to

avail carpool or offer carpool. During the season you can see busy parents struggling to find pick

up and drop off solution for their child. Older kids are also always looking for a ride, for

someone to either take them to their practice or drop them off after practice. The issue of making

field assignment while keeping coach availability in mind is still there. As the season approaches

the leagues send frantic last minute emails that they are still trying to figure out the coach and

field availability.

Solution to the problem

If we combine these problems and come up with one solution it will make the lives easier

of parents, coaches and team managers alike. Also, our project is currently only focused on one

sport - soccer! This will give a product meant for this one sport and not one size fits all kind of

solution. We plan on making a website that will allow parents or players to enter their

information. We will add an option of carpooling where you can either offer carpooling or you

can state that you need carpooling for a certain event. If resources allow we would like to add a

calendar manager that can automatically generate practice schedules keeping in mind the field

and coach availability.


5

Evidence that the proposed project is needed

If you search around you will not find any app or website that gives solution to all the

problems described above. Neither is any app/website focused on one sport. As a parent, player,

coach or a team manager you can easily see that this will be a very useful tool.

Project Goals and Objectives

● Main goal:

Our goal is to create a platform that can be used by youth soccer teams to manage

the many logistical aspects involved. This will be done by incorporating features that

assist the various parties involved with youth soccer teams: coaches, parents and players.

● Team and individual player stats

One major logistic involved in youth soccer leagues are player and team statistics.

Player statistics (goals, assists, games played, etc.) and team statistics (wins, losses, ties,

etc.) will be maintained in a database and accessible to all three of the primary user

groups.

● Carpool feature

Another logistic involved is coordinating carpools to and from practices and

games. We will create a carpool manager that allows parents to communicate with other

parents within the same soccer team so that they can easily request and offer rides to

players.

● Intuitive user interface


6

Because of the variety of computer literacy found in our main user groups, it is

important to create an intuitive and welcoming user interface. This will be done by

keeping the user interface simple and make it clear how a user can interact within a given

webpage and find the service that they desire to access.

● Focus group

We will also form a focus group composed of individuals belonging to our

targeted audience in order to get feedback if our user interface is intuitive and what

improvements can be made to make it easier to use.

Also each of the user groups will have different services available to them. For

example, a coach will have the ability to add and remove players on the team. Parents

will be able to add and edit their contact information and have access to the carpool

manager service. Players, would of course have access to none of those services, but will

be largely limited to just viewing the statistics of their team and other players. By having

separate user classes, we can keep the user interface less cluttered by irrelevant services

and also limit the access of different users.

● Showcasing our own skills

Another goal is to create a project that showcases the skills that we learned in this

program and that are desirable in today’s job market. Skills such as Agile Programming,

Database/MySQL, and Frontend/Backend development are all regularly mentioned in job

listings for Software Engineer positions.


7

Environmental Scan

As previously mentioned, there are an abundance of Youth Soccer Leagues throughout

the country (“US Youth Soccer”, 2018). These teams require a great deal of effort to manage all

of the logistics involved within the team. Of course the natural solution to logistical problems

often is to use software. With the growing use of technology, essentially all of these teams use

some sort of platform to store information for the team. Unfortunately there are not as many

software options for managing these leagues. Of the options that are available, they do not offer

the same features that we hope to offer in order to consolidate these features to make a more

convenient experience. For example, Teamsnap is the leading app used by many different

leagues, but they do not have the features that we hope to offer (“20 Million People use

Teamsnap”, n.d.)

We see several good options for programs that keep track of player and team statistics.

However they lack the ability to manage the other logistics, especially when it comes to setting

up carpools. While ridesharing services such as Uber and Lyft are gaining prominence, they

require an adult to be present in order to use the rides. This makes using these services to get

children to youth soccer practices not an option. Plus, even if they did, many parents would

simply not trust a stranger to transport their children. However, parents often allow their children

to carpool to practices with other children on the team. By creating a platform that assists in

coordinating these carpools, it provides parents a real option to get their children to practices that

simply does not currently exist.


8

Stakeholders and Community

This will primarily affect those involved in youth soccer leagues. This included parents,

coaches and to some extent the players themselves. Because our application will be focussing on

tackling many of the logistical concerns involved in Youth Soccer Leagues, parents and coaches

will especially be affected. Having trouble finding a carpool can be a major source of stress for

parents. With the carpooling feature, parents would be able to gain a large amount of

convenience. They would have an easy way to be able to coordinate carpool rides with other

parents in the same team.

Coaches also have the difficult job of communicating team announcements to all of the

parents involved. It can be difficult to keep track of emails and phone numbers. Also it can be

hard to give updates on changes in scheduling, especially last minute ones. With our platform,

coaches would have a convenient way to notify parents of upcoming events, and also give

updates to the schedule. Without this service, coaches will have to devote more time to keeping

track of contact information and scheduling. Additionally, it can be difficult to coordinate

scheduling the use of facilities for practices and games. There are times when locations can be

double booked, thus causing a problem for both parties expecting to use the location. Our

application will notify when there are scheduling conflicts. This will help prevent such situations

from occurring.
9

Approach/Methodology

To turn our project into a reality first and foremost we will need to decide what coding

tools to use, what database we will be using. We recently learned Ruby on Rails so that is one

contender. But we built a website in our internet programming class and we might use the same

tools as we did in that class. That is something we need to discuss and decide.

We plan on breaking the project into smaller modules. We recently learned about agile

methodology and that seems to be a good fit for what we are trying to do. We will test each

module as we go and make sure that the functionality of each step is what we expect it to be

before moving on to the next iteration.

Our first step would be to design a database schema. It will be a good starting point so

that we know what information we are storing, how we are storing it and then we can move on to

the next step of information retrieval and processing. We will also need to design our website.

For website design we need to decide the number of webpages required to meet the actionable

items of our project.

We will work on this project with the Agile approach. In doing so, we will focus on

creating working prototypes and get feedback from our focus group to drive improvements and

new features which is in line with the Agile approach. Our project will consist largely of a

database that contains the various statistics of the players and teams involved in the Youth

Soccer League. We will design a database schema that organizes and stores all of this data and

fulfills the requirements to be considered “normalized”. The stats for players and teams will have

to be able to be updated and accessed regularly. This means that we will use MySQL statements
10

to access data from and make changes to the database. This will allow us to demonstrate our

skills in working with databases and MySQL. Our platform will require a user frontend that is

easy to use and displays the information received from the database. This of course requires the

working backend that takes the input from the user and accesses the appropriate information

from the database.

Ethical Considerations
While creating this platform it is very important that we take into account several ethical

considerations, especially since a large portion of the users of this platform will be composed of

children on youth soccer teams.

This application will handle personal information for the players and their parents such as

home addresses, phone numbers and email addresses. It is important that this information is not

displayed and is restricted to only certain user groups. We will allow users to decide who they

want to share the information with and how much information they want to share. Of course

certain user groups, such as coaches, will have access to all of the contact information regardless

of what a user chooses to share.

Player statistics will also be a major feature of this platform. This can help boost the

competitive nature of youth sports. However it can also have a negative effect on some of the

players leaving them feeling self conscious of their performance statistics in relation to their

peers. Worse, lower performers could be bullied by higher performers. Some players may not

like their team position and actually want to play another position. For these reasons, players

and their parents will have the option to make their statistics private or public. This way, a player
11

can still track their own stats without having to worry about being compared to others in the

team. Also they can be listed as multiple positions and have the option of displaying the position

the player plays or not.

Apart from breach of privacy another issue that can arise is of the safety of minors. Our

carpool feature will require children to ride with other adults who are not their legal guardians.

While this is a very useful feature for parents and also will help with player’s attendance, it

might pose a risk to them. Even if the parents know each other through the league, it is the

website’s responsibility to ensure that any service being offered through them does not put the

players at any risk. The safest way to do this is asking the parents to get a background check

before they can participate in the carpooling option. All public schools require parent volunteers

to go through a background check and fingerprinting before letting them volunteer in the

classrooms. This step is taken to ensure the safety of young children. Similarly, only people who

have submitted their background check and fingerprinting documents will be able to take

advantage of the carpool option.

Another ethical concern is that people might abuse the carpooling option by always

taking advantage of it while never offering to provide the service themselves. For that we plan on

keeping a check that for every two times you use the carpooling service you have to offer it at

least once, otherwise you won’t be allowed to signup for carpool the third time.
12

Legal Considerations

As previously mentioned in our ethical considerations, the carpool feature will require us

to take several precautions as it involves children and drivers. Many ride sharing companies

today prohibit minors from using their services without an adult accompanying them. For

example, Uber and Lyft both instruct their drivers to deny service to anyone that they suspect to

be under the age of 18. Of course, the difference between ride sharing services and our own

carpooling service, is that our carpooling service will be used by individuals in the same youth

soccer team not a random Uber driver. The assumption and expectation is that parents would be

able to meet and know each other before any carpools are ever arranged, so they are not entirely

strangers. Additionally, parents will be able to choose whether or not to send their child with any

particular carpool. This will allow them to reject a carpool offer from anyone on the that they

have not met yet and do not know. Whenever a parent is about to accept a carpool offer, they

will be displayed a disclaimer to not accept a carpool offer from anyone that they do not know.

The players themselves will not be able to create carpools for themselves, every carpool requires

parental permission. This way no carpool will be organized without the knowledge and approval

of the parent. All of this will be done to prevent putting children in dangerous situations with

complete strangers.
13

Project Scope

Timeline/Budget

Activity Target Completion Date

Define project specs and complete 08/26/19

requirements.

Design database Schema 08/28/2019

Design the MVC pattern 9/1/2019

Design the web pages (Aesthetics, 9/1/2019

storyboards)

Implement the backend 9/25/2019

Implement the frontend 10/2/2019

Testing with Focus Groups 10/8/2019

Finalize Project 10/15/2019

Capstone Presentation 10/19/2019

Resources needed

1. We need a database to store all the information.


14

2. Most likely a web designing tool or website

3. Web hosting, most likely we will use Heroku.

4. Github

5. AWS Cloud9

6. MySQL Workbench

7. Ruby on Rails

Our project requires the use of a variety of tools and resources, many of which we have

gained experience with throughout our other courses in this program. We will use MySQL

workbench to design the schema and the UML diagrams for our database. We have used this tool

in the past during our Introduction to Databases course, so it will be nice to revisit this tool. We

will use AWS Cloud9 as our development environment. We have used this tool in several

courses before and it is extremely useful to collaborate or projects with. This is largely due to its

ability to integrate with GitHub, which we will use to store our files and integrate into our web

hosting service Heroku. We have used Heroku previously in our Internet Programming Course,

and it is a nice free tool that we can use to deploy our project and allow users to try it.

Milestones

1. Database schema is designed.

The first and basic step for us is to design our database schema. Once that is done we will

know the structure of our project and we can move to the next step.

2. Database tables are implemented and work fine.


15

Once we have the schema ready we will implement it and make sure our tables are in

good working condition.

3. Web pages are designed and look professional.

We would really like to have a very nice, user-friendly and professional looking website.

The website should not only look great but easy to use for people who are not very tech

savvy as well.

4. Frontend and backend are working perfectly.

We will test each page and make sure it is fully functional. Each functionality will be

fully tested to make sure that there are no loose ends.

5. Passes user testing

We will utilize our focus group to test our project extensively.

Risks and Dependencies

- Choosing the wrong tools that are not suitable for our project.

It is very important to start with the right tools. First of all deciding what language to

code with, which database (e.g. MYSql or SQLite) to use and whether to design the

website ourselves using HTML and CSS or to use a web designing website.

- Running into issues such as copyrights.

It is hard to find out about such things but we can run into some issue where someone

else has already thought of an idea the same as ours or similar to ours and hence we can

be held responsible for copying their idea.

- Both teammates involvement and completing their responsibilities on time.


16

Although both of us have worked on several projects together and can rely on each other

to complete our work responsibly, this project we are on our own with self described

timeline. So it is very important that we stay on top of our schedule.

Final Deliverables

A perfectly working website.

Admin/coaches can add/update/delete new players and their information.

Players/parents can modify player information.

Players/parents can access all the information regarding the player.

Carpool feature is up and running.

Parents/players can sign up for carpooling.

Parents/players can offer carpooling.

Players/teams will be able to be searched for.

Usability Testing/Evaluation

We will be prescribing to the test driven development approach. This means that we will

be writing test cases that follow certain user stories and then develop the software to pass these

user cases. This will assist us in developing to ensure that our application behaves in the way that

we expect and the present the experience we want to give to our audience.

This will involve us writing test specs in RSPEC which is a tool in Ruby on Rails that

allows us to create fast, independent, repeatable, self-checking and timely (FIRST) test cases.

The goal of this is to be able to continually run the cases throughout the entirety of the
17

development process without necessarily having all of the application’s microservices finished.

This is important since some of the services that rely on each other may be developed

concurrently. We will be making use of RSPEC’s class doubles and method stubs, which create a

“dummy class” that simulates the expected functionality of another, yet to be created, class. We

will write test cases individually for each of the different microservices. We will then create a

client program that will allow us to test the functionality of the different microservices between

each other. Our unit testing should limit the amount of bugs that we find by the time that we test

all of them together.

We will then implement a front-end user experience that will allow us to further test our

user experience. Once we have a functional front end, at this point we will begin our testing with

our focus group that will consist of individuals belonging to our target audience. We will ask our

focus group to do a variety of different tasks in the application and then request feedback on their

experience completing such tasks. Such tasks will consist of creating a carpool, joining a

carpool, looking up a certain players statistics, updating contact information, etc. The feedback

that we will request from them will include asking them to rate the difficulty of completing the

task they were asked to do. We will then request feedback on what they liked about the

experience and what they would change about the experience. We will then ask for overall

feedback, including which features did they enjoy, what ones did they not enjoy, anything that

they would change or add to the application. These questions should allow us to get valuable

insight on how users feel about their experience with our application. Additionally, we should

get feedback on anything that does not work as expected, which hopefully will not happen after

our previous testing, but still might occur.


18

We will use the feedback that we receive to determine adjustments that might need to be

made to our application as well as additional features that we may try to implement in this

iteration or save for future iterations. The feedback from those with a limited technological

literacy will be especially important, because one of our major goals is to have an application

that is usable by those of a variety of backgrounds, especially those with limited computer

literacy. Additionally, issues of ease of use will largely be dependent on the user interface, or

frontend, which should be relatively simple to adjust, as long as it does not require changes to the

backend which will have been created at that point.

By using these two series of testing, we hope to create an application that is largely free

from any major bugs. Additionally, we hope to have an application that is usable by all and

works as expected.

Team Members

Team member names


1. Beenish Syed

2. William Baker

Division of labor

Both work on designing the database schema.

Tables can be split in half to be designed and implemented.

Player service (Beenish)

- Create/update/delete players

Event Service (William)


19

- Create/update/delete events.

Admin/coaches (Beenish)

- Create/update/delete players using the player service.

- Create/update/delete events using the event service .

Parents (William)

- Update players using

- Signup for carpool using the carpool service

- Offer carpool using the carpool service

Carpool Service (William and Beenish)

- Store carpool information.

- Communicate between the parents, players and events services.


20

References

20 Million People Use Teamsnap and Can Tell You Why They Do. (n.d.). Retrieved from

https://www.teamsnap.com/why

Johnson, A. (2015, May 27) Soccer by the Numbers: A Look at the Game in the U.S. ​NBC News
Retrieved from
https://www.nbcnews.com/storyline/fifa-corruption-scandal/soccer-numbers-look-game-u
-s-n365601

US Youth Soccer Announces New Leagues Structure - The US Youth Soccer National Leagues.
(2018, April 18). Retrieved from
https://www.usyouthsoccer.org/us-youth-soccer-announces-new-leagues-structure---the-u

s-youth-soccer-national-leagues/
21

Appendix

Link to our survey:


https://docs.google.com/forms/d/e/1FAIpQLSetqCH6wo2UBY21yYOaFw7k31LlWwWhJ9XTJ
mtO-RXdzfsOwg/viewform?usp=sf_link

You might also like