Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Plataforma de Marketing e Sales Analytics
  • Wiki
  • Wiki
  • Configuração

Last edited by Gabriel Grellert Spiandorello Jun 03, 2025
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Configuração

Home Escopo e Cronograma Git Workflow Design e Mockups Configuração Arquitetura Infraestrutura BD

🚀 RevForce FastAPI

Backend desenvolvido com FastAPI

Gerenciador de dependências Poetry

Servidor local Uvicorn


📂 Pré-requisitos

Baixar e instalar python

  • Python 3.11+ https://www.python.org/downloads/

Baixar e instalar Docker Desktop

  • Docker Desktop https://www.docker.com

✅ Configurando o ambiente

Para executar a aplicação temos duas opções, configurar o ambiente python e o banco de dados manualmente (que pode ser feito com docker ou não), ou utilizar o docker compose.

Antes de tudo, clone o repositório e execute todos os comandos no diretório do projeto:

# Clone o repositório
git clone https://tools.ages.pucrs.br/plataforma-de-marketing-e-sales-analytics/revforce-api.git
cd revforce-api

🐋 Utilizando o docker compose (mais fácil)

O docker compose é uma ferramenta utlizada para definir e executar aplicações com múltiplos containers/serviços. Com ele, podemos escrever um arquivo de configuração YAML que define todos os serviços, volumes e redes do projeto, e o docker lida com o ciclo de vida de todos os componentes.

Primeiramente, verifique se o compose está instalado (documentação):

Se você tem o docker desktop, o compose vem junto por padrão

# Verifique a instalacao do docker compose
docker compose version

Com o compose instalado corretamente, basta executar o seguinte comando para executar toda a aplicação, banco de dados e api:

# Sobe todos os servicos necessarios
docker compose up

Na primeira vez, a aplicação deve levar algum tempo para instalar todas as dependencias.

Para parar a aplicação, pressione CTRL-C no terminal.

Para remover todos os dados do banco e começar do zero, execute (não deve ser necessário, mas é bom saber):

# Apaga todos os dados
docker compose down -v

NOTA: quando utilizar o docker/docker compose para rodar a aplicação, as dependencias não serão instaladas no seu sistema de arquivos, então a IDE não vai reconheçer os pacotes importados. Para resolver isso, execute os primeiros comandos da configuração manual, mas ainda use o docker para rodar a aplicação.

💪 Configuração manual

# Instale poetry (gerenciador de dependências)
pip install poetry

# Instale o ambiente virtual
python -m venv .venv

# Instale as dependências
poetry install

# Ative o ambiente virtual do Poetry
eval $(poetry env activate) 

Apenas siga os passos dessa seção caso precise atualizar ou adicionar uma dependência no pyproject.toml

Após adicionar a dependência no arquivo pyproject.toml, execute:

poetry install

poetry lock

🛢️ Configurando o banco de dados Postgres e o serviço em FastAPI local

✅ Usando Docker (Recomendado):

# Inicia um container com um banco postgres rodando no docker
docker run --name local-postgres -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=meubanco -p 5432:5432 -d postgres

# Gera a imagem docker que vai ser usada no comando seguinte
docker build --no-cache -t revforce-app .

# Roda um container com o projeto em FastAPI
docker run -d -p 8000:8000 -e DATABASE_URL="postgresql+asyncpg://postgres:[email protected]:5432/meubanco" revforce-app

▶️ Executando o projeto localmente, fora do docker

uvicorn app.main:app --reload
  • O parâmetro --reload recarrega o servidor automaticamente a cada mudança.

Acesse:

  • API rodando: http://127.0.0.1:8000
  • Documentação Swagger: http://127.0.0.1:8000/docs
  • Documentação ReDoc: http://127.0.0.1:8000/redoc

Gerenciamento do banco de dados

Usando Alembic

⚠️ ATENÇÃO: Somente usamos o Alembic para atualizar as tabelas do banco de dados sem perder os dados já inseridos

Gerando as revisões

alembic revision --autogenerate -m "adicione uma mensagem que faça sentido para o upgrade do banco de dados"

alembic upgrade <revision_id> # revision_id é gerado pelo comando anterior, e aparecerá na pasta alembic/versions

Fazendo rollback das mudanças no banco de dados

# retorna o estado para a última revisão
alembic downgrade -1

✅ Configurando o VS Code como editor default do git

Instalando no Macos/Linux

# Instale o VS Code via brew
brew install --cask visual-studio-code

# Configure o git para abrir o VS Code
git config --global core.editor "code --wait $MERGED"

Instalando no windows

Baixar e instalar o VS Code https://code.visualstudio.com

Abra um terminal e execute:

git config --global core.editor "code --wait"

📦 Executando os testes

pytest

✏️ Contribuindo

Contribuições são muito bem-vindas!
Envie Pull Requests 😊


Clone repository
  • Arquitetura
  • Banco de Dados
  • Configuração
  • Design e Mockups
  • Escopo e Cronograma
  • Gerência
  • Git Workflow
  • Infraestrutura
  • Home