Sistema de placar em tempo real para jogos do SESI, desenvolvido com Azure Functions e JavaScript vanilla.
- Placar em tempo real - Atualização automática a cada 20 segundos
- Interface responsiva - Adaptada para desktop e mobile
- Cache otimizado - Sem problemas de cache com dados antigos
- API JSON - Retorna dados estruturados para integração
- Zero dependências frontend - HTML/CSS/JS puro
GET /api/index?competition={codigo}
Retorna a interface HTML completa do placar.
GET /api/placar?competition={codigo}
Retorna apenas os dados do placar em formato JSON.
- competition (obrigatório): Código identificador do jogo/competição
{
"logo_casa": "https://example.com/logo1.png",
"logo_fora": "https://example.com/logo2.png",
"nome_casa": "SESI Araraquara",
"nome_fora": "Time Adversário",
"placar_casa": "2",
"placar_fora": "1"
}- Azure Functions Core Tools
- Python 3.10 ou 3.11
- Conta Azure
- Clone o repositório:
git clone https://github.com/asdrub/placarSesiPy.git
cd placarSesiPy- Configure ambiente virtual:
python3.11 -m venv .venv
source .venv/bin/activate # macOS/Linux
# ou
.venv\Scripts\activate # Windows- Instale dependências:
pip install -r requirements.txt- Execute localmente:
func start- Acesse:
http://localhost:7071/api/index?competition=SEU_CODIGO
func azure functionapp publish placarSesiFunctionApp- Interface:
https://placarsesifunctionapp.azurewebsites.net/api/index?competition={codigo} - API JSON:
https://placarsesifunctionapp.azurewebsites.net/api/placar?competition={codigo}
┌─────────────────────────────────────────────────────────────────┐
│ Azure Functions App │
│ │
│ ┌─────────────────┐ ┌─────────────────────────────────────┐ │
│ │ /api/index │ │ /api/placar │ │
│ │ │ │ │ │
│ │ • Serve HTML │ │ • Consulta API externa │ │
│ │ • CSS embutido │ │ • Filtra dados do SESI │ │
│ │ • JavaScript │────┤ • Retorna JSON │ │
│ │ │ │ • Headers anti-cache │ │
│ └─────────────────┘ └─────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────┐
│ API Externa Atrium │
│ (Fonte dos dados reais) │
└─────────────────────────────┘
As cores são definidas no CSS embutido no function_app.py:
.time.aqa { background: #c00; } /* Time casa - vermelho */
.time.ita { background: #1a9c2c; } /* Time fora - verde */Para alterar o intervalo de atualização (padrão: 20 segundos):
setInterval(atualizarPlacar, 20000); // 20000ms = 20sSe os dados não atualizarem:
- Verifique se o parâmetro
_tsestá sendo adicionado às requisições - Confirme os headers
cache: 'no-store' - Use Ctrl+F5 para forçar refresh completo
Não deve acontecer - HTML e API estão no mesmo domínio.
Verifique se:
- O código
competitionestá correto - A API externa está respondendo
- O ENTITY_ID do SESI está configurado corretamente
- azure-functions: Runtime do Azure Functions
- requests: Cliente HTTP para consultar API externa
- Fork o projeto
- Crie uma branch (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças (
git commit -am 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/nova-funcionalidade) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para detalhes.
- Issues: GitHub Issues
- Email: [Adicionar email de contato]
Desenvolvido com ❤️ para acompanhar os jogos do SESI Araraquara em tempo real!