# Portal De Paula Portal interno da De Paula Contadores — Python 3.13 + Django 6.0 + Django REST Framework + PostgreSQL 14, servindo tanto a API (`/api/...`) quanto o frontend HTML/CSS/JS (mesma origem). `Portal/` **é** o próprio projeto Django (`manage.py` na raiz), organizado no padrão convencional de um projeto Django. ## Como rodar localmente ``` cd Portal python -m venv .venv .venv\Scripts\activate # Windows pip install -r requirements.txt ``` Configurar as variáveis de ambiente do Postgres 14 antes de migrar — `config/settings.py` lê `DB_NAME`, `DB_USER`, `DB_PASSWORD`, `DB_HOST`, `DB_PORT` do `.env` (já existe na raiz de `Portal/`): ``` python manage.py makemigrations portal_api python manage.py migrate python manage.py runserver ``` Abrir `http://localhost:8000/` — o Django serve `index.html` e as demais páginas do frontend diretamente, sem precisar de um segundo servidor pro frontend. > **Não rodar `python manage.py seed_portal` neste ambiente.** O Portal já está em produção e o banco apontado pelo `.env` é o banco real, não uma cópia de desenvolvimento. O comando ressincroniza incondicionalmente `permissoes`/`ativo`/`gerencia_permissoes` dos 8 perfis de código fixo a partir de `catalogo.py` a cada execução — rodá-lo reverteria, sem nenhum aviso, qualquer permissão que um admin tenha customizado pela tela de Perfis de Acesso. O comando existe só para criar um ambiente novo/vazio do zero. Ver `CLAUDE.md` → "Como rodar / testar localmente" para o detalhamento. As contas de usuário (incluindo `gabriel` e `bruno`) já existem no banco de produção, com senhas e perfis mantidos pelos próprios usuários pelas telas de Perfis de Acesso/Usuários. Num ambiente novo criado do zero, `seed_portal` cria `gabriel` (perfil "Inovação", acesso total) e `bruno` (sem perfil vinculado, para testar o estado "sem acesso"). Não há suíte de testes, lint ou build configurados neste projeto. ## Mapa das aplicações | Aplicação | Seção do menu | Documentação | |---|---|---| | Principal (favoritos, widgets) | Principal | [Favoritos](docs/favoritos/README.md), [Calendário Individual e Widgets](docs/calendario-individual/README.md) | | Calendário Individual | Calendário | [docs/calendario-individual/](docs/calendario-individual/README.md) | | Links & Ferramentas / Acessos Gerais | Links & Ferramentas | [docs/links-ferramentas-acessos-gerais/](docs/links-ferramentas-acessos-gerais/README.md) | | Ramais | Ramais | [docs/ramais/](docs/ramais/README.md) | | Solicitações | Solicitações | [docs/solicitacoes/](docs/solicitacoes/README.md) | | Perfis de Acesso / Usuários | Administração | [docs/perfis-usuarios/](docs/perfis-usuarios/README.md) | | Importação de Plano de Saúde | Utilitários | [portal_api/planos_saude/](portal_api/planos_saude/README.md) | | Importação de Plano de Saúde - De Paula (mesma ferramenta, para o plano dos próprios colaboradores) | Utilitários | [portal_api/planos_saude/](portal_api/planos_saude/README.md) | | Conciliação de Fornecedores | Utilitários | [portal_api/conciliacao_fornecedores/](portal_api/conciliacao_fornecedores/README.md) | | Simulação de Custo de Contratação | Geradoc | [portal_api/custo_contratacao/](portal_api/custo_contratacao/README.md) | | Indicador de Desempenho | Geradoc | [portal_api/indicadores/](portal_api/indicadores/README.md) | | Não Conformidades | Relatórios > Qualidade | [portal_api/nao_conformidades/](portal_api/nao_conformidades/README.md) | | Relatório Contábil | Relatórios > Contabilidade | [portal_api/dashboard_contabil/](portal_api/dashboard_contabil/README.md) | | Relatório Contábil - De Paula (mesma ferramenta, para as empresas do próprio escritório) | Diretoria | [portal_api/dashboard_contabil/](portal_api/dashboard_contabil/README.md) | | Temas Sazonais (marca P.I.D. sazonal, hoje só Halloween) | — (recurso visual, não é item de menu) | [docs/temas-sazonais/](docs/temas-sazonais/README.md) | | Identidade visual (logos, marca P.I.D. na UI, animações, intro pós-login) | — (camada transversal, não é item de menu) | [docs/identidade-visual/](docs/identidade-visual/README.md) | Cada pasta acima tem um `README.md` (o que a aplicação faz, estado atual) e um `CHANGELOG.md` (histórico rodada a rodada, extraído de `plano.md`). As 5 aplicações com pacote Python próprio também têm um `CLAUDE.md` com o detalhamento técnico completo, carregado automaticamente pelo Claude Code; as demais têm esse detalhe no arquivo dentro da própria pasta em `docs/`. ## Documentação transversal - [CLAUDE.md](CLAUDE.md) — arquitetura geral do Portal (estrutura de pastas, modelo de permissões, API, CSS, animações). Carregado automaticamente pelo Claude Code. - [plano.md](plano.md) — histórico de decisões estruturais/transversais (rodadas que mudaram mais de uma aplicação ao mesmo tempo, migração pra Django, modelo de permissões em si, identidade visual). Histórico específico de cada aplicação vive no `CHANGELOG.md` dela.