Skip to content

Commit 280a6d2

Browse files
New approach and clearer objectives
1 parent 9135997 commit 280a6d2

File tree

1 file changed

+26
-25
lines changed

1 file changed

+26
-25
lines changed

README.md

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33

44
O objetivo desse code challenge é, mais do que seu currículo, formação e certificações, avaliarmos como você lida com esse desafio, quais ferramentas escolhe, a qualidade do seu código e a maneira de pensar nele.
55

6-
A solução desse desafio é extremamente importante para entendermos os seus requisitos de qualidade, organização do seu código, performance, portabilidade e etc...
6+
A solução desse desafio é extremamente importante para entendermos os seus requisitos de qualidade, organização do seu código, performance, portabilidade, etc.
77

8-
Sinta-se à vontade para escolher a tecnologia e ferramentas. Queremos ser surpreendidos pela sua abordagem no desafio!
8+
Sinta-se à vontade para escolher a tecnologia e ferramentas que achar necessário. Queremos ser surpreendidos pela sua abordagem no desafio!
99

1010
Temos apenas dois pré-requisitos: código testado e pronto para produção.
1111

@@ -123,53 +123,54 @@ Exemplo de contrato de OUTPUT:
123123
**Os dados devem ser armazenados conforme o contrato de OUTPUT também.**
124124

125125

126-
## FRONT-END ou APPS: Fazer uma interface de interação
126+
## FRONT-END/APPS: Interface
127127

128-
Em [função do nosso layout base](layout-desktop.jpg), **fique a vontade para reformulá-lo** a fim de casar com os seguintes **comportamentos obrigatórios**:
129-
130-
- Quando se clicar em um cliente, deve apresentar uma tela de detalhe com as informações dele.
131-
- Permitir a possibilidade do usuário navegar entre as fotos dos clientes na listagem e/ou detalhe.
132-
- Filtros pela região e/ou classificação do cliente.
133-
- Paginação por 30 elementos.
134-
- Interface responsiva (front) / adaptável para telas diferentes (apps).
135-
- A lógica nesse caso ficará toda no front/app, então você vai trabalhar com todos dados em memória. O input deve ser acessado via request http (CORS friendly).
136-
137-
Use sua criatividade e aproveite das informações do usuário para mostrar o card e o detalhe como você entende que seria a melhor forma e também a mais performática.
128+
Em [função do nosso layout base](layout-desktop.jpg), **fique a vontade para reformulá-lo** a fim de casar com os seguintes **requisitos obrigatórios**:
129+
130+
- Uma tela de detalhe deve ser apresentada quando se clicar em um cliente.
131+
- Navegação entre as fotos dos clientes.
132+
- Filtros pela região e/ou classificação do cliente.
133+
- A interface **deve** ser responsiva (front-end)
134+
- A interface **deve** ser adaptável para telas diferentes (apps)
135+
- Não deve existir alguém externo, isto é, todo a lógica tem que ser trabalhada em memória, dentro do seu projeto. O carregamento dos dados de input deve ser por meio de request HTTP.
138136

139-
Você deverá usar como input os links abaixo (~200 registros cada):
137+
Desenvolva da maneira que você achar melhor como mostrar os dados do usuário.
138+
139+
Use como input os links abaixo (~200 registros cada):
140140

141141
- https://storage.googleapis.com/juntossomosmais-code-challenge/input-frontend-apps.csv
142142
- https://storage.googleapis.com/juntossomosmais-code-challenge/input-frontend-apps.json
143143

144-
## BACK-END: Fazer uma API
144+
## BACK-END: API
145145

146-
Coloque essa lógica numa API backend, onde dada a **região do usuário** e seu **tipo de classificação** em uma request o seu response será a **listagem dos elegíveis**. O routing da aplicação fica a seu gosto.
146+
Pense em uma API que dada a **região do usuário** e seu **tipo de classificação**, responda a **listagem dos elegíveis**. Não existe routing definido para a aplicação, fica a seu gosto.
147147

148-
Assim como no FRONT-END e APPS, é **obrigatório** trabalhar com toda manipulação dos dados **em memória** (não é permitido usar qualquer tipo de database), então você precisará carregar o source em algum momento e fazendo **uma requisição HTTP** para uma das urls logo abaixo para obter os dados.
148+
É **obrigatório** trabalhar com toda manipulação dos dados **em memória**. O carregamento dos dados de input deve ser por meio de request HTTP.
149149

150-
O payload da response, além de conter a lista de usuários com o contrato de _output_, **deve conter** os seguintes metadados de paginação e totais, implementar esses metadados é **obrigatório**:
150+
Além da lista dos usuários elegíveis, para permitir navegação entre os registros, **deve ser implementado** os seguintes metadados de paginação:
151151

152152
```
153153
{
154-
pageNumber: int32,
155-
pageSize: int32,
156-
totalCount: int32,
157-
listings: [
154+
pageNumber: X,
155+
pageSize: P,
156+
totalCount: T,
157+
users: [
158158
...
159159
]
160160
}
161161
```
162162

163-
Faça essa API pensando que ela pode ser consumida por vários tipos de clientes e com diferentes propósitos, portanto implemente o que mais achar relevante e que faça sentido.
163+
Imagine que essa API seja possa ser acessada por consumidores específicos, então coloque o que mais achar necessário.
164164

165-
Você deverá usar como source os links abaixo (~1000 registros cada):
165+
Use como input os links abaixo (~1000 registros cada):
166166

167167
- https://storage.googleapis.com/juntossomosmais-code-challenge/input-backend.csv
168168
- https://storage.googleapis.com/juntossomosmais-code-challenge/input-backend.json
169169

170170
# Como entregar
171171

172-
Você deve disponibilizar seu código em algum serviço de hospedagem como Bitbucket, Gitlab ou Github. Manter o repo como privado.
172+
Você deve disponibilizar seu código em algum serviço de hospedagem como Bitbucket, Gitlab ou Github e manter o repositório como privado.
173+
173174
É obrigatório ter um **README** com todas as instruções sobre o seu desafio.
174175

175176
Assim que finalizar, nos avise para enviarmos os usuários que devem ter acesso para avaliação.

0 commit comments

Comments
 (0)