DM AlcidesTeixeira 2018 MEEC
DM AlcidesTeixeira 2018 MEEC
DM AlcidesTeixeira 2018 MEEC
Encomendas de Produtos
Tese de Mestrado
Orientador do ISEP:
Eng. Carlos Campos crc@isep.ipp.pt
Copyright c 2018
Agradecer ao meu orientador, Eng Carlos Campos pelo projeto proposto, e por
todo o acompanhamento dado ao longo do perı́odo em que este esteve a ser desen-
volvido, sempre procurando ter feedback do seu desenvolvimento e nunca deixando
uma dúvida por responder.
3
Resumo
Palavras-Chave:
Gestão, Stocks, Encomendas, Aplicação Web, PHP, Laravel, MySQL
i
Abstract
The stock and order management has been a constant need in factory environments
over the ages. This is a method that allows the management of a specific product in
a way that it is possible to know exactly what is its amount in a specific moment.
As time went by, and with the arrival of computers to the bigger industries, the
process optimization has become a trend which helped with the management and
productivity increase in companies.
The developed project was the attempt of solving this problem on the company
INDMEI, responsible for the socks production oriented towards the orders export,
especially to northern countries. This company who, until then didn’t have an
automatic stock management mechanism and which started the process of order
production by walking to the warehouse and collecting the existing stock on a piece
of paper.
Also the communication between employees was not the ideal, since there was no
specific channel to handle information respecting the order creation: it was done by
paper, through email, or by talking with each other.
It is a process known to be too long and not very effective who is based in mech-
anisms that can be substantially improved by using a web application. In order to
solve this problem, a Web Application was developed using the PHP framework -
Laravel and MySQL.
This application is able to manage orders as well as clients and suppliers. It also
allows the stock management, creation of samples and consult the orders evolution
throughout the time. All these processes will thus have an answer to all the company
needs, optimizing the time spent in tasks that were previously handled manually.
Currently, the platform is being used partially, aiming to become the main manage-
ment model of the whole company in a matter of a few months.
Keywords:
Management, Stocks, Orders, Web Application, PHP, Laravel, MySQL
iii
Índice
Resumo i
Abstract iii
1 Introdução 1
1.1 Contextualização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Calendarização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Organização do Relatório . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Estado da Arte 7
2.1 Soluções de Software Disponı́veis . . . . . . . . . . . . . . . . . . . . 8
2.1.1 Software Gratuito . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.2 Software Pago . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Soluções Equacionadas pela Empresa . . . . . . . . . . . . . . . . . . 18
2.2.1 PROtextil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2 MacWin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4 Proposta de Protótipo 35
4.1 Análise de Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2 Histórias de Utilizador . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3 Tipos de Permissões a Implementar . . . . . . . . . . . . . . . . . . . 38
4.3.1 Admin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3.2 Convidado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3.3 Gestor de Encomendas . . . . . . . . . . . . . . . . . . . . . . 40
v
ÍNDICE
5 Desenvolvimento da aplicação 51
5.1 Estrutura e relações da Base de Dados . . . . . . . . . . . . . . . . . 51
5.1.1 Modelos de Dados (Diagrama EER) . . . . . . . . . . . . . . 52
5.1.2 Relação do módulo dos Users e Permissões . . . . . . . . . . 54
5.1.3 Relação do módulo da Amostra de Artigo . . . . . . . . . . . 55
5.1.4 Relações do módulo de Armazém . . . . . . . . . . . . . . . . 56
5.1.5 Relações do módulo de Encomendas, Orçamentação e Operário 58
5.1.6 Relações dos módulos Auxiliares . . . . . . . . . . . . . . . . 59
5.2 Funções Implementadas . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.2.1 Sistema de Login e Registo . . . . . . . . . . . . . . . . . . . 62
5.2.2 Flash Messages . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.2.3 Table Seeder . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.2.4 Sistema de Envio de Emails . . . . . . . . . . . . . . . . . . . 71
5.2.5 Tabelas de Dados - Datatables . . . . . . . . . . . . . . . . . 72
5.2.6 Dados Estatı́sticos - Chart.js . . . . . . . . . . . . . . . . . . 75
5.2.7 Atualização do Stock do Armazém . . . . . . . . . . . . . . . 78
5.2.8 Upload de Ficheiros . . . . . . . . . . . . . . . . . . . . . . . 82
5.2.9 Atualização de Custo de uma Amostra . . . . . . . . . . . . . 84
vi Alcides Teixeira
ÍNDICE
ix
ÍNDICE DE FIGURAS
x Alcides Teixeira
ÍNDICE DE FIGURAS
Alcides Teixeira xi
ÍNDICE DE FIGURAS
xiii
Acrónimos
xv
ÍNDICE DE TABELAS
1
1.1. CONTEXTUALIZAÇÃO
1.1 Contextualização
A empresa INDMEI - fabrico de meias, lda intitula-se como sendo uma empresa
Portuguesa sediada na zona Industrial de Laundos, no concelho da Póvoa de Var-
zim e que é especializada no fabrico de meias e collants para clientes especı́ficos.
Foi fundada no final dos anos 90, conta já com mais de 15 anos de existência e
experiência no setor especı́fico em que atua.
É nos dias de hoje uma empresa especialista no setor e que se distingue pela qual-
idade e inovação dos seus produtos dedicados a mercados muito especı́ficos, como
por exemplo o nórdico e o medicinal. O atual processo produtivo da empresa é con-
stituı́do por máquinas tecnologicamente avançadas, permitindo produções elevadas
e com padrões de qualidade superior, satisfazendo assim todas as exigências técnicas
que são solicitadas pelos seus clientes.
Cada máquina que trata da produção da meia possui entre 150 e 200 agulhas que
trabalham em simultâneo para através da linha inserida produzirem uma meia de
acordo com as especificações. Estas máquinas são programadas através de um soft-
ware proprietário que funciona à base de comandos predefinidos. Estes comandos
permitem a estruturação da meia: desde o inı́cio da base da meia, passando pelo cal-
canhar até chegar à parte da perna. Por cada meia produzida são necessários cerca
de 2 minutos e 30 segundos, o que resulta numa produção diária, por máquina, de
cerca de 200 pares de meias.
Os processos de gestão existente na empresa, de momento, são realizados de forma
manual quase na sua totalidade:
2 Alcides Teixeira
1.2. OBJETIVOS
expeditos.
Tendo em conta o mercado agressivo que existe nos dias de hoje, em que cada detalhe
pode promover o melhor desenrolar das atividades, é fundamental otimizar todos os
processos que permitam uma melhoria ao nı́vel da produção e gestão de tarefas, bem
como uma redução do tempo dispendido com a manutenção de stocks, e na fase de
preparação de tarefas.
Surgiu então a necessidade de otimizar os processos da empresa INDMEI através de
uma aplicação web que permite a criação e gestão de encomendas e de produtos.
1.2 Objetivos
Alcides Teixeira 3
1.3. CALENDARIZAÇÃO
• Tornou-se, por fim, um objetivo o envio de emails e a sua consulta para alguns
dos utilizadores para que a comunicação da empresa também partisse de dentro
da plataforma.
Para atingir estes objetivos, é necessário garantir que a aplicação seja robusta o
suficiente para aguentar com uma utilização diária, ainda que o objetivo seja que
todo o processo esteja dependente da boa performance e fiabilidade da aplicação
web. A aplicação irá estar assente numa base de dados relacional que irá armazenar
todos os dados necessários e ao seu bom funcionamento e de forma a responder aos
requisitos funcionais da empresa.
1.3 Calendarização
4 Alcides Teixeira
1.4. ORGANIZAÇÃO DO RELATÓRIO
Alcides Teixeira 5
Estado da Arte
2
A constante evolução das tecnologias em todas as suas vertentes possibilita que novas
ferramentas emerjam com relativa frequência e ferramentas cada vez mais elabora-
das.
Este processo acontece também nas ferramentas de gestão empresarial, como a gestão
de stocks e de produtos. Embora este procedimento tenha aparecido pela primeira
vez, de uma forma arcaica, há centenas de anos atrás, nas culturas egı́pcias, rap-
idamente se compreendeu a importância e a necessidade de tornar este processo o
mais rápido e eficiente possı́vel. Existe portanto a possibilidade de gerir o tempo
com tarefas que resultem efetivamente na produção de material e em produtividade
efetiva.
A indústria veio acelerar esta evolução, uma vez que rapidamente aumentou a con-
corrência entre competidores que produzem os mesmos materiais. Isto obriga as
empresas a procurar ferramentas de gestão que acrescentam uma mais valia na
gestão na sua área de negócio.
Por este motivo, este capı́tulo passa por realizar um estudo da quantidade e também
da qualidade dos software que tornam possı́vel a realização das operações de gestão
de stocks e de encomendas, para indústrias em que se enquadra a realização deste
projeto. Este estudo permitirá ainda verificar onde se encontra o foco das grandes
empresas que produzem este tipo de ferramentas, para verificar aquilo de os produtores
procuram encontrar.
7
2.1. SOLUÇÕES DE SOFTWARE DISPONÍVEIS
Para além de um estudo mais genérico pelas ferramentas mais procuradas online,
foram depois focadas duas ferramentas que a empresa INDMEI considerou adquirir
junto dos criadores e o que motivou inicialmente a sua aquisição em detrimento de
outras aplicações do mesmo tipo e com caracterı́sticas semelhantes, o que posterior-
mente levou ao abandono desta ideia.
8 Alcides Teixeira
2.1. SOLUÇÕES DE SOFTWARE DISPONÍVEIS
Alcides Teixeira 9
2.1. SOLUÇÕES DE SOFTWARE DISPONÍVEIS
EasyForYou
A EasyForYou existe desde 1992 em que a primeira versão para Windows foi lançada
em 2002 e oferece uma solução de gestão de Stocks e Faturação. É identificada
como sendo adaptável a qualquer ambiente profissional em nome individual ou para
PME’s.
As figuras 2.3 e 2.4 apresentadas a seguir demonstram o layout da plataforma em
maior detalhe.
10 Alcides Teixeira
2.1. SOLUÇÕES DE SOFTWARE DISPONÍVEIS
Embora bastante multifacetado, possui uma versão free bastante limitada e que
termina o perı́odo de teste ao final de 30 dias, 120 documentos impressos ou 300
movimentos na plataforma.
Os preços anunciados no website do software variam conforme o quadro 2.1:
Com base nos software gratuitos analisados, a principal conclusão a retirar está
relacionada com a usabilidade dos mesmos. Como é possı́vel verificar, todos eles pos-
suem funcionalidades interessantes. Contudo, as funcionalidades não foram desen-
volvidas especificamente para o que é pretendido pela empresa em questão. Outra
Alcides Teixeira 11
2.1. SOLUÇÕES DE SOFTWARE DISPONÍVEIS
Na ótica dos software pagos, é possı́vel encontrar algumas soluções aceitáveis para
a gestão de stock e de produto.
Contudo, este tipo de software tem a principal desvantagem de necessitarem de um
custo associado, quer pelo software, quer por eventuais adições (pacotes extra), quer
pela manutenção e atualizações.
CentralGest
A CentralGest oferece uma solução empresarial totalmente integrada, com 31 anos
de história e com a colaboração de milhares de clientes em Portugal e nos paı́ses
africanos de lı́ngua oficial portuguesa (PALOP), tais como Angola, Moçambique e
Cabo Verde.
A CentralGest desenvolveu um software de GEstão de Produção com o principal
objetivo de acompanhar e registar tudo o que ocorre na produção das empresas
industriais de forma extremamente flexı́vel e adaptável.
Trata-se de um complemento a um outro módulo, neste caso o de Logı́stica, o que
se associa imediatamente a um custo extra.
O módulo de Gestão de Produção é uma solução de grande abrangência que permite
efetuar o planeamento e controlo das atividades necessárias [3].
As principais caracterı́sticas são as seguintes:
12 Alcides Teixeira
2.1. SOLUÇÕES DE SOFTWARE DISPONÍVEIS
O módulo referido permite ainda multi utilizador com caracterı́sticas relevantes para
cada perfil existente.
Com este software, a empresa pretende essencialmente incidir em quatro fatores que
sairão beneficiados para quem adquirir o produto:
3. Disponibilidade de informação;
ArtSoft
A ARTSOFT é uma empresa de software que desenvolveu uma ferramenta denom-
inada Gestão de Encomendas e o Rateio ARTSOFT. Este software permite auto-
matizar estes processos com base na análise de stocks, processos de produção e
encomendas por satisfazer.
Trata-se de um software que se destina a empresas que pretendem efetuar encomen-
das a fornecedores com base nos pedidos de clientes, garantindo desta forma a reserva
e alocação das mercadorias necessárias à venda ou produção, logo no momento da
receção.
As principais vantagens da Gestão de Encomendas e Rateio ARTSOFT prendem-se
com a eliminação de esquecimentos e diminui a falha humana, o que se converte
Alcides Teixeira 13
2.1. SOLUÇÕES DE SOFTWARE DISPONÍVEIS
na redução dos custos operacionais e aumenta deste modo a satisfação no geral dos
clientes. As principais caracterı́sticas deste produto são as seguintes:
• Relacionar as encomendas de clientes com os fornecedores;
alvo
A empresa alvo é uma empresa de software que se foca em diversas áreas de desenvol-
vimento, nomeadamente no software de gestão, faturação, recursos humanos, busi-
ness intelligence, entre outros. Para além disso, ainda apresenta uma distinção por
setor, onde compreende o software de administração pública, construção, indústria,
distribuição e logı́stica, retalho e restauração.
Ao realizar uma pesquisa sobre os software de gestão, é possı́vel verificar a existência
de um software orientado para as compras e gestão de stocks - Primavera.
14 Alcides Teixeira
2.1. SOLUÇÕES DE SOFTWARE DISPONÍVEIS
Alcides Teixeira 15
2.1. SOLUÇÕES DE SOFTWARE DISPONÍVEIS
• Otimização de inventário;
• Fluxos documentais;
• Indicadores de gestão.
16 Alcides Teixeira
2.1. SOLUÇÕES DE SOFTWARE DISPONÍVEIS
XSTOCK
O XSTOCK é um Software de Gestão de Stocks e Inventário e que permite otimizar
recursos, espaço e tempo em todas as operações de gestão de stocks em armazém e
controlo de imobilizado.
As principais vantagens deste software estão relacionadas com a praticalidade do
software, uma vez que funciona em dispositivos móveis, o que confere aos utilizadores
realizar um controlo de stock diretamente junto ao produto, naquele momento [6].
Existe ainda uma variada aplicação do seu produto na área industrial como se veri-
fica na imagem a seguir:
Existe ainda uma solução automatizada de picking móvel para inventário e con-
tagem de produtos (ver figura 2.11):
Alcides Teixeira 17
2.2. SOLUÇÕES EQUACIONADAS PELA EMPRESA
18 Alcides Teixeira
2.2. SOLUÇÕES EQUACIONADAS PELA EMPRESA
2.2.1 PROtextil
Alcides Teixeira 19
2.2. SOLUÇÕES EQUACIONADAS PELA EMPRESA
• Desenvolvimento do Produto;
• Planeamento;
• Gestão de Corte;
• Gestão de Stocks;
• Gestão de Subcontratos;
• Packaging-List (Exportação);
• Faturação;
• Gestão de Tesouraria;
20 Alcides Teixeira
2.2. SOLUÇÕES EQUACIONADAS PELA EMPRESA
Permite ainda uma divisão de tempo mais especı́fica para cada situação, havendo
uma representação gráfica como a imagem 2.13 representa:
2.2.2 MacWin
Alcides Teixeira 21
2.2. SOLUÇÕES EQUACIONADAS PELA EMPRESA
adores, o grupo opera no mercado global, com transações comerciais para mais de
100 paı́ses.
A MacWin relaciona-se intrinsecamente com a Indústria Têxtil e do Vestuário (ITV),
considerando-o mesmo como sendo o seu setor core, onde operam desde 1998. Os
principais valores da empresa prendem-se com a cooperação com o cliente, com-
petência técnica, flexibilidade, qualidade e profissionalismo. Relativamente ao ERP
MacWin, existe uma diferenciação tendo em conta o setor a gerir associado:
• Têxtil
• Tecelagem
• Confeção
• Laboratório
• Tinturaria
É possı́vel ainda encontrar algumas soluções especializadas nas seguintes áreas:
• Financeiro
• Recursos Humanos
• Comercial
• Imobilizado
• Contabilidade
Ainda destacado como brevemente a apresentar surgem soluções na temática do
controlo de qualidade e de receções no armazém.
No que toca ao interesse da empresa Indmei mais especificamente, o GM Têxtil po-
deria ser a solução a optar, tal como várias outras indústrias exigentes.
Os módulos do GM Têxtil permitem a desmaterialização de todos os processos opera-
cionais, produtivos e administrativos, convertendo-os em informação útil à tomada
de decisão [8].
22 Alcides Teixeira
2.2. SOLUÇÕES EQUACIONADAS PELA EMPRESA
Através das duas soluções estudadas pela empresa INDMEI para colmatar a
gestão de stocks e encomendas da empresa, é possı́vel verificar que seriam soluções
com diversas falhas. Quer no caso do software PROTêxtil quer o ERP MacWin não
cumprem os requisitos que a empresa pretende no seu software, sendo que se trata de
um software para ambientes têxteis mais complexos e com outro tipo de atividades
associadas. O facto de algumas funcionalidades ainda estarem em desenvolvimento
tais como as receções no armazém também desfavorecem o software.
Estes software deixariam de ser uma mais valia para se tornarem numa sobrecarga
em todo o processo. O facto de qualquer uma das medidas estudadas pela empresa
serem soluções genéricas significa que qualquer tipo de alteração para as necessid-
ades da empresa tivesse que ser pago. E este processo, dependendo da quantidade de
alterações, poderia estar associado a um custo que ultrapassaria o valor de um soft-
ware especificamente desenvolvido para a empresa em questão. Quanto ao suporte
constante do software, esse valor também teria que ser tido em conta, o que aument-
aria ainda mais o custo total do software.
É possı́vel ainda concluir com o estudo para a gestão deste nicho de negócio (ou
seja, a produção de meias), existe uma falha na oferta. As soluções estão sempre
orientadas para outro tipo de indústria ou então outro tipo de negócio.
Alcides Teixeira 23
Software e Ferramentas de Desenvolvimento
3
A aplicação web a desenvolver tem como objetivo principal uma solução para a gestão
de artigos, encomendas e gestão de stocks de matérias primas. Tem também como
funcionalidades importantes a desenvolver, alguns medidores de dados estatı́sticos
relevantes através de representações gráficas e tabelas.
De acordo com as especificações do projeto, a aplicação web tem todas as carac-
terı́sticas de um back-office de controlo e gestão, com gestão de utilizadores e at-
ribuição de permissões diferenciadoras.
As ferramentas de desenvolvimento foram focadas numa base robusta para a tecno-
logia back-end, passando também por tecnologias amplamente aceites para o desen-
volvimento a interface com o utilizador, ou seja, o front-end.
Este capı́tulo divide-se portanto da seguinte forma: será explicada a opção de tecno-
logia para o desenvolvimento back-end no capı́tulo 3.1.
De seguida no capı́tulo 3.2. será indicada a tecnologia relacionada com o armazena-
mento em base de dados.
O subcapı́tulo 3.3. serão apresentadas as tecnologias front-end para apresentar a
interface ao utilizador.
No final do capı́tulo (3.4), são apresentadas duas tecnologias que irão auxiliar no
desenvolvimento do projeto, o software JIRA e a metodologia SCRUM.
25
3.1. BACK-END (PHP - COMPOSER - LARAVEL FRAMEWORK)
Para o desenvolvimento do back-end foi escolhida a server script language PHP as-
sociada a uma framework - Laravel.
O Hypertext Preprocessor - PHP é uma linguagem de script open source ampla-
mente conhecida que se adequa especialmente ao desenvolvimento web e que pode
ser utilizada dentro de HTML.
O PHP é compatı́vel com qualquer tipo de sistema operativo, nomeadamente Linux,
Microsoft Windows e Mac OS. Suporta ainda a maioria dos servidores web na atu-
alidade, incluindo Apache, IIS, lighttpd e o nginx.
O PHP oferece ainda a possibilidade de desenvolver programação estruturada ou
então programação orientada a objetos.
Em relação à comunicação com a base de dados, existe uma grande variedade de
opções, destacando-se entre outras, MongoDB, MySQL, PostgreSQL, SQLite.[9]
Por forma a realizar uma gestão dos packages que vão sendo instalados e dos quais o
projeto irá depender, será utilizada uma ferramenta que irá auxiliar na organização
de todas as dependências do projeto.
Composer é uma ferramenta de gestão de dependências em PHP. Permite declarar
as bibliotecas das quais o projeto depende e irá geri-las por nós, quer seja na sua
instalação, updates, ou ao eliminar[10].
O Composer lida com packages ou com bibliotecas e realiza a sua gestão para o
projeto em que se encontra inserido, fazendo as instalações num diretório, como por
exemplo a pasta vendor, dentro do projeto. Por defeito, não realiza nenhum tipo de
instalação globalmente, cingindo-se apenas ao projeto especı́fico. Por este motivo, é
visto essencialmente como um gestor de dependências.
Para poder utilizar o Composer, é necessária pelo menos a versão 5.3.2 de PHP. No
caso da Framework Laravel, será necessária a versão 4 ou superior.
O Composer é apresentado no seu website aos utilizadores como é ilustrado na figura
3.1.
26 Alcides Teixeira
3.1. BACK-END (PHP - COMPOSER - LARAVEL FRAMEWORK)
Laravel foi desenvolvido por Taylor Otwell e é uma framework open-source que
permite o desenvolvimento de aplicações web seguindo o padrão de arquitetura
model-view-controller (MVC).
A primeira release, ainda em versão beta, foi disponibilizada em Junho de 2011.
Ainda no mesmo mês, foi lançada a primeira versão da framework, dada a conhecer
como Laravel 1.
Depois de 7 anos de desenvolvimento, o Laravel foi-se tornando cada vez mais ro-
busto e o crescente número de utilizadores ao longo dos tempos fizeram com que
se tornasse na framework mais popular desde o ano de 2015 até à atualidade, à
frente de Symfony2, Nette, CodeIgniter, Yii2, Zend e outras. A figura 3.3 ilustra o
interesse na framework ao longo do tempo.
Alcides Teixeira 27
3.1. BACK-END (PHP - COMPOSER - LARAVEL FRAMEWORK)
Através de uma pesquisa nas trends da Google dos últimos 5 anos, é possı́vel
verificar a crescente evolução do interesse que a framework Laravel veio a obter ao
longo do tempo até ao presente ano.
Um estudo da coderseye [11] demonstra isso mesmo e acrescenta num estudo realiz-
28 Alcides Teixeira
3.2. BASE DE DADOS (MYSQL)
ado, que foi aberto um inquérito a 7500 utilizadores de frameworks PHP para definir
qual seria aquela cuja utilização era a mais comum em termos de autenticação, código
de sessão, métodos de cache e routing. Os resultados apresentados referem-se no en-
tanto ao uso de uma forma geral por esta amostra, no presente ano e é visı́vel que
na esmagadora maioria, os utilizadores preferem Laravel com 43.7% de utilização às
outras frameworks. Vêm de seguida frameworks como Code Igniter (14.9%), Sym-
phony (13.6%) e Zend (12.5%). As principais vantagens do Laravel são as seguintes:
• Testes unitários;
A versão mais recente desta framework à data de inı́cio do projeto é a 5.6 e data o
seu lançamento a 7 de Fevereiro de 2018. Nota: Foi lançada a versão 5.7 de Laravel
no dia 4 de Setembro de 2018.
Alcides Teixeira 29
3.3. FRONT-END (HTML, CSS, JAVASCRIPT)
• A: Apache HTTP Server Project, que permite uma forma segura e eficiente de
oferecer serviços HTTP;
• P: PHP;
• P: PERL.
30 Alcides Teixeira
3.4. JIRA E METODOLOGIA SCRUM
• CSS3: Cascading Style Sheet - Utilizada para definir estilos para páginas web
com efeitos de transição, imagens e outros que afetam todo o design das páginas
web. Os browsers mais comuns já suportam esta nova versão de CSS, nomea-
damente: Chrome, Opera, IE9, Safari e FIrefox[16].
Alcides Teixeira 31
3.4. JIRA E METODOLOGIA SCRUM
• Code Spikes - Provas de conceito ou itens de pesquisa que têm de ser realizados
para posteriormente desenvolver uma User Story ou Technical Requirement;
• Technical Debt - Tomada de decisões quando uma falha ocorre num design do
software e onde se torna necessário realizar alterações;
Regra geral, uma pessoa é a responsável pela gestão do Product Backlog e é denom-
inada de Product Owner. A metodologia SCRUM é considerada importante para
o desenvolvimento deste projeto principalmente porque defende que para chegar ao
projeto pretendido, é importante receber feedback constante daquilo que está a ser
realizado. Este processo faz com que a cada iteração do projeto seja acrescentado
valor ao mesmo. Uma vez que o feedback é transmitido constantemente ao longo
do projeto, é possı́vel assim atingir o objetivo pretendido (e que muitas vezes varia
daquele transmitido inicialmente, quando o projeto estava ainda a ser idealizado).
A figura 3.5 representa o funcionamento da framework previamente descrita.
32 Alcides Teixeira
3.4. JIRA E METODOLOGIA SCRUM
Alcides Teixeira 33
4
Proposta de Protótipo
35
4.1. ANÁLISE DE REQUISITOS
Gestão de Encomendas:
• Gerir os emails recebidos de clientes, bem como ser capaz de enviar emails;
36 Alcides Teixeira
4.2. HISTÓRIAS DE UTILIZADOR
Gestão de Armazém:
Gestão de Amostras:
Gestão de Orçamentos:
Gestão de Permissões:
Todas as User Stories poderão então ser agrupadas pelas caracterı́sticas comuns
entre elas. O quadro da tabela 4.1 apresentado demonstra como foram agrupa-
das essas mesmas stories e, posteriormente, desenvolvidas num perı́odo de tempo
previamente definido.
Alcides Teixeira 37
4.3. TIPOS DE PERMISSÕES A IMPLEMENTAR
Por forma a executar todas as tarefas no tempo estipulado, foi realizado um ex-
ercı́cio de número de horas previsto para cada tarefa e, em seguida, foram estimadas
as horas de desenvolvimento nos perı́odos de Sprint necessárias.
O objetivo passa por permitir um fluxo de desenvolvimento o mais otimizado possı́vel,
sem que o tempo apertado de desenvolvimento prejudique a qualidade das funcion-
alidades apresentadas.
38 Alcides Teixeira
4.3. TIPOS DE PERMISSÕES A IMPLEMENTAR
4.3.1 Admin
Tal como já foi referido, a permissão Admin é a única capaz de aceder a todas as
funcionalidades. Contudo, a principal funcionalidade que esta permissão permite e
que mais nenhuma o faz, está relacionada com a gestão de utilizadores e de per-
missões.
Assim, um utilizador que seja Admin poderá, para além de todas as funcionalidades
que os restantes tipos de permissões possuem, permite ainda realizar as funcional-
idades descritas na figura 4.2.
Alcides Teixeira 39
4.3. TIPOS DE PERMISSÕES A IMPLEMENTAR
4.3.2 Convidado
A permissão Convidado serve como uma permissão básica, apenas para aceder à
plataforma através do registo e login na mesma. É uma permissão base para qualquer
utilizador novo da plataforma.
40 Alcides Teixeira
4.3. TIPOS DE PERMISSÕES A IMPLEMENTAR
Alcides Teixeira 41
4.4. FLUXOGRAMA DO WORKFLOW DENTRO DA INDMEI
4.3.7 Operário
42 Alcides Teixeira
4.4. FLUXOGRAMA DO WORKFLOW DENTRO DA INDMEI
Tendo por base o fluxograma do ciclo de uma encomenda da figura 4.8, é possı́vel
verificar que uma encomenda inicia-se através da chegada de um pedido de um
fornecedor ao gestor de Encomendas (1). É neste momento que uma encomenda é
introduzida na plataforma, mais especificamente na lista de encomendas (1). De-
terminadas informações base acerca da encomenda são inseridas e é então passada
toda essa informação ao gestor de amostra da encomenda (2).
O gestor de amostra da encomenda irá realizar uma amostra do produto, na qual
irá identificar os materiais necessários e as suas quantidades. Irá também definir a
Alcides Teixeira 43
4.5. ATORES E CASOS DE USO
44 Alcides Teixeira
4.5. ATORES E CASOS DE USO
• Administrador
• Gestor de Armazém
• Convidado
• Gestor de Orçamentação
• Gestor de Encomendas
• Operário
• Gestor de Amostra de Artigo
Se verificarmos os casos de uso de cada um dos atores, estes podem ser definidos
pelas tabelas 4.3 e 4.2:
Após a análise da lista de casos de uso, o diagrama da figura 4.9 representa estes
mesmos casos do ponto de vista dos diversos utilizadores da plataforma.
Alcides Teixeira 45
4.5. ATORES E CASOS DE USO
46 Alcides Teixeira
4.5. ATORES E CASOS DE USO
Alcides Teixeira 47
4.5. ATORES E CASOS DE USO
48 Alcides Teixeira
4.5. ATORES E CASOS DE USO
Alcides Teixeira 49
Desenvolvimento da aplicação
5
Este capı́tulo pretende focar concretamente o projeto desenvolvido, dando foco às
funcionalidades de maior relevo.
A sua organização parte inicialmente da base de dados, das relações nela existentes.
A forma mais prática de realizar esta análise será através de um diagrama Entidade
Relação (EER) que será explicado no subcapı́tulo 5.1.1.
Segue depois uma análise das funções implementadas, passando um pouco pelo fun-
cionamento do modelo MVC e das principais funcionalidades utilizadas da frame-
work Laravel. Serão apresentadas as classes desenvolvidas e ainda as bibliotecas
JavaScript utilizadas.
Por fim, ainda serão demonstradas as notificações via email implementadas e em
que casos é que estas são despoletadas.
51
5.1. ESTRUTURA E RELAÇÕES DA BASE DE DADOS
O diagrama EER (Enhanced Entity-Relationship) foi gerado por forma a ter uma
visão geral de como são os relacionamentos (do inglês relationships) entre as diver-
sas tabelas da base de dados. Todas as tabelas estão relacionadas entre si de modo
a evitar o armazenamento de informação em duplicado e também para estruturar
melhor toda a informação adquirida.
Como é possı́vel verificar pelo diagrama, todas as tabelas têm uma relação direta,
excetuando a tabela suppliers, que pode passar por uma relação de um-para-um,
um-para-muitos, ou muitos-para-muitos. Tendo em conta o sentido da esquerda
para a direita do diagrama, é possı́vel distinguir as tabelas pelo tipo de dados e por
permissão que cada utilizador tem dentro da plataforma:
52 Alcides Teixeira
5.1. ESTRUTURA E RELAÇÕES DA BASE DE DADOS
Alcides Teixeira 53
5.1. ESTRUTURA E RELAÇÕES DA BASE DE DADOS
Neste módulo estão representadas as tabelas users, roles e a tabela relacional role users.
Os campos da tabela que privilegiam a relação são destacados com o sı́mbolo do
losango vermelho. Esta relação permite armazenar toda a informação necessária
dos utilizadores, e também toda a informação necessária das permissões criadas.
54 Alcides Teixeira
5.1. ESTRUTURA E RELAÇÕES DA BASE DE DADOS
Este módulo apresenta a tabela com maior número de campos de todo o sistema im-
plementado, a sample articles. Isto porque terá de armazenar todas as informações
de como uma amostra é criada desde ferramentas utilizadas, referência, descrição,
tamanhos criados, custo de matérias-primas intervenientes e até uma imagem refer-
encial. A esta tabela juntam-se quatro outras que se relacionam. Todas as relações
apresentadas têm os campos identificados com um sı́mbolo vermelho imediatamente
antes do campo relacionado.
As quatro tabelas são responsáveis por armazenar informação das cores dos fios, de
quais os fios utilizados e a sua quantidade, e ainda tabelas com todas as ferramentas
de guiafios e todos os passos que uma produção de amostra poderá conter.
Alcides Teixeira 55
5.1. ESTRUTURA E RELAÇÕES DA BASE DE DADOS
56 Alcides Teixeira
5.1. ESTRUTURA E RELAÇÕES DA BASE DE DADOS
Alcides Teixeira 57
5.1. ESTRUTURA E RELAÇÕES DA BASE DE DADOS
58 Alcides Teixeira
5.1. ESTRUTURA E RELAÇÕES DA BASE DE DADOS
Existem três módulos auxiliares (ver figura 5.6) que desempenham tarefas distintas:
Alcides Teixeira 59
5.2. FUNÇÕES IMPLEMENTADAS
• 1 Http: Tendo por base o modelo MVC, aqui estão contidos todos os control-
lers com todos os métodos desenvolvidos.
• 3 Models: Tendo por base o modelo MVC, este ponto contém todos os Models
necessários para o projeto.
• 5 views: Com base no modelo MVC, este diretório contém as views do projeto,
onde é desenvolvido todo o front-end da aplicação.
60 Alcides Teixeira
5.2. FUNÇÕES IMPLEMENTADAS
Alcides Teixeira 61
5.2. FUNÇÕES IMPLEMENTADAS
Para além de listar todos os comandos, cada um destes possui uma secção de
ajuda que permite apresentar e descrever cada um dos comandos individualmente
e ainda os seus possı́veis argumentos. Para visualizar a ajuda do comando migrate,
por exemplo, é inserido o comando:
62 Alcides Teixeira
5.2. FUNÇÕES IMPLEMENTADAS
Alcides Teixeira 63
5.2. FUNÇÕES IMPLEMENTADAS
64 Alcides Teixeira
5.2. FUNÇÕES IMPLEMENTADAS
Para cada uma das linhas, que representa uma route distinta, é possı́vel verificar
se se trata de um método GET ou POST e depois dentro de parêntesis o primeiro
parâmetro diz respeito ao url ; o segundo é o controller e o método para onde é
redirecionado o utilizador.
Alcides Teixeira 65
5.2. FUNÇÕES IMPLEMENTADAS
• É obrigatório;
email:
• É obrigatório;
66 Alcides Teixeira
5.2. FUNÇÕES IMPLEMENTADAS
• Tem de ser um campo único, ou seja, não poderá ser registado caso já exista
nessa coluna da base de dados.
password:
• É obrigatório;
Alcides Teixeira 67
5.2. FUNÇÕES IMPLEMENTADAS
é realizada com sucesso, uma mensagem a anunciar isso mesmo é apresentada. Por
outro lado, se uma ação não é concluı́da corretamente dentro dos parâmetros con-
figurados, uma mensagem de erro é apresentada ao utilizador.
O Laravel Flash é um package composer que permite utilizar o Bootstrap otimizado
para implementar um sistema de mensagens flash no desenvolvimento de aplicações.
Este package é disponibilizdo na plataforma github do utilizador Laracasts. Através
do gestor de dependências ”Composer”, é realizada a instalação do package:
68 Alcides Teixeira
5.2. FUNÇÕES IMPLEMENTADAS
Todos os seeders são armazenados num diretório, como ilustra a figura 5.16:
Alcides Teixeira 69
5.2. FUNÇÕES IMPLEMENTADAS
70 Alcides Teixeira
5.2. FUNÇÕES IMPLEMENTADAS
A partir das configurações mencionadas, foi criada classe que irá ser utilizada
para o envio de emails da plataforma. Esta classe receberá dois parâmetros no con-
structor, sendo eles o assunto do email (subject) e o conteúdo do email (content).
A função build fará depois o envio do email, colocando o email de origem como
parâmetro from, o mesmo valor do email será colocado em bcc para receber uma
cópia do mesmo. Irá ser ainda colocado o subject com o seu respetivo parâmetro.
Dado que o conteúdo do email seria enviado a partir de uma view criada especifica-
mente para o este fim, é enviado o conteúdo do email como parâmetro. A figura
5.19 ilustra a classe que trata do envio do email.
Alcides Teixeira 71
5.2. FUNÇÕES IMPLEMENTADAS
72 Alcides Teixeira
5.2. FUNÇÕES IMPLEMENTADAS
A figura 5.21 representa os ficheiros que são necessários incluir no projeto para
poder usufruir da biblioteca de DataTables e de todas as funcionalidades que são
importantes para o projeto.
Tendo em conta a figura 5.22, é possı́vel verificar a forma como a implementação
surge na página onde a tabela é apresentada. A funcionalidade DataTable recebe
uma série de parâmetros, sendo que vários deles são opcionais.
O primeiro parâmetro recebido é a definição das colunas, onde no caso de Stocks,
não se permite a reordenação das três últimas colunas, por se tratarem dos botões
que não fariam sentido serem ordenáveis. A seguir é apresentado o número de linhas
visı́veis por página da tabela, ou seja, 10.
Com base na necessidade de exportação da tabela, a string ”lBfrtip” acrescenta
esta mesma necessidade à tabela, para além das funcionalidades já disponibilizadas.
O parâmetro ”buttons” a seguir, permite identificar quais os formatos possı́veis de
exportação, seguidos do nome que aparecerá no botão respetivo.
Por último, com a necessidade de desenvolver uma plataforma que nesta fase fosse
totalmente em português e dado que a ferramenta DataTables está por defeito em
inglês, foi totalmente traduzida para que o utilizador final conseguisse tirar partido
da sua utilização.
Após terminada, a tabela ficará reforçada por uma série de opções: Escolher número
de resultados a apresentar; os vários tipos de formatos de exportação; uma caixa
para pesquisa nas várias colunas da tabela; a informação de quantas páginas de
tabela existem; e uma navegação facilitada para qualquer página da tabela.
Alcides Teixeira 73
5.2. FUNÇÕES IMPLEMENTADAS
74 Alcides Teixeira
5.2. FUNÇÕES IMPLEMENTADAS
Figure 5.25: Controller responsável pelo envio dos dados para a view.
Alcides Teixeira 75
5.2. FUNÇÕES IMPLEMENTADAS
Depois de ter todos os dados necessários para a criação dos gráficos respetivos,
é necessário incluir os ficheiros script e css da biblioteca Chart.js (figura 5.27).
76 Alcides Teixeira
5.2. FUNÇÕES IMPLEMENTADAS
dos parâmetros labels (as datas a inseir no eixo das abcissas) e também os datasets
(os valores de gastos com a INDMEI, por cada um dos seus clientes). As opções
disponı́veis como o tı́tulo não foram necessárias uma vez que este foi inserido fora
do gráfico, por cima do mesmo.
Alcides Teixeira 77
5.2. FUNÇÕES IMPLEMENTADAS
78 Alcides Teixeira
5.2. FUNÇÕES IMPLEMENTADAS
• Ao alterar uma amostra de artigo, que poderá ou não estar associada a uma
encomenda - Quando uma amostra de artigo é alterada, poderá afetar a
gramagem de uma qualquer matéria-prima e, portanto, é necessário atualizar
os stocks em armazém;
A atualização da matéria-prima irá ser efetuada portanto, tendo como base o histórico
de cada uma delas.
O histórico é controlado pela função da figura 5.34. Este método, instanciado nos 4
momentos descritos anteriormente, encontra-se dependente de 3 funções.
A primeira função (checkWireSpentInOnePair) evidenciada na figura 5.31 recebe
como parâmetro a encomenda em questão e irá retornar um objeto com a quan-
tidade de fio gasto num par de meias, para todas as cores utilizadas. Trata-se de
um array bastante completo, com o identificador do fio e a quantidade em gramas,
gasta.
Alcides Teixeira 79
5.2. FUNÇÕES IMPLEMENTADAS
Figure 5.31: Função que verifica o fio gasto por par de meias.
Tendo este valor por par de meias, é depois executada a segunda função acessória
deste processo (pairsPerColorLiquid) evidenciada na figura 5.32 que retornará para
cada uma das 4 cores, dos diferentes tipos de pares de meias, qual a quantidade de
pares de meias totais que a encomenda possui. Esta função retorna um array com
4 combinações key-value, com as 4 cores e os seus valores totais de pares de meias
da encomenda.
Figure 5.32: Função que obtém o total lı́quido de pares de meias, por cor.
80 Alcides Teixeira
5.2. FUNÇÕES IMPLEMENTADAS
Figure 5.33: Função que obtém o total bruto de pares de meias, por cor.
Alcides Teixeira 81
5.2. FUNÇÕES IMPLEMENTADAS
82 Alcides Teixeira
5.2. FUNÇÕES IMPLEMENTADAS
algum dos ficheiros enviados para a plataforma não cumpra estes requisitos, o pedido
não será submetido e é indicado ao utilizador quais são as extensões permitidas.
Alcides Teixeira 83
5.2. FUNÇÕES IMPLEMENTADAS
84 Alcides Teixeira
5.2. FUNÇÕES IMPLEMENTADAS
Para cada uma destas cores, são então precorridos todos os passos de produção de
uma amostra e multiplicados o número de gramas pelo custo da amostra, dividindo
posteriormente por 100 (dado que o custo é guardado por Kg e não por grama).
Ao incrementar os custos de todos os passos de produção, obtemos o custo total
da amostra, separado por cor, tal como pretendido para realizar o orçamento da
encomenda.
Alcides Teixeira 85
Demonstração e Análise dos Resultados
6
A plataforma desenvolvida teve um perı́odo no qual o principal foco foi a gestão de
possı́veis erros ao longo do uso da mesma. Durante esse perı́odo, foram corrigidos
pequenos bugs, que decorrem do uso não adequado da plataforma, ou seja, quando
os dados introduzidos não são aqueles que a plataforma espera obter, ou quando
existem falta de dados para prosseguir.
Dentro do perı́odo referido, a plataforma foi utilizada por utilizadores externos ao
projeto, que não conheciam a plataforma, no sentido de verificar quais seriam as
dificuldades de um utilizador ao ver a plataforma pela primeira vez.
Nesse processo, foram otimizados alguns menus que foram considerados menos in-
tuitivos, foram adicionadas algumas tooltips em certas funcionalidades e até mesmo
foram reformuladas funcionalidades para que não fosse necessário recorrer a mais
interações (cliques) quando o mesmo processo poderia ser realizado com menos (por
exemplo, na funcionalidade que atualiza o stock no momento em que uma amostra é
alterada; inicialmente seria necessário passar pelo processo de edição da encomenda
antes de passar diretamente para a orçamentação; atualmente a orçamentação pode
ser realizada imediatamente após uma atualização de stock. A seguir neste capı́tulo
irá fazer-se uma apresentação e demonstração das funcionalidades desenvolvidas no
capı́tulo 5.
87
6.1. FUNCIONALIDADES DA APLICAÇÃO
6.1.1 Login
No momento em que um utilizador acede à aplicação pela primeira vez, possui a
identificação da Empresa imediatamente à sua frente, bem como uma ação de ”Lo-
gin” e uma ação de ”Registo” na parte superior do ecrã.
Logo ao centro, é apresentada uma imagem da empresa, clicável, que redireciona o
utilizador para o ecrã de login. Esta ação é especialmente criada para dispositivos
móveis, em que se pretendem obter botões facilmente alcançáveis e responsivos. A
imagem 6.1 representa uma vista desktop e mobile do ecrã inicial da aplicação.
88 Alcides Teixeira
6.1. FUNCIONALIDADES DA APLICAÇÃO
Alcides Teixeira 89
6.1. FUNCIONALIDADES DA APLICAÇÃO
mente.
Existe ainda a possibilidade de relembrar os dados de login para o caso de aceder
sempre a partir do computador ou de outro qualquer dispositivo pessoal.
No caso de se ter esquecido da palavra-passe, é possı́vel repor uma nova palavra
passe através de um email que será enviado para o email do respetivo utilizador,
evitando o falseamento de dados. Este processo é representado pelas figuras 6.3 e
6.4.
90 Alcides Teixeira
6.1. FUNCIONALIDADES DA APLICAÇÃO
6.1.2 Menus
Criar Permissão
Criar permissão permite ao Administrador criar uma nova Permissão que depois
poderá associar a utilizadores, conforme pretenda. Para isso, basta apenas preencher
o campo Nome e Descrição, conforme a imagem 6.7 apresenta.
Alcides Teixeira 91
6.1. FUNCIONALIDADES DA APLICAÇÃO
Listar Permissões
A listagem de permissões permite ao Administrador consultar todas as permissões
existentes, bem como oferecer a possibilidade de editar uma permissão, ou até mesmo
apagar (6.8).
92 Alcides Teixeira
6.1. FUNCIONALIDADES DA APLICAÇÃO
Listar Utilizadores
Listar utilizadores permite ao Administrador verificar quais os utilizadores inscritos
na plataforma. Permite ainda editar os dados de qualquer utilizador e até mesmo
apagar um utilizador do sistema (6.11).
Alcides Teixeira 93
6.1. FUNCIONALIDADES DA APLICAÇÃO
Editar Utilizador
Editar um utilizador permite ao Administrador editar todos os dados de um qualquer
utilizador: Nome, Email e as suas Permissões.
Será utilizado essencialmente para destacar as permissões de um utilizador, ou seja,
a que funcionalidades terá acesso na sua plataforma como é possı́vel verificar através
da figura 6.13.
94 Alcides Teixeira
6.1. FUNCIONALIDADES DA APLICAÇÃO
Criar Encomenda
O processo de criar uma nova encomenda subdivide-se em dois momentos. Isto
porque não é certo que a Amostra de Artigo necessária para associar a uma qualquer
encomenda já esteja criada no momento em que a encomenda é criada. Inicialmente
os campos a preencher serão o Nome do Cliente, o Identificador do Cliente (ou seja,
o nome ou código pelo qual o cliente denomina a encomenda solicitada), a Descrição
da Encomenda, Upload de Ficheiros (poderão ser diversos ficheiros do tipo png, jpg,
gif ou pdf enviados pelo cliente no momento do pedido) e a Data de Entrega da
encomenda, como é demonstrado pela figura 6.14.
A encomenda poderá então ser guardada tendo os campos referidos anteriormente
preenchidos.
Alcides Teixeira 95
6.1. FUNCIONALIDADES DA APLICAÇÃO
Listar Encomendas
O layout apresentado ao listar encomendas permite obter todas as encomendas ex-
istentes, bem como algumas das informações gerais e ainda o status em que cada
encomenda se encontra.
A partir deste ecrã apresentado na figura 6.15 é ainda possı́vel a edição da en-
comenda, apagá-la, ou então verificar a produção atual, filtrada por cada um dos
96 Alcides Teixeira
6.1. FUNCIONALIDADES DA APLICAÇÃO
operários.
Apagar Encomenda
Apagar uma encomenda carece, tal como no momento de apagar qualquer registo da
plataforma, de dupla confirmação antes de poder ser efetivamente eliminada (6.16).
Produção Atual
Ao clicar em ”Produção Atual”, na Listagem de Encomendas, surge uma tabela
com os operários que trabalharam na Encomenda especı́fica e onde é possı́vel clicar
no botão ”Ver” para verificar o desenvolvimento da encomenda, por operário. Este
processo está demonstrado na imagem 6.17.
Alcides Teixeira 97
6.1. FUNCIONALIDADES DA APLICAÇÃO
Enviar Email
O processo de envio de emails, comum a várias permissões de utilizadores (Gestor de
Encomendas, Gestor de Amostras de Artigo e Gestores de Orçamentação), permite a
possibilidade de enviar um email automático para qualquer pessoa associada à gestão
do processo. No caso de um email tiver que ser enviado para qualquer fornecedor
ou cliente já inseridos na plataforma, o acesso torna-se mais simples, uma vez que
através de um select qualquer um deles poderá ser selecionado (6.18).
Os restantes campos para além do destinatário são a inserção de um endereço ainda
não presente no sistema, o Assunto do email e o conteúdo do mesmo, tal como está
evidenciado na figura 6.19.
98 Alcides Teixeira
6.1. FUNCIONALIDADES DA APLICAÇÃO
Gerir Emails
A gestão de emails por parte da empresa INDMEI é realizada por diversos utiliz-
adores com diversos tipos de permissão (Gestor de Encomendas, Gestor de Amostras
de Artigo e Gestor de Orçamentação). Esta gestão é efetuada através de contas cri-
adas no motor de busca ”Sapo” e ”Outlook”. No entanto, antecipando um pouco as
necessidades da empresa, foi implementado o acesso para além dos dois motores de
busca já referidos, o acesso através do ”Gmail” e ainda através do ”Webmail” (para
o url http://webmail.indmei.pt/).
Importa referir que nenhum dos gestores de email permitem de uma forma simples
e dinâmica a gestão do seu conteúdo a partir de uma outra plataforma (como o caso
da aplicação web que foi aqui desenvolvida - teria de ser desenvolvido algum tipo
de acesso com recurso a OAUTH, ou seja, obter acesso limitado a uma conta de
uma plataforma através de outra aplicação web que não a original com recurso a
um token de acesso) por se tratarem de diferentes domı́nios da aplicação criada -
normalmente referido como Cross-Origin Resource Sharing (CORS). Deste modo,
como é possı́vel verificar a partir da imagem 6.20, ao clicar em qualquer um dos
botões apresentados com o logo de cada um dos motores de busca, o utilizador será
redirecionado numa nova aba para a sua caixa de entrada do seu email, onde poderá
realizar a gestão de emails recebidos.
Alcides Teixeira 99
6.1. FUNCIONALIDADES DA APLICAÇÃO
6.1.5 Estatı́sticas
O layout disponibilizado pretende visar de uma forma geral alguns dados estatı́sticos
sob a forma de alguns gráficos.
É possı́vel interpretar os dados ao longo do tempo, sendo que a data inicial e final
são editáveis, bem como a forma como a medição será feita, ou seja, por dia, por
mês ou por ano.
Entre os gráficos apresentados na imagem 6.21, estes estão organizados da seguinte
forma:
Criar Fornecedor
Para criar um novo fornecedor, são necessárias as seguintes informações: Nome,
Email, NIF e Descrição (ver figura 6.22). O Fornecedor estará depois disponı́vel
para ser contactado mais facilmente através de email da plataforma. Para além
disso ficarão com uma lista de todos os fornecedores num só local, mais organizada
e eficiente.
Listar Fornecedores
Ao listar todos os fornecedores da empresa, é possı́vel ter acesso às principais in-
formações sobre cada um deles. É ainda possı́vel editar cada um dos fornecedores
previamente adicionados e também apagá-lo (6.23).
Eliminar Fornecedor
No momento em que se pretende apagar um fornecedor, é realizada uma dupla con-
firmação antes de ser eliminado permanentemente da base de dados (6.24).
Listar Clientes
Listar Clientes da empresa permite obter uma visão geral dos dados de cada cliente.
É ainda possı́vel editar os dados de cada um deles, bem como eliminar, através dos
botões disponibilizados para o efeito (6.26).
Eliminar Cliente
Para que um cliente seja permanentemente eliminado da base de dados, este terá
de ser duplamente confirmado no momento em que se clica no botão eliminar, tal
como é demonstrado na mensagem de confirmação da imagem 6.27.
ações: editar a amostra ou então eliminá-la. A figura 6.30 representa todas as ações
indicadas anteriormente.
Listar Orçamentos
A listagem de orçamentos (figura 6.31) permite listar todas as encomendas e veri-
ficar em que estado é que se encontram. Caso uma encomenda esteja ”A Criar
Orçamento”, significa que o gesto de orçamentação terá de criar um orçamento e
enviar ao cliente e que a encomenda está a aguardar a sua resposta para poder
prosseguir.
Criar Orçamento
Ao criar um orçamento de uma determinada encomenda, o gestor de orçamentação
terá acesso a diversos campos previamente preenchidos pelo gestor da encomenda e
que poderão auxiliar a ter uma melhor ideia da encomenda a orçamentar. São estes
campos compostos por:
• Status da encomenda;
• Nome do cliente;
• Descrição;
• Identificador do Cliente;
• Data de Entrega.
É possı́vel ainda ver qual a amostra de artigo e em que consiste a mesma. Depois
de toda a informação assimilada, são apresentados então os campos com os valores
correspondentes.
O cálculo do orçamento total poderá ser feito através da plataforma, sendo que cada
amostra possui um valor que depois é multiplicado pelo seu total de pares. É então
depois somado o valor de diversas variáveis que serão incluı́das no orçamento. São
elas o custo das etiquetas, o custo das caixas, a percentagem total de peças com
defeito a adicionar, o custo da mão-de-obra e ainda outros custos. A soma deste
valor é apresentado no campo ”Total” logo a seguir.
Por um motivo ou por outro, o gestor de orçamentação poderá querer enviar um
valor total diferente do resultado obtido através do cálculo. Por esse motivo é dada a
possibilidade de adicionar o valor de orçamentação a enviar para o cliente. A figura
Listar Stock
Listar o Stock de Armazém possui uma série de informações relevantes para o Gestor
de Armazém, quer visuais, quer ao nı́vel quantitativo.
De um modo geral, é possı́vel observar todas as matérias-primas existentes no
armazém, a sua referência e a sua cor, o stock bruto (ou seja, o stock que ex-
iste efectivamente em armazém e que é subtraı́do diariamente no momento em que
as encomendas são atualizadas), o stock lı́quido (o stock em armazém, subtraindo o
valor total necessário para terminar todas as encomendas) e ainda o custo por Kg
de cada matéria-prima. Surge ainda a data da última atualização e quem a realizou.
Existe ainda a possibilidade de editar, apagar e pedir reforço de stock.
Salienta-se o facto de determinadas linhas da tabela possuı́rem diferentes cores. As
linhas marcadas a tons de vermelho simbolizam que o stock bruto se encontra abaixo
do valor de alerta mı́nimo indicado para cada matéria-prima. Isto serve de precaução
para que o gestor de stock possa pedir atempadamente stock e assim nenhuma en-
comenda necessite de parar devido a falta do mesmo.
A imagem 6.36 ilustra a tabela descrita previamente.
Eliminar Matéria-Prima
Havendo a necessidade de eliminar uma amostra, existe uma dupla confirmação para
que um artigo não seja acidentalmente eliminado da base de dados (6.38).
Solicitar Matéria-Prima
Ao clicar em ”Pedir Stock ”, surge um template de email, mas com a ressalva de
que o conteúdo virá pré-preenchido com a amostra da qual se solicitou novo stock.
Este email poderá posteriormente ser editado para a mensagem que mais convier ao
gestor de armazém. Possui ainda um campo para escolher o destinatário do email,
bem como o assunto do email (figura 6.39).
Produção
No momento em que o Operário abre a sua produção de uma encomenda, tem a
possibilidade de ver diversas informações acerca da encomenda que está a produzir.
Caso todos tamanhos e cores de meias sejam terminadas e a linha ficar a verde
(como na imagem abaixo), é enviado um email para o gesto de encomendas, gestor
de orçamentação e gestor de amostras com a informação de que uma encomenda foi
terminada.
Refira-se que o layout desta página encontra-se estruturado da seguinte forma uma
vez que se trata do formato que a empresa reconhece desde o momento em que ainda
era utilizada em folha excel. Por esse motivo, as alterações de estrutura efetuadas
foram no sentido de organizar a informação melhor, mas mantendo a estrutura ori-
ginal o mais semelhante possı́vel.
Por forma a desenvolver um layout orientado para o utilizador final especı́fico, a
página foi mantida desta forma, apesar de possuir uma grande quantidade de in-
formação num só local.
Quando questionados:
As respostas seguintes seriam também dadas numa escala de ”1” a ”5” (sendo
que 1 significava ”Nada melhor” e 5 significava ”Significativamente melhor”)”
e fiável.
Tendo por base as respostas obtidas por parte da empresa, é possı́vel concluir a
satisfação na utilização da nova aplicação web. Isto demonstra que conjuntamente
com uma empresa, é possı́vel desenvolver uma ferramenta que contém todas as fun-
cionalidades necessárias, com claras vantagens na otimização dos processos.
7.1 Conclusão
Fazendo uma retrospetiva dos objetivos traçados aquando o inı́cio do projeto, era
realçado um objetivo principal que visava o desenvolvimento de uma aplicação, es-
sencialmente para a gestão de stocks e encomendas. Esta base cimentada da plata-
forma foi desenvolvida e implementada, tendo em conta os princı́pios referidos pela
empresa INDMEI e, de onde se destaca o facto de alguns dos layouts de informação
que tiveram de ser seguidos e um fluxograma de produto à medida da empresa.
Em adição a estes princı́pios, também de destacar a necessidade de ter sempre
presentes os princı́pios de uma boa programação, ou seja, código limpo e comentado,
código com indentação, minimizar o uso de spaghetti code (ou seja, repetir o mesmo
código em diversos pontos do projeto) definindo variáveis identificativas do que se
pretende definir.
127
7.1. CONCLUSÃO
A este objetivo principal, associaram-se outros que foram tidos em conta e, foi
verificada a sua importância para que o uso da plataforma pudesse estar o mais
independente possı́vel de outras ferramentas, como por exemplo folhas excel.
O sistema de gestão de permissões foi desenvolvido, ponderando a utilização de
diferentes tipos de utilizadores, que teriam acesso a diferentes funcionalidades da
plataforma. Existe portanto uma vasta gama de funcionalidades implementadas em
que a sua atribuição varia de acordo com as funções do funcionário (utilizador).
Os módulos auxiliares para gestão de clientes e fornecedores, embora possam pare-
cer dos mais simples da plataforma, são um acessório muito útil e que permite à
empresa organizar uma lista completa com as principais informações de cada cliente
e fornecedor. Esta lista encontra-se ainda preparada para filtragem e ordenação de
forma a adequar-se às necessidades de pesquisa da empresa.
Com o objetivo traçado de exportação de dados para formato excel (ou xls) e em
caso de necessidade, esta funcionalidade passou a estar implementada nas matérias-
primas do armazém e ainda nas amostras produzidas pela empresa. Para além
desta implementação, a exportação poderá ser realizada não só em formato excel,
mas também nos formatos csv, pdf, ou imprimir diretamente a partir do ecrã res-
petivo da aplicação.
A apresentação de dados de forma visual era um outro objetivo inicialmente pro-
posto e que também este foi cumprido. Os utilizadores da plataforma que possuam
permissão que não seja convidado, poderão consultar os dados estatı́sticos e obter
rapidamente informações sobre a evolução da empresa em termos de produção, tais
como: quais os clientes que mais encomendas solicitam, quais são os clientes que
geram maior receita e até mesmo quais as matérias-primas em que devem apostar
para uma compra antecipada, uma vez que são aquelas mais utilizadas.
O envio e a gestão de emails através da plataforma tornou-se numa ferramenta
importantı́ssima para os diversos tipos de utilizadores, embora em alguns casos,
esta funcionalidade esteja a ser utilizada para funções especı́ficas (ex. envio de
orçamentos, solicitação de matéria-prima), trata-se de uma funcionalidade bastante
interessante e uma ferramenta de comunicação interna. A consulta de emails através
dos atalhos disponibilizados na plataforma também se traduz numa forma rápida e
simples de otimizar a gestão de tempo e de tarefas.
Fazendo uma análise ao feedback obtido pela empresa INDMEI, considera-se que foi
extremamente positivo. A empresa ficou satisfeita com a aplicação web desenvolvida
e acredita que irá melhorar significativamente os seus processos, tratando-se de uma
plataforma muito boa, prática e eficiente. Segundo indicado pela empresa, a sua
interface é de fácil entendimento e, portanto, é bastante intuitiva.
1. Gestor de Encomendas:
2. Gestor de Orçamentação:
4. Gestor de Armazém
5. Operário
Esta opção ficará disponı́vel apenas para o gestor de amostra de artigo, para otim-
izar o seu ritmo de trabalho.
Por fim, para concluir, com a utilização diária da aplicação, e com a evolução nat-
ural dos processos da empresas, novas melhorias e até novas funcionalidades serão
apresentadas e questionadas.
133
BIBLIOGRAFIA