Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Carrinho de compras - Limpeza

O objetivo deste projeto foi criar um sistema de carrinho de compras e pedidos utilizando Python, FastAPI e MongoDB, trazendo informações de usuário, endereço e produtos, com foco na categoria de Limpeza.

Esta entrega engloba o CRUD (criação, leitura, atualização e remoção dos dados) para usuário, endereço, produto, carrinho de compras e pedido, bem como o tratamento de exceções, validações e testes unitários. O projeto também contempla a hospedagem e disponibilização da aplicação pelo Heroku e documentação utilizando o Swagger.


Índice

  1. Projeto
  2. Tecnologias utilizadas
  3. Bibliotecas utilizadas
  4. Desenvolvimento do projeto
  5. Desenvolvedoras do projeto

1. Projeto:

  • Criando e ativando um ambiente virtual: $ python -m venv venv $ source venv/scripts/activate

  • Instalando os requirements: $ pip install -r requirements.txt

  • Executando a aplicação: $ uvicorn source.main:app --reload

  • Routes:

    url: http://localhost:8000/docs

  • Link para consultar a aplicação hospedada pelo Heroku: url: https://shopping-cart-luizacode-final.herokuapp.com/docs#/

2. Tecnologias utilizadas:

Na realização deste trabalho, foram utilizadas as seguintes tecnologias:

  • Git e GitHub
  • Python v3.10.4
  • Framework FastAPI
  • MongoDB
  • Docker
  • Heroku
  • Swagger

3. Bibliotecas utilizadas:

As bibliotecas utilizadas para o desenvolvimento deste projeto foram:

  • fastapi v0.85.0
  • uvicorn v0.18.3
  • motor v3.0.0
  • pydantic v1.10.2
  • email-validator v1.2.1
  • pymongo v4.2.0
  • python-dotenv v0.21.0
  • dnspython v2.2.1

4. Desenvolvimento do projeto:

Para o desenvolvimento deste projeto, foram levados em consideração os seguintes pontos:

  • O usuário pode possuir mais do que um endereço cadastrado;
  • O code informado para cadastro de produtos é o código informado pelo fornecedor/vendedor e que será utilizado para leitura, atualização e remoção do produto;
  • Os produtos informados no momento de criação do carrinho de compras devem estar cadastrados no banco de dados;
  • O usuário só pode ter um carrinho de compras vinculado à sua conta;
  • O usuário pode ter mais do que um pedido vinculado à sua conta;
  • Foi criado o schema order_items para facilitar a criação do carrinho de compras e pedido, considerando que é o equivalente a cada linha de produtos diferentes no carrinho de compras ou pedido. Dessa forma, order_items informa o produto e a quantidade de itens daquele produto;
  • Para armazenamento de dados, foi utilizada a opção MongoDB disponível pela cloud Atlas;
  • Optou-se por aplicar a conteinerização neste projeto, em que a aplicação é executada dentro de um Docker contêiner;
  • Foi decidido utilizar uma estratégia simples de Continuos Delivery, utilizando o Heroku para hospedar e disponibilizar a aplicação;
  • Optou-se por documentar a API utilizando o Swagger.

5. Desenvolvedoras do projeto:

Bruna Faleiros

Giulia Gabriella

Nicole Maia

Rafaela Wessling Oening

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages