• Rezultati Niso Bili Najdeni

Sportsteammanagementapplication AjlaHamedovi´c

N/A
N/A
Protected

Academic year: 2022

Share "Sportsteammanagementapplication AjlaHamedovi´c"

Copied!
77
0
0

Celotno besedilo

(1)

University of Ljubljana

Faculty of Computer and Information Science

Ajla Hamedovi´c

Sports team management application

DIPLOMA THESIS

UNIVERSITY STUDY PROGRAMME FIRST CYCLE

COMPUTER AND INFORMATION SCIENCE

Mentor : doc. dr. Luka F¨ urst

Ljubljana, 2022

(2)
(3)

Univerza v Ljubljani

Fakulteta za raˇ cunalniˇ stvo in informatiko

Ajla Hamedovi´c

Aplikacija za koordinacijo ˇ sportne ekipe

DIPLOMSKO DELO

UNIVERZITETNI ˇSTUDIJSKI PROGRAM PRVE STOPNJE

RA ˇCUNALNIˇSTVO IN INFORMATIKA

Mentor : doc. dr. Luka F¨ urst

Ljubljana, 2022

(4)

Copyright. The results of the diploma thesis are the intellectual property of the author and the home faculty of the University of Ljubljana. The written consent of the author, the faculty and the mentor is required for the publication and use of the results of the diploma thesis.

The text is formatted with the LATEXtext editor.

(5)

Candidate: Ajla Hamedovi´c

Title: Sports team management application

Thesis type: Diploma thesis at the first cycle of the university study pro- gramme in Computer and Information Science

Mentor: doc. Luka F¨urst

Description:

Develop a mobile application for managing a sports team. The application should support various user roles (coach, player, administrator, supervisor, and guest) and offer functionalities to help the users in the organization of trainings, games, and accompanying activities.

Kandidat: Ajla Hamedovi´c

Naslov: Aplikacija za koordinacijo ˇsportne ekipe

Vrsta naloge: Diplomska naloga na univerzitetnem programu prve stopnje Raˇcunalniˇstvo in informatika

Mentor: doc. dr. Luka F¨urst

Opis:

Razvijte mobilno aplikacijo za koordinacijo ˇsportne ekipe. Aplikacija naj podpira razliˇcne uporabniˇske vloge (trener, igralec, administrator, nadzornik in gost) in ponuja funkcionalnosti, ki bodo uporabnikom olajˇsale organizacijo treningov, tekem in spremljevalnih dejavnosti.

(6)
(7)

Acknowledgements

(8)
(9)

Table of contents

Abstract Povzetek

Daljˇsi povzetek

1 Introduction 1

1.1 Overview of the application . . . 2

1.2 Goals . . . 4

1.3 Related projects . . . 5

2 Application functionalities 7 2.1 User roles . . . 7

2.2 Functionalities . . . 8

2.3 Registration . . . 10

2.4 Login . . . 13

2.5 Display the public team’s games list . . . 13

2.6 Display the public team’s training list . . . 15

2.7 Display the list of registered players in user’s team . . . 17

2.8 Display the training list of the current team . . . 19

2.9 Display the game list of the current team . . . 19

2.10 Display game details . . . 22

2.11 Display training details . . . 23

2.12 Display game attendance . . . 23

(10)

2.13 Mark game attendance . . . 26

2.14 View training attendance . . . 26

2.15 Mark training attendance . . . 27

2.16 View possible participation list for a training . . . 27

2.17 Mark possible participation list for a training . . . 27

2.18 Create a training . . . 29

2.19 Edit a training . . . 29

2.20 Delete a training . . . 30

2.21 Create a game . . . 30

2.22 Edit a game . . . 30

2.23 Delete a game . . . 32

2.24 View the profile of a selected player . . . 32

2.25 Give admin permissions . . . 34

2.26 Revoke admin permissions . . . 34

2.27 Unregister player . . . 34

2.28 View the posts of a selected player . . . 35

2.29 Edit personal information . . . 35

2.30 View posts and comments . . . 35

2.31 Publish a post . . . 37

2.32 Delete a post . . . 37

2.33 Publish a comment . . . 37

2.34 Delete a comment . . . 38

2.35 Manage team settings . . . 38

2.36 Create a survey . . . 38

2.37 Vote in a survey . . . 38

2.38 View registration requests . . . 41

2.39 View details of a registration request . . . 42

2.40 Accept/decline a registration request . . . 42

2.41 View membership payments . . . 42

2.42 Set the status of a payment fee . . . 43

2.43 Use case diagram . . . 45

(11)

2.44 Class entity diagram . . . 45

3 Application specifications 49 3.1 Introduction . . . 49

3.2 Application architecture . . . 49

3.3 Android application architecture . . . 50

3.4 User experience . . . 52

3.5 Technical specifications . . . 53

4 Conclusion 55

Bibliography 57

(12)
(13)

Abstract

In this thesis, we present a novel sports team management application called VTeamTrack. We focus on its structure, architecture, benefits, and goals.

In order to help a team organize their time or improve their schedule, and to enable quick access to team-related information, the VTeamTrack appli- cation provides the following functionalities: game and training attendance overview, posts feed, creating and taking surveys, overview of membership payments, access to public teams’ schedules, and more. The application sup- ports five user roles: player, coach, administrator, supervisor, and guest. The architecture of the application is based on the Android application architec- ture standard. Such an application is composed of two mandatory layers (user interface layer and data layer) and one optional layer (the domain layer).

Keywods: sports, organization, application, interaction, team, coach Title: Sports team management application

Author: Ajla Hamedovi´c

(14)
(15)

Povzetek

V tem diplomskem delu je opisan razvoj mobilne aplikacije za upravljanje ˇsportne ekipe. Aplikacija, imenuje se VTeamTrack, ni namenjena samo igral- cem in trenerju, ampak tudi sploˇsnim uporabnikom (gostom). Aplikacija omogoˇca komunikacijo med igralci in pomaga trenerju pri enostavnem up- ravljanju, koordinaciji in organiziranju ekipe in njenih ˇclanov. Implementi- rane so naslednje funkcionalnosti: pregled terminov iger in treningov, objave, ustvarjanje anket, pregled plaˇcil ˇclanstva, preverjanje prisotnosti na tekmah in drugo. Aplikacija podpira pet uporabniˇskih vlog: igralec, trener, skrbnik, nadzornik in gost. Aplikacija je strukturirana v skladu s tipiˇcnimi arhitek- turnimi vzorci aplikacij za sistem Android. Razdeljena je na tri glavne plasti, pri ˇcemer je uporabniˇski vmesnik karseda loˇcen od podatkovne plasti in iz- vajalne logike.

Kljuˇcne besede: ˇsport, organizacija, aplikacija, interakcija, ekipa, trener Naslov: Aplikacija za koordinacijo ˇsportne ekipe

Avtor: Ajla Hamedovi´c

(16)
(17)

Daljˇ si povzetek

V tem diplomskem delu je opisan razvoj mobilne aplikacije za upravljanje ˇsportne ekipe. Aplikacija, imenuje se VTeamTrack, ni namenjena samo igral- cem in trenerju, ampak tudi sploˇsnim uporabnikom (gostom).

Aplikacija omogoˇca komunikacijo med igralci in pomaga trenerju pri enos- tavnem upravljanju, koordinaciji in organiziranju ekipe in njenih ˇclanov.

Sportne ekipe se od drugih konvencionalnih skupin razlikujejo v veˇˇ c pogledih.

Od svojih ˇclanov med drugim terjajo resnost, odgovornost in trdo delo. ˇClani morajo redno trenirati, upoˇstevati navodila trenerja in tako na tekmah kot na treningih dati vse od sebe.

Aplikacija VTeamTrack je plod opazovanja izzivov, s katerimi se vsak dan sreˇcujejo ˇclani ˇsportne ekipe. Aplikacijo smo zasnovali tako, da lajˇsa tovrstne izzive — predvsem v organizacijskem smislu.

Uporabnik aplikacije (igralec ali trener) lahko pregleda urnik treningov in tekem ter seznam vseh igralcev ekipe.

Igralci lahko oznaˇcijo, ali se nameravajo udeleˇziti treninga. Njihova nam- era je vidna vsakemu igralcu. Na ta naˇcin je mogoˇce prepreˇciti marsikatero komunikacijsko in organizacijsko teˇzavo.

Da bi bila ekipa na tekoˇcem z morebitnimi spremembami, posodobitvami ali novicami, smo implementirali funkcionalnost objavljanja in komentiranja.

Osebni podatki uporabnikov so dostopni prek njihovih profilov, kar omogoˇca enostavno in preprosto pridobivanje kontaktnih podatkov trenerja ali novega igralca.

Igralec lahko tudi preverja stanje plaˇcila ˇclanarine in je opozorjen, ˇce je

(18)

za tekoˇci mesec ˇse ni plaˇcal. Ko je ˇclanarina plaˇcana, trener oznaˇci plaˇcilo v aplikaciji in mu zanj ni veˇc treba skrbeti. Zapisi o plaˇcilih se vodijo skozi celotno leto.

Poleg naˇstetih funkcionalnosti aplikacija ponuja ˇse moˇznost ustvarjanja in izvajanja anket. Na ankete lahko odgovarja katerikoli igralec, ustvarja pa jih lahko samo igralec z administratorskimi pravicami.

V aplikaciji poleg trenerja in igralca nastopata ˇse dve uporabniˇski vlogi:

gost in nadzornik.

Gost lahko ob vstopu na zaˇcetni zaslon aplikacije pregleda razpored iger in treningov tistih ekip, ki so se odloˇcile za javno dostopnost teh podatkov.

Seveda lahko ekipe status vidnosti omenjenih podatkov kadarkoli spet nas- tavijo na “zasebno”.

V vlogi nadzornika lahko nastopa starˇs ali skrbnik igralca. Uporabo te moˇznosti priporoˇcamo mlajˇsim ekipam, ker ustvarja obˇcutek varnosti za igralca in pomaga starˇsem, da so na tekoˇcem. Nadzornik si lahko ogleda status plaˇcila ˇclanarine in udeleˇzbo igralca na igrah in treningih.

Tako nadzornikovo kot igralˇcevo registracijo mora potrditi trener, ta pa je poleg tega edini, ki lahko iz aplikacije odstrani kateregakoli uporabnika.

Trener lahko izbranemu igralcu dodeli administratorske pravice. Te prav- ice vkljuˇcujejo ustvarjanje anket, preverjanje in beleˇzenje prisotnosti na treningih, preverjanje prisotnosti na tekmah in drugo.

Trener lahko upravlja nastavitve aplikacije. Nastavitve vkljuˇcujejo nadzor statusa podatkov o ekipi (javni ali zasebni) in nastavitev ˇcasa za shranjevanje zapisov treningov in tekem.

Vse funkcionalnosti in njihov potek so podrobno opisane z uporabniˇskimi tokovi, nekatere pa smo opisali tudi z diagrami ali shemami.

Drugi del diplomske naloge razlaga arhitekturo aplikacije, saj je ta kljuˇcnega pomena za razvojni proces.

Aplikacija je strukturirana v skladu s tipiˇcnimi arhitekturnimi vzorci ap- likacij za sistem Android. Razdeljena je na tri glavne plasti, pri ˇcemer je uporabniˇski vmesnik karseda loˇcen od podatkovne plasti in izvajalne logike.

(19)

Arhitektura aplikacije temelji na dveh glavnih naˇcelih:

ˆ Loˇcevanje zadolˇzitev. Vsaka komponenta aplikacije ima svojo toˇcno doloˇceno zadolˇzitev.

ˆ Loˇcevanje uporabniˇskega vmesnika od podatkovnih modelov. To med drugim zagotavlja, da se podatki aplikacije ne izgubijo, ˇce operacijski sistem uniˇci proces aplikacije.

Aplikacijo smo razvili v integriranem razvojnem okolju Android Studio.

Uporabljali smo objektno orientiran programski jezik java in ogrodje Android SDK (Software Development Kit).

Tretji del diplomske naloge poskuˇsa opredeliti znaˇcilnosti aplikacije, ki so pomembne za optimalno izkuˇsnjo njenega uporabnika.

Uspeh aplikacije je neposredno povezan s stopnjo vkljuˇcenosti uporab- nika. Analiza priˇcakovanj uporabnikov in njihova vkljuˇcenost pred (in med) razvojnim procesom sta kljuˇcnega pomena za izdelavo uspeˇsnega izdelka, saj je pri vsaki naˇcrtovani interakciji z izdelkom ali storitvijo treba identificirati potrebe uporabnikov.

Aplikacija VTeamTrack je namenjena predvsem manjˇsim, mlajˇsim in lokaliziranim ekipam, zato smo jo oblikovali tako, da se prilagaja njihovim potrebam.

Z realizacijo omenjenih funkcionalnosti smo cilj naˇsega projekta dosegli:

opredelili in razvili smo aplikacijo, ki bo ˇsportni ekipi sluˇzila kot organizaci- jsko orodje, naˇcrtovalec, opomnik in naˇcin komunikacije, ki poskrbi, da so vsakemu ˇclanu ekipe vse potrebne informacije takoj dostopne.

Naslov: Aplikacija za koordinacijo ˇsportne ekipe Avtor: Ajla Hamedovi´c

(20)
(21)

Chapter 1 Introduction

Since the world has dived into the era of technology (computers and smart- phones, in particular), the technology has found a way to integrate itself in every aspect of an individual’s life. Or better yet, we have let it inte- grate. At a certain point, which we have probably reached without being aware, its purpose has been elevated from a plain communications device to an “all-in-one“ super device.

Even though we are long past the point where phones were just a major contribution to simplifying life, that was their initial goal and everything that came afterwards was based on that goal. The greatest impact on that objective was made by small pieces of software called applications. Giving it a thought, isn’t there at least one app for, well, everything?

From communication, education, and entertainment to banking and trans- portation — thanks to smartphone applications, it is now all at the reach of our fingertips. Many would say that everything has become a bit too accessible, too digitized, and too consuming, and even though moderation sounds like the key answer to every question asked regarding this issue — that discussion is not a part of this thesis.

Instead, with the application that will be presented in the following chap- ters, the aim of this thesis is to try and be a small part of the trending global contribution to simplicity in life. It describes the technical specifications

1

(22)

2 Ajla Hamedovi´c of the application’s development process, but besides answering the ”how”

question, it mainly points out the ”why” and ”for whom” in order to em- phasize the goals and the idea. In addition, one of the goals of this thesis may also be an attempt to explain, and perhaps justify, the questionable line between a positive addition and a simple excess.

1.1 Overview of the application

The application called VTeamTrack, which we present in this thesis, is a sports team management application that enables communication between players and helps the coach to easily manage, coordinate, and organize the team(s) and its or their members.

It is primarly directed towards the players and their needs. It offers them clear insight into training and game schedules, so they can organize their time accordingly. The application enables players to check their intended participation on a training, so that the flow of each training is easier to organize and that problems such as the lack of specific player roles (user team positions) or the lack in the overall number of attendees can be predicted and managed in advance.

In order to keep the team up do date with any changes, updates, or news, the application offers a posts feed feature, which enables players and coaches to post, delete, or comment team-related content. In addition, the users’ personal data are accessible via their profiles, which makes it easy and straightforward to obtain the coach’s or a new player’s contact information.

Another way of communication between players is achieved via the team’s group chat, which is only available to players.

Another feature that tackles the frequent problem of misunderstanding and poor organization is the possibility to create and take surveys. The administrator can create a survey that helps make a decision about anything

— the design of the team uniform, the time of the next game or training, the best player of the game, the new team captain, and many more. These

(23)

Diplomska naloga 3 surveys are anonymous and stay open until the administrator closes them and publishes the resulting votes.

The player can also keep track of his/her membership payments and be alerted if they did not pay it for the current month. This feature is especially helpful for the coach and the players’ parents. When a fee is paid, the coach marks it in the application and does not have to worry about it any more.

Those records are maintained for the entire year, so even if there is an old unpaid fee, the coach is aware of it.

The parent, on the other hand, has access only to his/her assigned play- ers’ list of fees, as well to the players’ personal data and trainings/games attendance. The supervisor’s (parent’s) role may be highly beneficial espe- cially for younger teams, as they may help their child organize their time, keep them motivated, take care of some responsibilities such as paying their membership, and have access to data indicating their overall involvement and devotion to the team or the sport.

The supervisor’s and the player’s registration both have to be approved by the coach, and he/she is also the only one that can unregister (delete) any user from the application. The coach can also give administrator rights to a specific player. Those rights include creating surveys, checking training attendance, and more. In this way, the coach obtains someone to help him in the team organization, and some of the work can be divided, as there can be more than just one administrator.

Another benefit of this application for the coach is that he can manage several teams this way. The players can also be members of more than one team, and supervisors can have access to more than one player’s data.

The possible user roles are those mentioned above — coach, player, ad- ministrator, and supervisor. In Section 2.1., they will be explained in more detail.

However, the VTeamTrack application is not only intended for the regis- tered users. It enables any sports fan to have an overview of the games and trainings (their location, date, and time) of the teams that want that infor-

(24)

4 Ajla Hamedovi´c mation to be publicly accessible. All they have to do is install the application and choose their favorite team. This is also useful for those who would like to join a team but are not sure how its schedule fits in their daily routine.

1.2 Goals

”When I began a career in sports science, I had big hopes and dreams. I had studied hard, understood the theory, and was excited to develop my applied knowledge of elite sport. What were the skills that they couldn’t teach me at university that would help me to support the best athletes in the world? It turns out that most of them involved learning how to do store data, analyse results and visualise findings using a widely available (and green themed) spreadsheet programme – hardly the maverick world of applied science that I had imagined. As with most walks of life, administration, record keeping, and simple analysis takes more time than any of us would like to spend – keeping us away from the exciting elements of our job that we got into the industry for.”

– Dr Mark Homer (senior applied sports scientist) [2]

The quote above indicates why one of the VTeamTrack application’s goals is to make team management easier for the coach, to divide the tasks if needed, to save information that can be accessed whenever needed, and to have it all easily stored in one place that is just one click away.

The players are the core of the team, and their devotion to it is of utmost importance. VTeamTrack wants to assure that they stay on track and are always aware of their importance to the group. The communication between the players and the coach is the leading component of team performance.

Coaches that can adapt their communication and training methods to dif- ferent individuals or teams can also connect in a way to inspire, influence, and get the best out of them. Therefore, using the team application as one of those methods has several benefits:

ˆ It encourages discussions — not everyone is good at speaking their

(25)

Diplomska naloga 5 mind in front of groups, and some need more time than others to make a concept of their statement in their heads before they say it out loud, so if that can be achieved via the application, for such members that problem becomes minor, and they can take part in the discussion and initiate their own ideas (posts).

ˆ It can motivate the players — some of them find inspiration in receiving feedback to their performance or being selected as the team player, both of which our application enables.

ˆ Easy teaching — educational content can be posted within a second, or a link to a game video, instructions, feedback, and suggestions.

ˆ Interaction is guaranteed - The application provides notifications, so the user is informed about any message, post, newly added player, unpaid fee, and similar.

ˆ It saves time — For the coach, this means assigning administrator permissions, for players, this means discussing decisions remotely and on the fly instead of staying for another hour after practice.

The application also tries to involve parents in their children’s activities by allowing them supervisor access. In this way, the younger players can feel protected, and if they forget about something, there is someone who will remind them and raise awareness of their responsibilities.

1.3 Related projects

Team management applications are not a novelty on the application market.

At the beginning, there were applications that were focused on managing a work team, dividing tasks, and following their execution. Soon afterwards, based on the similar concept of ’team coordination’, came sports team man- agement applications as well. Some of them are:

(26)

6 Ajla Hamedovi´c

ˆ Teamsnap - https://www.teamsnap.com/

ˆ Team App - https://www.teamapp.com/

ˆ Teamer - https://teamer.net/

ˆ Spond - https://spond.com/

These applications also have similar features as VTeamTrack, for e.g., that they enable communication between coaches and players, they have training schedules, questionnaires, fee payments, and track attendances, and they enable parent access. However, none of them includes all of those features together.

Other applications, such as TeamStats1, concentrate more on keeping statistics about individual players’ game performance, overall training/game attendance, team success rate, and similar.

On the other hand, VTeamTrack is mostly focused on creating a safe and functional environment for the team members and is intended to be used for such purposes. In future versions, however, it might also implement a similar concept that gives more attention to above mentioned pieces of information.

What makes the VTeamTrack application stand out is that it combines all of those features together and one that is not implemented by any of the above-mentioned applications — guest access to a public team’s games and trainings schedule. This feature is described in Section 1.1.

One of its additional benefits is that it makes a team visible, and as the number of users of the application grows, it also becomes more reachable and perhaps better known. This feature may encourage users to try and register for a local team or even raise interest among investors and sponsors who use the application.

1https://www.teamstats.net/

(27)

Chapter 2

Application functionalities

2.1 User roles

Before delving into the application’s functionalities, it is important to cover the user roles that the application supports and briefly mention the activities accessed by each role based on its permissions.

Following are the user roles:

1. Guest — a user that is not logged in. This user role allows the user to register, log in, and view public teams.

2. Player — the player has access to his/her own team’s players, trainings and games, as well as the details of each training and game. A player can view another player’s profile and posts and edit their own profile information. A player can publish posts and comments, take surveys, view their fee payments, check their training availability, and view their training and game attendance. A player can also send messages in the group chat.

3. Administrator — since the administrator is one of the players, he/she inherits all permissions of that role. In addition, they may create sur- veys, check training attendance, set the team status to public, and manage other settings.

7

(28)

8 Ajla Hamedovi´c 4. Coach — the coach can view the team’s players, trainings, and games.

He/she creates, edits, and deletes trainings and games, approves player and supervisor registration requests, assigns and takes away admin permissions, unregisters users, checks game and training attendance, checks fee payment for all players, views and publishes posts and com- ments, and manages team settings. They can also edit their profile and view the profile and posts of any player.

5. Supervisor — the supervisor has access to the personal data of the players that they supervise, as well as to the players’ attendance and membership payments.

2.2 Functionalities

Here is the list of all functionalities provided by the VTeamTrack application:

ˆ Registration

ˆ Login

ˆ Display the public team’s games list

ˆ Display the public team’s trainings list

ˆ Display the list of registered players in the user’s team

ˆ Display the list of games in the user’s team

ˆ Display the list of trainings in the user’s team

ˆ View game details

ˆ View training details

ˆ View game attendance

ˆ Mark game attendance

(29)

Diplomska naloga 9

ˆ View training attendance

ˆ Mark training attendance

ˆ View training availability

ˆ Mark training availability

ˆ Create a training

ˆ Edit a training

ˆ Delete a training

ˆ Create a game

ˆ Edit a game

ˆ Delete a game

ˆ View a selected player’s profile

ˆ View a selected player’s posts

ˆ Edit personal information

ˆ View posts and comments

ˆ Publish a post

ˆ Delete a post

ˆ Publish a comment

ˆ Delete a comments

ˆ Manage team settings

ˆ Access the group chat

ˆ Send messages in the group chat

(30)

10 Ajla Hamedovi´c

ˆ Give administrator permissions

ˆ Revoke administrator permissions

ˆ Create a survey

ˆ Vote in a survey

ˆ View registration requests

ˆ View details of a registration request

ˆ Accept/decline a registration request

ˆ Unregister user

ˆ View membership payments

ˆ Set the status of a fee payment

ˆ Receive notifications

Certain functionalities are represented with the activity diagram. For some functionalities, we describe the main, and a possible alternate and exception flow.

2.3 Registration

A guest can register as a player, supervisor, or coach (Figure 2.2b). The registration can be declined or accepted. Figure 2.2a shows the registration form.

2.3.1 Activity diagram

Figure 2.1 shows the activity diagram for the registration process.

(31)

Diplomska naloga 11

Figure 2.1: Registration activity diagram

(32)

12 Ajla Hamedovi´c

(a) Registration form (b) Registration options

Figure 2.2: Registration

(33)

Diplomska naloga 13

2.4 Login

A guest can log in to the application. Depending on their user role, they have access to different functionalities of the application. The following data are required for a successful login:

ˆ Team name

ˆ E-mail address

ˆ Password

If the data is not valid, the guest is displayed a credential error. Figure 2.3 shows the login form.

2.5 Display the public team’s games list

2.5.1 Short description

A guest can view a list of games of a chosen public team. The information that is available to the guest are the time, location, and date of the game as well as the team’s opponent.

Figure 2.4 shows the list of games of a public team.

2.5.2 Main flow

1. Guest is on the login screen of the application.

2. Guest clicks the “View public game” button.

3. Guest navigates to the public games screen with a dropdown list that contains all registered public teams in the application.

4. Guest chooses an item from the dropdown list.

5. The list of games of the chosen team is displayed. The opponent of the team and the date of the game are visible for each displayed game.

(34)

14 Ajla Hamedovi´c

Figure 2.3: Login form

(35)

Diplomska naloga 15

2.5.3 Exception flow

1. Guest is on the login screen of the application.

2. Guest clicks the “View public game” button.

3. Guest navigates to the public games screen with a dropdown list that contains all registered public teams in the application.

4. Guest chooses an item from the dropdown list.

5. The chosen team has no games yet, so the list of games is empty and the string “No trainings yet” is shown to the guest.

2.5.4 Exception flow

1. Guest is on the login screen of the application.

2. Guest clicks the “View public game” button.

3. Guest navigates to the public games screen with a dropdown list that contains all registered public teams in the application.

4. None of the registered teams is public, so the dropdown list is empty.

2.6 Display the public team’s training list

A guest can view the list of trainings of a chosen public team. The data available to the guest are the time, location, and date of the training.

The functionality flow is very similar to the one explained in Section 2.5.

In case no public or registered teams exist, a team cannot be chosen. If a team has no trainings yet, the “No trainings yet” message is shown to the guest.

Figure 2.5 shows the list of trainings of a public team.

(36)

16 Ajla Hamedovi´c

Figure 2.4: Games of a selected public team

Figure 2.5: Trainings of a selected public team

(37)

Diplomska naloga 17

2.7 Display the list of registered players in user’s team

2.7.1 Short description

A coach, an administrator, or a player can view the list of players of their team (the team they are registered with), with basic information for each player displayed. Figure 2.6 shows the list of players of a public team.

2.7.2 Main flow

1. Coach/administrator/player just logged in to the application and is on the home screen.

2. The home tab is selected by default and so is the PLAYERS tab on the home tab, so the list of all registered players of the team is immediately visible. The name, surname, and profile photo is displayed, as well as the “view profile” and “view posts” buttons.

3. Coach/administrator/player can scroll through the players list.

2.7.3 Alternate flow

1. Coach/administrator/player is on the home screen of the application on the settings, profile, or posts tab.

2. Coach/administrator/player selects the home tab, and the PLAYERS tab of the home tab is set to default.

3. The list of all registered players of the team is visible. The name, surname, and profile photo are displayed, as well as the “view profile”

and “view posts” buttons.

4. Coach/administrator/player scrolls through the players list.

(38)

18 Ajla Hamedovi´c

2.7.4 Alternate flow

1. Coach/administrator/player is on the home screen of the application

— on home tab.

2. The current view of the home tab is the TRAININGS or GAMES tab.

3. Coach/administrator/player selects the PLAYERS tab of the home tab view.

4. The list of all registered players of the team is visible. The name, surname, and profile photo are displayed, as well as the “view profile”

and “view posts” buttons.

5. Coach/administrator/player can scroll through the players list.

2.7.5 Alternate flow

1. Coach/administrator/player is not on the home screen of the applica- tion.

2. Coach/administrator/player selects the Home item in the menu.

3. Coach/administrator/player is redirected to the home screen, where the home tab is selected by default and the PLAYERS tab of the home tab view is selected as well, so the list of all registered players of the team is immediately visible. The name, surname, and profile photo are displayed, as well as the “view profile” and “view posts” buttons.

4. Coach/administrator/player can scroll through the players list.

2.7.6 Exception flow

1. Coach is on the home screen, where the home tab is selected and the current view of the home tab is the PLAYERS tab.

(39)

Diplomska naloga 19 2. Coach has not confirmed any registration requests yet, so there are no

registered players for the current team.

3. The players list is empty, so the string “No registered players yet” is shown on the screen.

2.7.7 Prerequisites

ˆ The user is logged in as coach, administrator, or player.

2.7.8 Prerequisites for the exception flow

ˆ The user is logged in as coach.

2.8 Display the training list of the current team

A coach/administrator/player/supervisorcan view the list of trainings of his/her team by clicking on the TRAINING tab of the HOME navigation item. The data displayed for all user roles are the time, date, and location of the training. Each training item has an ATTENDANCE button, whose purpose will be explained later. The coach has, in addition, the options for deleting and editing a training item.

Figure 2.7 shows the list of trainings when the user is logged in.

2.9 Display the game list of the current team

A coach/administrator/player/supervisorcan view the list of games of his/her team by clicking on the GAME tab of the HOME navigation item.

The data displayed for all user roles are the time, date, and location of the

(40)

20 Ajla Hamedovi´c

Figure 2.6: List of team players

(41)

Diplomska naloga 21

Figure 2.7: List of trainings

(42)

22 Ajla Hamedovi´c game, as well as the team’s opponent. Each game item has an ATTEN- DANCE button, whose purpose will be explained later. The coach has, in addition, the options for deleting and editing a game item.

Figure 2.8 shows the list of games when the user is logged in.

Figure 2.8: List of games

2.10 Display game details

A coach/administrator/player/supervisor can view the date, location, time, and the team’s opponent of a selected game in the list of games of their

(43)

Diplomska naloga 23 team. A Guest can view the date, location, time, and the team opponent (Figure 2.9) of a selected game in the list of games of the chosen public team.

Figure 2.9: Game details

2.11 Display training details

A coach/administrator/player/supervisor can view the location, date, and time of a selected training in the list of trainings of their team. A guest can view the location, date, and time (Figure 2.10) of a selected training in the list of trainings of the chosen public team.

2.12 Display game attendance

2.12.1 Short description

A coach/administrator/player can view the attendance (Figure 2.11) of each player for the selected game. A supervisorcan view the attendance of his/her assigned player (the player he/she supervises) for the selected game.

(44)

24 Ajla Hamedovi´c

Figure 2.10: Training details

2.12.2 Main flow

1. Coach/administrator/player clicks the attendance button of the se- lected game.

2. The list of all players of the team is displayed. Each item of the list contains an attendance checked/unchecked checkbox for the game.

1. Supervisor clicks the attendance button of the selected game.

2. The attendance checked/unchecked checkbox for the game of the player that is assigned to the supervisor is displayed.

2.12.3 Prerequisites

ˆ The user is logged in as coach, administrator, player, or supervisor.

ˆ Coach/administrator/player/supervisor is on the home screen, where the home tab is selected and the current view of the home tab is the GAMES tab.

ˆ The games list of the team is not empty.

ˆ The players list of the team is not empty.

(45)

Diplomska naloga 25

Figure 2.11: Game attendance list

(46)

26 Ajla Hamedovi´c

2.13 Mark game attendance

A coach can mark a player’s attendance at a game by clicking the AT- TENDANCE button associated with the selected game. The checkboxes are enabled only for the coach.

2.14 View training attendance

A coach/administrator/player/supervisorcan view training attendance (Figure 2.12) by clicking the ATTENDANCE button associated with the training item in the team training list. A supervisor can only view the at- tendance of his/her assigned players, while other user roles are displayed the attendance list of all players for the selected training.

Figure 2.12: Training attendance / possible participation list

(47)

Diplomska naloga 27

2.15 Mark training attendance

A coach/administrator can mark a player’s attendance at a game by clicking the ATTENDANCE button associated with the selected training.

The checkboxes are enabled only for the coach.

2.16 View possible participation list for a train- ing

2.16.1 Short description

A coach/administrator/player can view the list of possible participa- tion of players for a selected training by clicking the ATTENDANCE button associated with the selected training. A supervisorcan view only the par- ticipation of his/her player. Participation can be marked only by the player himself/herself and is not equal to attendance. Participation is a player’s intention to be present at a training and is checked before the time (a day or two) of that training. Attendance, on the other hand, is checked at the training and is a list of players that did participate.

2.16.2 Activity diagram

Figure 2.13 shows the activity diagram for displaying training attendance.

2.17 Mark possible participation list for a train- ing

An Administrator/player can mark the participation at a selected train- ing by clicking the ATTENDANCE button associated with a training item and then checking the checkbox. The checkbox is disabled for other user roles.

(48)

28 Ajla Hamedovi´c

Figure 2.13: Training attendance - activity diagram

(49)

Diplomska naloga 29

2.18 Create a training

A coachcan create (Figure 2.14a) a training by navigating to the TRAIN- ING tab on the HOME navigation tab and clicking on the floating plus button. A form with required fields for time (Figure 2.14c), date (Figure 2.14b), and location is shown. The training is created by clicking the CRE- ATE button. In case of missing fields, an error is displayed. By clicking the CANCEL button, the coach is returned to the training list.

(a) Screen for creating a training item

(b) Date picker (c) Time picker

Figure 2.14: Form for creating a training item

2.19 Edit a training

A coach can edit a training by navigating to the TRAINING tab on the HOME navigation tab and clicking the edit icon of the selected training item.

An already pre-filled form with required fields for time, date, and location is

(50)

30 Ajla Hamedovi´c shown. The training data is updated by clicking the UPDATE button. In case of missing fields, an error is displayed. By clicking the CANCEL button, the coach is returned to the training list.

2.20 Delete a training

A coach can delete a training by navigating to the TRAINING tab on the HOME navigation tab and clicking the delete button of the associated training item. An ”Are you sure you want do delete this item?” popup is shown with a YES and a NO option. By clicking YES, the coach deletes the training, and by clicking NO, he/she closes the popup and is returned to the training list.

2.21 Create a game

A coach can create a game by navigating to the GAME tab on the HOME navigation tab and clicking the floating plus button. A form with required fields for time, date, location, and opponent is shown. The game is created by clicking on the CREATE button. In case of missing fields, an error is displayed. By clicking the CANCEL button, the coach is returned to the game list.

Figure 2.15 shows the required fields for creating a new training item.

2.22 Edit a game

A coach can edit a game by navigating to the GAME tab on the HOME navigation tab and clicking the edit button associated with the selected game item. An already pre-filled form with required fields for time, date, location, and opponent is shown. The game data is updated by clicking the UPDATE button. In case of missing fields, an error is displayed. By clicking the CANCEL button, the coach is returned to the game list.

(51)

Diplomska naloga 31

Figure 2.15: Form for creating a game item

(52)

32 Ajla Hamedovi´c

2.23 Delete a game

A coach can delete a game by navigating to the GAME tab on the HOME navigation tab and clicking the delete button associated with the selected game item. An ”Are you sure you want do delete this item?” popup is shown with a YES and a NO option. By clicking YES, the coach deletes the game, and by clicking NO, he/she closes the popup and is returned to the game list.

2.24 View the profile of a selected player

A coach/administrator/player can view the profile of a player by navi- gating to the PLAYER tab on the HOME navigation tab and clicking the profile icon of a selected player. The following data are visible:

ˆ Name and surname;

ˆ date of birth;

ˆ phone number;

ˆ e-mail;

ˆ profile image.

The coach sees the UNREGISTER USER option. Both the coach and administrator see the MAKE ADMIN option.

Figure 2.16a shows the profile of a selected player and the options avail- able to the coach.

Figure 2.16b shows the profile of a selected player when the user who is currently logged in has the corresponding permissions.

(53)

Diplomska naloga 33

(a) User profile - coach view (b) User profile - regular view

Figure 2.16: User profile

(54)

34 Ajla Hamedovi´c

2.25 Give admin permissions

A coach/administrator can give administrator permissions to a selected player by accessing the player’s profile and clicking the MAKE ADMIN but- ton (Figure 2.17a).

2.26 Revoke admin permissions

A coach/administrator can revoke administrator permissions from a se- lected player by accessing the player’s profile and clicking the REVOKE PERMISSIONS button. The administrator cannot revoke his/her own per- missions.

2.27 Unregister player

A coach can unregister (delete) a selected player by accessing the player’s profile and clicking the UNREGISTER USER button (Figure 2.17b).

(a) Admin permissions dialog (b) Unregister user dialog

Figure 2.17: User options

(55)

Diplomska naloga 35

2.28 View the posts of a selected player

A coach/administrator/player can view the posts of a player by navi- gating to the PLAYER tab on the HOME navigation tab and clicking the VIEW POSTS button of a selected player. The comments on the posts are displayed as well. If the current user is viewing his posts, then the delete icon for each post is also displayed.

2.29 Edit personal information

A coach/administrator/playercan edit his/her personal information (Fig- ures 2.18a and 2.18b) by navigating to the PROFILE bottom navigation tab.

The following data are available for editing:

ˆ Name and surname;

ˆ date of birth;

ˆ phone number;

ˆ e-mail;

ˆ password (Figure 2.18c);

ˆ profile image.

All of the above fields except the profile image are required. In case of updating an empty field, an error will be displayed.

2.30 View posts and comments

A coach/administrator/playercan view all posts (Figure 2.19a) by nav- igating to the POSTS bottom navigation tab. For each post, the content, author, and publishing date are displayed. Above each post, there are the corresponding comments having the same fields as the post. The posts are ordered by the posting date, from the latest to the earliest.

(56)

36 Ajla Hamedovi´c

(a) Logged in user profile (b) Update profile (c) Change password

Figure 2.18: Edit personal information

(a) Posts list (b) Delete option for comments and posts

Figure 2.19: Posts feed

(57)

Diplomska naloga 37

2.31 Publish a post

A coach/administrator/player can publish a post by navigating to the POSTS bottom navigation tab. The users can add a new post by writing the contents in the text field above the list of posts and clicking the POST button (Figure 2.20). The new post is displayed as the latest and thus appears at the top of the list.

Figure 2.20: Publish a new post

2.32 Delete a post

A coach/administrator/player can delete a post (Figure 2.19b) by nav- igating to the POSTS bottom navigation tab. In the posts list, every post whose author is the current user has a delete icon visible. By clicking the delete icon, the post is deleted. A post can also be deleted when the user is accessing only his/her own posts — Section 2.28.

2.33 Publish a comment

A coach/administrator/player can publish a comment by navigating to the POSTS bottom navigation tab. Above the comment list for every post, there is a text field where the user can write his/her content. By clicking the POST button, the comment is published. The new comment is displayed as the latest and thus appears at the top of the list. A comment can also be added when the user is viewing only the posts of a selected user — Section 2.28.

(58)

38 Ajla Hamedovi´c

2.34 Delete a comment

A coach/administrator/player can delete a comment (Figure 2.19b) by navigating to the POSTS bottom navigation tab. In the comment list for every post, every comment whose author is the current user has a delete icon visible. By clicking the delete icon associated with the item, the comment is deleted. A comment can also be deleted when the user is viewing only the posts of a selected user — Section 2.28.

2.35 Manage team settings

A coach/administrator can manage the team settings by navigating to the SETTINGS bottom navigation tab. In the settings tab, he/she can:

ˆ set the training records older than one month to be automatically deleted;

ˆ set the game records older than one month to be automatically deleted;

ˆ change team status to public or private.

Figure 2.21 shows the settings tab.

2.36 Create a survey

An administrator can create a survey. The action flow is explained in the activity diagram in Figure 2.22.

2.37 Vote in a survey

A coach/administrator/player can vote in a survey (Figure 2.23b) by opening the main menu and clicking the SURVEYS item. The list of surveys (Figure 2.23a) is displayed, and the user clicks VOTE to vote for a selected

(59)

Diplomska naloga 39

Figure 2.21: Settings

(60)

40 Ajla Hamedovi´c

Figure 2.22: Activity diagram for creating a survey

(61)

Diplomska naloga 41 item. The list of radio buttons that represent answers to choose from is displayed. When the user clicks on an answer, the number of votes next to it increases.

(a) List of surveys (b) Survey

Figure 2.23: Posts feed

2.38 View registration requests

A coachcan view registration requests by opening the main menu and click- ing the REGISTRATION REQUESTS item. A list of requests is displayed with the name information visible.

(62)

42 Ajla Hamedovi´c

2.39 View details of a registration request

A coachcan view details of a registration requests (Figure 2.24) by clicking the dropdown arrow of a selected request. The information that is displayed is the date of birth, the e-mail, and the phone number from the request form.

Figure 2.24: Registration requests

2.40 Accept/decline a registration request

A coachcan accept/decline a registration request by clicking the ACCEPT/DECLINE button.

2.41 View membership payments

A coach/administrator/player/supervisor can view the status of indi- vidual membership payments for each month by opening the main menu and clicking the MEMBERSHIP PAYMENTS item. The coach sees the payments

(63)

Diplomska naloga 43 for all players. The administrator/player can see his/her payments, whereas the supervisor can see the payments of the players assigned to him/her (Fig- ure 2.25).

Figure 2.25: Membership payments — player / supervisor view

2.42 Set the status of a payment fee

A coachcan set the status of fee to paid (Figure 2.26) for a selected month for a player, if that payment has been made. The default status is unpaid.

(64)

44 Ajla Hamedovi´c

Figure 2.26: Membership payments — coach view

(65)

Diplomska naloga 45

2.43 Use case diagram

In order to simplify the representation of different user roles and their per- missions and to encapsulate the system functionalities, a use case diagram is displayed below (divided into three parts for simplicity of reading — Figures 2.27, 2.28, and 2.29).

Figure 2.27: Use case diagram — part 1

2.44 Class entity diagram

Another relevant way to show relationships between elements of the applica- tion is through the entities in the database using the class diagram (Figure 2.30). All of these classes include getter and setter methods for every at- tribute as well.

(66)

46 Ajla Hamedovi´c

Figure 2.28: Use case diagram — part 2

(67)

Diplomska naloga 47

Figure 2.29: Use case diagram — part 3

(68)

48 Ajla Hamedovi´c

Figure 2.30: Class entity diagram

(69)

Chapter 3

Application specifications

3.1 Introduction

VTeamTrack is, as mentioned before, an Android application, which, accord- ing to Android Headlines [3], is a piece of software usable on the Android operating system. In this chapter, we introduce the Android application ar- chitecture and its implementation in VTeamTrack. We will also discuss the concept of optimal mobile design and important user experience application features.

3.2 Application architecture

Application architecture covers all architectural components of an application and the way they interact. It describes the systems (internal and external), modules, techniques, models, and patterns used for designing, building, and developing the application. A good architecture as the basis of application development is a relevant step in the process because it ensures efficient ap- plication scaling, meeting requirements, application maintenance, isolation, and minimal component dependency, which leads to easier vulnerability de- tection and remediation.

Some of the common architectural patterns are:

49

(70)

50 Ajla Hamedovi´c

ˆ Layered pattern

ˆ Client-Server pattern

ˆ Master-slave pattern

ˆ Peer-to-peer pattern

ˆ MVC pattern(Model-View-Controller)

3.3 Android application architecture

At the beginning, Android allowed developers to implement any architectural model when building their application. There were no standards or recom- mendations for a general solution or development process. The lack of that standardization has led to many unstructured applications.

Later, Android started providing guidelines and key principles in order to solve the recurring problems.

In general, Android app components includeactivities, fragments, ser- vices, content providers, and broadcast receivers. An Android app most often contains multiple instances of those components.

The restriction of an Android application that is mainly taken into consid- eration when defining the architecture is the problem of constrained resources of mobile devices. SInce the operating system is in charge when launching and destroying processes, rather than ourselves, it is important to separate the data from the components and the components from each other.

This gives rise to two main principles [1] :

ˆ Separation of concerns, which is (as defined by Wikipedia) a principle for dividing a computer program into sections.

ˆ Derive the user interface from data models — independence of the data from the user interface components (Activities or Fragments).

This ensures that the application data are not lost when the operating system destroys a process.

(71)

Diplomska naloga 51 For this reason, the application should have two mandatory layers, namely user interface (UI) layer and data layer and one optional layer — do- main layer(Figure 3.1).

Figure 3.1: Application layers Source: Android official documentation [1]

1. The UI layer (Figure 3.2) is responsible for view configuration, user interaction, and observing the LiveData object, which receives changes from the ViewModel object.

Figure 3.2: UI Layer

Source: Android official documentation [1]

(72)

52 Ajla Hamedovi´c 2. The domain layer should be used when it may simplify the development

process (by containing a part of the business logic).

3. The data layer (Figure 3.3) contains business logic. It is composed of repositories and data sources (file, network, and local database).

According to the Android official documentation [1], the repositories are responsible for exposing and centralizing data, resolving conflicts, etc.

Figure 3.3: Data layer

Source: Android official documentation [1]

3.4 User experience

The number of mobile application users keeps increasing on a daily basis, as well as the number of users that access the web through their phones. Because of that being today’s standard, the expectations of those users also constantly grow. That is why it is necessary to ensure an optimal and satisfying user experience.

While doing research about the key practices, we have compiled some ba- sic and more advanced practices, based on articles such asUI Design Trends

(73)

Diplomska naloga 53 for Web and Mobile We Start 2021 With [4], How to Make User Interface Readable: Tips and Practices[5],17 Inspiring Examples of Mobile Interaction Design[6], etc.

The results, in short, are that VTeamTrack is based on the minimalistic approach that makes the screen simple and the application native, intuitive, and easy to use. It uses the principles of expressive typography, color har- mony, short forms, split screens, background color for separating interactive elements and content, etc. This approach is taken because of the appli- cation’s thematics — it is a management application that targets different profiles, so it relies on a generic interface to ensure optimal user experience.

3.5 Technical specifications

The application is developed in Android Studio IDE — an environment for building applications for Android devices using the Java programming lan- guage and Android SDK (Software Development Kit).

(74)

54 Ajla Hamedovi´c

(75)

Chapter 4 Conclusion

At the core of this thesis is a sports team management application, inspired by the concept of an organized, well-structured, and easily manageable team.

It also, in a great deal, leans towards the goal of practical player involvement and accessible information. This idea was formed by observing the recurring struggles in this field such as interaction, scheduling problems, and similar.

This sort of “solution” produces several benefits — it encourages discus- sion, rises motivation among the members, offers easy and remote teaching, saves time, and guarantees interaction.

This being an application designed primarily for amateur-level, younger, and smaller teams, it seemed appropriate to ask for guidelines and suggestions from the target group regarding the functionalities and demands, as well as the overall user experience.

As a result, several new features that would add to its purpose were defined: an organized gallery, an event calendar, a statistics table, online payment, score tracking, etc.

Another advantage of this approach is that it showed that the possible benefits (mentioned above) of this thesis are achievable, and with that the initial goal can be reached as well.

These features may serve for improvements in the overall way the team functions, but the real team spirit and devotion is still best witnessed on the

55

(76)

56 Ajla Hamedovi´c court — which offers, in this age of technology, a glance at reality.

(77)

Bibliography

[1] Android. Documentation for app developers. Reachable: https://

developer.android.com/, 2021.

[2] Mark Homer. How sports team management apps can help coaches.

Reachable: https://ludum.com/blog/data-performance-analytics/

how-sports-team-management-apps-can-help-coaches/, 2021.

[3] Kristijan Lucic. What are android apps? everything you need to know.

Reachable: https://www.androidheadlines.com/what-are-android- apps, 2020.

[4] Marina Yalanska. How to make user interface readable: Tips and prac- tices. Reachable: https://design4users.com/how-to-make-user- interface-readable/, 2021.

[5] Marina Yalanska. How to make user interface readable: Tips and prac- tices. Reachable: https://design4users.com/how-to-make-user- interface-readable/, 2021.

[6] Marina Yalanska. Negative space in design: What it is and how to use it. Reachable: https://design4users.com/negative-space-in- design/, 2021.

57

Reference

POVEZANI DOKUMENTI

If the number of native speakers is still relatively high (for example, Gaelic, Breton, Occitan), in addition to fruitful coexistence with revitalizing activists, they may

This paper focuses mainly on Brazil, where many Romanies from different backgrounds live, in order to analyze the Romani Evangelism development of intra-state and trans- state

Therefore, the linguistic landscape is mainly monolingual - Italian only - and when multilingual signs are used Slovene is not necessarily included, which again might be a clear

We can see from the texts that the term mother tongue always occurs in one possible combination of meanings that derive from the above-mentioned options (the language that

This analysis has been divided into six categories: minority recognition; protection and promotion of minority identity; specific minority-related issues; minority

The comparison of the three regional laws is based on the texts of Regional Norms Concerning the Protection of Slovene Linguistic Minority (Law 26/2007), Regional Norms Concerning

Following the incidents just mentioned, Maria Theresa decreed on July 14, 1765 that the Rumanian villages in Southern Hungary were standing in the way of German

in summary, the activities of Diaspora organizations are based on democratic principles, but their priorities, as it w­as mentioned in the introduction, are not to