Skip to content

Commit 779a35f

Browse files
2 parents 54020d0 + 8be82c7 commit 779a35f

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

README.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Show me the code
2+
3+
### # DESAFIO:
4+
5+
API REST para Gestão de Gastos!
6+
7+
```
8+
Funcionalidade: Integração de gastos por cartão
9+
Apenas sistemas credenciados poderão incluir novos gastos
10+
É esperado um volume de 100.000 inclusões por segundo
11+
Os gastos, serão informados atraves do protoloco JSON, seguindo padrão:
12+
{ "descricao": "alfanumerico", "valor": double americano, "codigousuario": numerico, "data": Data dem formato UTC }
13+
```
14+
```
15+
Funcionalidade: Listagem de gastos*
16+
Dado que acesso como um cliente autenticado que pode visualizar os gastos do cartão
17+
Quando acesso a interface de listagem de gastos
18+
Então gostaria de ver meus gastos mais atuais.
19+
20+
*Para esta funcionalidade é esperado 2.000 acessos por segundo.
21+
*O cliente espera ver gastos realizados a 5 segundos atrás.
22+
```
23+
```
24+
Funcionalidade: Filtro de gastos
25+
Dado que acesso como um cliente autenticado
26+
E acessei a interface de listagem de gastos
27+
E configure o filtro de data igual a 27/03/1992
28+
Então gostaria de ver meus gastos apenas deste dia.
29+
```
30+
```
31+
Funcionalidade: Categorização de gastos
32+
Dado que acesso como um cliente autenticado
33+
Quando acesso o detalhe de um gasto
34+
E este não possui uma categoria
35+
Então devo conseguir incluir uma categoria para este
36+
```
37+
```
38+
Funcionalidade: Sugestão de categoria
39+
Dado que acesso como um cliente autenticado
40+
Quando acesso o detalhe do gasto que não possui categoria
41+
E começo a digitar a categoria que desejo
42+
Então uma lista de sugestões de categoria deve ser exibida, estas baseadas em categorias já informadas por outro usuários.
43+
```
44+
```
45+
Funcionalidade: Categorização automatica de gasto
46+
No processo de integração de gastos, a categoria deve ser incluida automaticamente
47+
caso a descrição de um gasto seja igual a descrição de qualquer outro gasto já categorizado pelo cliente
48+
o mesmo deve receber esta categoria no momento da inclusão do mesmo
49+
```
50+
### # Avaliação
51+
52+
Você será avaliado pela usabilidade, por respeitar o design e pela arquitetura da API.
53+
É esperado que você consiga explicar as decisões que tomou durante o desenvolvimento através de commits.
54+
55+
* Springboot - Java - Maven (preferêncialmente) ([https://projects.spring.io/spring-boot/](https://projects.spring.io/spring-boot/))
56+
* RESTFul ([https://blog.mwaysolutions.com/2014/06/05/10-best-practices-for-better-restful-api/](https://blog.mwaysolutions.com/2014/06/05/10-best-practices-for-better-restful-api/))
57+
* DDD ([https://airbrake.io/blog/software-design/domain-driven-design](https://airbrake.io/blog/software-design/domain-driven-design))
58+
* Microservices ([https://martinfowler.com/microservices/](https://martinfowler.com/microservices/))
59+
* Testes unitários, teste o que achar importante (De preferência JUnit + Mockito). Mas pode usar o que você tem mais experiência, só nos explique o que ele tem de bom.
60+
* SOAPUI para testes de carga ([https://www.soapui.org/load-testing/concept.html](https://www.soapui.org/load-testing/concept.html))
61+
* Uso de diferentes formas de armazenamento de dados (REDIS, Cassandra, Solr/Lucene)
62+
* Uso do git
63+
* Diferencial: Criptografia de comunicação, com troca de chaves. ([http://noiseprotocol.org/](http://noiseprotocol.org/))
64+
* Diferencial: CQRS ([https://martinfowler.com/bliki/CQRS.html](https://martinfowler.com/bliki/CQRS.html))
65+
* Diferencial: Docker File + Docker Compose (com dbs) para rodar seus jars.
66+
67+
### # Observações gerais
68+
69+
Adicione um arquivo [README.md](http://README.md) com os procedimentos para executar o projeto.
70+
Pedimos que trabalhe sozinho e não divulgue o resultado na internet.
71+
72+
Faça um fork desse desse repositório em seu Github e nos envie um Pull Request com o resultado, por favor informe por qual empresa você esta se candidatando.
73+
74+
### # Importante: não há prazo de entrega, faça com qualidade!
75+
76+
# BOA SORTE!

0 commit comments

Comments
 (0)