CAFÉ AURORA — PROJETO FINAL DO WEB II

Este checkpoint reúne a evolução completa do Café Aurora no Web II.
O sistema recebe mensagens, persiste dados, oferece painel autenticado,
permite atualizar e excluir com critérios e possui testes de integração.

IMPORTANTE SOBRE A HOSPEDAGEM
- O site didático Mundo bit Byte pode permanecer no GitHub Pages.
- O GitHub Pages não executa PHP.
- Para executar este sistema, o servidor precisa oferecer PHP 8.5, PDO,
  pdo_sqlite, armazenamento persistente e HTTPS.
- A raiz pública do servidor deve apontar para a pasta public/.
- Banco, credencial, testes, backups e código interno ficam fora de public/.

PREPARAÇÃO LOCAL
1. Abra a pasta cafe-aurora-web2 no VS Code.
2. Confira as ferramentas:
   php -v
   composer --version
3. Instale as dependências:
   composer install
4. Execute a verificação completa:
   composer check
5. O resultado esperado inclui o ambiente aprovado e:
   OK (4 tests, 8 assertions)

COMO EXECUTAR A APLICAÇÃO
1. Prepare ou atualize o banco:
   php src/inicializar-banco.php
2. Se ainda não houver credencial, crie uma:
   php src/criar-administrador.php
3. Inicie somente o servidor de desenvolvimento:
   php -S localhost:8000 -t public
4. Abra http://localhost:8000/ e percorra o teste de aceitação descrito em
   CHECKLIST-ENTREGA.md.

CAMINHO CONFIGURÁVEL DO BANCO
Sem configuração adicional, o banco fica em dados/cafe-aurora.sqlite.
Em outro ambiente, defina CAFE_AURORA_DB_PATH antes de executar os scripts
e a aplicação. Exemplos para a sessão atual do terminal:

PowerShell:
  $env:CAFE_AURORA_DB_PATH = "D:\dados-cafe\cafe-aurora.sqlite"

Prompt de Comando:
  set CAFE_AURORA_DB_PATH=D:\dados-cafe\cafe-aurora.sqlite

Linux ou macOS:
  export CAFE_AURORA_DB_PATH=/var/lib/cafe-aurora/cafe-aurora.sqlite

No servidor real, use o mecanismo de variáveis de ambiente oferecido pela
hospedagem. A pasta escolhida precisa existir, persistir e permitir gravação
pelo processo PHP.

BACKUP
1. Confirme que o banco existe.
2. Execute:
   composer backup
3. Confira o arquivo criado em backups/.
4. No servidor, CAFE_AURORA_BACKUP_DIR pode definir outra pasta protegida.
5. Guarde também uma cópia protegida fora do servidor.
6. Para ensaiar a restauração, use uma cópia do projeto e nunca apague a única
   base válida. Pare a aplicação, preserve o banco atual, coloque uma cópia do
   backup no caminho configurado e repita o teste de aceitação.

PREPARAÇÃO DE PRODUÇÃO
1. Teste antes da entrega:
   composer install
   composer check
2. No pacote de produção, instale sem ferramentas de desenvolvimento:
   composer install --no-dev --optimize-autoloader
3. Configure a raiz pública como public/ e o caminho persistente do banco.
4. Execute pelo terminal do servidor:
   php src/verificar-ambiente.php
   php src/inicializar-banco.php
   php src/criar-administrador.php
5. No PHP de produção, mantenha display_errors desativado e log_errors ativo.
6. Ative HTTPS e percorra CHECKLIST-ENTREGA.md no endereço final.

ARQUIVOS FINAIS ACRESCENTADOS
- src/verificar-ambiente.php: comprova requisitos básicos e retorna 0 ou 1;
- src/fazer-backup.php: cria uma cópia consistente com VACUUM INTO;
- CHECKLIST-ENTREGA.md: registra evidências de entrega e operação;
- backups/LEIA-ME.txt: explica por que os backups não vão para o Git;
- CAFE_AURORA_DB_PATH: permite separar o banco do código;
- CAFE_AURORA_BACKUP_DIR: permite escolher a pasta de backups;
- scripts composer check e composer backup.
- rota de exclusão carregando o repositório pelo autoload do Composer.

LIMITES CONHECIDOS
- os quatro testes automatizados cobrem somente a integração da exclusão;
- autenticação, CSRF, HTTP, interface e acessibilidade ainda são conferidos
  manualmente neste projeto;
- SQLite atende bem este projeto pequeno, mas não resolve toda escala futura;
- backup sem restauração ensaiada ainda não é recuperação comprovada;
- o servidor embutido do PHP é apenas para desenvolvimento;
- a escolha e a configuração da hospedagem dependem do ambiente contratado.

ENTREGA
Use CHECKLIST-ENTREGA.md. A entrega está pronta somente quando outra pessoa
consegue instalar, verificar, usar, recuperar e compreender os limites do
sistema sem depender da memória de quem o construiu.
