Skip to content

PI 1920 1 Trab P2&3

Luís Falcão edited this page Feb 18, 2020 · 1 revision
Instituto Superior de Engenharia de Lisboa
Licenciatura em Engenharia Informática e de Computadores

Programação na Internet

Semestre de Inverno de 2019/2020 – 2ª e 3ª Parte do Trabalho prático


  • Data limite de entrega da 2ª parte: 06/12/2019-23h59
  • Data limite de entrega da 3ª parte: 12/01/2020-23h59

O desenvolvimento da aplicação CIBORG (Chelas Internet BOaRd Games) é faseado em três partes (Parte 1, Parte 2 e Parte 3) cada uma com uma data limite de entrega.

A entrega é realizada através da criação da tag ParteX no repositório GitHub do grupo, onde X corresponde ao número da parte a entregar.

Este enunciado inclui os requisitos das partes 2 e 3 da aplicação CIBORG.

Parte 2

A parte 2 não inclui qualquer requisito funcional adicional. O objetivo desta parte é refazer o código implementado (refactor) de modo a incorporar as tecnologias e técnicas entretanto abordadas em PI, nomeadamente o módulo express, o suporte para Promises e as construções async/await da linguagem JavaScript.

Requisitos (funcionais e não funcionais)

  1. Altere a implementação dos módulos ciborg-server e ciborg-web-api usando o módulo express para definição das rotas de atendimento de pedidos HTTP da aplicação CIBORG. Garanta que todos os testes unitários da coleção Postman da aplicação CIBORG são executados com sucesso.

  2. Altere a implementação dos módulos ciborg-db, board-games-data, ciborg-service e ciborg-web-api, substituindo a utilização de callbacks por um idioma assíncrono baseado em Promise e/ou em async/await. Os respetivos mocks e testes unitários devem ser adaptados em conformidade com a nova API. Garanta que o correto funcionamento de todos os módulos é validado por testes unitários.

  3. Além dos requisitos anteriores, esta fase do trabalho deve ser utilizada para melhorar a qualidade do código bem como a qualidade e quantidade de testes, quer unitários quer realizados através do Postman.

Parte 3

A parte 3 tem como objetivo a disponibilização de uma interface para apresentação em Web Browser e o suporte para autenticação, de modo a que cada utilizador possa ter dados privados.

Requisitos (funcionais e não funcionais)

  1. Criar uma interface Web para apresentação num web browser, para todas as funcionalidades disponibilizadas pela Web API. Na criação desta interface devem ser usadas as tecnologias: HTML, CSS, Bootstrap framework, webpack fetch e Handlebars.

  2. Adicione à aplicação CIBORG a funcionalidade de registo e autenticação de utilizadores. Todas as funcionalidades de gestão de grupos de jogos devem estar acessíveis apenas a utilizadores autenticados. Os grupos são privados a cada utilizador e só podem ser manipulados pelo seu detentor (dono). Na implementação desta funcionalidade deve ser utilizado o módulo Passport.

  3. Com esta parte do trabalho deve ser entregue um relatório no wiki do repositório do grupo, com a descrição da implementação do trabalho realizado na sua totalidade. Deste modo não devem constar os estados intermédios pelo qual a implementação passou em cada uma das fases. No relatório deve constar obrigatoriamente:

    • Descrição da estrutura da aplicação, em ambas as componentes (servidora e cliente).
    • Documentação da API do servidor.
    • Instruções de todos os passos prévios que é necessário realizar para correr aplicação e os respetivos testes.
      • Nesses passos devem estar incluídos as ações necessárias para introdução automática de dados de teste, por forma a que seja possível correr a aplicação com dados.
      • As instruções devem ter toda a informação necessária para correr a aplicação em qualquer máquina, nomeadamente na do docente. Caso essas instruções não sejam suficientes para colocar a aplicação a correr no máximo em 5 min, a nota máxima da componente prática fica limitada a 12 valores.
Clone this wiki locally