Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/robsonarcoleze/teste-desenvolvedor-multiportal
https://github.com/robsonarcoleze/teste-desenvolvedor-multiportal
Last synced: 10 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/robsonarcoleze/teste-desenvolvedor-multiportal
- Owner: RobsonArcoleze
- License: mit
- Created: 2023-09-25T02:39:24.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-25T03:19:25.000Z (about 1 year ago)
- Last Synced: 2023-09-25T07:11:48.800Z (about 1 year ago)
- Language: Java
- Size: 143 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Teste Desenvolvedor
[![NPM](https://img.shields.io/npm/l/react)](https://github.com/devsuperior/sds1-wmazoni/blob/master/LICENSE)# Sobre o projeto
### Acesso a aplicação
- Usuário: user
- Password: 1234Neste teste consta uma aplicação full stack web mvc com java 17, spring boot 3, thymeleaf e bootstrap proposto pela empresa [Multi Portal](https://www.mportal.com.br/ "Site da Multi Portal").
# Desafio:
Para migrar uma base de dados, geramos um CSV e precisamos criar um programa para persistir os dados em banco.
Porém durante a migração alguns dados foram corrompidos, precisamos criar um programa que corrija esses dados e extraia algumas informações.
- Criar uma tela com um login e senha.
- Esses dados de login e senha não precisam ser validados com o banco, podemos apenas ter uma validação simples na tela e com dados já pre-definidos, aplicar o spring security para lidar a sessão neste caso.
- Criar uma tela que iremos carregar o CSV enviado no email do desafio, com este csv carregado iremos fazer as tarefas a seguir.
- Com o CSV carregado na tela ordene-o pelo nome.
- Conte quantos homens e mulheres existem no CSV, e exiba em tela.
- Observe que a data de nascimento está errada, ajuste para a data certa com o conforme o campo idade.
- Como um último desafio calcule a media de idade de homens e mulheres e exiba em tela .
- Agora com todos os dados corretos, grave no banco de dados e gere um novo csv para download na tela.## Layout web
![Web 1](https://github.com/RobsonArcoleze/teste-desenvolvedor-multiPortal/blob/main/img/login.png)![Web 2](https://github.com/RobsonArcoleze/teste-desenvolvedor-multiPortal/blob/main/img/ajuste_branco.png)
![Web 3](https://github.com/RobsonArcoleze/teste-desenvolvedor-multiPortal/blob/main/img/ajuste_populado.png)
# Tecnologias utilizadas
- Java
- Spring Boot / Data / Security
- JPA / Hibernate
- Maven
- PostgreSQL
- Flyway
- Thymeleaf
- Bootstrap
- Docker# Como executar o projeto
### Pré-requisitos
- Java 17+
- Database: Postgres
- Nome do banco: postgres // caso rode a imagem no docker
- Senha: 72551984 // caso rode a imagem no docker
- Docker Instalado // caso rode a imagem no docker
### Rodando através da IDE
```bash
# clonar repositório
https://github.com/RobsonArcoleze/teste-desenvolvedor-multiPortal.git# altere as configurações no application.yaml conforme a necessidade
server:
port: 8025spring:
datasource:
driverClassName: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/postgres
username: postgres
password: 72551984
jpa:
database: POSTGRESQL
hibernate.ddl-auto: none
show-sql: falseflyway:
baseline-on-migrate: true# executar o projeto
execute através da IDE de sua preferência
```### Rodando através da imagem docker
```bash
# Puxe a imagem docker para a sua maquina
docker pull robsonarcoleze/testedesenvolvedor# Execute a imagem
docker run -p 8025:8025 robsonarcoleze/testedesenvolvedor```
# Ponto importante
Na hora de expor o link do novo CSV para download, não consegui colocar o arquivo dentro da pasta static para ficar visivel para o navegador.
Então ao clicar no link e fazer o download ocorre um erro.### Solução para baixar o arquivo
Em Download: Está o caminho do arquivo, será necessário selecionar esse caminho, copiar e colar em uma nova aba do navegador, o download iniciara e o arquivo csv será salvo em sua maquina.
#### Lembre-se que codifiquei toda a logica baseada no arquivo enviado pelo recrutador, para realizar os testes, deverá ser usado o mesmo arquivo!
![Web 3](https://github.com/RobsonArcoleze/teste-desenvolvedor-multiPortal/blob/main/img/ajuste_populado.png)
# Autor
Robson de Oliveira Arcoleze
https://www.linkedin.com/in/robsonarcoleze/