View
259
Download
10
Category
Preview:
Citation preview
�
�
�
�����
��
�������������� �� ����������� ������ �������������������
���
���������� ����������������
����
�������������
�
��!�"�#$%&��
�
'�����(�������)����� ���������*���� �������+��,�����
�
i
Trabalho de Projeto apresentado para cumprimento dos requisitos necessários à
obtenção do grau de Mestre em Novos Media e Práticas Web, realizado sob a orientação
científica do Professor Doutor Francisco Rui Cádima.
ii
Dedicatória pessoal
Aos meus pais Hélder Cunha e Florbela Braga
Ao meu irmão Daniel Silva
E á minha namorada Sofia Monteiro
iii
AGRADECIMENTOS
A realização deste trabalho de projeto de mestrado só foi possível devido ao apoio e
incentivo de várias pessoas e entidades, sem quais não seria possível que o mesmo se
tivesse tornado uma realidade. Desta forma gostaria de agradecer a todos eles que de
uma forma ou de outra tiveram influência no resultado final.
Ao Professor Doutor Francisco Rui Cádima, pela orientação prestada neste projeto,
mostrando sempre disponibilidade para esclarecer todas as dúvidas e/ou problemas
que foram surgindo durante o desenvolvimento do mesmo.
Ao Grupo Desportivo Forense e ao Grupo Desportivo Benavente e a todos os seus
colaboradores que me permitiram conhecer melhor a realidade dos clubes de futebol,
estando sempre disponíveis para ajudar e disponibilizar toda a informação necessária.
Às empresas Bomsite – Soluções para Internet, Lda e Lusosoft – Tecnologias de
Informação, Lda e a todos os colegas que comigo trabalharam nestas empresas nos
últimos anos e me permitiram adquirir conhecimentos que foram importantes para o
desenvolvimento deste projeto.
E como os últimos são sempre os primeiros, quero agradecer em especial aos meus pais,
irmão e namorada, por toda a força e incentivo que me deram e especialmente por toda
a paciência que tiveram comigo nos momentos mais complicados.
iv
TRABALHO DE PROJECTO
GOFUT – GESTÃO ONLINE DE FUTEBOL
DESENVOLVIMENTO DE PLATAFORMA WEB
RAFAEL ALEXANDRE BRAGA SILVA
RESUMO
PALAVRAS-CHAVE: GOFut, Desenvolvimento Web, Laravel 5.2, Plataformas Online,
Futebol
O presente relatório foi desenvolvido no âmbito do trabalho de projeto do curso de
mestrado em Novos Media e Práticas Web, da Faculdade de Ciências Sociais e Humanas
da Universidade Nova de Lisboa. O trabalho de projeto realizado consiste no
desenvolvimento de uma plataforma online para gestão de clubes de futebol cujo nome
é GOFut – Gestão Online de Futebol. Foi elaborado um estudo de mercado sobre as
plataformas online para clubes de futebol, assim como das frameworks existentes para
o desenvolvimento de plataformas online. O desenvolvimento deste projeto teve como
base a utilização da framework Laravel 5.2, desta forma que foi necessário perceber os
vários componentes constituintes desta, criar um template na framework para obter o
design pretendido, criar uma base de dados para suporte da plataforma, entre outras
tarefas. O objetivo este relatório é apresentar de forma clara e simplificada as diversas
etapas que são necessárias para o desenvolvimento duma plataforma deste tipo, desde
a análise até ao desenvolvimento propriamente dito.
v
PROJECT WORK
GOFUT – MANAGEMENT ONLINE FOOTBALL
PLATFORM WEB DEVELOPMENT
RAFAEL ALEXANDRE BRAGA SILVA
ABSTRACT
KEYWORDS: GOFut, Web Development, Laravel 5.2, Online Platforms, Football
The present report was developed in the extent work of project of the master´s degree
course in New Media and Web Practices, of the University of Social Sciences and Human,
of the New University of Lisbon. The work of development project is related with, the
creation of a platform online for administration of soccer clubs, whose name is GoFut –
Management Online of Soccer. A market study was accomplished, relatively to the
platforms online for soccer clubs, as well as of the existent frameworks for the
development of the platforms referred previously. The development of this project had
as base Framework Laravel´s 5.2, and it was necessary to notice the several constituent
components of this framework to create a graphic template in the framework to obtain
the intended design, to create a base of data.
vi
ÍNDICE
Introdução ............................................................................................................... 1
CAPÍTULO I: Estado da Arte ...................................................................................... 3
Futebol em Portugal ..................................................................................................... 3
Evolução da Programação Web .................................................................................... 4
Frameworks para desenvolvimento de aplicações web ............................................... 5
Plataformas Idênticas ................................................................................................... 5
CAPÍTULO II: Apresentação da GOFUT ....................................................................... 8
Público-Alvo .................................................................................................................. 8
Objetivos ....................................................................................................................... 9
Vantagens e Desvantagens dA GOFut ........................................................................ 10
Principais Funcionalidades .......................................................................................... 11
CAPÍTULO III: Preparação do Desenvolvimento ....................................................... 13
Tecnologias e Linguagens Utilizadas ........................................................................... 13
Framework Laravel 5.2 ............................................................................................... 13
Plano de Desenvolvimento ......................................................................................... 13
Software Utilizado....................................................................................................... 14
Desenvolvimentos Futuros ......................................................................................... 14
CAPÍTULO IV: Desenvolvimento da Plataforma ....................................................... 16
Modelo de Entidade-Relação ...................................................................................... 16
Dicionário de Dados .................................................................................................... 17
Desenvolvimento Web................................................................................................ 25
Conclusão ............................................................................................................... 31
Bibliografia ............................................................................................................. 34
APÊNDICE A: Logótipo .............................................................................................. a
APÊNDICE B: Página de Login .................................................................................... b
vii
APÊNDICE C: Dashboard Inicial ................................................................................. c
APÊNDICE D: Página de criação de jogador................................................................ d
1
INTRODUÇÃO
Este relatório foi elaborado no âmbito do desenvolvimento do trabalho de
projeto do mestrado de Novos Media e Práticas Web da Faculdade de Ciências Sociais e
Humanas da Universidade Nova de Lisboa. O trabalho de projeto foi desenvolvido
durante o ano letivo 2015/2016 em período pós-laboral.
A ideia de criar uma plataforma online para gestão de clubes de futebol surge
não só por entender que existia uma falha no mercado deste sector, mas também
porque é uma área pela qual tenho muito gosto e na qual intervenho quase diariamente.
Desta forma foi possível juntar o útil ao agradável e aplicar os conhecimentos que tenho
a nível académico e profissional numa área que tem sido um hobbie nos últimos anos.
Após ter decidido qual seria o tema do projeto foi necessário pensar como iria
desenvolver o mesmo, á partida teria duas hipóteses: ou desenvolvia tudo de raiz ou
utilizaria frameworks já existentes para agilizar algumas tarefas e processos. Optei por
escolher a segunda opção, em primeiro lugar porque tenho como opinião pessoal que
não é necess ioà i ve ta àaà oda à ua doàalguém já fez esse trabalho, ou seja, se já
existem frameworks que simplificam determinados processos de desenvolvimento não
é necessário que em todos os projetos web se tenha de criar tudo de raiz. Em segundo
lugar porque usando frameworks existentes teria oportunidade não só de aplicar todos
os conhecimentos adquiridos na componente letiva do mestrado de Novos Media e
Práticas Web como também adquirir novos conhecimentos, esse fator era uma
motivação extra para o desenvolvimento do projeto.
A escolha da framework Laravel 5.2 surge após algum tempo de pesquisa, apesar
de no momento em que iniciei o desenvolvimento não ser a framework mais utilizada
no mercado, era aquela que utilizava as tecnologias mais atuais e era aquela que tinha
mais potencial de desenvolvimento no futuro. Além disso era um framework da qual já
tinha ouvido falar várias vezes, mas nunca tinha tido um contacto direto e prático, o que
me obrigaria a aprender praticamente tudo sobre a mesma, sendo este um desafio que
me agradou bastante.
Este trabalho de projeto tem assim como objetivos gerais: aplicar os
conhecimentos obtidos na componente letiva do mestrado de Novos Media e Práticas
2
Web, explorar a framework Laravel 5.2 totalmente desconhecia para mim sendo este
um grande desafio, criar uma plataforma online que permita fazer a gestão de um clube
de futebol sabendo á partida que esta será apenas uma versão inicial da plataforma, que
poderá num futuro próximo crescer com novas funcionalidades conforme as
necessidades dos seus utilizadores.
Este relatório está divido em quatro capítulos: no primeiro é verificado o estado
da arte desta área, ou seja, o futebol em Portugal, a programação web, as principais
frameworks existentes e as principais plataforma deste tipo que existem no mercado.
No segundo capítulo é feita uma apresentação da plataforma que será desenvolvida, o
seu público-alvo, os objetivos gerais, as vantagens e desvantagens e as suas principais
funcionalidades. No terceiro capítulo é apresentada toda a preparação antes do
desenvolvimento, onde são explicadas as tecnologias e linguagens utilizadas,
apresentada de forma sucinta a framework Laravel 5.2, descrito o plano de
desenvolvimento da plataforma assim como os softwares que foram utilizados e por fim
apresentadas algumas ideias para desenvolvimentos futuros. O quarto e último capítulo
deste relatório trata-se de uma secção mais prática do que teórica, onde é apresentado
o modelo entidade-relação da plataforma, os respetivos dicionários de dados, e são
demonstradas as principais fases do desenvolvimento da plataforma. No final do
relatório serão apresentadas as conclusões do mesmo em função das ideias
apresentadas inicialmente.
3
CAPÍTULO I: ESTADO DA ARTE
O desenvolvimento de plataformas online tem nos últimos anos assistido a um
grande desenvolvimento, acompanhando desta forma a evolução da internet, dos
dispositivos móveis, da facilidade de desenvolvimento e até da consciencialização dos
utilizadores para este tipo de plataformas.
Se há uns anos atrás se olhava para a internet com um instrumento para ler as
notícias, comunicar, enviar correio eletrónico e mais algumas tarefas básicas, hoje em
dia o cenário é completamente diferente, porque para além dessas tarefas básicas
podemos também efetuar operações bem mais complexas e que nos ajudam em tarefas
que antigamente não poderíamos fazer através da internet. Por exemplo, fazer
compras, guarda/editar os nossos documentos, entre muitas outras coisas que
conseguimos fazer hoje em dia. As plataformas online são um desses pontos, permitem
essencialmente que os utilizadores façam a gestão de determinado tipo de informação
online e com isso ter acesso a um conjunto de diversas vantagens.
FUTEBOL EM PORTUGAL
Em termos históricos o futebol chegou a Portugal em 1875 pelas mãos de Harry
Hinton, jovem britânico que estudava em Londres e que organizou o primeiro jogo
realizado no Largo da Achada na freguesia de Camacha, Ilha da Madeira. Poucos anos
depois o futebol chegava também a Portugal continental e em 1888 jogou-se o primeiro
Portugal – Alemanha com vitória da equipa portuguesa por 2-1, só mais tarde foi criado
o primeiro clube de futebol em Portugal com o nome Clube Internacional de Foot-Ball
(fundado em 1902).
Nos dias de hoje o futebol Português já está num nível bastante avançado
contando com várias presenças em competições internacionais, assim como resultados
bastante positivos ao nível das seleções nacionais, praticamente em todos os escalões
desde a formação até á equipa principal. Se no que diz respeito ao futebol profissional
se pode dizer que o cenário é bom, o mesmo não se pode dizer ao nível do futebol
semiprofissional e amador, nos últimos anos tem-se assistido a várias alterações a este
nível, às quais os clubes e associações ainda se estão adaptar.
4
Em primeiro lugar, uma das alterações mais importantes que se tem verificado
no futebol português e em especial a nível dos escalões de formação é o aumento do
número de atletas tanto masculinos como femininos. Este é também um objetivo das
associações distritais de futebol que têm criado algumas iniciativas para que isto seja
possível.
Se o crescimento do número de praticantes é uma boa notícia, no sentido
contrário vem a redução dos apoios atribuídos pelas autarquias aos clubes, com as
crescentes dificuldades a nível financeiro e com a redução de custos nas autarquias, os
clubes de futebol acabaram também por ser afetados e ficar com menos verbas
atribuídas.
Em função das duas situações anteriores, aconteceu um fenómeno que tem
trazido muita discussão, com o crescente número de atletas e com a redução de verbas,
a solução dos clubes foi começarem a transformar a formação de jogadores num
negócio, isto é, se há uns tempos atrás apenas os grandes clubes cobravam valores para
que as crianças praticassem futebol, hoje em dia praticamente todos os clubes têm uma
mensalidade por cada atleta que representa o clube.
EVOLUÇÃO DA PROGRAMAÇÃO WEB
Uma das causas para a evolução da internet e do desenvolvimento das
plataformas foi a evolução da programação web, isto porque nos últimos anos têm
aparecido novas linguagens, novos métodos, novas frameworks e novas ferramentas
que em conjunto facilitam e agilizam bastante o desenvolvimento web.
Um dos momentos mais importantes desta revolução, foi o aparecimento do
HTML 5, uma linguagem que nasceu de uma junção de esforços entre a World Wide Web
Consortium (W3C) e a Web Hypertext Application Technology Working Group
(WHATWG), e que vem para substituir o seu antecedente HTML 4.01 que tinha sido
lançado em 1999, no entanto o novo HTML 5 trouxe muitas novidades para o mundo do
desenvolvimento web.
As grandes vantagens do HTML 5 são: suporte nativo de vídeo e áudio,
aproximação do comportamento com aplicações nativas, serviços de geolocalização e a
simplificação do código HTML. Por exemplo, se á uns tempos atrás para reproduzir um
5
vídeo os browsers precisavam de plugins de terceiros (ex. Adobe Flash), com o HTML 5
isso deixou de ser necessário, o que permite que qualquer dispositivo com um browser
consiga reproduzir o vídeo sem que seja necessário o uso de plugins de terceiros.
Outro dos elementos importantes do HTML 5 é o canvas, um elemento que
permite aos programadores desenhar uma determinada área onde podem ser inseridos
gráficos, vetores, imagens, etc. Este elemento é controlado através de javascript e
poderá ter interação do utilizador através do rato e/ou teclado. Sendo assim podemos
apenas com código HTML e javascript criar um jogo que poderá ser jogado através de
qualquer dispositivo desde que tenha um browser disponível.
FRAMEWORKS PARA DESENVOLVIMENTO DE APLICAÇÕES WEB
Hoje em dia são muito poucos os projetos de desenvolvimento web onde não
são utilizadas frameworks, sejam elas back-end, front-end, ou de qualquer outro tipo ou
funcionalidade. Existem dezenas de frameworks disponíveis, com diversas
funcionalidades distintas, vários tipos de distribuição, sendo que algumas são pagas mas
existem também muitas opções open-source sem qualquer custo para os
programadores. Um dos aspetos que é bastante importante refletir e decidir é saber
quais as frameworks que se vão utilizar logo desde o início do projeto, isto porque a
maioria das frameworks existentes têm grande potencial, no entanto cada projeto tem
as suas necessidades e uma framework que pode ser muito boa para um determinado
projeto, pode não servir para um projeto com necessidades diferentes.
Neste momento as frameworks PHP mais utilizadas são: Laravel lançada em
Junho de 2011, Symfony lançada em Outubro de 2005, CodeIgniter lançada em Fevereiro
de 2006, CakePHP lançada em Abril de 2005 e a Zend lançada em Março de 2006.
Relativamente a frameworks do lado do cliente, mais direcionadas para aspetos
visuais, de usabilidade e acessibilidade as mais utilizadas são: Bootstrap lançada em
Agosto de 2011 e Foundation lançada em Setembro de 2011.
PLATAFORMAS IDÊNTICAS
Nos últimos anos têm surgido várias soluções/plataformas no mercado
direcionadas para o futebol e para os próprios clubes, no entanto a maioria delas está
6
direcionada para os treinadores, além disso grande parte destas plataformas não
permitem que vários utilizadores façam a gestão do mesmo clube.
Irei apresentar apenas dois exemplos de plataformas concorrentes, isto porque
existem dezenas de plataformas direcionadas para o futebol nas diversas vertentes,
sejam direcionadas para os treinos como as duas que irei apresentar, ou para a
observação de jogadores e equipas como é o caso da Talent Spy, ou outras plataformas
direcionadas para outro tipo de funcionalidades.
Dossier do Treinador
Tal como o nome indica, esta é uma plataforma que está direcionada para o dia-
a-dia do treinador, gestão dos jogadores, planeamento de treinos, assiduidade aos
treinos, preparação de jogos, modelos de jogo, resultados dos jogos, relatórios de
observação, reuniões, entre outras opções.
Utilizada por muitos treinadores, e a apesar de permitir por exemplo registar
informações sobre os jogadores e sobre a assiduidade aos treinos, tem a desvantagem
de não permitir que a informação seja partilhada por várias pessoas dentro do mesmo
clube, ou seja, em caso de necessidade de partilha de informação teria de ser utilizada
uma forma externa para o fazer.
Uma outra desvantagem desta plataforma é que não tem nenhuma versão para
dispositivos móveis, apesar de o seu website permitir ser aberto em dispositivos, não
fica funcional para ser utilizado com regularidade nos mesmos. Pode ser acedida através
de www.dossierdotreinador.com, e para ter acesso ao seu conteúdo os utilizadores
deve àfaze àu à egistoàeàfaze àoàpaga e toàdeàu àvalo àdeà 9,9 €àpo àa o.àE isteàu aà
versão para o futebol e uma versão para futsal.
Notes4Coach
Este é um software que permite ter uma gestão do calendário/agenda do
treinador, desenhar exercícios de treino, fazer a gestão do plantel, dos jogos, retirar
alguns dados estatísticos e ainda tem uma vertente social que permite publicar algumas
informações nas redes sociais.
Ao contrário do software anterior, este é apenas direcionado para dispositivos
móveis, isto é, caso o utilizador queira aceder á sua informação através de um
7
computador pessoal não o consegue fazer, o que quanto a mim é uma desvantagem
bastante grande porque limita em grande parte o acesso á informação que é registada
nos dispositivos móveis. Além disso este é também um software que não permite
partilhar a mesma informação por vários utilizadores, ou seja é um software bastante
direcionado apenas para uma pessoa.
Este software já foi utilizado por vários treinadores conhecidos como é o caso de
Rui Vitória (atual treinador do S.L. Benfica) e Leonardo Jardim (atual treinador do
Mónaco), facto que comprova o valor deste software. Para aceder basta entrar no
website www.notes4coach.com, ou para instalar num dispositivo móvel aceder às
respetivas stores.
8
CAPÍTULO II: APRESENTAÇÃO DA GOFUT
A GOFut – Gestão Online de Futebol é uma plataforma totalmente online que
tem como objetivo principal, facilitar a vida aos clubes de futebol. Esta plataforma
funciona preferencialmente através do endereço web www.gofut.pt, no entanto, num
futuro poderá funcionar também através de aplicações para dispositivos móveis, sendo
que a informação será sempre guardada online na sua totalidade.
PÚBLICO-ALVO
A plataforma tem por base um sistema de utilizadores e permissões para acesso
á informação, isto é, cada utilizador registado na plataforma tem associadas a si
permissões que definem quais as funcionalidades a que este terá acesso. Cada utilizador
terá acesso apenas aos seus registos ou aos registos associados á sua equipa ou clube o
que permite que existam utilizadores com diversos níveis de acessos.
Devido ao facto da internet não ter limites geográficos, a partir do momento em
que a plataforma estiver online estará disponível para todo o mundo, para contemplar
esta situação a plataforma está preparada para um cenário de várias línguas, com a
possibilidade de a qualquer altura caso seja necessário, adicionar novas linguagens sem
dificuldades acrescidas.
Em relação às funcionalidades propriamente ditas, inicialmente a plataforma
tem um módulo de gestão de equipas e jogadores que permite organizar os jogadores,
divididos por escalões assim como ter várias equipas para o mesmo escalão, entre
outras funcionalidades.
A forma de acesso às funcionalidades da plataforma é baseada em módulos, isto
é, existem vários módulos com vários níveis de acesso o que permite que alguns
utilizadores tenham apenas acesso a um módulo e outros tenham um acesso mais
abrangente com mais funcionalidades.
Como esta é uma plataforma online e desenvolvida através do uso de uma
framework totalmente open-source, será possível no futuro sempre que seja oportuno
a criação de novas funcionalidades e a disponibilização das mesmas para todos os
utilizadores sem grande dificuldade, isto permite que a plataforma nunca seja um
9
produto fechado, ou seja, estará em constantes atualizações e melhorias, assim como
serão criadas novas funcionalidades sempre que necessário.
OBJETIVOS
O principal objetivo da GOFut é facilitar os processos na gestão dos clubes de
futebol de pequena e média dimensão. Sabendo á partida que nos últimos anos tem
aumentado cada vez mais a prática desportiva e especialmente no futebol, cada vez
existem mais praticantes e cada vez mais novos. Sendo assim é necessário que os clubes
tenham uma forma de organizar o seu dia-a-dia e automatizar alguns processos que
eram fáceis com poucos atletas mas que se complicam com o aumento do número de
atletas.
Há alguns anos atrás era fácil para os clubes organizar por exemplo a sua listagem
de praticantes, por várias razões, primeiro porque o número de atletas era mais
reduzido, depois porque o número de pessoas que fazia essa gestão era menor e mais
importante do que isso, porque não havia tantas necessidades de organização como
existe hoje. Nos dias de hoje existem muitas mais exigências do que há alguns anos atrás,
as entidades que apoiam o desporto querem saber mais sobre os clubes, querem
o he e àosàseusàatletas,àosàpaisàdosàatletasà ue e àse ài fo adosàpo à eiosà ueà
antigamente não eram (e-mail, telemóvel, redes sociais, etc.), e a forma de comunicação
com os próprios atletas mudou muito nos últimos anos.
Outro dos objetivos da plataforma é facilitar a vida dos clubes na gestão das
mensalidades dos atletas, hoje em dia praticamente todos os atletas pagam uma
mensalidade aos clubes para praticar futebol, no entanto a forma como esta gestão é
feita por parte dos clubes por vezes não é a melhor, em alguns casos é mesmo feito
apenas com um registo numa folha, que muitas vezes acaba por desaparecer a meio do
época desportiva e desta forma perder-se todos os registos feitos, em casos com mais
alguma organização o registo é feito através de ficheiros num computador, no entanto
este tipo de registo é descentralizado o que leva muitas vezes á duplicação de registos,
perda de informação, entre outras desvantagens. Com a GOFut esta informação fica
toda centralizada, o que permitirá que várias pessoas façam registos e que consultem
os registos de outras pessoas dentro do mesmo clube.
10
A mesma situação que foi em cima mencionada acontece com o registo de
presenças aos treinos, e com muito mais informações que é necessário guardar durante
o dia a dia dos clubes, o objetivo da GOFut é esse mesmo, além de que no futuro o
principal objetivo será adaptar-se cada vez mais á realidade dos clubes.
VANTAGENS E DESVANTAGENS DA GOFUT
Em primeiro lugar, a maior vantagem da GOFut é que toda a sua informação fica
gravada online, ou seja, qualquer utilizador pode aceder á informação quando quiser e
de onde quiser, basta para isso ter um acesso á internet e conseguirá aceder á sua
informação. Alem disso esta á uma plataforma que esta dividida por utilizadores e
equipas o que permite que várias pessoas dentro do mesmo clube tenham acesso á
mesma informação, ou até que tenham acesso ao mesmo tipo de informações mas com
permissões diferentes (ex. um utilizador pode fazer registos e outro utilizador pode
apenas consultar a informação). Está é uma funcionalidade que penso ter grande valor
para os clubes, sendo que permite uma divisão da informação pelos vários utilizadores
dentro do mesmo clube, porque por vezes há utilizadores que não devem ter acesso a
informação que outros utilizadores têm, ou vice-versa.
Toda a plataforma foi desenvolvida com base em tecnologias open-source, ou
seja, não existem custos de licenças de software, sendo que além do desenvolvimento
o único custo de manutenção da plataforma será o alojamento e domínio web. Além
disso é uma plataforma que poderá dizer-se que nunca irá estar terminada, a qualquer
momento poderão ser feitas melhorias, adicionadas novas funcionalidades, criação de
novos módulos, tornando-se assim numa plataforma bastante escalável e com grande
facilidade de crescimento. Isto permite que no futuro, seja possível criar uma aplicação
nativa para dispositivos móveis com ligação á informação que foi registada na
plataforma, o que permite que qualquer utilizador use a plataforma tanto no seu
computador pessoal como no seu dispositivo móvel.
O registo de novos utilizadores na plataforma está desenhado para ser bastante
simples e rápido, de forma que para começar a utilizar a plataforma qualquer utilizador
só terá de indicar os dados pessoais e o seu endereço de e-mail. No máximo em dois
minutos o utilizador poderá começar a utilizar a plataforma sem qualquer dificuldade,
sendo que mais tarde poderão ser feitas configurações adicionais para o mesmo.
11
Como está descrito em cima, esta é uma plataforma direcionada para os clubes
e não para os treinadores, este poderá ser um ponto menos bom da plataforma que
desta forma poderá não atingir um grupo de utilizadores que procuram plataformas
direcionadas para o treino, no entanto como esta á uma plataforma que poderá evoluir
em vários sentidos é uma possibilidade que poderá ficar em aberto para o futuro, caso
haja necessidade para tal.
PRINCIPAIS FUNCIONALIDADES
Multiutilizadores
Para que a plataforma funcione e para que possa ser utilizada, terão de existir
utilizadores, por isso mesmo esta é uma plataforma multiutilizador que permite ter
utilizadores ilimitados, sendo que o aumento deste número apenas poderá influenciar
os recursos físicos utilizados pela plataforma. O aumento do número de utilizadores é
um dos fatores que influenciará os custos de manutenção da plataforma.
Permissões
O sistema de permissões da plataforma serve para diferenciar os vários tipos de
utilizador dentro da mesma, podem existir utilizadores com opções de administração,
outros com opções apenas para utilizar a plataforma, e dentro deste grupo pode haver
diferenças entre os utilizadores. Os utilizadores com permissões de administração fazem
a gestão das permissões dos restantes utilizadores.
Clubes
Um clube refere-se a uma entidade propriamente dita, cada utilizador pode fazer
a gestão dos seus clubes, criar novos clubes, editar as informações dos clubes existentes,
ou eliminar um clube que já não exista. Dentro de cada clube estão guardadas as
informações gerais do clube (nome, morada, contactos, ano de fundação, etc.).
Escalões
Esta é uma funcionalidade apenas para utilizadores de administração, os
escalões estão relacionados com as divisões feitas em função das idades dos jogadores,
estas informações são normalmente regulamentadas pelas federações de futebol, no
entanto por vezes podem sofrer alterações esporádicas. Os utilizadores com permissões
12
de administração podem fazer a gestão dos escalões, criar novos escalões, editar as
informações dos escalões existentes ou eliminar escalões que já não existam.
Equipas
Cada clube pode ter várias equipas de um escalão, por exemplo o mesmo clube
podeàte àu aàe uipaàdoàes alãoàdeài i iadosà á àeàu aàe uipaà B .àCadaàutilizado àpodeà
fazer a gestão das suas equipas em função dos clubes e escalões existentes. Podem ser
criadas equipas novas, editar as informações das equipas existentes ou eliminar uma
equipa que já não exista. Dentro de cada equipa estão guardadas informações como o
escalão a que pertence, a descrição da equipa e os jogadores que pertencem á equipa.
Jogadores
Os jogadores são a funcionalidade principal em função das funcionalidades
apresentadas em cima (clubes, escalões e equipas), isto porque, para que seja possível
registar um jogador é necessário registar uma equipa que por sua vez necessita que
existia um escalão e um clube. Cada utilizador faz a gestão dos jogadores das suas
equipas onde pode criar novos jogadores, editar os jogadores existentes e eliminar
jogadores que já não estejam ativos. Dentro de cada jogador serão guardadas
informações gerais sobre o mesmo (nome, data de nascimento, nacionalidade, morada,
etc.), assim como informações mais específicas (posição, pé preferido, histórico de
clubes, etc.).
13
CAPÍTULO III: PREPARAÇÃO DO DESENVOLVIMENTO
TECNOLOGIAS E LINGUAGENS UTILIZADAS
A plataforma GOFut foi desenvolvida tendo por base a framework Laravel 5.2,
no entanto, esta plataforma utiliza várias tecnologias e linguagens, cada uma com a sua
função e objetivo mas que muitas vezes funcionam integradas. As linguagens utilizadas
são PHP (Hypertext Preprocessor), Javascript e CSS (Cascading Style Sheet).
Para a componente de apresentação e representação da informação da
plataforma, decidi utilizar a framework Bootstrap na sua versão mais recente 3.3.6, que
nos permite através das suas classes predefinidas criar uma estrutura sólida de layout
para qualquer site, em conformidade com os padrões W3C e compatível com a maioria
dos browsers nas suas versões mais recentes.
FRAMEWORK LARAVEL 5.2
Criada por Taylor Otwell em Junho de 2011, a Laravel é uma framework de
aplicações web desenvolvida através da linguagem PHP e totalmente open-source. Esta
framework permite a ligação a diferentes tipos de bases de dados relacionais, e está
desenhada em função do padrão MVC (model-view-controller).
Apesar de ser relativamente recente, esta framework conseguiu atingir
rapidamente um bom nível de popularidade e desde o início de Março de 2015 que é
considerada uma das melhores frameworks PHP. Neste momento a versão mais recente
é a 5.2 que já conta com um client que funciona através da linha de comandos e que
automatiza várias tarefas para a criação de aplicações web através da framework.
PLANO DE DESENVOLVIMENTO
Antes de iniciar o desenvolvimento da plataforma GOFut foi necessário explorar,
conhecer e aprender algumas coisas sobre a framework Laravel, totalmente
desconhecida para mim mas que segundo várias informações recolhidas era uma das
mais poderosas frameworks no momento em que iniciei este projeto.
No entanto, a ideia inicial para planeamento do desenvolvimento da plataforma foi
dividir o desenvolvimento em várias fazes, em função das funcionalidades que a
14
plataforma iria ter. Sendo assim o desenvolvimento iria ser composto pelas seguintes
fases:
1. Criação de Layout – Nesta fase do desenvolvimento foi necessário fazer a
integração da framework Bootstrap, e criar uma estrutura sólida e funcional para
suportar todas as restantes funcionalidades.
2. Criação de Sistema de Autenticação e Autorização – Como esta seria uma
plataforma de acesso limitado e apenas para utilizadores registados seria
necessário criar um sistema de autenticação para que cada utilizador tenha os
seus dados de acesso para consultar apenas a sua informação. Além disso,
existem vários tipos de utilizadores, desta forma seria necessário ter um sistema
de autorizações para ser possível definir quais as funcionalidades que cada
utilizador teria acesso.
3. Criação de Gestão de Equipas – Está é uma funcionalidade principal da
plataforma, no entanto, incluí vários itens que seria necessário que ficassem
interligados, sendo eles as equipas, os escalões, os clubes e os próprios
jogadores.
SOFTWARE UTILIZADO
Durante o desenvolvimento da plataforma foram utilizados vários softwares para
diversas finalidades, sendo estes os seguintes:
Sublime Text 2 – É um IDE multiplataforma e foi utilizado para criação e edição
do código fonte de toda a plataforma.
Adobe Fireworks CS6 – É um editor de imagens e foi utilizado para criação e
edição das componentes gráficas da plataforma (logótipo, ícones, etc.)
Mozilla Firefox + Firebug – É um browser de internet e foi utilizado em conjunto
com o seu plugin Firebug para testar o funcionamento e comportamento da
plataforma.
DESENVOLVIMENTOS FUTUROS
Com a explosão dos dispositivos móveis nos últimos anos, umas das prioridades
num futuro próximo para a plataforma é a criação de uma aplicação nativa estes
dispositivos. Apesar da plataforma funcionar em qualquer dispositivo móvel que
15
tenham um browser e acesso á internet, a sua usabilidade não é a melhor e por isso é
necessária a criação de uma aplicação nativa onde os utilizadores tenham acesso a todas
as funcionalidades que têm quando acedem á plataforma através do seu computador
pessoal.
Assim como já foi referido anteriormente esta á uma plataforma que se pode
dizer, nunca está finalizada. A qualquer momento podem surgir melhorias e novas
funcionalidades. Por essa mesma razão um dos objetivos futuro é a criação de novos
módulos de funcionalidades, entre os quais:
Assiduidade aos Treinos
A ideia de criar uma funcionalidade na plataforma que permita aos utilizadores
a gestão das presenças aos treinos dos seus jogadores nasce porque esta é uma
informação que é importante para várias pessoas dentro de um clube de futebol. O
treinador precisa de saber quais os jogadores que são mais ou menos assíduos aos
treinos, no entanto esta informação pode ser importante também a outros níveis, por
exemplo um jogador que era bastante assíduo e deixou de o ser, quanto mais depressa
for detetada esta informação mais depressa poderá ser resolvido o problema. A ideia
desta funcionalidade é que os utilizadores consigam registar diariamente de forma
simples quais os jogadores que estiveram presentes nos treinos e mais tarde obter
relatórios sobre essa informação.
Pagamentos de Mensalidades
Assim como na funcionalidade em cima apresentada, esta é uma informação
bastante sensível e que por vezes traz problemas de gestão aos clubes. Por vezes esta
informação é registada por várias pessoas e em momentos diferentes e por isso é
necessário que não se perca informação e que todas as pessoas tenham acesso á
informação correta. A ideia desta funcionalidade é que os utilizadores consigam registar
os recebimentos das mensalidades dos jogadores e a qualquer momento seja possível
consultar por exemplo quais as mensalidades em falta, ou quais os jogadores que já
pagaram a mensalidade de um determinado mês.
16
CAPÍTULO IV: DESENVOLVIMENTO DA PLATAFORMA
MODELO DE ENTIDADE-RELAÇÃO
A primeira fase de desenvolvimento do projeto foi o desenho do modelo ER
(entidade-relação) que representa todas as entidades existentes na base de dados assim
como as relações entre si.
Este modelo deverá ser alterado quando forem implementadas novas
funcionalidades no projeto, no entanto nesta fase do mesmo existem 11 entidades
representadas no modelo.
17
DICIONÁRIO DE DADOS
Users
Nome Tipo de Dados Tamanho Obrigatório Descrição
Id Inteiro 10 Sim Identificador da entidade
Email Texto 255 Sim E-mail do user
Password Texto 255 Sim Password do user
First_name Texto 255 Sim Primeiro nome do user
Last_name Texto 255 Sim Último nome do user
Created_by Inteiro 10 Não ID do user que criou este user
Updated_by Inteiro 10 Não ID do user que alterou este user
Remember_token Texto 100 Não Token utilizado para recuperação da password
Created_at Timestamp N/A Sim Data de criação deste user
Update_at Timestamp N/A Sim Data de atualização deste user
Deleted_at Timestamp N/A Não Data de eliminação deste user
18
Roles
Nome Tipo de Dados Tamanho Obrigatório Descrição
Id Inteiro 10 Sim Identificador da entidade
Role_title Texto 255 Sim Título da role
Role_slug Texto 255 Sim Slug da role
Created_by Inteiro 10 Sim ID do user que criou este role
Updated_by Inteiro 10 Sim ID do user que alterou este role
Created_at Timestamp N/A Sim Data de criação deste role
Update_at Timestamp N/A Sim Data de atualização deste role
Deleted_at Timestamp N/A Não Data de eliminação deste role
Role_User
Nome Tipo de Dados Tamanho Obrigatório Descrição
Id Inteiro 10 Sim Identificador da entidade
Role_Id Inteiro 10 Sim ID do role
User_Id Inteiro 10 Sim ID do user
19
Permissions
Nome Tipo de Dados Tamanho Obrigatório Descrição
Id Inteiro 10 Sim Identificador da entidade
Permission_title Texto 255 Sim Título da permission
Permission_slug Texto 255 Sim Slug da permission
Permission_description Texto 255 Não Descrição da permission
Created_by Inteiro 10 Sim ID do user que criou esta permission
Updated_by Inteiro 10 Sim ID do user que alterou esta permission
Created_at Timestamp N/A Sim Data de criação desta permission
Update_at Timestamp N/A Sim Data de atualização desta permission
Deleted_at Timestamp N/A Não Data de eliminação desta permission
20
Permission_Role
Nome Tipo de Dados Tamanho Obrigatório Descrição
Id Inteiro 10 Sim Identificador da entidade
Permission_Id Inteiro 10 Sim ID da permission
Role_Id Inteiro 10 Sim ID da role
Clubes
Nome Tipo de Dados Tamanho Obrigatório Descrição
Id Inteiro 10 Sim Identificador da entidade
Clube Texto 255 Sim Nome do clube
Localidade Texto 255 Não Localidade do clube
Pais Texto 255 Não País do clube
Associacao Texto 255 Não Associação do clube
Presidente Texto 255 Não Presidente do clube
Morada Texto 255 Não Morada do clube
Site Texto 255 Não Site do clube
Email Texto 255 Não E-mail do clube
Observacoes Texto 255 Não Observações do clube
Created_by Inteiro 10 Sim ID do user que criou este clube
Updated_by Inteiro 10 Sim ID do user que alterou este clube
Created_at Timestamp N/A Sim Data de criação deste clube
Update_at Timestamp N/A Sim Data de atualização deste clube
Deleted_at Timestamp N/A Não Data de eliminação deste clube
21
Escaloes
Nome Tipo de Dados Tamanho Obrigatório Descrição
Id Inteiro 10 Sim Identificador da entidade
Escalao Texto 255 Sim Nome do escalão
Created_by Inteiro 10 Sim ID do user que criou este escalão
Updated_by Inteiro 10 Sim ID do user que alterou este escalão
Created_at Timestamp N/A Sim Data de criação deste escalão
Update_at Timestamp N/A Sim Data de atualização deste escalão
Deleted_at Timestamp N/A Não Data de eliminação deste escalão
22
Equipas
Nome Tipo de Dados Tamanho Obrigatório Descrição
Id Inteiro 10 Sim Identificador da entidade
Equipa Texto 255 Sim Nome da equipa
Treinador Texto 255 Não Treinador da equipa
Observacoes Texto 255 Não Observações da equipa
Clube_Id Inteiro 10 Sim ID do clube desta equipa
Escalao_Id Inteiro 10 Sim ID do escalão desta equipa
Created_by Inteiro 10 Sim ID do user que criou esta equipa
Updated_by Inteiro 10 Sim ID do user que alterou esta equipa
Created_at Timestamp N/A Sim Data de criação desta equipa
Update_at Timestamp N/A Sim Data de atualização desta equipa
Deleted_at Timestamp N/A Não Data de eliminação desta equipa
23
Jogadores
Nome Tipo de Dados Tamanho Obrigatório Descrição
Id Inteiro 10 Sim Identificador da entidade
Nome Texto 255 Sim Nome do jogador
DataNascimento Date N/A Não Data de Nascimento do jogador
Nacionalidade Texto 255 Não Nacionalidade do jogador
pePreferencial Texto 255 Não Pé preferencial do jogador
Altura Inteiro 11 Não Altura do jogador
Peso Double (8,2) Não Peso do Jogador
Posicao Texto 255 Não Posição do jogador
Facebook Texto 255 Não Facebook do jogador
Observacoes Texto 255 Não Observações do jogador
Equipa_Id Inteiro 10 Sim ID da equipa deste jogador
Created_by Inteiro 10 Sim ID do user que criou este jogador
Updated_by Inteiro 10 Sim ID do user que alterou este jogador
Created_at Timestamp N/A Sim Data de criação deste jogador
Update_at Timestamp N/A Sim Data de atualização deste jogador
Deleted_at Timestamp N/A Não Data de eliminação deste jogador
24
Password_Resets
Nome Tipo de Dados Tamanho Obrigatório Descrição
Email Texto 255 Sim E-mail do reset
Token Texto 255 Sim Token do reset
Created_at Timestamp N/A Sim Data de criação deste reset
Migrations
Nome Tipo de Dados Tamanho Obrigatório Descrição
Migration Texto 255 Sim Nome da Migração
Batch Inteiro 11 Sim
25
DESENVOLVIMENTO WEB
Instalação e configuração da Framework Laravel 5.2
Antes de iniciar o desenvolvimento propriamente dito da plataforma foi
necessário a instalação da framework Laravel 5.2 escolhida como base de trabalho e que
facilita em muito vários processos a nível da programação.
Para a instalação da framework são necessários alguns requisitos mínimos que são
os seguintes:
PHP igual ou superior á versão 5.5.9
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
Tokenizer PHP Extension
Além dos requisitos em cima mencionados, a framework Laravel 5.2 utiliza composer
para gerir as suas dependências e por essa razão é necessário que este também esteja
instalado na máquina de desenvolvimento.
O primeiro passo para a instalação da framework é fazer o download da mesma
através do composer, o que é feito da seguinte forma:
Co pose global e ui e la avel/i stalle
De seguida é necessário fazer a criação de um novo projeto Laravel 5.2, que
deverá ser feito da seguinte forma:
Laravel new gofut
Após o processo de instalação, tudo se encontra pronto para começar o
desenvolvimento da plataforma, no entanto poderão ainda ser feitas algumas
o figu ações.à Foià iadaàu aàpastaà aà aizàdoàp ojetoà o àoà o eà o fig ,àde t oà
26
dessa pasta existem vários ficheiros com as configurações para as várias componentes
da plataforma (autenticação, base de dados, e-mail, sessão, etc.)
Existe uma configuração que é bastante importante de fazer logo após a
instalação do Laravel 5.2 que é definir a chave da aplicação, isto é, dentro da pasta
o fig àe isteàu àfi hei oà o àoà o eà app.php àeàde t oàdesseàfi hei oàe isteàu aà
p op iedadeà ke .à Estaà haveà se veà pa aà adi io a à aisà segu a çaà sà sessõesà dosà
utilizadores da plataforma e é normalmente composta por uma cadeia de 32 de
caracteres, caso a mesma não seja definida podem ocorrer falhas de segurança. Para
gerar esta chave automaticamente poderá ser utilizado o seguinte comando:
php artisan key:generate
Rotas HTTP
A framework Laravel 5.2 tem já implementado de raiz um sistema de roteamento
HTTP, isto é, um sistema que permite definir quais os endereços que estão disponíveis
para os utilizadores, quais as operações que podem efetuar em cada um deles, e quem
pode aceder aos mesmos.
Todas as rotas são definidas em app/http/routes.php, no entanto no caso da
plataforma GOFut foram definidas algumas rotas necessárias para o funcionamento da
mesma, neste caso foram criados dois tipos diferentes de rotas, as rotas para
utilizadores anónimos e as rotas para utilizadores autenticados.
Rota para aceder á página Registo de utilizadores
Route::get('auth/register', [
'as' =>'register',
'uses' => 'Auth\AuthController@getRegister'
]);
Rotas para aceder às páginas apenas para utilizadores autenticados
Route::group(['middleware' => 'auth'], function()
{
Route::get('/','HomeController@index');
Route::get('home','HomeController@index');
27
Route::resource('escaloes', 'EscalaoController');
Route::resource('clubes', 'ClubeController');
Route::resource('equipas', 'EquipaController');
Route::resource('jogadores', 'JogadorController');
Route::resource('grupos', 'GrupoController');
Route::resource('permissoes', 'PermissaoController');
Route::resource('utilizadores', 'UtilizadorController');
});
De uma forma mais simplificada pode dizer-se que as Rotas HTTP funcionam
como um mapa da plataforma, e que assim como o nome indica servem para fazer o
roteamento dos pedidos HTTP para os locais corretos.
HTTP Middleware
Este é um sistema que está disponível em app/http/middleware e serve
principalmente para filtrar os pedidos HTTP na plataforma, ou seja, quando algum
mecanismo manual ou automático faz um pedido HTTP á plataforma, podem ser
ativados vários midlewares com diversas funções, sendo que podemos desenvolver os
nossos próprios middlewares para desempenhar as funções que são necessárias em
cada caso.
Em muitos casos, os middlewares são utilizados para autenticação ou para
registar em bases de dados informações sobre todos os pedidos efetuados. No caso da
plataforma GOFut foi criado um middleware específico para validar a autenticação do
pedido.
public function handle($request, Closure $next)
{
if ($this->auth->guest()) {
if ($request->ajax()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('auth/login');
}
}
return $next($request);
}
28
No middleware reproduzido em cima podemos ver uma operação de validação
simples onde é verificado se o pedido tem autenticação e caso não tenha não avançará
para o resultado pedido e será redirecionado para a página de login.
Para definirmos o conjunto de middlewares que serão executados em todos os
pedidos, devemos aceder ao ficheiro app/http/Kernel.php e alterar a seguinte
propriedade:
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
];
Podemos também associar um ou vários middlewares e uma ou várias rotas http,
como é o caso do middleware de autenticação em cima demonstrado e que está apenas
associado às rotas que necessitam de autenticação, para que este processo funcione é
necessário associar um nome ao middleware ou ao conjunto dos mesmos que devem
ser associados para aquele nome.
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'acl' => \App\Http\Middleware\CheckPermission::class,
];
Controladores
Após ter as rotas HTTP e os middlewares definidos, estamos prontos para
começar a preparar o resultado que será apresentado quando é feito um pedido á
plataforma. Esse trabalho é feito pelos controladores que estão localizados em
app/http/controllers e são umas das peças fundamentais da framework Laravel 5.2. Os
29
controladores servem para fazer a ligação entre o entre os modelos de base de dados e
as vistas que servem de resposta aos pedidos http, ou seja, são os controladores que
efetuam por exemplo operações de escrita ou leitura sobre a base de dados, e que
retornam nas vistas as mensagens de sucesso ou as listagens com os resultados. No
Laravel 5.2 os controladores são compostos por um conjunto de ações que são definidos
no momento do desenvolvimento do mesmo. Por exemplo uma ação poderá ser
i t oduzi àu aàe uipa àouà lista àasàe uipas .àOsà o t olado esàestãoà o al e teà
relacionados com as rotas http, sendo que pode ser definida que uma rota é controlada
por um determinado controlador, ou uma rota é controlada por uma ação de um
controlador.
public function update(EquipaGravarRequest $request, $id)
{
$equipaUpdate = $request->all();
$equipa = Equipa::find($id);
$equipa->update($equipaUpdate);
Flash::overlay('Equipa gravado com sucesso.', 'Equipas');
return Redirect::to('equipas');
}
Noà e e plo,à est à de o st adaà aà açãoà deà Update à doà o t olado à E uipa
onde é possível verificar que é feita a atualização dos dados da equipa recebidos pelos
parâmetros e mostrada uma mensagem na vista que é retornada.
HTTP Requests
Esta funcionalidade serve principalmente para podermos obter o objeto que nos
é enviado através dos pedidos http, por exemplo no momento em que um formulário
da plataforma é submetido, são enviados para o servidor os diversos dados introduzidos
pelo utilizador. Para aceder ao http Request devemos incluir no nosso controlador uma
referência para Iluminate\Http\Request e desta forma o request é injetado
automaticamente ao nosso controlador.
30
Na plataforma GOFut utilizámos http Request para fazer a validação dos dados
introduzidos nos formulários, sendo que, desta forma conseguimos verificar se os
campos cumprem as regras de validação antes de serem tratados para introdução na
base de dados.
public function rules()
{
return [
'equipa' => 'required',
'clube_id' => 'required',
'escalao_id' => 'required'
];
}
O exemplo apresentado mostra um conjunto de regras para o registo de uma
nova equipa, conforme é possível verificar existem três campos de preenchimento
obrigatório, e caso o http Request não cumpra estes requisitos não será possível registar
a equipa.
Vistas
Depois de termos criado todo o procedimento anterior de receção e tratamento
dos dados, chegou o momento de mostrar as respostas para os utilizadores, estas
respostas são normalmente conhecidas por vistas e são compostas na sua grande
maioria por código HTML que depois é apresentado no browser dos nossos utilizadores.
No caso da plataforma GOFut existem vários tipos de vistas, como é o caso das
vistas de listagens, vistas de introdução, vistas de edição, entre outras mais específicas
para determinadas funções. Apesar de todos os componentes anteriores terem um
papel importantíssimo no funcionamento da plataforma é nas vistas que é feita a ligação
com o utilizador final, e por isso é aqui que podemos trabalhar os aspetos de
acessibilidade e usabilidade da plataforma que hoje em dia são cada vez mais
importantes.
Resumidamente, as vistas contêm toda a apresentação dos conteúdos para os
utilizadores como por exemplo tipos de letra, tamanhos, cores, posicionamentos, entre
outros aspetos que podem ser alterados a este nível.
31
CONCLUSÃO
O desenvolvimento deste projeto levou-me a retirar várias conclusões, algumas
delas das quais já tinha um ponto de vista sobre elas e que este projeto veio comprovar
aquilo que eu pensava, outras que são completamente novas para mim e que me deixam
muito contente pelas decisões que tomei durante o desenvolvimento do mesmo.
Se é verdade que o mercado das plataformas online direcionadas para o futebol
tem crescido imenso nos últimos anos, também é verdade que não existem muitas
plataformas com a mesma linha de ideias da GOFut – Gestão Online de Futebol. A
maioria das plataformas existentes estão direcionadas para treinadores ou para a
observação, enquanto a GOFut direciona-se mais para a gestão dos clubes não estando
diretamente associada aos treinadores. Além disso a GOFut é uma plataforma modular
e desta forma poderão ser acrescentadas novas funcionalidades a qualquer momento
de forma a melhorar o funcionamento da mesma ou a atingir outros tipos de público-
alvo, por essa razão aquilo que neste momento não é uma plataforma direcionada para
treinadores de futebol, pode no futuro adquirir funcionalidades para atrair este tipo de
utilizadores.
Uma das dúvidas iniciais foi o uso de uma framework ou o desenvolvimento de
todo o código começando do zero. Quanto a essa dúvida tenho cada vez mais certezas
que se queremos desenvolver um projeto com uma dimensão média e que queiramos
que este possa crescer no futuro, deveremos sempre utilizar uma framework. Isto
porque o tempo que iria ser investido para desenvolver todo o código de raiz iria ser
muito maior do que aquele que foi investido usando uma framework, além disso quando
utilizamos uma framework estamos a utilizar código desenvolvido e testado por
centenas ou milhares de pessoas, o que nos dá uma garantia muito maior que aquela
que temos quando o código é desenvolvido de raiz. E se mesmo assim houver um erro
no código esse erro vai ser muito mais rapidamente encontrado e solucionado do que
se o código fosse desenvolvido de raiz. Além disso até as grandes empresas, como é o
caso do Google, Microsoft, Amazon, entre outras, utilizam frameworks nos seus
projetos.
32
Relativamente á framework Laravel 5.2, cheguei á conclusão que foi uma das
melhores escolhas que poderia ter feito para este projeto, a prova disso foi que em 2014
esta plataforma foi considerada segundo um estudo do sitepoint como a melhor
plataforma PHP para desenvolvimento de aplicações e websites. Quanto a mim esta
plataforma tem diversos fatores a seu favor mas aquele que mais se destaca é o uso de
MVC(model-view-controller), além disso a sua documentação é possivelmente a melhor
de todas as frameworks existentes no mercado. Outro ponto importante desta
framework é a sua extensibilidade, ou seja, existem diversos plugins ou packages que
podem ser adicionados para vários tipos de objetivos, além de que o número de plugins
existentes está diariamente a aumentar devido ao facto da comunidade de
programadores ser cada vez maior.
ápesa à deà e à algu sà o e tosà te à pe dido à algu à te poà aà pes uisa à eà
aprender mais sobre esta framework, tenho a certeza que consegui recuperar esse
tempo com todas as vantagens que esta plataforma me disponibilizou, além disso tenho
a certeza que utilizando a estrutura MVC tenho o meu projeto organizado e estruturado,
conseguindo assim uma plataforma modular e que poderá crescer sem que o seu código
seàto eàu à ue a- a eças .
Tenho noção que na plataforma GOFut – Gestão Online de Futebol não utilizei
todos os recursos existentes nesta framework, no entanto isso não seria possível em
nenhum projeto porque cada projeto tem as suas necessidades e esta é uma framework
que está preparada para diversos tipos de necessidades. No entanto penso que o
objetivo principal foi conseguido, isto é, consegui desenvolver a plataforma utilizando
os recursos da framework que precisei, consoante as necessidades da mesma. É
importante referir que não quero com isto dizer que a framework Laravel 5.2 é a melhor
de todas as existentes, até porque na minha opinião não é possível fazer essa afirmação
relativamente a nenhuma das frameworks existentes, cada caso é um caso e a única
coisa que se pode afirmar éà ueà aàframework àéàaà elho àpa aàoàp ojetoà .
A plataforma GOFut – Gestão Online de Futebol ficou neste momento com dois
módulos criados, um módulo base de utilizadores e permissões que é a base de toda a
plataforma, e um módulo de gestão de equipas que permite aos utilizadores gerir as
suas equipas, jogadores, escalões, etc. Num futuro próximo os desenvolvimentos da
33
plataforma serão um módulo de assiduidade aos treinos e um módulo de gestão do
pagamento de mensalidades. Além disso quero também desenvolver uma aplicação
para dispositivos móveis para que se torne mais fácil utilizar a plataforma através de um
smartphone ou tablet.
Em resumo, penso que com este projeto consegui não só aplicar os
conhecimentos adquiridos durante a componente letiva do mestrado de Novos Media
e Práticas Web mas também aprender e adquirir um grande número de conhecimentos,
especialmente devido ao facto que ter optado por utilizar uma framework no
desenvolvimento da plataforma, algo que não tive contacto durante a componente
letiva do mestrado. Além disso, durante os meses em que desenvolvi este projeto tive a
oportunidade/necessidade de pesquisar, testar, optar por tecnologias e metodologias
que não teria oportunidade de utilizar tão facilmente a nível profissional.
34
BIBLIOGRAFIA
Abreu, L. (2015). HTML5. FCA - Editora Informática.
AdminLTE Preview - Almsaeed Studio. (25 de Março de 2006). Obtido de
https://almsaeedstudio.com/preview
Bhaumik, S. (2015). Bootstrap Essentials. Packt Publishing Ltd.
Bootstrap - The world's most popular mobile-first and responsive front-end framework.
(25 de Março de 2016). Obtido de http://getbootstrap.com/
Dossier do Treinador de Football. (25 de Março de 2016). Obtido de
http://dossierdotreinador.com/
DuBois, P. (2013). MySQL Developer's Library. Pearson Education, Inc.
Figueiredo, B. (2007). Web Design. FCA - Editora Informática.
Heintzelman, C. (2015). Laravel 5.1 Beauty. Kydala Enterprises.
jQuery - write less, do more. (25 de Março de 2016). Obtido de https://jquery.com/
Laracasts - The Best Laravel and PHP Screencasts. (25 de Março de 2016). Obtido de
https://laracasts.com/
Laravel - The PHP Framework For Web Artisans. (25 de Março de 2016). Obtido de
https://laravel.com/
Notes4Coach. (25 de Março de 2016). Obtido de http://www.notes4coach.com/
Pecoraro, C. J. (2015). Mastering Laravel. Packt Publishing Ltd.
Remoaldo, P. (2011). CSS3. FCA - Editora Informática.
Saray, A. (2009). Professional PHP Design Patterns. Wiley Publishing, Inc.
Serrão, C., & Marques, J. (2009). Programação com PHP 5.3. FCA - Editora Informática.
Soares, L. (2014). jQuery - A sua biblioteca javascript. FCA - Editora Informática.
Spurlock, J. (2013). Bootstrap. O'Reilly Media, Inc.
Talent Spy - Football/Soccer Scouting Software. (25 de Março de 2016). Obtido de
https://www.ftspy.com
35
The Best PHP Framework for 2015: SitePoint Survey Results. (25 de Março de 2016).
Obtido de http://www.sitepoint.com/best-php-framework-2015-sitepoint-
survey-results/
w3schools. (25 de Março de 2016). Obtido de http://www.w3schools.com/
World Wide Web Consortium (W3C). (25 de Março de 2016). Obtido de
https://www.w3.org/
a
APÊNDICE A: LOGÓTIPO
b
APÊNDICE B: PÁGINA DE LOGIN
c
APÊNDICE C: DASHBOARD INICIAL
d
APÊNDICE D: PÁGINA DE CRIAÇÃO DE JOGADOR
Recommended