Skip to content

silasprd/software-eng-pl-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Desafio de Engenharia de software PL

Este desafio consiste no desenvolvimento de uma plataforma onde teremos um ranking baseado nas pontuações de entregas. Os alunos possuem Tarefas, Desafios e Projetos que são avaliados entre 0 e 100, e para cada uma destas atividades a ideia é ele receber uma pontuação com pesos diferentes de acordo com a sua pontuação. Os alunos são divididos em escolas de Dados, Tecnologia e Produto, deverá existir um ranking para cada escola.

Modelo de Entidade relacional

Requisitos Funcionais
Notas:
  • Como professor ou avaliador devo poder atribuir notas para cada aluno em diferentes tipos de atividades (Tarefas, Desafios, Projetos).
  • As notas registradas devem estar associadas a alunos específicos e às atividades correspondentes
  • O sistema deve permitir a especificação da pontuação para cada atividade, variando de 0 a 100
Pontuação:
  • O sistema deve calcular a pontuação de cada aluno com base nas notas atribuídas às atividades e nos pesos atribuídos a cada atividade.
Ranking Escolar:
  • Devo poder visualizar uma lista dos alunos divididos em três escolas diferentes: Dados, Tecnologia e Produto. De forma ordenada com base na pontuação.
  • Cada ranking escolar deve exibir os 10 melhores alunos da escola correspondente.
Ranking Geral:
  • Devo poder visualizar um ranking com os 3 melhores alunos em uma categoria "pódio geral".
Requisitos não funcionais
Escalabilidade:
  • O sistema deve calcular a pontuação de cada aluno com base nas notas atribuídas às atividades e nos pesos atribuídos a cada atividade.
Tecnologias utilizadas
NodeJS: Para construção da API.
AngularJS: Para construção da página WEB.
MySQL: Para o banco de dados.
Docker: Para a containerização.
Arquitetura do projeto

Definimos a utilização da arquitetura MVC neste projeto, para maior agilidade no desenvolvimento.

Estrutura das pastas:

/api:
  • src/core: Pasta principal onde ficam as entities, repository, services e controller
  • src/data-mocked: Onde ficam os dados mockados na inicialização da API.
  • src/routes: Aqui são chamados os controllers e definidas suas rotas(url's)
  • src/utils: Pasta onde ficam os enums e tipagens de algumas requisições.
/web:
  • src/app/components: Pasta onde ficam os componentes renderizados em outras telas na aplicação
  • src/app/core: Aqui estão as páginas da aplicação.
  • src/app/model: Guardamos a tipagens de algumas requisições que necessitam de tipagem.
  • src/app/services: Aqui ficam as funções que fazem a requisição direta para api
  • src/assets: Aqui ficam as imagens utilizadas.
Rodando a aplicação:
Clone o repositório com o comando: git clone https://github.com/silasprd/software-eng-pl-challenge
Será necessário criar um banco de dados local para aplicação com o nome "dnc"
Acesse a pasta api/src:Altere as informações de data-source.ts, para as informações do seu banco de dados, como username, password e port
Acesse a pasta api e execute o comando:npm install
Rode a api com o comando:npm start
Acesse a pasta web e dentro da pasta web rode o comando:npm install
Ainda dentro da pasta web, após a instalação das dependências rode o frontend com o comando:"npm start" ou "ng serve"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published