Fullstack em webdevelopment numa aplicação da área das telecomunicações - Fernandes, Daniel Nascimento (2021)
Este relatório tem como objectivo descrever as actividades realizadas durante o estágio profissional na Altran. Esta empresa de consultoria em inovação e engenharia de alta tecnologia foi fundada em 1982 por Alexis Kniazeffe Hubert Martigny, que mais tarde foi fundida com a Capgemini em 2019. O problema proposto a resolver era a implementação de uma aplicação web para os agentes de vendas de uma empresa de telecomunicações Belga denominada de Proximus Group. Esta aplicação teria que permitir aos colaboradores irem de portaaporta vender serviços, como por exemplo fibra. Foram apresentadas diversas aplicações semelhantes à aplicação aqui desenvolvida, entre elas estão aplicações de geomarketing ou que usam a geolocalização no seu funcionamento. A metodologia scrum foi usada para o desenvolvimento deste projecto, usando ferramentas como o Jira para a gestão das tarefas do projecto e o GitLab para a gestão do código. Todo o desenvolvimento de novas funcionalidades foi feito num prazo de seis sprints, com mais uma Quality Assurance (QA) Phase onde foram corrigidos defeitos ou bugs encontrados pelos testers e o código foi também reformulado. A arquitectura deste projecto é constituída por três componentes: o frontend, o Backend For Frontend (BFF) e asApplication Programming Interface (API)s fornecidas pelo cliente. O frontend é um Singlepage application (SPA) desenvolvido em AngularJs que comunica com o BFF por pedidos Representational State Transfer (REST). O BFF desenvolvido em NodeTs, recebe os pedidos do frontend, que depois processa, comunica com a base de dados ou com as APIs e de seguida devolve para o frontend a resposta do processamento ou erro em caso de alguma falha. Nos sprints todas as páginas foram desenvolvidas usando ao máximo as componentes Hypertext Markup Language (HTML) e as classes Cascading Style Sheets (CSS) fornecidas pelo cliente. Só quando não houvesse algo disponível para a construção da página da maneira como estava definida nos designs fornecidos é que eram criados novas componentes ou classes. Foi usado o NxJs para a criação e gestão de um estado global, criandose actions, reducers, effects e selectors. Cada serviço criado não era chamado directamente pelas componentes da aplicação, mas pelos effects que eram desencadeados pelos envios de actions das componentes. Todas as componentes e serviços tiveram que ter uma cobertura de 80% pelos testes unitários desenvolvidos com Jest. Em conclusão, foram aplicados alguns dos conhecimentos obtidos em ambiente escolar e adquiridas novas competências. Esta experiência fez despertar um senso de responsabilidade e cautela ao escrever código em ambiente profissional.