Freelancer

Spring Hoteles

El proyecto de Spring Hoteles es uno de los más motivantes que he tenido a nivel de diseño/maquetación y a nivel de gestionar los contenidos mediante su propio CMS.

Spring Hoteles es una cadena de 3 hoteles en Tenerife, los cuales son bien diferenciados en cuanto a público objetivo y temáticas.

  • Spring Hotel Bitácora - Para vacaciones en familia
  • Sensimar Arona Gran Hotel & SPA - Ideal para unas vacaciones en pareja
  • Spring Hotel Vulcano - Para unas vacaciones relajantes

El proyecto se ha realizado con el framework Symfony 2 y dos partes diferenciadas.

  • Area Abierta
  • Gestor de contenidos

Area Abierta (FronEnd)

La parte de area abierta es la accesible por el usuario en donde se ha realizado una maquetación adaptativa con HTML5, CSS3, Javascript, Bootstrap3 y jQuery principalmente. Los diseños han sido proporcionados por parte del cliente.

Este Frontend tiene un sistema de routing y de templates en Twig. El routing principal es el que diferencia los contenidos de la web general de los contenidos de los diferentes hoteles. Además los templates vienen alimentados de los Controladores que le envían los datos necesarios para hacerlo dinámico, recogidos por extracción de datos de la base de datos principal del proyecto, gestionada desde el Backend.

Gestor de contenidos (BackEnd)

El backend del proyecto es un CMS personalizado y adaptado a la temática hotelera. Se ha usado el mismo proyecto de symfony, con la parte privada configurada en el fichero security.yml del proyecto. El CMS permite crear y modificar el árbol principal de secciones de la web. Se permite crear/modificar hoteles, y dentro de cada hotel, se permite crear una estructura de árbol, así como ofertas con validez, galerías de fotos, etc.

Cada sección tiene los campos principales de título, subtítulo, contenido, activo, url. Además de esto también se dispone de una parte para SEO, con metadatas personalizadas para cada sección.

Después, para la carga de imágenes se ha diseñado un sistema simple de carga de imágenes directamente a las secciones que nos interesan arrastrando imágenes desde nuestra carpeta del pc, mediante el bundle vichUploader.

Todo el backend está diseñado para que sea fácilmente editable cualquier sección de la web, y gracias a que las plantillas del Frontend tenemos el control total de las mismas, es muy fácil cualquier petición de cambio a nivel de código.

Cacheando base de datos con Reddis

Por último, se ha mejorado el performance de la web mediante el uso de Reddis, para las consultas a base de datos. La mayor parte de recursos de base de datos, se estaba dedicando a generar el árbol de secciones de la web. Esta parte solo cambia cuando desde el gestor la editamos, cambiando algún nombre, alguna url, o cambiando algún orden de secciones. Es por eso, que se decide cachear por Reddis, y solo se refresca cuando desde el backend, se hace un cambio de este tipo. De esta manera ahorramos tiempo de carga de la web, y solo hacemos la consulta cuando realmente ha habido un cambio de contenidos. El resto de consultas también son cacheadas, pero la mejora más notable de rendimiento es el árbol de secciones.

PHP Symfony Doctrine LESS Javascript HTML5