Você está na página 1de 2

TESTE DESENVOLVEDOR 3

Zup Backend as a Service

Temos o seguinte cenrio. Um desenvolvedor mobile est desenvolvendo uma app que
precisa de um backend simples, mas ele no tem conhecimento para desenvolver esse
backend.

A Zup quer resolver o problema deste desenvolvedor. O que queremos fazer criar uma
tela simples para que o desenvolvedor mobile possa previamente cadastrar os modelos
do seu Domnio. Para cada modelo cadastrado a API dever expor os servios bsicos
de CRUD via padro RESTful.

Um caso de uso de exemplo seria:


Desenvolvedor cria os modelos como Product", Client, Order, XXX, YYY,
etc.
Desenvolvedor configura os atributos dos modelos. Os atributos devem suportar pelo
menos os tipos de dados bsicos com Int, String, Decimal, Date, etc.
Para um modelo do tipo XXX poderamos ter:
XXX
name: String
price: Decimal
attribute_n: [Int|String|etc]

A partir desse cadastro os seguintes recursos REST para gerenciamento desse modelo
deveriam estar disponveis:
GET /xxx - Lista todos os elementos do Modelo XXX
GET /xxx/{id} - Busca um registro do modelo XXX por id
POST /xxx - Cria um novo registro do modelo XXX
PUT /xxx/{id} - Edita um registro do modelo XXX
DELETE /xxx/{id} - Deleta um registo do modelo XXX

Com isso o desenvolvedor consegue criar uma app mobile que utiliza esse contedo
sem desenvolver um backend. Claro que existem vrio outros detalhes necessrios para
uma soluo completa, mas acredito que esses requisitos so suficientes para um MVP.

O que deve ser feito:


Pensar na melhor arquitetura para a soluo, pensando em evoluo, escalabilidade, etc..
Descrever brevemente a arquitetura proposta
Desenvolver o backend dessa verso inicial. Se quiser desenvolver o frontend tambm
fique a vontade, mas seria um plus
O cdigo-fonte deve ser disponibilizado na sua conta do Github, em um repositrio com
o nome xy-inc, juntamente com as instrues para execuo e testes da aplicao
(arquivo README)

Consideraes importantes:
Voc pode utilizar qualquer tecnologia que julgar necessrio
Sero avaliados: organizao do cdigo, simplicidade da soluo
(KISS), conhecimentos da linguagem/framework utilizado, cobertura de testes,
extensibilidade, manutenibilidade.

Você também pode gostar