Projeto Final

Parte 1 - Envio da proposta

Defina a partir do seguinte formulário, um domínio a ser modelado e implementado em um sistema, explicando resumidamente os requisitos do sistema com suas entidades principais. Essa definição deve ser enviada e aprovada pelo professor.

Prazo final de entrega: 21/11/2021

O trabalho é individual

Os trabalhos devem necessariamente ter domínios distintos.

A ordem de envio para o professor determina quem tem prioridade por determinado domínio. Caso o domínio já tenha sido escolhido por outro aluno, deve-se propor um novo domínio.

Projetos Aprovados

# Descrição

Parte 2 - Implementação

Este passo só pode ser iniciado após a aprovação da Parte I pelo professor. O projeto que vai ser desenvolvido deve ser hospedado no GitHub. A segunda parte do projeto deve ser enviada via o seguinte formulário.

Prazo final de entrega: 06/02/2022

Requisitos mínimos:

  1. A aplicação deve necessariamente implementar o padrão MVC - Modelo, Visão, Controlador e usar as boas práticas de desenvolvimento Web apresentadas em sala de aula. O MVC deve ser implementado usando as ferramentas: Node.js + Express + MongoDB + Vue.js.
  2. A aplicação deve ser uma SPA – Single Page Application – e ter uma página principal que é exibida automaticamente ao acessar a raiz da aplicação.
  3. A aplicação deve ter uma barra de navegação/menu com todas as opções/links funcionando.
  4. A aplicação deve usar CSS, Javascript, JSON e AJAX. Recomenda-se também o uso de Bootstrap ou outro framework CSS para melhorar o visual da aplicação de forma simplificada. Dê preferência ao uso de Javascript e CSS externos ao HTML. Evite o uso de CSS e Javascript diretamente nos elementos HTML. Chamadas AJAX podem retornar dados no formato JSON para serem devidamente exibidos na interface do navegador.
  5. A aplicação deve ter Página/Serviço de Autenticação (login). Também deve ter o serviço de logout que deve estar sempre visível aos usuários logados. Além disso, o nome do usuário deve aparecer, em todas as páginas enquanto ele estiver logado.
  6. A aplicação deve ter uma Área pública com páginas/serviços acessíveis a todos; e uma área restrita com páginas/serviços acessíveis somente a usuários autenticados. Assim, deve-se realizar Autorização em todas as páginas/serviços restritos da aplicação para só permitir o acesso de usuários logados.
  7. A aplicação deve ter uma página amigável para mostrar ao usuário os erros de HTTP ou exceções que ocorrem no lado servidor.
  8. A aplicação Web deve ter modularização de trechos de HTML usados em várias páginas. Exemplo: Deixar cabeçalho e rodapé em arquivos separados e incluí-los nas páginas onde serão necessários.
  9. A aplicação deve persistir os dados em um banco de dados NoSQL MongoDB. Deve-se usar o framework Mongoose para para fazer consultas, inserções, atualizações e remoções em pelo menos 3 coleções relacionadas.

Apresentação do trabalho

O trabalho também deverá necessariamente ser apresentado em via stream (1 ponto) conforme cronograma da disciplina. A não apresentação do trabalho pelo aluno em sua anulação.