micebot / server

Micebot's core, cheese! 🧀
MIT License
2 stars 0 forks source link
backend fastapi hacktoberfest


Este repositório contém o core de toda a aplicação, responsável por manter a persistência dos dados e as regras do nosso bot da Twitch e o nosso bot do Discord. A ideia por trás desse projeto é automatizar o processo de entrega de premiações (inicialmente, somente e-books) durante as lives do canal @codigofalado.

Documentação

Disponibilizamos um ambiente de testes muito semelhante ao que é utilizado em produção. Nele você pode visualizar, criar, editar e remover produtos e/ou pedidos. Produtos, são basicamente os itens que podem ser resgatados (as premiações). Pedidos, são as requisições criadas pelos moderadores e/ou o streammer, para que seja entregue um produto a um determinado usuário via sussurro na Twitch:

Ambiente de testes (staging)

Acesse o ambiente neste link e utilize uma das seguintes contas:

Uma vez autorizado, você pode consumir qualquer rota da nossa API. Também temos a documentação estática, utilizando Redoc, caso tenha interesse.

Contribuindo

Para executar este projeto é necessário que você tenha o Python 3.8+ instalado, Poetry e Docker. Também recomendamos utilizar a configuração poetry config virtualenvs.in-project true para que o ambiente virtual seja criado na raiz do projeto, não é uma necessidade mas facilitará sua vida. ;) Tendo tudo devidamente instalado e configurado:

  1. Clone este repositório e instale as dependências:
git clone https://github.com/micebot/server.git
cd ./server

poetry install
  1. Execute o script sh scripts/db-docker-container.sh para criar um novo container com a imagem do Postgresql 12 linkado à porta 5432. Se tiver problemas para executar o script, pode executar manualmente:
docker run \
    --name micebot \
    -p 5432:5432 \
    -e POSTGRES_DB=micebot \
    -e POSTGRES_USER=micebot \
    -e POSTGRES_PASSWORD=micebot \
    -d postgres:12
  1. Entre no virtual env, rode as migrações e execute a aplicação:
poetry shell
alembic upgrade head
uvicorn server:app --reload