0% acharam este documento útil (0 voto)
57 visualizações2 páginas

Backend para Loja Virtual em Python

Avaliação para desenvolvedor back-end pleno python.

Enviado por

anthonisilvasena
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
57 visualizações2 páginas

Backend para Loja Virtual em Python

Avaliação para desenvolvedor back-end pleno python.

Enviado por

anthonisilvasena
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Contexto

Você foi contratado para desenvolver uma aplicação backend que gerencia uma loja virtual.
A aplicação deve ser construída usando Python, FastAPI, sistema de mensageria e banco
de dados SQL. A aplicação deve ser capaz de gerenciar produtos, pedidos e usuários, além
de processar pedidos de forma assíncrona.

Requisitos
1. Usuários

Endpoint para criar um novo usuário com os seguintes campos:

● Nome (string)
● Email (string, formato válido)
● Senha (string, armazenada de forma segura)

2. Gerenciamento de Pedidos

Endpoint para criar um novo pedido. Um pedido contém:

● ID do usuário (integer)
● Lista de produtos (array de objetos contendo ID do produto e quantidade)

Endpoint para listar todos os pedidos de um usuário específico.

● ID do usuário (integer)
● Retornar uma lista de pedidos, cada pedido contendo ID, lista de produtos, status
(processado ou não processado) e data do pedido

3. Processamento Assíncrono de Pedidos

Quando um pedido é criado:

● Ele deve ser colocado em um sistema de mensageria (por exemplo, RabbitMQ ou


Kafka) para processamento.

Um worker deve consumir essa fila e processar o pedido:

● Reduzir a quantidade em estoque dos produtos do pedido.


● Marcar o pedido como "Processado" no banco de dados.

Critérios de Avaliação
1. Funcionalidade
● Verifique se todas as rotas estão funcionando conforme esperado.

2. Qualidade do Código

● Avaliar a clareza, organização e boas práticas no código.

3. Documentação

● Avaliar a documentação do código e da API.


○ Documentação da API (por exemplo, usando Swagger/OpenAPI).
○ README detalhado explicando como rodar o projeto, dependências e
exemplos de uso.

4. Integração

● Avaliar a correta integração com o banco de dados e o sistema de mensageria.

Observações
● Não há preferência por banco de dados específico (MySQL, PostgreSQL, SQLite,
etc.).
● A escolha do sistema de mensageria é livre (RabbitMQ, Kafka, etc.).
● A tabela de produtos pode ser pré-populada com os seguintes campos:
○ ID (integer)
○ Nome (string)
○ Descrição (string)
○ Preço (float)
○ Quantidade em estoque (integer)

Entregáveis
● Código fonte da aplicação (O candidato deve fornecer um link para o repositório Git).
● Arquivo Dockerfile e [Link].
● Scripts SQL para criação do banco de dados (se necessário).
● Instruções para rodar a aplicação e os testes.

Você também pode gostar