Produto da MT - Manfred Tecnologia.
Sistema de torneios de padel no formato Super 8. Oito jogadores, 7 rodadas, todos jogam com e contra todos, pontuacao individual por games vencidos.
Etapa atual: motor do torneio e ranking acumulado, com login por e-mail e senha. O login com Google fica para a etapa 2, e a modelagem ja nasceu preparada para ele.
Gratuito para o competidor e para quem cria a competicao. Nao ha plano pago nem cobranca por evento.
Em troca do uso gratuito, a MT figura como apoiadora e patrocinadora de cada campeonato criado na plataforma, com marca visivel na pagina do evento, no chaveamento, na classificacao e no ranking. Quem cria um campeonato aceita isso no cadastro, por termo de uso registrado.
Codigo fechado. Repositorio privado, publicacao na infraestrutura da MT.
O projeto trabalha em tres pastas com papeis diferentes, e vale entender isso antes de mexer em qualquer coisa.
| Pasta | Papel |
|---|---|
C:\COWORK\CODE\SUPER8 |
O projeto. Fonte de verdade, repositorio git, unico lugar onde se edita codigo |
C:\xampp\htdocs\super8 |
Copia de teste no XAMPP, para validar no navegador. Nao se edita nada aqui |
C:\COWORK\CODE\SUPER8\_PUBLICAR\enviar |
Pacote que vai para o servidor publicado |
O caminho e sempre nessa ordem. Editar direto na copia do XAMPP e a forma mais facil de perder trabalho, porque a proxima sincronizacao sobrescreve.
- Ligar Apache e MySQL no painel do XAMPP.
- Criar o banco:
C:\xampp\mysql\bin\mysql.exe -u root < sql/schema.sql - Copiar
config/config.exemplo.phpparaconfig/config.phpe ajustar as credenciais.
O config/config.php guarda as credenciais e fica fora do controle de versao de proposito. Somente o exemplo e versionado.
C:\xampp\php\php.exe testes\executar.php
Roda a partir do projeto, nao da copia do XAMPP. Sao 15 arquivos de teste que rodam por linha de comando, sem navegador e sem servidor web. Alguns precisam do MySQL no ar, porque exercitam transacao e concorrencia de verdade, com dois processos disputando a mesma trava.
O runner julga cada arquivo pelo codigo de saida. Vale saber de uma armadilha do PHP que aparece varias vezes neste projeto: exit('mensagem') devolve codigo de saida zero, entao um teste que morre no meio passaria por aprovado. Os testes que podem alcancar um exit usam register_shutdown_function para forcar codigo diferente de zero.
powershell -ExecutionPolicy Bypass -File ferramentas\sincronizar-htdocs.ps1
Copia config, src, views, public e sql para C:\xampp\htdocs\super8, espelhando, entao arquivo apagado no projeto tambem sai da copia. Depois abra http://localhost/super8/public/.
powershell -ExecutionPolicy Bypass -File ferramentas\montar-pacote.ps1
Roda a suite primeiro e aborta se algum teste falhar, porque descobrir isso depois do FTP custa muito mais. Monta _PUBLICAR\enviar e retira o config.php local do pacote, para que as credenciais de desenvolvimento nao subam nem sobrescrevam as de producao.
No servidor faltam tres passos, que o script lembra ao terminar: criar o config/config.php a partir do exemplo com COOKIE_SEGURO = true, rodar o sql/schema.sql no banco de producao, e apontar o DocumentRoot (ou o alias, se o servidor usar alias em vez de DocumentRoot) direto para a pasta public - nunca para a raiz do pacote. Apontar para a raiz serve config/ e sql/ como arquivo de texto cru para quem souber a URL; foi assim que a copia de teste deste projeto serviu sql/schema.sql por engano antes dessa checagem existir.
src/guarda as regras. Nenhuma linha de HTML, nenhuma chamada de sessao ou de cabecalho. Cada arquivo recebe a conexao e os valores por parametro, o que e o que torna os testes de linha de comando possiveis.config/guarda conexao, sessao, token CSRF, escape de saida e controle de acesso. E aqui que mora o codigo que legitimamente toca sessao e cabecalho.views/guarda as telas,public/os pontos de entrada.sql/schema.sqlcria as sete tabelas.sql/seed_demo.sqlcadastra um organizador de demonstracao, so para uso local.admin/guarda rotinas de administracao que so rodam por linha de comando, nunca expostas na web - hoje soanonimizar.php, a exclusao de conta a pedido do titular (verdocs/lgpd.md).testes/roda tudo. Arquivos comecando com_ajuda_sao auxiliares chamados por subprocesso, e nao testes; o nome e proposital, porque o runner so recolheteste_*.php.ferramentas/guarda os scripts de sincronizacao e empacotamento.
docs/analise/padelsuper8-analise.mde o documento de analise: contexto, objetivos, regras de negocio numeradas, requisitos funcionais e nao funcionais, exigencias legais e criterios de aceite. E por onde comeca quem nunca viu o projeto.projeto-super8-padel.mdtraz os requisitos originais do sistema.docs/especificacao/traz o desenho da etapa: modelagem, decisoes de arquitetura com o motivo de cada uma, analise de seguranca, analise de LGPD e a lista dos limites aceitos.docs/plano/traz o plano de implementacao tarefa por tarefa.docs/roteiro-teste.mde o roteiro de teste de ponta a ponta, para rodar manualmente contra a aplicacao publicada.docs/lgpd.mddocumenta o que o sistema guarda, a base legal de cada dado e como funciona a exclusao a pedido do titular.