https://github.com/arthursudbrackibarra/t1-metodos-e-modelos
Trabalho 1 de Métodos e Modelos em Engenharia de Software
https://github.com/arthursudbrackibarra/t1-metodos-e-modelos
cucumber models python
Last synced: 3 months ago
JSON representation
Trabalho 1 de Métodos e Modelos em Engenharia de Software
- Host: GitHub
- URL: https://github.com/arthursudbrackibarra/t1-metodos-e-modelos
- Owner: ArthurSudbrackIbarra
- License: mit
- Created: 2023-09-09T17:45:07.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-09-17T03:14:17.000Z (almost 2 years ago)
- Last Synced: 2025-01-27T14:53:20.445Z (5 months ago)
- Topics: cucumber, models, python
- Language: Python
- Homepage:
- Size: 392 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Backend







Repositório do backend do projeto Veículos Via Montadora. O backend é desenvolvido em **Python** com o framework **FastAPI**. O banco de dados utilizado é o **MongoDB**. O projeto utiliza o **Poetry** para gerenciamento de dependências e **Pytest** para testes unitários. Além disso, o código deste repositório é executado em cima de uma função **AWS Lambda**.
## Requisitos
A seguir estão listados os requisitos para executar o projeto:
### Python ^3.9
Para instalar o Python, acesse o [site oficial](https://www.python.org/downloads/) e siga as instruções de instalação. Você deve instalar uma versão `> 3.9` (3.10.4 recomendada), caso o contrário, o projeto não irá funcionar.
Se você já tem o Python instalado, você pode verificar a versão com o seguinte comando:
```sh
python --version
```Caso você tenha uma versão diferente da recomendada, você deve instalar a versão correta.
### Docker
Para instalar o Docker, acesse o [site oficial](https://docs.docker.com/get-docker/) e siga as instruções de instalação. A instalação do Docker pode ser um pouco complexa, então não hesite em procurar ajuda com membros mais experientes da equipe.
## Desenvolvimento
Agora que você tem o Python e o Docker instalados, você pode começar a trabalhar no projeto:
- Primeiro, clone o repositório do projeto:
```sh
git clone https://tools.ages.pucrs.br/veiculos-via-montadora/backend.git
```- Em seguida, entre na pasta do projeto:
```sh
cd backend
```### Servidor API - FastAPI
Para iniciar o servidor da API, siga as instruções abaixo:
- Instale o gerenciador de dependências **Poetry** na versão **1.4.1**:
```sh
pip install "poetry==1.4.1"
```- Configure o Poetry para criar o ambiente virtual dentro da pasta do projeto:
```sh
poetry config virtualenvs.in-project true
```- Agora instale as dependências do projeto:
```sh
poetry install
```- Agora você pode iniciar o servidor localmente:
```sh
poetry run uvicorn app.main:app --reload
```O servidor estará disponível em [https://localhost](https://localhost).
> Para que o HTTPS funcione, você deve colocar um certificado e uma chave privada válida dentro do diretório `certs`. Leia o arquivo `certs/README.md` para mais informações.
### Servidor API - Docker
Quando você for fazer o deploy do projeto, você não irá executar o servidor localmente, mas sim em um container Docker. Nesse caso, o endpoint da API na máquina host será [https://localhost:8080](http://localhost:8080).
A ideia de colocar o backend sob HTTPS na porta 8080 é liberar a porta padrão `443` para o frontend, que também será executado em um container Docker e também sob HTTPS.
### Banco de Dados - MongoDB
Você fará uso do Docker para executar o banco de dados MongoDB dentro de um container. Para isso, siga as instruções abaixo:
- Execute o comando abaixo para iniciar o container do MongoDB:
```sh
docker compose up mongodb
```Isso irá iniciar o container do MongoDB em segundo plano. Para parar o container, execute o seguinte comando:
```sh
docker compose down
```### Testes Unitários
Para executar os testes unitários da aplicação, execute o seguinte comando na raiz do projeto:
```sh
poetry run pytest
```Para executar os testes da aplicação com cobertura de código, execute o seguinte comando na raiz do projeto:
```sh
poetry run pytest --cov=app
```### Testes Unitários - Gherkin (Cucumber)
Para executar os testes unitários da aplicação com Gherkin, execute o seguinte comando na raiz do projeto:
```sh
poetry run behave app/test/features --no-capture
```