# πŸ•“ 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: ```bash 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: ```bash python manage.py startapp nome_do_app ``` Exemplo: ```bash python manage.py startapp usuario ``` 4. Adicione o app em `INSTALLED_APPS` dentro do arquivo `settings.py`: ```python 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: ```bash python manage.py makemigrations python manage.py migrate ``` 7. Teste o servidor: ```bash 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.