Esse é o nosso desafio para a vaga de programador fullstack Java na Unoesc. Serão testadas as habilidades e qualidade de código ao transformar requisitos limitados em uma aplicação web. Faça o fork deste repositório e implemente o desafio.
Você terá que desenvolver uma aplicação web responsável por registrar pessoas de um time e seus dados de formação. As pessoas serão exibidas em cards dispostos em um mural e cada uma possui um fato aleatório.
@use '../1-base/main.scss'; @use '../1-base/reset.scss';
color: main.$ColorMain;
oque foi feito
-
Cadastro de time
-
Cadastro de pessoa
-
Cadastro de formação
-
Consultar os cadastros
-
mascara de CPF e telefone
-
Proteção por login
-
Mural dos times
-
Fatos aleatórios
-
fato aleatorio deve ser diferente para cada pessoa
-
validação de CPF e telefone
-
validação de email
-
Editar os cadastros
-
Excluir os cadastros
-
Gênero deve ser uma lista com valores pré-definidos;
-
Um nível de curso se refere ao grau de instrução dele: ensino médio, técnico, bacharelado, especialização
-
cada pessoa pode estar inserida em somente um time.
-
estilizar as paginas
Requisitos
- O cadastro de time deve conter: Nome e Setor.
- O cadastro de pessoa deve conter Nome, CPF, data de nascimento, gênero, telefone e e-mail.
- CPF e telefone deve possuir validação e máscara;
- O e-mail precisa ser um e-mail válido;
- Gênero deve ser uma lista com valores pré-definidos;
- O cadastro de formação deve conter: Nome do curso, nível do curso, data de conclusão e nome da instituição de ensino.
- Um nível de curso se refere ao grau de instrução dele: ensino médio, técnico, bacharelado, especialização, mestrado, entre outros.
- Um time é formado por uma ou muitas pessoas.
- Cada pessoa pode possuir nenhuma ou muitas formações e pode estar inserida em somente um time.
- Deve ser possível consultar, editar e excluir os cadastros.
- A aplicação deve ser protegida por um login. Porém, não é necessário que exista uma tela para cadastro de usuários.
Mural dos times
- O sistema deve possuir um mural onde os integrantes do time selecionado são dispostos em cards.
- Cada card deve conter o nome da pessoa e um fato aleatório.
- Toda vez que a tela for carregada os fatos deve ser atualizados.
- Os fatos aleatórios devem ser consultados através da API: https://uselessfacts.jsph.pl/ através de endpoint:
/api/v2/facts/random
. - Os fatos não precisam ser traduzidos.
- O mural deve ter como base o seguinte protótipo:
- Lembre-se que este é somente o protótipo do mural, seja livre para fazer as alterações que preferir. Quanto as demais telas de cadastros e apresentações não há limitações no desing, ficando a seu critério como serão construídas.
Para auxiliar no entendimento, elaboramos um diagrama de Entidade-Relacionamento:
Tecnologias obrigatórias a serem utilizadas:
- Java;
- Spring Boot;
- Maven;
- Thymeleaf;
- MySQL 5.7.X;
- GIT;
O código será avaliado de acordo com os critérios:
- Build e execução da aplicação;
- Completude das funcionalidades;
- Qualidade de código (design pattern, manutenibilidade, clareza);
- Histórico do GIT;
- Boas práticas de UI (Interface com o Usuário);
- Sentido e coerência nas respostas aos questionamentos na entrevista de apresentação do desafio realizada pelo candidato.
Não esqueça de documentar o processo necessário para rodar a aplicação.
Fazer o clone e após isso, configurar o banco de dados
spring.datasource.url=jdbc:mysql://localhost:3306/unoesc?useSSL=false
spring.datasource.username=root
spring.datasource.password=1234
e Rodar o projeto.