Skip to content

Commit ffde34f

Browse files
author
Andreia Silva
committed
Atualizando desafio
1 parent ae5afd8 commit ffde34f

File tree

7 files changed

+164
-180
lines changed

7 files changed

+164
-180
lines changed

README.md

+34-25
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
1-
# Cadastro de cervejas artesanais
1+
# Bem vindo(a) ao desafio da Sensedia! Desde já, desejamos boa sorte :)
22

33
O objetivo deste projeto é avaliar o desenvolvimento de uma aplicação java utilizando Spring e APIs.
44

5-
### Baseado no [Building an Application with Spring Boot](https://spring.io/guides/gs/spring-boot/).
5+
## Cadastro de cervejas artesanais
66

7+
### Referência: [Building an Application with Spring Boot](https://spring.io/guides/gs/spring-boot/).
78

89
## Set up environment
910

10-
Para iniciar o projeto é necessário realizar o clone deste repositório
11+
Para iniciar o projeto é necessário realizar o clone do repositório a seguir:
1112

1213
```bash
1314
$ git clone https://github.com/Sensedia/craftbeer.git
1415
```
1516

17+
Este repositório contém um projeto base, com algumas dependências previamente adicionadas. Sinta-se a vontade para alterá-lo.
1618
Você deverá compartilhar no seu repositório do github as alterações solicitadas para o projeto.
17-
O endereço deste repositório deverá ser enviado para [email protected]
19+
O endereço deste repositório deverá ser enviado para o rh após a conclusão do desenvolvimento.
1820

1921
## Especificação do projeto
2022

@@ -28,51 +30,54 @@ Para implementar estas APIs você dever seguir a especificação do swagger que
2830
craftbeer
2931
|
3032
|docs
31-
| |___swagger-craftbeer
33+
| |___craftbeer-spec
3234

35+
Dica: Copie e cole o conteúdo do arquivo acima no [Swagger Editor](https://editor.swagger.io/) para visualizar melhor o que esperamos que seja implementado.
3336

3437
## Requisitos do projeto
3538

3639
1. Administrar cervejas:
3740

38-
- O sistema deverá ter um cadastro de cervejas artesanais por API.<br/>
39-
- O sistema deverá ser capaz de criar, excluir e alterar as cervejas.
41+
- O sistema deverá ter um cadastro de cervejas artesanais via API<br/>
42+
- O sistema deverá ser capaz de criar, excluir e alterar (parcialmente ou completamente) as cervejas
4043

41-
2. Sistema deverá armazenar os dados em banco de dados.
44+
2. Sistema deverá armazenar as informações em um banco de dados
4245

43-
- Poderá ser utilizado MYSQL ou qualquer banco de dados embbeded.<br/>
44-
 Caso seja utilizado o MYSQL, adicionar o script para criação do banco.
45-
- A comunicação com o sistema deverá ser feita através de JPA.
46+
- Poderá ser utilizada uma base de dados embbeded como H2<br/>
47+
- Caso opte por não utilizar a solução embbeded, não se esqueça de adicionar scripts de inicialização da base escolhida<br/>
48+
- A comunicação entre o sistema e a base de dados deverá ser feita através de JPA
4649

47-
3. O sistema deve conter testes unitários com JUnit
50+
3. O sistema deve conter testes unitários
4851

49-
4. O sistema deve conter uma forma de validar o funcionamento.
52+
- Utilize JUnit<br/>
53+
- Para facilitar a escrita dos testes, você pode utilizar frameworks de mock como o [Mockito](https://site.mockito.org/)
54+
55+
4. O sistema deve conter uma forma de validar o funcionamento
5056

51-
- Deverá ser diponibilizado uma coleção do postman ou soapui para testar todos os recursos
57+
- Deverá ser diponibilizado uma coleção do postman para testar todos os recursos
5258

5359
## O que será avaliado no projeto
5460

5561
- Qualidade de código
5662
- Design patterns utilizados
57-
- O sistema tem que estar completo e possuir todos os scripts necessários para a execução
58-
- A utilização do JPA de forma correta
63+
- A utilização correta do Spring, JPA e outros
5964
- A criação de testes unitários
6065

61-
## O que você deve fazer:
66+
## O que você deve fazer
6267

63-
- Utilizar java ao máximo e mostrar todo o seu conhecimento.
64-
- Entregar o projeto completo
65-
- Usar Java 8 e deixar a gente bem feliz com isso!
68+
- Utilizar-se da linguagem e dos frameworks ao máximo para mostrar o seu conhecimento
69+
- Entregar o projeto completo, com scripts e instruções de execução se for o caso
70+
- Usar Java 8+ e deixar a gente bem feliz com isso!
6671

67-
## O que você pode fazer:
72+
## O que você pode fazer
6873

69-
- Utilizar frameworks
70-
- Utilizar Spring Data ou qualquer outro framework para JPA.
74+
- Utilizar frameworks e bibliotecas que julgar úteis
7175
- Alterar e criar o código à vontade
7276
- Consultar tutoriais, consultar fóruns e tirar dúvidas
73-
- Você pode aprender com código de outras pessoas, utilizar trechos, mas não usar tudo igual.
77+
- Você pode aprender com código de outras pessoas, utilizar trechos, mas não usar tudo igual
78+
- Utilizar Docker para containerizar a aplicação (opcional, faz se te sobrar tempo)
7479

75-
## O que você não pode fazer:
80+
## O que você não pode fazer
7681

7782
- Copiar de outros candidatos
7883
- Pedir alguém para fazer o projeto para você
@@ -81,3 +86,7 @@ Para implementar estas APIs você dever seguir a especificação do swagger que
8186

8287
### [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/).
8388
### [Accessing Data with JPA](https://spring.io/guides/gs/accessing-data-jpa/).
89+
90+
## Essa seção foi reservada para que você descreva como executar seu projeto
91+
92+
TODO

docs/craftbeer-spec

+88
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
openapi: 3.0.0
2+
info:
3+
description: Craft Beer API
4+
version: 1.0.0
5+
title: Craft Beer
6+
paths:
7+
/beers:
8+
get:
9+
responses:
10+
"200":
11+
description: Status 200
12+
content:
13+
application/json:
14+
schema:
15+
type: array
16+
items:
17+
$ref: "#/components/schemas/Beer"
18+
post:
19+
requestBody:
20+
$ref: "#/components/requestBodies/Beer"
21+
responses:
22+
"201":
23+
description: Status 201
24+
headers:
25+
location:
26+
schema:
27+
type: string
28+
"/beers/{id}":
29+
get:
30+
responses:
31+
"200":
32+
description: Status 200
33+
content:
34+
application/json:
35+
schema:
36+
$ref: "#/components/schemas/Beer"
37+
put:
38+
requestBody:
39+
$ref: "#/components/requestBodies/Beer"
40+
responses:
41+
"200":
42+
description: Status 200
43+
"404":
44+
description: Status 404
45+
patch:
46+
requestBody:
47+
$ref: "#/components/requestBodies/Beer"
48+
responses:
49+
"200":
50+
description: Status 200
51+
"404":
52+
description: Status 404
53+
delete:
54+
responses:
55+
"204":
56+
description: Status 204
57+
"404":
58+
description: Status 404
59+
parameters:
60+
- name: id
61+
in: path
62+
required: true
63+
schema:
64+
type: string
65+
components:
66+
requestBodies:
67+
Beer:
68+
content:
69+
application/json:
70+
schema:
71+
$ref: "#/components/schemas/Beer"
72+
required: true
73+
schemas:
74+
Beer:
75+
type: object
76+
properties:
77+
id:
78+
type: integer
79+
name:
80+
type: string
81+
ingredients:
82+
type: string
83+
alcoholContent:
84+
type: string
85+
price:
86+
type: number
87+
category:
88+
type: string

docs/swagger-craftbeer

-92
This file was deleted.

pom.xml

+34-44
Original file line numberDiff line numberDiff line change
@@ -11,52 +11,42 @@
1111
<name>Craft Beer</name>
1212
<description>Manage craft beers</description>
1313

14-
<parent>
15-
<groupId>org.springframework.boot</groupId>
16-
<artifactId>spring-boot-starter-parent</artifactId>
17-
<version>1.5.4.RELEASE</version>
18-
</parent>
19-
14+
<parent>
15+
<groupId>org.springframework.boot</groupId>
16+
<artifactId>spring-boot-starter-parent</artifactId>
17+
<!-- Será que essa versão está atualizada? Melhor checar :) -->
18+
<version>2.4.2</version>
19+
</parent>
2020

21-
<properties>
22-
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
23-
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
24-
<java.version>1.8</java.version>
25-
</properties>
26-
27-
<dependencies>
28-
<!-- <dependency>
29-
<groupId>org.springframework.boot</groupId>
30-
<artifactId>spring-boot-starter-data-jpa</artifactId>
31-
</dependency> -->
32-
<dependency>
33-
<groupId>org.springframework.boot</groupId>
34-
<artifactId>spring-boot-starter-web</artifactId>
35-
</dependency>
36-
37-
<dependency>
38-
<groupId>org.springframework.boot</groupId>
39-
<artifactId>spring-boot-starter-test</artifactId>
40-
<scope>test</scope>
41-
</dependency>
42-
</dependencies>
43-
44-
<repositories>
45-
<repository>
46-
<id>spring-releases</id>
47-
<url>https://repo.spring.io/libs-release</url>
48-
</repository>
49-
</repositories>
21+
<properties>
22+
<!-- Posso utilizar java 9, 10, 11...? Claro! -->
23+
<java.version>8</java.version>
24+
</properties>
25+
<dependencies>
26+
<!-- <dependency>-->
27+
<!-- <groupId>org.springframework.boot</groupId>-->
28+
<!-- <artifactId>spring-boot-starter-data-jpa</artifactId>-->
29+
<!-- </dependency>-->
30+
<dependency>
31+
<groupId>org.springframework.boot</groupId>
32+
<artifactId>spring-boot-starter-web</artifactId>
33+
</dependency>
34+
<dependency>
35+
<groupId>org.springframework.boot</groupId>
36+
<artifactId>spring-boot-starter-test</artifactId>
37+
<scope>test</scope>
38+
</dependency>
39+
</dependencies>
5040

5141
<build>
52-
<plugins>
53-
<plugin>
54-
<groupId>org.springframework.boot</groupId>
55-
<artifactId>spring-boot-maven-plugin</artifactId>
56-
<configuration>
57-
<finalName>craft-beer</finalName>
58-
</configuration>
59-
</plugin>
60-
</plugins>
42+
<pluginManagement>
43+
<plugins>
44+
<plugin>
45+
46+
<groupId>org.springframework.boot</groupId>
47+
<artifactId>spring-boot-maven-plugin</artifactId>
48+
</plugin>
49+
</plugins>
50+
</pluginManagement>
6151
</build>
6252
</project>

src/main/java/com/beerhouse/Application.java

+3-6
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,10 @@
22

33
import org.springframework.boot.SpringApplication;
44
import org.springframework.boot.autoconfigure.SpringBootApplication;
5-
import org.springframework.context.annotation.ComponentScan;
65

76
@SpringBootApplication
8-
@ComponentScan(basePackages = "com.beerhouse")
97
public class Application {
10-
11-
public static void main(String[] args) {
12-
SpringApplication.run(Application.class, args);
13-
}
8+
public static void main(String[] args) {
9+
SpringApplication.run(Application.class, args);
10+
}
1411
}

0 commit comments

Comments
 (0)