Portfolio

Travel & Tourism Site: DUNE Resort

Na parte oriental de Mielno, está a ser desenvolvido um complexo exclusivo de apartamentos à beira-mar, DUNE Resort. Este investimento único evoca as luxuos...

#Websites
Travel & Tourism Site: DUNE Resort

#Um apartamento é um registo, não uma subpágina

O erro mais comum nos sites de promotores imobiliários consiste em tratar cada fração como uma subpágina com texto descritivo. A área, o piso, o número de quartos e o estado de venda passam a viver dentro do texto corrido, ou seja, no único sítio onde nada pode ser ordenado nem comparado. No primeiro trimestre surge o pedido de um filtro, no segundo o pedido de um mapa, e ambos obrigam a extrair de novo números de parágrafos que entretanto várias pessoas editaram à mão.

Neste projeto, uma fração é desde o início um registo com campos. Área, piso, tipologia, orientação das janelas, edifício, estado e a ligação à planta são atributos autónomos; o texto comercial é apenas mais um campo e não o suporte dos dados. O mesmo registo alimenta a lista de resultados, o marcador na planta de implantação, a ficha da fração e a exportação usada pelo gabinete de vendas, e uma única alteração de estado torna-se visível nos quatro sítios ao mesmo tempo.

Para quem mantém o site, a consequência é que marcar uma fração como reservada não implica editar texto nem pode partir um layout. É um campo de seleção com meia dúzia de valores admitidos. Na receção do projeto parece um pormenor e é a única característica que decide se, um ano depois, os dados apresentados ainda correspondem à realidade.

Há ainda um segundo benefício, menos evidente. Mais cedo ou mais tarde o gabinete de vendas pergunta quantos T2 restam no segundo edifício, quais deles estão orientados a poente e como se distribui a disponibilidade por área. Com os dados em campos, isto é uma consulta e a resposta demora um minuto. Com os dados em descrições, a resposta demora uma tarde de navegação manual e tem de ser refeita a cada alteração da oferta. O modelo que serve o visitante é o mesmo que serve o trabalho interno, e é esse o argumento para suportar o seu custo logo no início.

#DUNE Resort, complexo de apartamentos na costa báltica polaca

O DUNE Resort situa-se na parte oriental de Mielno, junto à marginal, na ul. Pionierow. O investidor é o Firmus Group, um grupo de promoção imobiliária com capital norueguês que opera na Pomerânia Central. O complexo cresceu até três edifícios com um total de 330 frações, piscinas exteriores e interior, zona de fitness e restauração no local. O primeiro edifício, com 114 frações, abriu em 2013; seguiram-se dois edifícios com 153 e 63 apartamentos. A nossa implementação decorreu em 2017 e demorou cerca de seis semanas.

Esta cronologia importa mais do que parece. O site não descreve um edifício concluído. Descreve um empreendimento que altera o número de frações, as plantas e a lista de comodidades ao longo da sua própria vida. Um modelo de conteúdos que pressuponha um inventário fixo obriga a reconstruir os templates a cada fase, e é exatamente nesse ponto que os sites de promotores costumam ser substituídos em vez de ampliados.

#Disponibilidade contra cache

Quase tudo neste tipo de site é estático. Imagens tridimensionais, descrições, planta de implantação e lista de comodidades mudam talvez duas vezes por ano. Um único valor não segue essa regra: saber se determinada fração continua disponível. Pode mudar às onze da manhã de uma terça-feira, e é a única informação da página de que um comprador sério precisa antes de pegar no telefone.

Essa assimetria determina toda a construção. Servir páginas a partir de cache é o que torna rápido um site com muita imagem, e uma página em cache que apresenta como disponível uma fração já vendida é pior do que uma página lenta. O comprador telefona por causa de um apartamento que saiu na semana anterior e a primeira frase da conversa comercial passa a ser uma correção. A solução não foi, portanto, reduzir a cache. Foi separar a página na parte que pode ficar em cache durante muito tempo e na pequena parte que não pode ficar de todo, mantendo esta segunda tão reduzida que recalculá-la não custa nada.

Na prática, a estrutura da página, as imagens, as descrições e a planta de implantação são comuns a todos os visitantes e ficam em cache de forma agressiva. A disponibilidade e o preço chegam por um ponto de acesso próprio e deliberadamente mínimo, que devolve apenas identificadores e estados. Tem um tempo de vida curto e é invalidado no momento em que alguém altera um estado na administração. O Redis suporta a cache de objetos por trás das consultas que constroem as listagens, o Memcached guarda sessões e fragmentos de vistas, e uma rede de distribuição de conteúdos fica à frente de tudo, sobretudo por causa das imagens, que num site destes pesam mais do que todo o resto somado.

#O que o mapa interativo teve mesmo de resolver

O mapa vende, não é decoração. Mostra a implantação dos edifícios em relação à marginal e à praia, permite escolher um piso e selecionar uma fração a partir da planta. A dificuldade real não está em desenhar um mapa, mas em conciliar duas escalas: a planta de implantação do conjunto e a planta de um piso isolado. São dois sistemas de coordenadas, e o visitante circula entre eles esperando que um edifício clicado na vista geral abra o piso certo e não uma lista de todos.

As plantas foram produzidas em formato vetorial, com áreas clicáveis associadas a identificadores de fração, em vez de coordenadas sobrepostas a uma imagem rasterizada. A diferença aparece na primeira revisão do projeto de arquitetura. Com imagem rasterizada, qualquer correção invalida todas as áreas e obriga a marcá-las de novo; com formato vetorial troca-se o ficheiro e as associações mantêm-se. Num empreendimento entregue por fases, isto é a diferença entre uma hora e dois dias por cada atualização de planta.

A pesquisa funciona por atributos e não por palavras. Área, número de quartos, piso, orientação e estado são critérios com valores fechados, pelo que uma consulta se resolve contra um índice em vez de percorrer texto. Com várias centenas de frações isso pesa, porque a implementação ingénua consulta a base de dados uma vez por cada filtro comutado. O conjunto de valores disponíveis é calculado uma vez e mantido em cache, e alternar um filtro substitui a lista de resultados sem recarregar a página.

#Integrações e comportamento em caso de falha

Os dados de disponibilidade e de reservas não nascem no site. Nascem no sistema do gabinete de vendas, e o site é consumidor deles. A troca decorre por REST API, de forma assíncrona, com validação do lado recetor, porque dados provenientes do sistema de outra pessoa acabam sempre por chegar num formato que ninguém anunciou.

A decisão mais importante dizia respeito à falha. O comportamento por omissão da maioria das extensões é apresentar um erro ou uma secção vazia, o que numa página de vendas é lido como uma avaria do site inteiro e faz mais estragos do que não mostrar nada. Aqui cada canal tem um valor de recurso: a última resposta conhecida em cache e, quando nem essa existe, uma variante estática da secção indicando que o gabinete de vendas confirma a disponibilidade atual. O visitante vê uma página sem um módulo e não uma mensagem de erro. Um sistema externo inacessível é um acontecimento para a monitorização, não para o utilizador.

A validação do lado recetor faz ainda algo que raramente se menciona. Um registo sem área, ou com um estado fora do conjunto conhecido, é rejeitado e reportado em vez de aterrar na página como célula vazia numa tabela. Uma única linha defeituosa mina a credibilidade de todas as linhas corretas ao seu lado, e o visitante não tem forma de distinguir umas das outras.

#Um site que tem de sobreviver ao próprio calendário de obra

Um empreendimento entregue por fases exerce sobre o site uma pressão específica, e não é a que se espera. O problema esperado é acrescentar frações, o que é trivial quando as frações são registos. O problema real é que o significado das palavras muda por baixo do texto. A piscina significa uma piscina exterior numa fase e duas exteriores mais uma interior noutra. O complexo significa primeiro um edifício e depois três. Um texto escrito como se o estado final já existisse lê-se no primeiro dia como uma promessa e no quadringentésimo como um erro.

Duas práticas resolvem isto. Primeira: tudo o que se conta vive nos dados e não numa frase, para que um valor variável seja atualizado num campo em vez de ser caçado em parágrafos editados por seis pessoas diferentes. Segunda: os endereços são desenhados para durar mais do que o calendário. Um endereço com o número do edifício ou o ano de conclusão expira no momento em que entra outra fase, e cada alteração dessas passa a ser um redirecionamento que alguém mantém durante anos.

A mesma lógica aplica-se às plantas e às imagens. São recursos com versão, ligados a um edifício e a um piso, e não ficheiros largados numa biblioteca de multimédia com nomes que faziam sentido a quem os carregou. Quando o arquiteto revê uma planta, a substituição ocorre num sítio, em vez de obrigar a procurar todas as páginas que possam estar a mostrar o desenho antigo.

#Apresentação, imagem e omissões deliberadas

O tema é próprio, modular, construído sobre HTML5 e SASS. A disposição e a colocação dos elementos vieram do cliente, pelo que o nosso trabalho consistiu em traduzir isso para templates, comportamento responsivo e um modelo de conteúdos que aguente ser mantido. O SASS justifica-se não por encurtar a escrita, mas por dar à cor da marca e à escala tipográfica um único sítio em vez de quarenta, o que num empreendimento ampliado por fases se traduz diretamente no custo do edifício seguinte.

A imagem é ao mesmo tempo o conteúdo principal e a despesa principal. Uma visualização de apartamento com vista de mar não pode ser comprimida até o mar virar uma mancha, e uma galeria em resolução plena carregada à partida pode pesar mais do que todos os outros recursos juntos. As imagens são por isso servidas em vários tamanhos escolhidos pela largura da área visível, e tudo o que fica abaixo da dobra espera que o visitante lá chegue.

O que o site deliberadamente não tem também conta. Não há contador de frações vendidas, porque um número desses ganha vida própria e ao fim de um trimestre ninguém se lembra do que foi incluído. Não há calculadora de rentabilidade, porque produziria um valor que ninguém confirmará depois, e numa página de investimento um número por confirmar é um compromisso e não um argumento. A omissão deliberada é aqui um resultado de trabalho legítimo e não uma lacuna no âmbito.

#As nossas ações

Para o promotor do DUNE Resort construímos um site com apresentação interativa do empreendimento, planta de implantação, pesquisa de frações por atributos e um mecanismo que mantém os estados alinhados com o sistema do gabinete de vendas. O percurso leva o visitante da vista do conjunto até uma fração concreta e daí ao contacto. Quem regressa de uma fração à lista encontra os critérios intactos em vez de os introduzir outra vez. Depois do arranque, o site recebeu monitorização básica, analítica e controlo de cache. É o mínimo para reparar que algo deixou de funcionar antes de o gabinete de vendas reparar, o que separa uma correção discreta de manhã de um telefonema com um cliente à espera.

A frase mais importante desta secção diz respeito aos testes, que correram contra uma cópia de produção e não contra uma instalação limpa, porque o desempenho de um site com várias centenas de registos, uma galeria e uma integração ativa nada tem em comum com o desempenho de uma instalação nova com tema de demonstração. Os casos limite são uma fração sem planta, um edifício a meio da introdução e um estado fora do dicionário, e nenhum deles aparece sem dados reais à frente, pelo que só aí podem ser corrigidos antes do arranque.

#Resumo

Três edifícios entregues em alturas diferentes, várias centenas de frações com tipologias distintas e uma zona comum com piscinas, fitness e restauração. Isto não cabe num só ecrã, e o site tinha de organizar a complexidade em vez de a repetir. Daí decorrem todas as decisões técnicas acima, da fração como registo com atributos às plantas em formato vetorial ligadas a identificadores.

A disponibilidade ficou separada do resto da página passível de cache e as integrações, ao falhar, degradam uma secção em vez de uma página inteira. Um visitante a quem falta um campo de estado continua à procura, enquanto um visitante que encontra uma página vazia fecha o separador.

O que transita para o próximo projeto imobiliário é o método de trabalho, com o modelo de conteúdos antes do template, a separação entre dados voláteis e estáticos ao nível da cache e os testes contra uma cópia de produção. O modelo de conteúdos em si e as integrações ficam para trás, porque foram construídos à volta dos dados de um cliente e da forma de um empreendimento. A implementação seguinte começa por uma análise de âmbito, e o orçamento vem depois dela.

Saiba mais no site: duneresort.pl

FAQ do artigo

Perguntas frequentes

Respostas práticas para aplicar o tema na execução real.

SEO-readyGEO-readyAEO-ready4 Q&A
Que âmbito teve o projeto DUNE Resort?#
DUNE Resort é um projeto da categoria Websites, entregue em 2025. Por detrás estão JavaScript e Redis.
Como correu a entrega de DUNE Resort?#
A construção durou cerca de seis semanas e entrou em produção em 2025. Assenta em JavaScript e Redis. O layout veio do cliente. Sobre ele construí os templates e o modelo de conteúdos, e testei os caminhos que carregam tráfego numa cópia de produção, não numa instalação vazia.
O que foi mais difícil tecnicamente em DUNE Resort?#
Manter JavaScript e Redis a trabalhar em conjunto foi o que exigiu mais cuidado. Conteúdo, configuração e código ficam em camadas separadas, por isso uma reversão após o lançamento mexe numa delas e não nas três. Os casos-limite aparecem numa cópia de produção, e é aí que correm os testes.
Que parte de DUNE Resort pode ser reaproveitada noutro projeto?#
A camada técnica transita: JavaScript e Redis. No projeto seguinte tem um aspeto parecido. O que não transita é o modelo de conteúdos e as integrações, escritos para os dados de um cliente e um briefing da categoria Websites. Um segundo projeto começa por uma análise de âmbito, e a proposta vem a seguir.

Precisa de FAQ adaptado ao setor e mercado? Criamos uma versão alinhada com os seus objetivos de negócio.

Fale connosco