naomyduarteg / Projeto_final_luiza_code

3 stars 0 forks source link

luluflix

Projeto final Luiza <code>: carrinho de compra
Grupo 13: filmes e séries

luluflix-api versão-1 0 forthebadge forthebadge

Membros da equipe

:star2: Amanda Pacheco

:star2: Naomy Duarte Gomes

:star2: Tamara Santos Costa

Objetivos

Este é o projeto final do bootcamp de aceleração em Python promovido pelo Luiza labs, que sumariza tudo o que foi aprendido durante as semanas por meio da criação de um carrinho de compras. Nosso grupo recebeu como objetos de venda filmes e séries e nomeamos nossa aplicação luluflix (1).

Utilizamos Python como linguagem de programação, o framework FastAPI e a base de dados não-relacional MongoDB. Para a criação do carrinho, as informações que utilizamos no projeto foram: clientes, produtos e o próprio carrinho. Os clientes podem cadastrar mais de um endereço e podem alugar ou comprar filmes e séries em formato digital (nenhum produto físico é utilizado). A estrutura do projeto é a seguinte:


├── Projeto_final_luiza_code
│   │── env.example
│   ├── src
│   │    ├── __init__.py
│   │    ├── business_objects
│   │    │      ├── cart_bo.py
│   │    │      ├── product_bo.py
│   │    │      └── user_bo.py
│   │    │
│   │    ├── endpoints
│   │    │      ├── __init__.py
│   │    │      ├── carts.py
│   │    │      ├── products.py
│   │    │      └── users.py
│   │    │
│   │    ├── models
│   │    │      ├── carts.py
│   │    │      ├── carts_item.py
│   │    │      ├── products.py
│   │    │      └── users.py
│   │    │
│   │    └── routes
│   │           └── api.py
│   ├── __init__.py
│   ├── main.py
│   ├── requirements.txt
    └── README.md
 

Detalhes da estrutura

Models

Nesta pasta, definimos a estrutura dos objetos utilizados.

Business objects

Nesta pasta, definimos as regras pelas quais clientes, endereços, itens e carrinhos serão solicitados pela API de acordo com os requerimentos do projeto. Além disso, como características próprias deste projeto, temos:

Endpoints

Nesta pasta, definimos os canais de comunicação da API.

Swagger

Para testar a API de forma interativa, podemos utilizar o Swagger, que é uma documentação automática. A API luluflix (1) possui a seguinte documentação:

image

Banco de dados

Para a conexão com o banco de dados, é necessário informar uma URI, conforme exemplo em .env.examples. Esta URI pode ser obtida na página do MongoDB quando clicamos em "Connect -> Connect your application". Com esta mesma URI e utilizando o MongoDB Compass, podemos visualizar o banco de dados deste projeto, que possui as seguintes coleções: mongodb

Execução da API luluflix (1)

A API pode ser executada seguindo os passos abaixo:

  1. Clone o repositório
https://github.com/naomyduarteg/Projeto_final_luiza_code.git
  1. Crie um ambiente virtual
python3 -m venv <name_of_venv>
  1. Vá até a pasta onde foi criado seu ambiente virtual e ative-o

No Windows:

Scripts/activate

No Linux/Mac:

bin/activate
  1. Instale os módulos requeridos
pip install -r requirements.txt
  1. Rode a API utilizando o uvicorn
uvicorn main:app --reload

A mensagem "Project connected to the MongoDB database!" deverá aparecer se a execução for bem sucedida. A partir deste ponto, pode-se usar o Swagger para teste da API e o MongoDB Compass para acompanhar os documentos gerados em cada coleção, conforme mostrado nas imagens acima.

Deploy da Aplicação

O deploy foi realizado junto ao Heroku, onde é necessário configurar as variáveis de ambiente.

Para visualizar o deploy:

1) Acesse o QR Code abaixo:

QRCode_Fácil (2)

ou

2) Acesse o link: https://luizacodeprojetofinal.herokuapp.com/docs

Tecnologias/Ferramentas usadas: