Documentação do Projeto: Intranet Clínica Biavatti

1. Visão Geral do Projeto
A Intranet da Clínica Biavatti é uma plataforma web privada desenvolvida para ser o ponto central de comunicação e recursos para os colaboradores da clínica. O sistema foi construído para ser dinâmico, permitindo que um administrador gerencie todo o conteúdo exibido, bem como os usuários que têm acesso à plataforma.
O principal objetivo é fortalecer a cultura da empresa, centralizar informações importantes e criar uma experiência de usuário agradável e personalizada para a equipe.

2. Principais Funcionalidades
Para o Colaborador (Usuário Final):
Login Seguro: Autenticação individual por nome de usuário (gerado automaticamente) e senha (CPF inicial).
Página Inicial Personalizada: Saudação customizada por nome e gênero ("Bem-vindo" ou "Bem-vinda").
Conteúdo Dinâmico: A página exibe seções que são 100% gerenciáveis pelo administrador, incluindo:
Carrossel de "Últimas Atualizações".
Painéis de "Acesso Rápido" e "Links Úteis".
Mural de Notícias com layout flexível (imagens à esquerda, direita, centralizadas, etc.).
Carrossel de Vídeos Institucionais (YouTube e Google Drive) com pré-visualização.
Exibição de imagem de "Aniversariantes do Mês".
Surpresa de Aniversário: No dia do seu aniversário, o usuário é recebido com uma mensagem especial e uma animação de confetes ao fazer o primeiro login.
Painel de Controle Seguro: Acesso a uma área administrativa separada, protegida por uma senha única e criptografada (hash).
Dashboard Organizado: Uma interface com menu lateral para navegar facilmente entre as seções de gerenciamento.
Gerenciamento de Conteúdo: Uma página dedicada (gerenciar_conteudo.php) para editar todas as seções da intranet, com funcionalidades como:
Adicionar, remover e reordenar itens nos carrosséis e painéis.
Editor de texto simples para notícias (negrito, itálico, sublinhado, quebra de linha).
Controle total sobre o layout das notícias (posição e dimensões da imagem).
Pré-visualização de imagens em tempo real.
Gerenciamento de Usuários: Uma página dedicada (gerenciar_usuarios.php) para:
Adicionar novos colaboradores (Nome, Sexo, Unidade, Aniversário, CPF).
Geração automática de nome de usuário padronizado.
Editar informações de usuários existentes, incluindo a redefinição de senha.
Remover usuários.
Filtro de busca em tempo real por nome ou CPF.

3. Estrutura de Arquivos e Tecnologias
O projeto é construído com tecnologias web padrão, sem a necessidade de um banco de dados complexo.
Tecnologias: PHP, HTML, CSS, JavaScript.
Armazenamento de Dados: Arquivos JSON (config.json para o conteúdo, usuarios.json para os usuários).
Estrutura Principal:
code
Code
/
├── admin/                     # Pasta da área administrativa
│   ├── admin_header.php       # Template: Cabeçalho e menu do painel
│   ├── admin_footer.php       # Template: Rodapé e scripts do painel
│   ├── config.json            # "Banco de dados" do conteúdo do site
│   ├── gerenciar_conteudo.php # Página para editar notícias, links, etc.
│   ├── gerenciar_usuarios.php # Página para adicionar/editar/remover usuários
│   ├── login.php              # Tela de login DO ADMINISTRADOR
│   ├── logout.php             # Script de logout DO ADMINISTRADOR
│   ├── painel.php             # Dashboard principal do admin
│   └── usuarios.json          # "Banco de dados" dos usuários
│
├── icon/                      # Ícones (redes sociais, etc.)
├── imagem/                    # Imagens do site (logos, fachadas, etc.)
│
├── api.php                    # Expõe o config.json para o JavaScript de forma segura
├── auth.php                   # Script que protege as páginas, exigindo login de colaborador
├── index.php                  # A página principal da intranet
├── intranet_login.php         # Tela de login DOS COLABORADORES
├── logout.php                 # Script de logout DOS COLABORADORES
├── script.js                  # JavaScript principal que monta a página e ativa o easter egg
└── style.css                  # Folha de estilos principal

4. Guia do Administrador
A. Para Gerenciar o Conteúdo (Notícias, Links, Imagens, Vídeos):
Acesse seusite.com.br/admin/login.php.
Digite sua senha de administrador.
No menu lateral, clique em "Gerenciar Conteúdo".
Utilize os formulários para adicionar, editar ou remover itens.
Clique no botão "Salvar Todas as Alterações" no final da página para aplicar as mudanças.
B. Para Gerenciar os Usuários (Colaboradores):
Acesse seusite.com.br/admin/login.php.
Digite sua senha de administrador.
No menu lateral, clique em "Gerenciar Usuários".
Para Adicionar: Preencha o formulário no topo da página e clique em "Adicionar Usuário". O nome de usuário será gerado e exibido na mensagem de sucesso.
Para Editar: Encontre o usuário na tabela e clique no botão "Editar". O formulário no topo será preenchido com os dados dele. Faça as alterações e clique em "Salvar Alterações".
Para Remover: Encontre o usuário na tabela e clique no botão "Remover".

5. Implantação e Segurança (Checklist Essencial)
Ao mover o site do seu ambiente local (XAMPP) para um servidor de hospedagem (Hostinger), siga estes passos para garantir a segurança:
[ ✓ ] Mover Arquivos Sensíveis: Este é o passo mais importante. Mova os arquivos config.json e usuarios.json para uma pasta fora do diretório public_html.
Exemplo: Crie uma pasta intranet_config na raiz da sua hospedagem e coloque os arquivos lá.
Depois, atualize os caminhos dentro dos arquivos PHP (intranet_login.php, gerenciar_usuarios.php, gerenciar_conteudo.php, api.php) para apontar para o novo local. Ex: $usuariosFile = __DIR__ . '/../../intranet_config/usuarios.json';.
[ ✓ ] Senha Forte de Admin: Certifique-se de que a sua senha de administrador (definida em admin/login.php) é forte e que você está usando a versão criptografada (hash).
[ ✓ ] Ativar HTTPS (SSL): Use o painel da sua hospedagem para garantir que um certificado SSL esteja ativo para o seu domínio. Isso criptografa toda a comunicação.
[ ✓ ] Ocultar Erros do PHP: Para evitar que erros exponham informações do servidor, adicione as seguintes linhas no topo dos seus arquivos PHP principais ou configure via .htaccess:
code
PHP
ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);
error_reporting(E_ALL);
Esta documentação servirá como um guia completo para você e qualquer outra pessoa que precise trabalhar no projeto no futuro.



!!!!IMPORTANTE!!!!!

COMO MOVER ARQUIVOS SENSÍVEIS PARA FORA DO PUBLIC_HTML


Imagine a sua hospedagem como uma casa. A pasta public_html é a sala de visitas. Tudo o que está dentro dela pode ser acessado por qualquer pessoa que chegue à sua porta (através de um navegador).
O que vamos fazer é pegar seus arquivos de dados (config.json e usuarios.json), que são como um cofre, e movê-los da sala de visitas para um escritório trancado no andar de cima (uma pasta ao lado de public_html).
Apenas os seus scripts PHP, que são como os "moradores da casa", terão a chave (__DIR__) para acessar esse escritório. Ninguém de fora conseguirá sequer saber que ele existe.
Estrutura Visual:


/home/seu_usuario/       <-- Raiz da sua hospedagem (Andar de cima)
├── public_html/         <-- Sala de visitas (Acessível pela web)
│   └── intranet/        <-- Seu projeto está aqui
│       ├── admin/
│       ├── icon/
│       ├── imagem/
│       └── ... (todos os seus arquivos .php, .js, .css)
│
└── intranet_dados_seguros/  <-- O novo "escritório trancado" que vamos criar
    ├── config.json          <-- Cofre do conteúdo
    └── usuarios.json        <-- Cofre dos usuários


Parte A: Como Mover os Arquivos (Usando o Gerenciador de Arquivos da Hostinger)
Acesse sua Hospedagem: Faça login no painel da Hostinger.

Abra o Gerenciador de Arquivos: Encontre e abra a ferramenta "Gerenciador de Arquivos".

Navegue até a Raiz: Você provavelmente começará dentro da pasta public_html. Clique na pasta com o nome .. ou no ícone de "pasta para cima" para subir um nível. Você deve ver a pasta public_html listada.
Crie a Pasta Segura: No menu superior, clique em "Nova Pasta". Dê a ela um nome, por exemplo: intranet_dados_seguros. Clique em "Criar".
Entre na Pasta do Projeto: Volte para public_html e navegue até a pasta do seu projeto (intranet/admin/).
Selecione os Arquivos: Marque as caixas de seleção ao lado de config.json e usuarios.json.
Mova os Arquivos: No menu superior, clique em "Mover". Será aberta uma janela pedindo o destino. Digite o caminho para a sua nova pasta segura. O caminho deve ser algo como /intranet_dados_seguros. Clique em "Mover".
Verifique: Os arquivos config.json e usuarios.json devem ter desaparecido da pasta admin/ e agora devem estar dentro da sua nova pasta intranet_dados_seguros/.


Parte B: Onde Alterar o Código Exatamente
Agora, precisamos dizer aos seus scripts PHP onde encontrar os arquivos. Usaremos a "constante mágica" do PHP __DIR__, que significa "o diretório deste arquivo que estou executando".

1. Arquivo: intranet_login.php (na raiz do projeto)

Este arquivo precisa encontrar o usuarios.json.
Localização do arquivo: /public_html/intranet/intranet_login.php
__DIR__ aqui é: /public_html/intranet
Para chegar à pasta segura, precisamos subir um nível (../) para /public_html e depois outro (../) para a raiz.


ANTES:
code
PHP
$usuariosFile = 'admin/usuarios.json';

DEPOIS:
code
PHP
$usuariosFile = __DIR__ . '/../dados_seguros/usuarios.json';


2. Arquivo: api.php (na raiz do projeto)
Este arquivo precisa encontrar o config.json. A lógica do caminho é a mesma do intranet_login.php.


ANTES:
code
PHP
$configFile = 'admin/config.json';

DEPOIS:
code
PHP
$configFile = __DIR__ . '/../dados_seguros/config.json';


3. Arquivo: admin/gerenciar_usuarios.php
Este arquivo está um nível mais fundo, dentro da pasta admin, e precisa encontrar o usuarios.json.
Localização do arquivo: /public_html/intranet/admin/gerenciar_usuarios.php
__DIR__ aqui é: /public_html/intranet/admin
Para chegar à pasta segura, precisamos subir um nível (../) para /intranet, outro (../) para /public_html, e mais um (../) para a raiz.


ANTES:
code
PHP
$usuariosFile = 'usuarios.json';

DEPOIS:
code
PHP
$usuariosFile = __DIR__ . '/../../dados_seguros/usuarios.json';


4. Arquivo: admin/gerenciar_conteudo.php
Este arquivo também está na pasta admin e precisa encontrar o config.json. A lógica do caminho é a mesma do gerenciar_usuarios.php.
ANTES:
code
PHP
$configFile = 'config.json';
DEPOIS:
code
PHP
$configFile = __DIR__ . '/../../dados_seguros/config.json';

Resumo das Ações

Use o Gerenciador de Arquivos para criar uma pasta (ex: intranet_dados_seguros) ao lado de public_html.
Mova config.json e usuarios.json de public_html/intranet/admin/ para essa nova pasta.
Abra os 4 arquivos PHP listados acima e substitua as linhas de definição de caminho ($usuariosFile = ... e $configFile = ...) pelas novas versões que usam __DIR__.