monolito_djanco_poonto/monolito_django_ponto/README_Ponto_Django.md
2025-10-22 13:52:36 -03:00

6.0 KiB

🕓 Sistema de Ponto Eletrônico (Django + Bootstrap)

Este projeto é a migração da aplicação existente para o framework Django, mantendo os nomes originais das tabelas e módulos (em português), com interface web baseada em Bootstrap e painel administrativo nativo do Django.


⚙️ Estrutura Geral do Projeto

ponto_eletronico/
├── manage.py
├── requirements.txt
├── README.md
├── .env
├── docker-compose.yml
├── Dockerfile
│
├── config/
│   ├── __init__.py
│   ├── asgi.py
│   ├── wsgi.py
│   ├── urls.py
│   └── settings/
│       ├── base.py
│       ├── dev.py
│       ├── prod.py
│       └── logging.py
│
├── empresa/
│   ├── admin.py
│   ├── models.py
│   ├── views.py
│   ├── urls.py
│   ├── templates/
│   │   └── empresa/
│   │       ├── empresa_list.html
│   │       └── empresa_form.html
│
├── usuario/
│   ├── admin.py
│   ├── models.py
│   ├── views.py
│   ├── urls.py
│   ├── templates/
│   │   └── usuario/
│   │       ├── usuario_list.html
│   │       ├── usuario_form.html
│   │       └── login.html
│
├── configuracoes/
│   ├── admin.py
│   ├── models.py
│   ├── views.py
│   ├── urls.py
│   ├── templates/
│   │   └── configuracoes/
│   │       └── configuracoes_form.html
│
├── feriados/
│   ├── admin.py
│   ├── models.py
│   ├── views.py
│   ├── urls.py
│   ├── templates/
│   │   └── feriados/
│   │       ├── feriado_list.html
│   │       └── feriado_form.html
│
├── pagamento/
│   ├── admin.py
│   ├── models.py
│   ├── views.py
│   ├── urls.py
│   ├── templates/
│   │   └── pagamento/
│   │       └── pagamento_status.html
│
├── turno/
│   ├── admin.py
│   ├── models.py
│   ├── views.py
│   ├── urls.py
│   ├── templates/
│   │   └── turno/
│   │       ├── turno_list.html
│   │       └── turno_form.html
│
├── turno_dia/
│   ├── models.py
│   ├── views.py
│   ├── urls.py
│   └── templates/
│       └── turno_dia/
│           └── turno_dia_form.html
│
├── marcacao/
│   ├── admin.py
│   ├── models.py
│   ├── views.py
│   ├── urls.py
│   ├── templates/
│   │   └── marcacao/
│   │       ├── marcacao_list.html
│   │       ├── marcacao_form.html
│   │       └── dashboard.html
│
├── ajuste_horario/
│   ├── admin.py
│   ├── models.py
│   ├── views.py
│   ├── urls.py
│   ├── templates/
│   │   └── ajuste_horario/
│   │       ├── ajuste_list.html
│   │       └── ajuste_form.html
│
├── ajuste_ausencia/
│   ├── admin.py
│   ├── models.py
│   ├── views.py
│   ├── urls.py
│   ├── templates/
│   │   └── ajuste_ausencia/
│   │       ├── ausencia_list.html
│   │       └── ausencia_form.html
│
├── templates/
│   ├── base.html
│   ├── includes/
│   │   ├── _navbar.html
│   │   ├── _footer.html
│   │   └── _messages.html
│   └── registration/
│       ├── login.html
│       └── logout.html
│
├── static/
│   ├── css/
│   │   ├── bootstrap.min.css
│   │   ├── estilo.css
│   ├── js/
│   │   ├── bootstrap.bundle.min.js
│   │   └── app.js
│   ├── img/
│   └── vendor/
│       └── bootstrap/
│
└── scripts/
    ├── migrate_legacy.py
    └── seed_demo_data.py

🔗 Relação entre apps e tabelas

App Django Tabela original Função principal
empresa tbl_empresa dados da empresa
usuario tbl_usuario usuários e cargos
configuracoes tbl_configuracoes parâmetros de ponto
feriados tbl_feriados feriados e adicionais
pagamento tbl_pagamento controle de assinatura
turno tbl_turno turnos padrão
turno_dia tbl_turno_dia dias da semana do turno
marcacao tbl_marcacao marcações de ponto
ajuste_horario tbl_ajuste_horario ajustes manuais de ponto
ajuste_ausencia tbl_ajuste_ausencia ausências justificadas

🧠 Criando um novo app Django

Para criar um novo aplicativo dentro do projeto, siga os passos abaixo:

  1. Ative o ambiente virtual:

    venv\Scripts\activate      # No Windows
    source venv/bin/activate   # No Linux/macOS
    
  2. Certifique-se de estar dentro da pasta do projeto (onde está o arquivo manage.py).

  3. Execute o comando:

    python manage.py startapp nome_do_app
    

    Exemplo:

    python manage.py startapp usuario
    
  4. Adicione o app em INSTALLED_APPS dentro do arquivo settings.py:

    INSTALLED_APPS = [
        ...
        'usuario',
    ]
    
  5. Crie os modelos e registre-os no admin:

    • Edite o arquivo models.py com suas tabelas.
    • Edite o admin.py para registrar os modelos.
  6. Rode as migrações:

    python manage.py makemigrations
    python manage.py migrate
    
  7. Teste o servidor:

    python manage.py runserver
    

💪 Frontend (Bootstrap)

O frontend utiliza Bootstrap 5 integrado aos templates Django.

  • Layout base: templates/base.html
  • Navbar, rodapé e mensagens ficam em templates/includes/
  • Cada app possui seus próprios templates HTML.