thiagopena / djangoSIGE

Sistema Integrado de Gestão Empresarial baseado em Django
http://djangosige.com.br
MIT License
423 stars 252 forks source link

Organização do projeto #134

Closed ghost closed 1 year ago

ghost commented 1 year ago

Olá, tudo bem?

Eu sou o Danilo Marto, o cara que entrou em contato por e-mail pedindo autorização para atualizar esse projeto. Essas são as primeiras contribuições que realizei e trata-se apenas sobre a organização e formatação dos arquivos. Abaixo eu apresentou uma justificativa do porquê as fiz e o quê eu fiz.

O que motiva essas alterações reside no fato que os arquivos do projeto estam aparentemente postos sem qualquer tipo de organização clara: estando largados dentro do projeto. Também pelo fato de não existir um indicador do padrão de estilo do código a ser seguido.

Para corrigir esses "inconvenientes", eu prossegui da seguinte forma:

Nota: O uso do Black é meramente uma preferência minha e o aplique por não haver nada que force um estilo.

Antes

./
|-- ...
|-- manage.py
|-- djangosige/
|   |-- __init__.py
|   |-- urls.py
|   |-- wsgi.py
|   |-- configs/
|   |   |-- __init__.py
|   |   |-- settings.py
|   |   |-- ...
|   |-- apps/
|   |   |-- __init__.py
|   |   |-- ...

O utilitário manage.py está na raiz do repositório e os módulos urls.py, wsgi.py estão separados hierarquicamente do módulo settings.py. Bem como estão no mesmo nível hierárquico do pacote apps, que agrupa os apps do projeto.

Agora

./
|--...
|-- djangoSIGE
|   |-- manage.py
|   |-- config/
|   |   |-- __init__.py
|   |   |-- urls.py
|   |   |-- wsgi.py
|   |   |-- settings.py
|   |-- djangosige/
|   |   |-- __init__.py
|   |   |-- apps/
|   |   |   |-- __init__.py
|   |   |   |-- ..

Todo o projeto agora reside dentro do diretório djangoSIGE: raiz do projeto. Isso isola os arquivos do projeto dos demais arquivos do repositório. O utilitário manager.py foi movido para da raiz do repositório para a raiz do projeto, estando agora no mesmo nível hierárquico do pacote config que agrupa os módulos urls,py, wsgi.py e settings.py.

O pacote apps foi mantido dentro do diretório djangosige que está na raiz do projeto. Escolhi manter dessas formar já pensando em uma refatoração futura,

Outras alterações que esse commit traz é

Nota: Algumas das alterações realizadas foram apresentadas no e-mail que lhe enviei. Por exemplo: a adoção do poetry para gerenciar as dependências.

Sem mais

Danilo Marto de Carvalho

ghost commented 1 year ago

Oi!

Eu modifique os arquivos para desenvolvimento com Docker e depois fiz um push para a minha branch master. Eh! como os commits desse PR são originários da minha master, o commit acabou sendo listado aqui também.

Nota: Eu não sabia que isso poderia acontecer

O commit em questão apenas organiza os arquivos para desenvolvimento com Docker

Antes

./
|-- ...
|-- docker-compose.yaml
|-- Dockerfile
|-- default.conf

Depois

./
|-- ...
|-- docker-compose.yaml
|-- docker/
|    |-- djangoSIGE\
|    |   |-- Dockerfile
|-- nginx\
|    |-- default.conf

Reescreve o docker-compose.yaml para a nova estrutura e atualiza o Dockerfile para buscar as dependências do arquivo pyproject.toml

Nota: As dependências não estavam sendo instaladaas quando tentava usar uma imagem alpine ou slim-bullseye. Eu só tive sucesso usando a image python:3.8.16-bullseye, como conseguência, o build tem 1.15G.

Eu otimizei a imagem o máximo que consigo, então qualquer dica que possa fazê-la menor é muito bem-vindo.

ghost commented 1 year ago

Fechei o PR porque vou começar de novo.