trilhas.muitomassa.com · apps/trilhas

Mapa do mockup

30 guias importados do blog em 11/10/2026 · 0 sem coordenada · 0 sem capa

14 de 24 telas navegáveis

Swipes, planos e a cidade escolhida ficam no localStorage deste navegador. O resto é o JSON dos guias ou dados de exemplo.

Pendências antes do lançamento

  • Licença das capas: são fotos de terceiros do Wikimedia Commons (CC BY-SA na maioria), com crédito em toda tela e no card; confirmar a licença de cada uma antes do lançamento, e se o card com texto por cima é adaptação (relatório 19, 3.7).
  • Tiles do mapa: o servidor do OpenStreetMap é só para demonstração; em produção, Protomaps no R2 ou OpenFreeMap.
  • Traçado, portaria e estacionamento: o blog só tem o ponto principal (cume); 'Como chegar' leva até ele.
  • Campos normalizados por regra (duração, água, camping, estacionamento) marcados 'a revisar' no JSON.

Decisões pendentes · 3

  • Descobrir: o baralho (swipe): A direção do gesto: o pedido deste mockup usa direita = já fui e cima = quero ir; o relatório 19 (3.2) propunha direita = quero ir e cima = já fui. Escolher uma antes do beta.
  • Página da trilha: Mapa: cenário B (MapLibre + Maps URLs) ou Google também na página (relatório 19, decisão 1; D46 pede Google com teto de custo)
  • Planejador: data, quem vai, clima, checklist e avise alguém: Por onde sai o alerta de atraso: WhatsApp (Evolution) + SMS em paralelo (relatório 19, decisão 3)

Descobrir

  • mockupMVP

    /guias reais, resto falso

    Os 30 guias são reais (importados do blog). 'Perto de você' pede a localização só no toque, com a explicação antes, e arredonda a coordenada a ~1 km sem guardar (D25); sem permissão, a cidade vem de uma lista de 14 cidades (no produto, o IBGE). Distância = linha reta × 1,3. Os posts 'da comunidade' são falsos.

    Próximo passo: RPC ST_DWithin no PostGIS a partir do ponto de partida (que ainda não existe no blog); lista de municípios do IBGE com busca

  • mockupMVP

    /catalogoguias reais, resto falso

    Busca sem acento em nome, cidade, parque e tags; filtros de região (UF), nível, distância, duração, água e camping. Duração, água e camping saem do texto livre do blog por regra (scripts/importar-trilhas.ts) e estão marcados 'a revisar' no JSON. Com cidade escolhida, ordena por distância. ?cat= abre numa categoria.

    Próximo passo: normalização pelo Claude com saída estruturada + revisão humana (relatório 19, seção 1, passo 2); tsvector com unaccent no Postgres

  • mockupMVP

    /descobrirdados falsos

    Arrastar com Motion: direita = já fui, cima = quero ir, esquerda = não é pra mim; botões equivalentes, teclado (← ↑ → e Z desfaz) e rótulos para leitor de tela. Marcas no localStorage. Ordem pela heurística da fase 1 do relatório 21 (simplificada), 'por que isto' com os códigos de motivo, lote de 20 que termina, nível 5 só depois de um 'já fui' de nível 3 ou 4, 'não é pra mim' com motivo opcional.

    Próximo passo: tabelas swipe e interacao (eventos), recomendacao_servida, pesos em config_versoes, exploração em 2 de 20 posições, holdout de 5%

  • Mapa de exploração (regiões que viram traçados no zoom)faltaMVP

    dados falsos

    Não existe. Hoje só há o mapa de uma trilha, dentro da página dela.

    Próximo passo: MapLibre + OpenFreeMap (Protomaps depois) com agrupamento e GeoJSON dos pontos; filtros do catálogo

Trilha

  • mockupMVP

    /trilha/pedra-selada-visconde-de-mauaguias reais, resto falso

    Ficha real do blog (números, época, água, camping, regras, técnico, segurança, abertura e fontes oficiais); estacionamento = a 1ª frase do guia que fala disso, 'a conferir'. Capa com crédito sempre visível. 'Por que isto' local. Mapa MapLibre com tiles do OSM de DEMONSTRAÇÃO, carregado só no toque (D46), com o ponto principal (cume), sem traçado. Botões Como chegar, Abrir no Google Maps e Satélite (Maps URLs, sem chave). Com NEXT_PUBLIC_GOOGLE_MAPS_KEY, o mesmo espaço mostra o Google Maps Embed (satélite), um ou outro, nunca os dois.

    Próximo passo: traçado e pontos do OSM (portaria, estacionamento, água) por trilha (~15 min cada); relevo; relatos com data no topo

  • mockupMVP

    /trilha/funicular-paranapiacabaguias reais, resto falso

    O motivo vem das regras do guia; as alternativas são as 3 trilhas abertas mais perto. Sem mapa, rota, plano nem 'quero ir'.

    Próximo passo: status por trilha no banco (aberta, restrita, fechada, proibida) com data e fonte

  • mockupMVP

    /trilha/pico-do-itambedados falsos

    Respostas FALSAS: procura a pergunta no FAQ do guia e devolve a resposta de lá, citando a fonte (o post do blog) e a data; fora do guia, diz 'não sei' e aponta a fonte oficial. Selo IA e aviso de mockup. 'Me perdi', 'torci' etc. caem num roteiro fixo de emergência (193, 192, 112), sem IA.

    Próximo passo: trilha_trecho com embedding (pgvector), Haiku com o dossiê da trilha, teto diário e kill switch (relatório 02)

Planejar e compartilhar

  • mockupMVP

    /planejar/pedra-selada-visconde-de-mauadados falsos

    Clima de exemplo (calculado do slug e da data; a altitude esfria o cume). Hora-limite obrigatória a partir do nível 3 e aviso de descida no escuro. Checklist por nível e tipo, água por pessoa pela duração. 'Avise alguém' monta a mensagem com rota (Google Maps), horários, o que fazer se atrasar e o 193, e abre o wa.me do próprio celular. Sozinho: aviso e o plano só salva com contato. Plano no localStorage.

    Próximo passo: tabelas plano, plano_checklist e contato_emergencia; Open-Meteo + alertas do INMET; afiliados no checklist

  • Plano público (o contato vê o status e pede 'me avise se atrasar')faltaMVP

    dados falsos

    Não existe. Hoje a mensagem do WhatsApp leva a rota e o guia, não um link do plano.

    Próximo passo: página sem login com código público, status (saiu, cume, voltou) e opt-in do contato

  • mockupMVP

    /trilha/pico-do-papagaio-aiuruoca/cardguias reais, resto falso

    Imagem gerada no servidor com a capa, o nome em Newsreader, os números, o nível e o crédito da foto com '· recortada'. A folha 'Compartilhar' mostra o card e tem WhatsApp (wa.me), baixar, Web Share e copiar link.

    Próximo passo: story 1080×1920, carrossel de 5 a 10 lâminas, og:image 1200×630 e link curto com origem

  • mockupMVP

    /trilha/trilha-das-7-praias-ubatubadados falsos

    Valores sugeridos (R$ 5, 10, 20, outro), QR e código copia-e-cola FALSOS e o aviso de que nada é cobrado.

    Próximo passo: cobrança Pix pelo Asaas na conta nova da MK4 (D45), tabela apoio

Comunidade

  • mockupMVP

    /minhasdados falsos

    Lê o localStorage. 'Já fui' desenha o perfil de altitude (oeste → leste). Marcos sóbrios (trilhas feitas, estados, altitude somada, planejou com hora-limite, avisou alguém), sem ponto nem ranking. 'Ver com dados de exemplo' marca as trilhas que o autor do blog já fez.

    Próximo passo: swipe e plano no Supabase com o login único; 'valeu a pena?' depois do 'já fui' (relatório 21)

  • mockupv2

    /timelinedados falsos

    9 posts de exemplo com data, selo de condição, 'isso me ajudou' (sem contagem pública) e 'denunciar'. Campo de escrever desligado. Aviso 18+.

    Próximo passo: tabelas post, relato, ajudou e denuncia; moderação de 'fechada' e 'perigosa' em até 6 h

  • Novo post ou relatofaltav2

    dados falsos

    Não existe.

    Próximo passo: post rápido com trilha e ponto anexados

  • Perfil (trilhas feitas, relatos úteis, selos de cuidado)faltav2

    dados falsos

    Não existe.

    Próximo passo: vem com o perfil do login único

  • Painel do admin do grupo (saídas, card semanal, Marvin)faltav2

    dados falsos

    Não existe.

    Próximo passo: relatório 19, 9.2 e relatório 18

  • Saída aberta (vagas, organizador verificado)faltav2

    dados falsos

    Não existe.

    Próximo passo: só 18+ com aferição de idade (D11)

Conta e meta

  • Entrar (login único)mockupMVP

    dados falsos

    Só o link 'Entrar' na barra, para NEXT_PUBLIC_LOGIN_URL (padrão http://localhost:3001/entrar) com ?next= a página atual. O login mora no apps/login.

    Próximo passo: sessão do @mm/auth no cookie .muitomassa.com; swipes e planos do navegador sobem para a conta ao entrar

  • mockupMVP

    /segurancadados falsos

    Texto de produto (emergência, o que o app não promete, regras, localização, fontes). Não é texto jurídico.

    Próximo passo: revisão jurídica dos termos com assunção de risco em linguagem clara (CDC art. 14)

  • Curadoria (interna): fichas, campos a revisar, relatos e denúnciasfaltaMVP

    dados falsos

    Não existe. O JSON marca os campos 'a revisar'.

    Próximo passo: painel mínimo na semana 4 do MVP

  • Premium Trilheiro+faltav2

    dados falsos

    Não existe.

    Próximo passo: offline, GPX, checklists avançados

  • Dados abertos (traçados em ODbL)faltav2

    dados falsos

    Não existe.

    Próximo passo: download da camada aberta em /dados

  • Guias da região e reserva com Pixfaltav3

    dados falsos

    Não existe.

    Próximo passo: Cadastur, seguro e termos (Decreto 7.381/2010)

  • prontoMVP

    /mapadados falsos

    —

    Próximo passo: —