AgtecCore
No description available
Install / Use
/learn @AgtecPalmas/AgtecCoreREADME
Esta ferramenta digital faz parte do catálogo de ferramentas do Banco Interamericano de Desenvolvimento. Você pode saber mais sobre a iniciativa do BID em code.iadb.org
<h1 align="center"> Agtec Core</h1> <p align="center"><img src="./images/agtec_core.png"></p>Tabela de conteúdos
- Tabela de conteúdos
- Informações
- Descrição e contexto
- Documentação
- Documentação Externa
- Guia de instalação
- Comandos via pacote taskipy
- Dependências
- Como contribuir
- Estrutura do projeto gerado
- Autor(es)
- Licença
Informações
Descrição e contexto
Esse projeto foi desenvolvimento para facilitar o desenvolvimento de sistemas Django trazendo diversas tecnologias embarcadas para expandir o conceito Don't Repeat Yourself (DRY). Além das tecnologias já embarcadas, temos managers para automatizar a geração de código do projeto.
Documentação
Utilizamos no desenvolvimento da ferramenta o pacote mkdocs, para gerar a documentação do projeto, acesse o site do mkdocs para maiores informações.
Documentação Externa
Acesse a documentação contendo todos os detalhes do projeto em: https://agtecpalmas.github.io/AgtecCore/
Guia de instalação
- Clone este projeto
git clone https://github.com/agtec/
- Crie um diretório para o seu projeto fora do Clone
mkdir <nome_do_seu_projeto>
- Acesse o diretório criado na etapa anterior
cd <nome_do_seu_projeto>
- Crie e ative um ambiente virtual python (Exemplo)
python3 -m venv venv
source venv/bin/activate
- Atualize o PIP (Recomendado)
python3 -m pip install --upgrade pip
- Instale o cookiecutter
pip install cookiecutter==2.3.0
- Inicie o projeto com o Cookiecutter apontando para o Clone do Agtec Core
cookiecutter <caminho_para_o_clone>/AgtecCore
-
Siga os passos informados no terminal
<img src="./images/cookiecutter.png"> -
Configure seu arquivo .env com as informações do seu banco de dados
-
Execute as migrações
python3 manage.py makemigrations
python3 manage.py migrate
- Crie um super usuário
python3 mock_superuser.py
- Execute o projeto
python3 manage.py runserver
- Caso o processo do Cookiecutter não tenha sido concluído corretamente, execute os comandos abaixo para instalar as dependências do projeto
python3 -m pip install -r requirements.txt
python3 -m pip install -r requirements-dev.txt
- Construa as aplicações iniciais
python3 manage.py build usuario --all
python3 manage.py build configuracao_core --all
Taskpy
Como forma de facilitar o uso de comandos comuns no desenvolvimento do projeto, utilizamos o Taskipy para gerenciar esses comandos. Após a instalação das dependências do projeto, você poderá utilizar os seguintes comandos via Taskipy:
build-all python manage.py build --all
build-fastapi python manage.py fastapi
build-force python manage.py build --all --force
core-upgrade python manage.py core --upgrade
core-version python manage.py core --version
coverage coverage html
docs mkdocs serve
lint black --diff --color . && isort --check-only --diff .
mgt python manage.py migrate
mkm python manage.py makemigrations
post-test coverage html
pre-test task lint
run python manage.py runserver
runserver python manage.py runserver
shell python manage.py shell
startapp python manage.py startapp
test pytest -s -x --cov=federacao_bt -vv
Exemplo de uso:
task build-all NOME_DA_APP
Consultado o help para saber quais parâmetros podem ser passados:
task build-all --help
Dependências
Principais dependências do projeto:
# Produção
Django
Django Rest Framework
PsyCopg
Sentry
...
# Desenvolvimento
Black
Djlint
Mkdocs
Pytest
Rich
Taskipy
...
Como contribuir
Há várias formas de contribuir com o projeto, com código, testes, documentação, etc. Acesse a documentação externa na seção Documentação Externa para saber mais sobre como contribuir com o projeto.
Estrutura do projeto gerado
flowchart TD
A[ AgtecCore - Cookiecutter ]
A --> B( cookiecutter.. /AgteCore )
B --> D[ Projeto Django baseado no AgteCore]
D --> E[ Projeto Django ]
E --> F( settings.py )
E --> G( urls.py )
E --> H( wsgi.py )
E --> I( manage.py )
I --> T([ build ])
I --> U([ fastapi])
I --> v([ flutter ])
E --> J[ apps ]
J --> K[ atendimento ]
J --> M[ core ]
J --> N[ configuracao_core ]
J --> O[ contrib ]
J --> S[ usuario ]
E --> P[ base ]
E --> Q[ contrib ]
E --> R[ docs]
T --> X( forms.py )
T --> Y( models.py )
T --> Z( views.py )
T --> AA[ templates ]
subgraph " "
AA --> AB( index.html )
AA --> AC( create.html )
AA --> AD( detail.html )
AA --> AE( update.html )
AA --> AF( delete.html )
end
