Logo geekia
Browsing posts in: Drupal

Migrando y rediseñando el que es y será nuestro último drupal

Uno de los últimos proyectos en el que hemos trabajado ha sido la migración de un marketplace ( más o menos 😛 ) bajo drupal con una estructura un poco liosa y un theme bastante antiguo.

Debido a que algunos de los módulos creados y usados todavía no se habían migrado a drupal 8, pensamos que la opción más correcta era seguir con drupal 7, especialmente también por tiempos y presupuesto 😉

En principio, el cliente solo nos solicitó pequeñas cambios estéticos y de funcionalidad pero comprabando como estaba el site, nuestra propuesta fue un rediseño completo, tanto del theme como del propio funcionamiento.

Antes del rediseño visual nos encargamos de unificar y simplificar la arquitectura de contenidos, basándonos principalmente en el nodo anuncio, que es el principal del site.

Diseño antiguo

Diseño antiguo

El cliente nos comentaba que las llamadas para modificar algo del anuncio o para darlo de alta eran constantes, así que, una vez unificados los diferentes tipos de contenido en uno, se preparó para que su creación no fuera tan “liosa”.

Usamos el módulo create and reg para que cuando se creara un anuncio, se cree tambien un usuario ya que muchos de los problemas de la anterior versión eran que tenían que dar de alta antes un usuario para poder generar despues el anuncio.

Además, para crear el anuncio, eliminamos todos los posibles distractores para que el usuario se centrara exclusivamente en eso.

El resultado hay sido una mejora considerable en el tiempo a la hora de crear un anuncio y la minimización de posibles errores.

Una vez habiamos resuelto la creación del anuncio, lo demás ha sido trabajar en base a él, creando las vistas y demás.

 

Nuevo diseño

Nuevo diseño

Para la migración de los anuncios antiguos al nuevo sitio no hemos usado migrate, hemos creado un pequeño módulo para ello ya que además de migrar necesitabamos crear nuevos campos y rellenarlos con información dependiente de otros campos.
“Poco despues hemos descubierto que se podría haber hecho tambien con migrate :(”

Sin embargo, para la otra parte de la web, el foro, si la hemos utilazado y ha sido bastante sencilla su implementación.

En el nuevo diseño visual, se han mantenido los colores oscuros y se ha basado en el framework Foundation si, somos de los raros que no usan Bootstrap para el front-end pero nos hemos adaptado a trabajar con él y de momento cubre la mayoría de nuestras necesidades.

La home se ha unificado con la vista anuncios y se ha mejorado la presentación de los mismos.

Listado antiguo

Nueva home y listado

 

 

 

 

 

 

 

 

 

Otro de los puntos creados han sido los nuevos banners, menos intrusivos e incorporados al propio grid del theme, y los destacados en un carrusel en la parte superior y dentro de cada anuncio en la parte inferior del mismo.

Pero, como antes comentaba, sin duda alguna el cambio visual en el nodo anuncio ha sido el más completo.

Se ha dado más importancia a las imágenes, se ha mejorado la validación, se ha incorporado un sistema de favoritos y se han taxonomizado los anuncios para un mejor resultado en la búsqueda, la cual tambien ha sido mejorada, entre otras muchas más cosas.

Antigua vs Nueva

Internamente, el panel del usuario para poder gestionar sus anuncios también se ha diseñado desde cero así como el del administrador.

En definitiva, lo que iba a ser un pequeño trabajo de theming se convirtió en un proyecto completo, el cual está funcionando bastante bien.

pd: no se cual ha sido el equipo de desarrollo anterior, pero con mensajes como éste en el código, me han ganado, eso es comentar y lo demás tontería.

codigo


Drupal 8, mucho más que corazón

He de reconocerlo… me encanta Drupal y su actual rama 8 mucho más 😛

Hace unos meses escribía que estamos usando Drupal 8 en Geekia como parte del desarrollo de una App. Esta última semana decidí actualizar a la versión 0.40 del framework que usamos, React Native, ya que necesitaba una serie de módulos que solo funcionaban a partir de esta versión. Aunque se puede actualizar a través de CLI con reactnativegitupgrade, no paraba de darme errores con algunos de los módulos. Así que la mejor forma ha sido con una instalación limpia. Salvo algunos “problemillas”, con fácil solución, creo que ha sido lo más sencillo.

Una mejora notable ha sido el menor consumo en la App, de momento los esfuerzos se centran en la versión iOS, así como una mejor compatibilidad con algunos módulos.
"dependencies": {
"base-64": "^0.1.0",
"react": "15.4.2",
"react-native": "^0.40.0",
"react-native-checkbox-field": "^1.1.2",
"react-native-datepicker": "^1.4.3",
"react-native-extended-stylesheet": "^0.3.1",
"react-native-keyboard-aware-scroll-view": "^0.2.6",
"react-native-linear-gradient": "^2.0.0",
"react-native-maps": "^0.13.0",
"react-native-push-notification": "^2.2.1",
"react-native-qr-barcode": "^0.6.4",
"react-native-radio-buttons": "^0.14.0",
"react-native-router-flux": "^3.37.0",
"react-native-swiper": "^1.5.4",
"react-native-vector-icons": "^4.0.0",
"react-redux": "^5.0.2",
"redux": "^3.6.0",
"redux-thunk": "^2.2.0"
}

Pero, donde más se ha notado el cambio, ha sido con Drupal ya que a partir de ahora y gracias al módulo Push Notifications, va a ser tambien el encargado del envio de push a los dispositivos en vez de parse que fue con el que comenzamos.

De esta forma Drupal pasa a ser también el “cerebro” de la App ya que, además de gestionar los usuarios, las ofertas y la geoposición de los establecimientos, será también el encargado del envio de notificaciones a los dispositivos (rules)

Ésta va a ser la primera App en la que Geekia se ha encargado de todo el diseño, desarrollo, lógica de funcionamiento…


Lo que hemos hecho en 2016 (técnicamente hablando)

Si hace unos días en geekia publicabamos lo que habíamos hecho durante el pasado año, ahora voy a intentar hacer lo mismo pero desde un punto de vista más técnico.

Este año, como anteriores 😉 el desarrollo principal ha sido bajo drupal, si bien todavía la mayor parte ha sido con la versión 7, por fin hemos podido preparar un par de proyectos en su nueva versión 8. Una API para alimentar una futura aplicación y una web para una clínica neurológica de Almería. Ya solo con este trabajo, nos ha convencido para tenerlo en cuenta para futuros proyectos durante este año.

WordPress, aunque hemos preparado un sitio, todavía no es un CMS con el que nos encontremos muy a gusto, ojo, sigo pensando que es la mejor opción para un blog, de echo, éste está funcionando con él. Eso sí, Genesis nos ha enamorado 😉

En cuanto a frameworks PHP seguimos con PhalconPHP y Symfony y aunque nos gustaría empezar con algún otro, por ejemplo Laravel, todavía estamos más que servidos con éstos.

Además este año también ha sido el cambio en la versión de PHP, ya estamos con la 7.0, aunque en producción todavía estamos simultaneandola con la versión 5.6 ya que tenemos varios proyectos que no funcionan con la nueva versión.

Para front-end seguimos con Foundation y de momento no pensamos en cambiarlo, aunque no tenga ya soporte para IE 8 😉

Además, durante este año hemos “subido” en desarrollos javascript, para ello hemos usado frameworks como Sencha (manteniendo varios simuladores), continuado con angularjs en el proyecto de cambia tu mundo para Cáritas y empezando con reactjs para la UXSpain 2016 y react native para una próxima aplicación.

En definitiva un año en lo técnico completito, espero que este nuevo año que acabamos de empezar nos permita seguir aprendiendo y mejorando en todo y algo que he echado mucho en falta ha sido la de compartir y cooperar un poco más con la comunidad 🙁

Por cierto, Feliz Año nuevo… un poco atrasado.


Drupal 8, el mejor corazón para un desarrollo

Hace unos meses empezamos a trabajar con una empresa que tiene tiendas por toda España, la mayor parte del trabajo es y ha sido relacionado con el marketing, tanto online como offline pero ahora ha tocado la parte técnica, más concretamente en “mejorar” su programa de fidelización.

Actualmente cuentan con un programa de bonos los cuales se reparten en unas fechas determinadas del año. Para romper la estacionalidad decidimos crear unos bonos que se “consumirán” a través de una App. Salvo una serie de condiciones que nos exigió el cliente, algunas que no compartimos, nos aceptaron la creación de la app.

Limpiando para mejorar

El primer problema con el que nos encontramos fue su ERP, aunque bastante potente, estaba un poco limitado para extraer datos, además de que necesitaba urgentemente  un saneo de los mismos. Estamos hablando de una bbdd de aproximadamente 500.000 usuarios, la gran mayoría recurrentes y repartidos por mucha parte de la geografía española. Esa “limpieza” se ha estado llevando a cabo durante estos últimos meses y gracias a la empresa desarrolladora del ERP se ha podido mejorar su conexión con el exterior, con una serie de servicios web tanto para la gestión de usuarios, como para el consumo de bonos.

El corazón de la app

Una vez estaba resuelta la conexión, comenzamos con la creación de una API que “alimentaría” la propia app. Para ello decidimos usar… a ver si lo adivinas… pues si, drupal y más concretamente pensamos en la versión 8 ya que su desarrollo potenciando la omnicanalidad lo hace el más adecuado para ello, además de servirnos como banco de pruebas para el uso de esta nueva versión de nuestro CMS favorito 😉

El desarrollo lo comenzamos con la versión 8.0.0, pero actualmente lo hemos migrado a la 8.2.0, con todo lo que ello ha conllevado. Todos los servicios se han segurizado con OAuth 2.0, además del propio basic_auth del core de drupal. Desde el CMS se gestionan las ofertas que se mostrarán en la app así como la conexión con el gestor de notificaciones, para ello hemos usado parse, y nos está dando muy buenos resultados.

Otra de las funcionalidades que se gestionan desde aquí, es la geoposición de las distintas tiendas que dispone el cliente, mediante la creación de un nodo específico y su correspondiente service.

Drupal 8 nos ha permitido integrar a través de su API REST, todo lo necesario para poder servir los datos de forma correcta, sencilla y segura.

…y por fin, la app

Para el desarrollo de la app hemos optado por un desarrollo híbrido y, aunque tenemos experiencia ya en Ionic, hemos elegido React-Native, a pesar de que solo hemos hecho un desarrollo (en React), su flexibilidad y potencia nos hizo creer que era la mejor opción. De momento, y salvo el cambio tan rápido de versiones que están teniendo, lo cual no está del todo mal, pensamos que la opción ha sido la más acertada.

Durante esta fase, todavía en desarrollo, se ha tenido que “experimentar” muchísimo, tanto que daría para un nuevo post, eso si, por si os puede interesar los módulos que estoy usando son estos:
"dependencies": {
"base-64": "^0.1.0",
"immutable": "^3.8.1",
"parse": "^1.9.2",
"react": "^15.3.2",
"react-native": "^0.34.1",
"react-native-checkbox-field": "^1.0.8",
"react-native-datepicker": "^1.3.2",
"react-native-extended-stylesheet": "^0.2.0",
"react-native-linear-gradient": "^1.5.4",
"react-native-maps": "^0.8.2",
"react-native-nav": "^1.1.4",
"react-native-push-notification": "^2.1.1",
"react-native-qr-barcode": "^0.6.4",
"react-native-radio-buttons": "^0.11.0",
"react-native-remote-push": "^1.0.3",
"react-native-router-flux": "^3.26.16",
"react-native-side-menu": "^0.19.0",
"react-native-swiper": "^1.4.5",
"react-native-vector-icons": "^2.1.0",
"react-redux": "^4.4.5",
"redux": "^3.6.0",
"redux-thunk": "^2.0.1"
}

De ellos, sin duda alguna el que más me ha parecido “magia” ha sido redux… cómo he podido estar desarrollando sin conocer esta maravilla 😉

Para esta parte del desarrollo cambiamos del IDE (o editor) que estábamos usando hasta ahora, NetBeans, por Atom con Nuclide y ya se ha convertido en nuestro editor de código de cabecera… tranquilos, SublimeText todavía no lo he desinstalado y lo sigo usando para otros menesteres 😉

El soporte que tiene Nuclide de React-Native es sin duda alguna mejor que en otros editores, lógico por una parte ya que ha sido desarrollado también por los mismos, Facebook

Una vez todo funcione junto, el flujo de la app deberá ser como esto:

Flujo de la app

 

Esperemos poder presentar el desarrollo muy pronto 😉


geekia ya es una realidad

Después de darle muchas (muchí­simas) vueltas a la cabeza, al final ya es una realidad mi primera web con Drupal 7, y que casualidad, se trata de mi propia empresa junto a dos “peazo” de profesionales como son Manolo Ruiz y Jose Luis Uclés ya esta funcionando.

De momento no se que que va a pasar con el blog Si Puedo, aunque creo que lo dejaré para temas más personales y el de geekia será para temas técnicos y profesionales.

Nos seguimos leyendo 😀


DrupalCamp Spain 2010, el poder del voluntariado

Hace algo mas de 24 horas que termin­ó la DrupalCamp Spain 2010 y tení­a muchas ganas de hablar sobre como han sido estos dí­as en ella, si bien el tí­tulo creo que lo expresa muy bien, ENHORABUENA a todos los voluntarios/as (entre los que me incluyo) que de una forma u otra han hecho que todo funcionara a la perfecci­ón 😉
Por supuesto, sin olvidar tampoco a nuestros sponsors ya que sin ellos no habrí­a podido llevarse a cabo:

Nota, el post en plural ya que de Almerí­a fuimos Manolo Ruiz y yo

Viernes 26
Llegada en avi­ón a Barcelona y en tren hacia Cornellí , llegamos un poco tarde, en la puerta estaban con la bolsa de merchandising, muy completa por cierto (la alfombilla de Investic muy chula). En la sesi­ón de bienvenida ya se notaba el ambiente, estaba lleno el auditorio.

Entrada al Citilabmerchandasing

El Citilí b nos parecio increible, las instalaciones, el sitio… y la lona qued­ó genial, es una gran satisfacci­ón ya que estaba hecha con Inkscape 😉

Una vez finalizada la sesi­ón, por fin!!! pude conocer a Jaume, Carlos, Pedro y Robert, salvando algunas sesiones, una de las mejores cosas de esta DrupalCamp conocer a la gente con la que has estado en contacto estos ­últimos meses para la preparaci­ón de esto.
Ese mismo dí­a asistí­ a las sesiones de Migrate y Table Wizard, o como aprendí­ a dejar de preocuparme y amar las migraciones de Modesto Caballero, bastante interesante y amena y despues en Unit testing & Integration testing. Implementaci­ón en Drupal por javier muy muy técnica y “reveladora” 😉

Por la noche nos toco “conocer” Barcelona gracias a Diego Zamora lo pudimos hacer…. mas o menos 😉 y además cenamos en un sitio que os aconsejo Menjador
Continue Reading