Home
Softono
djangoSIGE

djangoSIGE

Open source MIT Python
460
Stars
262
Forks
22
Issues
65
Watchers
3 weeks
Last Commit

About djangoSIGE

Sistema Integrado de Gestão Empresarial baseado em Django

Platforms

Web Self-hosted

Languages

Python

DjangoSIGE Build Status

Sistema Integrado de Gestão Empresarial baseado em Django

Projeto independente open-source desenvolvido em Python 3 no Windows, testado no GNU/Linux e Windows.

Dependências

  • Python — 3.12 (definido em .python-version e pyproject.toml)
  • Django — 5.2.x (linha LTS, >=5.2,<5.3)
  • PostgreSQL — 18 (via Docker) ou compatível
  • uv (recomendado) — gerencia o ambiente e as dependências a partir de pyproject.toml / uv.lock
  • WeasyPrint — geração de PDF a partir de templates HTML/CSS (substitui o geraldo, ver issue #142). Em Linux exige as libs libpango-1.0-0, libcairo2, libgdk-pixbuf-2.0-0, libharfbuzz0b e libfontconfig1 — o Dockerfile já as instala.
  • PySIGNFe (opcional) — geração de NF-e/NFC-e, comunicação com a SEFAZ, DANFE. Mantém pinadas as versões antigas de cryptography==2.9.2, pyOpenSSL==17.5.0 e signxml==2.5.2, sem as quais a emissão quebra.
  • apache2 + mod_wsgi (opcional, alternativo ao Docker)

Screenshots

Login

Dashboard

Instalação

  1. Clone o repositório:
git clone https://github.com/thiagopena/djangoSIGE.git
cd djangoSIGE

Opção A — uv (recomendado)

uv cria o ambiente virtual e instala as dependências a partir do pyproject.toml/uv.lock em um único passo, fixando a versão do Python definida em .python-version. Em Linux e Windows você não precisa instalar nada previamente (nem o Python) — o próprio uv baixa o interpretador e resolve as dependências a partir de wheels pré-compilados.

Instale o uv (ver documentação oficial):

# Linux / macOS
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Sincronize as dependências (cria .venv automaticamente):

uv sync

A partir daqui, prefixe os comandos manage.py com uv run:

uv run python contrib/env_gen.py
uv run python manage.py migrate
uv run python manage.py createsuperuser
uv run python manage.py runserver

Opção B — pip + venv (alternativa)

Pré-requisitos no Linux (Debian/Ubuntu) — necessários para compilar extensões nativas (lxml, cryptography):

sudo apt install -y libxml2 gcc python3-dev libxml2-dev libxslt1-dev zlib1g-dev git
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install -y python3.12 python3.12-venv python3.12-dev

Pré-requisitos no Windows:

  • Instale o Python 3.12 (marque Add Python to PATH durante o instalador).
  • Instale o Git para Windows.
  • Algumas dependências nativas (lxml, cryptography==2.9.2) podem exigir o Microsoft C++ Build Tools caso o pip não encontre um wheel pronto. Se possível, prefira a Opção A (uv), que evita esse passo.

Criar o ambiente:

# Linux / macOS
python3.12 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Windows (PowerShell)
py -3.12 -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt

Em seguida, com o .venv ativado:

python contrib/env_gen.py
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver

Pós-instalação (ambas as opções)

  1. Edite o conteúdo do arquivo djangosige/configs/configs.py.

  2. Acesse http://localhost:8000 no navegador.

Popular o banco com dados de exemplo (opcional)

O comando create_data popula o banco com dados realistas em português (locale pt_BR, com CPF/CNPJ válidos gerados pelo Faker):

# uv
uv run python manage.py create_data

# pip + venv (com o .venv ativado)
python manage.py create_data

# Docker
docker compose exec gunicorn python manage.py create_data

O que é populado

App Modelo / tabela Default Observações
auth User 3 Usuários comuns (senha senha123). Superusers/staff são preservados.
login Usuario 3 Perfil 1:1 ligado a cada User recém-criado.
cadastro Empresa (+ PessoaJuridica) 2 CNPJ, nome fantasia, CNAE, regime tributário.
cadastro Cliente (+ PessoaFisica/PessoaJuridica) 15 Mistura PF/PJ aleatória, com limite_de_credito.
cadastro Fornecedor (+ PessoaJuridica) 8 Sempre PJ, com ramo de atividade.
cadastro Transportadora (+ PessoaJuridica) 3 Sempre PJ.
cadastro Endereco, Telefone, Email, Banco 1 por pessoa Criados e amarrados como _padrao de cada pessoa.
cadastro Produto 25 Código sequencial PRD00001…, EAN13, NCM, custo/venda coerentes.
cadastro Categoria, Marca, Unidade fixo (8/8/6) Conjunto fixo via get_or_create — nunca duplica.

Os módulos vendas, compras, estoque, financeiro e fiscal não são populados pelo comando (envolvem regras tributárias e workflows mais complexos).

Flags

  • --clear — apaga todos os dados de exemplo antes de recriar (preserva superusers e staff manualmente criados).
  • --seed N — fixa o seed do Faker para resultados reprodutíveis.
  • --clientes N, --fornecedores N, --produtos N, --empresas N, --transportadoras N, --usuarios N — ajusta cada quantidade individualmente (ver --help para os defaults).

Exemplo zerando o banco e gerando um conjunto maior:

docker compose exec gunicorn python manage.py create_data \
    --clear --clientes 50 --produtos 100

Docker (opcional)

Há também um docker-compose.yml com Postgres 18, Gunicorn e Nginx:

docker compose up -d
docker compose exec gunicorn python manage.py migrate
docker compose exec gunicorn python manage.py createsuperuser

A aplicação fica disponível em http://localhost:8000.

Comandos úteis

Abrir um shell interativo dentro do container da aplicação (atenção: as flags -it precisam vir antes do nome do container):

docker exec -it djangosige-gunicorn-1 bash
# equivalente via compose:
docker compose exec gunicorn bash

Acompanhar os logs em tempo real (-f = follow, --tail=N limita o backlog inicial):

# todos os servicos
docker compose logs -f

# apenas o gunicorn (com as ultimas 100 linhas)
docker compose logs -f --tail=100 gunicorn

# equivalente sem compose
docker logs -f djangosige-gunicorn-1

Outros atalhos úteis:

docker compose ps              # status dos containers
docker compose restart gunicorn
docker compose down            # derruba o stack (preserva volumes)

Implementações

  • Cadastro de produtos, clientes, empresas, fornecedores e transportadoras
  • Login/Logout
  • Criação de perfil para cada usuário.
  • Definição de permissões para usuários.
  • Criação e geração de PDF para orçamentos e pedidos de compra/venda
  • Módulo financeiro (Plano de Contas, Fluxo de Caixa e Lançamentos)
  • Módulo para controle de estoque
  • Módulo fiscal:
    • Geração e armazenamento de notas fiscais
    • Validação do XML de NF-e/NFC-es
    • Emissão, download, consulta e cancelamento de NF-e/NFC-es (Testar em ambiente de homologação)
    • Comunicação com SEFAZ (Consulta de cadastro, inutilização de notas, manifestação do destinatário)
  • Interface simples e em português

Créditos

Ajuda

Para relatar bugs ou fazer perguntas utilize o Issues ou via email [email protected]

Como este é um projeto em desenvolvimento, qualquer feedback será bem-vindo.