Esse projeto foi desenvolvido numa máquina que usa como sistema operativo o Windows 10. Por este motivo, todos os comandos do terminal e/ou o powershell são os usados pelo sistema operativo. Caso uses outro sistema, pesquise pelos comandos equivalentes para o seu caso (uma pessoa desenvolvedora precisa de cultivar o hábito da pesquisa, não é mesmo?).
Nota: todos os comandos usam o terminal do windows, com os perfis powershell ou git bash.
Por uma questão de conveniência e para que a aplicação "automagicamente" funcione em qualquer sistema operativo, toda a aplicação foi desenvolvida em docker, desse modo, basta criar as imagens e containers para que a mesma funcione independentemente do sistema operativo utilizado.
- Tests: PyTest
- Framework: FastAPI
- Code Formatter: Black
- Version Control: GitHub
- Code Runner: CodeRunner
- Virtual Environment: Pipenv
- Package Manager | Installer: Pip
- Task | Job Queue Manager: Celery
- Code Style Guide Enforcement: Flake8
- Database Image: Imagem Docker MySQL
- Programming Language: Python (>=3.11.1)
- ORM (Object Relational Mapper): SQLAlchemy
- Environment Variables File Reader: python-dotenv
- Development Environment: Docker e Docker Compose
- Database Design and Management: MySQL Workbench e MySQL Server ou DBeaver
Atenção: toda a estrutura do backend está contentorizada no Docker, por isso será necessário instalá-lo juntamente com todos os pré-requisitos antes de clonar esse repositório. O MySQL Workbench é usado apenas para ter uma interface visual para a gestão e modelagem do banco de dados. Poderão ser usadas alternativas como DBeaver por exemplo.
- Cole e execute no terminal o seguinte comando para clonar o repositório que contém o código (git bash):
git clone https://gitlab.com/hh_engineering/backend.git
- Execute os seguintes comandos pela ordem que aparecem para instalar todas as dependências do projeto presentes no arquivo Pipfile e inicializar o ambiente de dependências isolado (git bash):
py -m pip install pipenv
;py -m pipenv shell
;pipenv install --dev
- Iniciar o docker digitando o seguinte comando no terminal (powershell):
Start-service docker
- Execute o seguinte comando para configurar todo o docker (aplicação contentorizada, banco de dados mysql e rodar todos os containers necessários automaticamente) (git bash):
pipenv run composer:build
- Caso a aplicação contentorizada não rode automaticamente na porta 8004, execute o seguinte comando (git bash):
pipenv run composer:up
Nota: não é necessário rodar a aplicação backend pois a mesma é instanciada no docker, e todas as alterações efetuadas no código são automaticamente atualizadas na aplicação contentorizada.