CleanFrame
A personal home screen for Samsung The Frame. A starting point to fork and adapt.
Compare voos, alojamento, carros e transportes em mais de 70 sites e encontre a viagem mais barata, com cupões e pacotes inteligentes.
Translation pending
LifestyleJavaScript · HTMLGitHub @TripNexusAvailability needs another checkOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Comparador de viagens em português: voos, alojamento, carros e transportes em mais de 70 sites, com preços reais e sem valores inventados.
Translation pending
Loading the full README.
Read the full README ↗Comparador de viagens em português de Portugal. Compara voos, alojamento, carros e transportes em 76 sites parceiros, aplica cupões automaticamente e recomenda pacotes sempre que compensam.
→ Abrir o site · Termos · Privacidade · Afiliação
O TripNexus não vende viagens: compara preços e encaminha para o site do parceiro que as vende. Numa só pesquisa, reúne voos, alojamento, aluguer de viaturas, transportes terrestres e actividades, calcula o total da viagem com os cupões já descontados e diz se um pacote voo + hotel fica mais barato do que reservar em separado.
De onde vêm os preços:
| Categoria | Origem dos preços |
|---|---|
| ✈ Voos | Reais, via Aviasales/Travelpayouts (tarifas registadas nas últimas 48 h) |
| 🏨 Hotéis | Reais, via SerpApi (motor Google Hotels) |
| 🏠 Casas, hostels, carros, transportes, actividades | Estimativas deterministas, a partir de distância, época do ano, dia da semana e perfil de cada parceiro |
O preço final é sempre o que constar no site do parceiro no momento da reserva.
Pesquisa
Resultados
Assistente de viagens
Bot de conversação servido por Cloudflare Workers AI, em português de Portugal, que responde sobre destinos, roteiros, melhor altura para viajar e dicas práticas. Está instruído a não inventar preços nem disponibilidade.
Parceiros por categoria
E ainda
Todo o conteúdo está em português de Portugal, com a ortografia anterior ao Acordo.
index.html página única (vistas: pesquisa, ofertas, parceiros)
termos.html termos e condições
privacidade.html política de privacidade (RGPD)
afiliacao.html divulgação de afiliação
assets/css/style.css estilos, incluindo o tema escuro
assets/js/data.js cidades, parceiros, cupões e ligações de reserva
assets/js/transportes.js tarifas reais de transportes públicos no destino
assets/js/engine.js motor de estimativas (voos, alojamento, carros, pacotes, cupões)
assets/js/calendar.js calendário de preços
assets/js/live.js preços reais de voos e hotéis (via backend)
assets/js/roteiro.js roteiro sugerido e assistente de viagens
assets/js/alertas.js alertas de preço, favoritos e pesquisas recentes
assets/js/analytics.js estatísticas de visitas (Cloudflare Web Analytics, sem cookies)
assets/js/app.js interface e ligação de tudo
backend/ Cloudflare Worker: preços reais e assistente (ver backend/README.md)
manifest.webmanifest
sw.js aplicação instalável e funcionamento offline (PWA)
tests/ teste de fumo (Playwright), corrido em cada PR pela GitHub Action
O site é estático e corre no GitHub Pages. O único serviço à parte é um Cloudflare Worker (plano gratuito) que guarda as chaves de API e serve os preços reais e o assistente. Sem ele configurado, o site continua a funcionar, com estimativas.
git clone https://github.com/TripNexus/tripnexus.github.io.git
cd tripnexus.github.io
python3 -m http.server 8642
Depois abrir http://localhost:8642. Não há passo de compilação nem dependências: é HTML, CSS e JavaScript simples.
Para os preços reais e o assistente, ver backend/README.md.
Há um teste de fumo (Playwright) que percorre os caminhos principais do site à procura de erros de JavaScript. Corre automaticamente em cada PR (GitHub Action), e também localmente:
npm ci
npx playwright install --with-deps chromium
npm run test:fumo
Basta uma entrada no objecto PARCEIROS, em assets/js/data.js:
novoParceiro: {
nome: 'Nome visível',
dom: 'dominio.com',
cat: ['voo', 'hotel'], // categorias onde aparece
fx: 1.00, // factor de preço face à referência
desc: 'Uma linha a explicar o que tem de especial.'
},
Os blocos de resultados e a página de parceiros passam a incluí-lo automaticamente, na categoria certa. As instruções detalhadas estão comentadas nesse ficheiro.